Package Details: bt-dualboot 1.0.1-4

Git Clone URL: https://aur.archlinux.org/bt-dualboot.git (read-only, click to copy)
Package Base: bt-dualboot
Description: Sync Bluetooth for dualboot Linux and Windows
Upstream URL: https://github.com/x2es/bt-dualboot
Licenses: GPL-3.0-only
Submitter: icepie
Maintainer: HurricanePootis
Last Packager: HurricanePootis
Votes: 15
Popularity: 1.38
First Submitted: 2022-10-23 03:13 (UTC)
Last Updated: 2026-01-20 19:37 (UTC)

Latest Comments

Mali commented on 2026-05-17 20:22 (UTC) (edited on 2026-05-17 20:24 (UTC) by Mali)

If you're hitting KeyError: 'Neither ... LinkKey->Key nor LongTermKey->Key exist', it means at least one paired device under /var/lib/bluetooth/ has neither a [LinkKey] nor [LongTermKey] section (usually a half-paired or stale BLE entry).

Note: If you don't really want to sync all devices, use --sync instead of --sync-all to sidestep this.

Find the offenders:

sudo find /var/lib/bluetooth -name info -type f \! -exec grep -lE '^\[(LinkKey|LongTermKey)\]' {} \; -print

For each path printed, note the device MAC (last directory) and remove it in bluetoothctl:

bluetoothctl
remove AA:BB:CC:DD:EE:FF
exit

Re-pair afterwards if it's a device you actually use. Then bt-dualboot runs cleanly.

alfrednewman commented on 2026-02-24 01:37 (UTC)

Traceback (most recent call last):
  File "/usr/bin/bt-dualboot", line 5, in <module>
    from bt_dualboot.cli.app import main

sonnyka commented on 2025-11-18 09:41 (UTC)

@alllexx88 Can confirm the fix works. Thank you.

alllexx88 commented on 2025-11-16 17:38 (UTC)

@sonnyka I had a similar error. I applied this patch: http://0x0.st/Kf-d.diff It's originally this PR: https://github.com/x2es/bt-dualboot/pull/14 with LongTermKey changed to SlaveLongTermKey

It worked with my BT devices afterwards (an xbox controller and a logitech mouse)

sonnyka commented on 2025-05-22 08:05 (UTC) (edited on 2025-05-22 08:07 (UTC) by sonnyka)

Installed bt-dualboot via yay.

Trying:

sudo bt-dualboot --dry-run --win /mnt/windows -l  


Error:
Traceback (most recent call last):
  File "/usr/bin/bt-dualboot", line 8, in <module>
    sys.exit(main())
             ~~~~^^
  File "/usr/lib/python3.13/site-packages/bt_dualboot/cli/app.py", line 342, in main
    app.run()
    ~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/bt_dualboot/cli/app.py", line 252, in run
    self.list_devices()
    ~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/bt_dualboot/cli/app.py", line 173, in list_devices
    devices=sync_manager.devices_both_synced(),
            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/lib/python3.13/site-packages/bt_dualboot/bt_sync_manager/bt_sync_manager.py", line 111, in devices_both_synced
    index = self._index_devices()
  File "/usr/lib/python3.13/site-packages/bt_dualboot/bt_sync_manager/bt_sync_manager.py", line 61, in _index_devices
    linux_devices   = get_linux_devices()
  File "/usr/lib/python3.13/site-packages/bt_dualboot/bt_linux/devices.py", line 40, in get_devices
    return [bluetooth_device_factory(device_path) for device_path in get_devices_paths()]
            ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/bt_dualboot/bt_linux/bluetooth_device_factory.py", line 55, in bluetooth_device_factory
    info = extract_info(device_info_path)
  File "/usr/lib/python3.13/site-packages/bt_dualboot/bt_linux/bluetooth_device_factory.py", line 39, in extract_info
    "pairing_key":  config.get("LinkKey", "Key"),
                    ~~~~~~~~~~^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/configparser.py", line 810, in get
    d = self._unify_values(section, vars)
  File "/usr/lib/python3.13/configparser.py", line 1184, in _unify_values
    raise NoSectionError(section) from None
configparser.NoSectionError: No section: 'LinkKey'

Please help! :)

HurricanePootis commented on 2024-10-21 02:05 (UTC) (edited on 2024-10-21 02:06 (UTC) by HurricanePootis)

I have the following recommend changes to get this package building.

  1. Use the git repo as to get all the pyproject.toml build method
  2. Add required makedepends
  3. Clean up depends
  4. Add a build() function
  5. SPDX compliant license information
  6. Remove conflicts and provides because that is not relevant here.
diff --git a/PKGBUILD b/PKGBUILD
index d6ad721..88792b6 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -7,17 +7,19 @@ pkgrel=1
 pkgdesc="Sync Bluetooth for dualboot Linux and Windows"
 arch=('any')
 url="https://github.com/x2es/bt-dualboot"
-license=('GPL3')
-provides=('bt-dualboot')
-conflicts=('bt-dualboot')
-makedepends=('git' 'python-installer' 'python-wheel')
-depends=(
-   'python'
-    'chntpw'
-)
-source=('https://files.pythonhosted.org/packages/42/82/c3e1bfca558d8a5f7dd51183ba0f1a3d2061f5442bfa54821398bb3813b8/bt_dualboot-1.0.1-py3-none-any.whl')
-sha256sums=('779ec46a4911a54918b08cf9d80a481697287c3017b38873a0152ca5e0520820')
+license=('GPL-3.0-only')
+makedepends=('git' 'python-installer' 'python-wheel' 'python-build' 'python-poetry')
+depends=('python' 'chntpw')
+source=("git+$url.git#tag=v${pkgver}")
+sha256sums=('d75ea4caf3c77df2d4c8c48a14c915514a4480fea0324275f8322e1ade64247d')
+
+
+build(){
+   cd $pkgname
+   python -m build --wheel --no-isolation
+}

 package() {
-   python -m installer --destdir="$pkgdir" "$_pkgname"-"$pkgver"-py3-none-any.whl
-}
\ No newline at end of file
+   cd $pkgname
+   python -m installer --destdir="$pkgdir" dist/*.whl
+}

anthon commented on 2023-05-23 19:01 (UTC)

I had to rebuild this package recently to fix this error: ModuleNotFoundError: No module named 'bt_dualboot'