From a5e5b23ec8749122c06e750044e3e207c628c98b Mon Sep 17 00:00:00 2001 From: Vincent Bernat Date: Fri, 16 Jul 2021 07:27:59 +0200 Subject: [PATCH] i3-companion: fix bluetooth on/off --- bin/i3-companion | 60 ++++++++++++++++++++++++------------------------ 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/bin/i3-companion b/bin/i3-companion index 629cca1..3df4c95 100755 --- a/bin/i3-companion +++ b/bin/i3-companion @@ -658,39 +658,39 @@ async def bluetooth_status(i3, event, *args): major = (device_class & 0x1F00) >> 8 minor = (device_class & 0xFC) >> 2 devices.append((major, minor)) - if not powered: - polybar("bluetooth", "") - return # Generate output # See: https://btprodspecificationrefs.blob.core.windows.net/assigned-numbers/Assigned%20Number%20Types/Baseband.pdf - output = [icons["bluetooth"]] - for major, minor in devices: - if major == 1: - output.append(icons["laptop"]) - elif major == 2: - output.append(icons["phone"]) - elif major == 3: - output.append(icons["access-point"]) - elif major == 4 and minor in {1, 2}: - output.append(icons["headset"]) - elif major == 4 and minor == 4: - output.append(icons["microphone"]) - elif major == 4 and minor in {5, 7, 10}: - output.append(icons["loudspeaker"]) - elif major == 4 and minor == 6: - output.append(icons["headphones"]) - elif major == 4 and minor == 8: - output.append(icons["car"]) - elif major == 5 and minor in {1, 2}: - output.append(icons["gamepad"]) - elif major == 5 and minor & 0x10: - output.append(icons["keyboard"]) - elif major == 5 and minor & 0x20: - output.append(icons["mouse"]) - else: - output.append(icons["unknown"]) - output = "|".join(output) + if not powered: + output = "" + else: + output = [icons["bluetooth"]] + for major, minor in devices: + if major == 1: + output.append(icons["laptop"]) + elif major == 2: + output.append(icons["phone"]) + elif major == 3: + output.append(icons["access-point"]) + elif major == 4 and minor in {1, 2}: + output.append(icons["headset"]) + elif major == 4 and minor == 4: + output.append(icons["microphone"]) + elif major == 4 and minor in {5, 7, 10}: + output.append(icons["loudspeaker"]) + elif major == 4 and minor == 6: + output.append(icons["headphones"]) + elif major == 4 and minor == 8: + output.append(icons["car"]) + elif major == 5 and minor in {1, 2}: + output.append(icons["gamepad"]) + elif major == 5 and minor & 0x10: + output.append(icons["keyboard"]) + elif major == 5 and minor & 0x20: + output.append(icons["mouse"]) + else: + output.append(icons["unknown"]) + output = "|".join(output) # Update polybar if bluetooth_status.last != output: