Unofficial community reference. Not affiliated with 37signals or the Omacom Foundation. Download Omarchy only from omarchy.org.
omarchylinux.org Unofficial field manual

Bluetooth on Omarchy

What works and what breaks in Bluetooth on Omarchy 4.0.4: the rfkill power model, Quickshell panel bugs, BLE mouse reconnects, and the fix order.

Reference Applies to Omarchy 4.0.0 and later Last verified 2026-09-16 on 4.0.4
Short answer

Bluetooth itself works: BlueZ, the pairing agent, and A2DP audio are all set up for you. The breakage is in the 4.x panel. Turning Bluetooth off hides the widget, the panel can latch a stale off state, and its scan blocks BLE mice from reconnecting. Recover with omarchy bluetooth power on and omarchy restart shell.

On this page
  1. Status on 4.0.4
  2. What Omarchy does automatically
  3. Known problems
  4. Fixes that work
  5. Report it
  6. Related

Bluetooth in Omarchy 4.x is stock BlueZ with a Quickshell panel in front of it. The BlueZ half is quiet. The panel half accounts for most of the open complaints, and several of them end with a working radio that the user interface insists is off.

This page was checked against v4.0.4, released 2026-09-15, using the v4.0.4 source tree. The counter in the sidebar covers every Bluetooth-matching issue in the tracker, open and closed, so read it as traffic rather than as current breakage.

Status on 4.0.4

Pairing, A2DP audio, and bonded BLE mice and keyboards work on ordinary hardware; the threads below all end with the device connected once the panel is out of the way. What is unreliable is the control surface:

  • Turning Bluetooth off from the bar removes the only control that can turn it back on (issue #6956, open).
  • The panel can show Turned Off while the adapter is powered and connected, and its switch then does nothing (issue #7573, open).
  • An open panel scans continuously, and that scan blocks bonded BLE mice from reconnecting (issue #10818, open).
  • The pairing agent can be skipped for a whole boot on a race, with no sign of it in the interface (issue #8962, open).

None of these has shipped a fix. The 4.0.1 through 4.0.4 release notes carry no Bluetooth entries at all, and both candidate panel fixes are still open pull requests.

What Omarchy does automatically

Installs and enables the stack. bluez, bluez-tools and bluez-utils are in the base package list, and install/hardware/bluetooth.sh enables bluetooth.service.

Holds the power state in rfkill. Since 4.0.0, on and off go through omarchy-bluetooth-power, which blocks or unblocks the radio rather than touching BlueZ Powered. The reasoning is in the script: BlueZ never persists Powered, while systemd-rfkill saves every switch under /var/lib/systemd/rfkill and restores it at the next boot. A migration in 4.0.0 carries old installs across and reverts the AutoEnable=false line Omarchy used to write, which had only ever meant Bluetooth came up off on every boot.

Runs an auto-accept pairing agent. bt-agent.service is a user unit, enabled at first run, that registers bt-agent -c NoInputNoOutput. Pair requests are auto-accepted, which is safe only because the adapter is pairable while you have the panel open and scanning.

Auto-connects A2DP. A WirePlumber drop-in sets bluez5.auto-connect to a2dp_sink and a2dp_source for every bluez_card. That landed in v3.8.0 from PR #5336 by dandresrp and closed the long-running “Bluetooth audio does not work” report, issue #1818.

Gives you a CLI. omarchy bluetooth power on|off|toggle|is-on and omarchy bluetooth device pair|connect|disconnect|forget <address>. The device helper powers the radio up first for everything except disconnect, trusts the device, and caps bluetoothctl at 20 seconds for pair and connect and 10 seconds for disconnect and remove.

There is no hardware quirk script for Bluetooth beyond install/hardware/bluetooth.sh. T2 Macs get their Broadcom firmware and the hci_bcm4377 module from install/hardware/apple/fix-t2.sh, and Xbox controllers get xpadneo-dkms from the menu installer.

Where 3.x differed. Up to v3.8.4 the interface was the bluetui terminal app launched from Waybar, and there was no per-device panel. The AutoEnable=false line that the migration reverts is not in the v3.8.4 tree; the install script wrote it and dropped it again somewhere between v3.8.4 and v4.0.0. Everything described here as a panel bug is new in 4.0.0.

Known problems

Issue Models seen Status Fixed in
#6956 widget vanishes when Bluetooth is turned off any adapter open, PRs #7048 and #7065 unmerged not yet
#7936 type-wide rfkill block trips platform switches Dell Latitude 7440, ThinkPad E16 Gen 1 open not yet
#7573 panel latched at “Turned Off” Intel 8087:0a2b, ThinkPad E16 Gen 2 (RTL8852BU) open, upstream Quickshell cache not yet
#11739 panel cannot turn Bluetooth back on Intel Haswell desktop, 4.0.3 open not yet
#10818 LE scan blocks BLE mouse reconnect MX Master 3S, MX Anywhere 3S, EM01 NL open not yet
#8962 pairing agent skipped on boot race Intel i7-8700K desktop, AX211 laptop open not yet
#11936 agent stale after bluetoothd restart MacBook Air M1 open not yet
#12095 usbcore autosuspend drop-in is a no-op Intel AX201 and similar open not yet
#11683 output slider does not move a BlueZ sink Shokz OpenRun Pro, Kanto YU4 open, upstream quickshell#807 not yet
#12113 HFP microphone records silence OnePlus Bullets Z2, JBL Tune 770NC and 780NC open, not Omarchy specific not yet
#12120 Broadcom HCI reset fails on linux-omarchy 7.2.5-3 MacBookPro11,4, MacBookPro14,1 open, two reports not yet
#1818 Bluetooth audio devices do not work various closed v3.8.0
#1744 no Bluetooth keyboard at the LUKS prompt any converted to a discussion 2026-07-18, PR #4561 closed unmerged not shipped

Two cautions on the LE reconnect cluster. First, a stuck scan is often not the panel’s: jturan filed #11380 against it, then closed it after finding a third-party AirPods daemon held an unbounded discovery session, and erikvanzijst traced the same signature to Chrome starting a FIDO discovery and never stopping it. Second, StopDiscovery answering “No discovery started” while Discovering stays true looks identical in all three cases.

Fixes that work

Go in this order.

  1. Bring the radio back. omarchy bluetooth power on, or rfkill unblock bluetooth. This is the answer to the vanished widget. On a machine with a platform rfkill switch the block also drops the radio off the USB bus. A ThinkPad E16 Gen 1 re-enumerated it a couple of seconds after the unblock, so wait before retrying; a Dell Latitude 7440 did not, and only suspend and resume or a reboot brought it back.
  2. Restart the shell. omarchy restart shell is the only cure for a panel latched at “Turned Off”. A fresh process re-reads the adapter state.
  3. Close the panel before expecting a BLE device to reconnect. Then check busctl --system get-property org.bluez /org/bluez/hci0 org.bluez.Adapter1 Discovering. If it is still true with the panel closed, something else owns the scan. Look at Chromium and at any third-party Bluetooth plugin or daemon.
  4. Power cycle the adapter. omarchy bluetooth power off then on clears a stuck scan that StopDiscovery refuses to clear.
  5. Check the pairing agent before blaming the device. systemctl --user status bt-agent.service. “Skipped due to exec-condition” means no agent registered for this boot, and bluetoothd will log No agent available for request type 2 on every confirmation. Fix it with systemctl --user restart bt-agent.service, and do the same after any bluetooth.service restart.
  6. Use the CLI when the panel will not cooperate. omarchy bluetooth device pair <address> does the pair, trust and connect sequence that the panel does. Plain bluetoothctl works too.
  7. Restart the subsystem from the menu. Update > Hardware > Bluetooth runs omarchy-restart-bluetooth. Note what it actually does despite its name: it unblocks rfkill and prints rfkill list bluetooth. It does not restart bluetooth.service, so run sudo systemctl restart bluetooth yourself if that is what you want.
  8. Suspect the kernel last. journalctl -b | grep -i hci0. A controller that never initialises, such as BCM: Reset failed (-110), is a firmware or kernel problem, not a panel one. 4.0.4 makes linux-omarchy the default and, on an upgraded install, leaves the previous kernel installed, so booting that older Limine entry is a clean way to test it. A fresh 4.0.4 install ships only linux-omarchy.

Report it

Run omarchy debug. It writes /tmp/omarchy-debug.log with inxi -Farz, dmesg, the current boot’s warnings and errors from the journal, and the full package list. Add --no-sudo to skip dmesg, or --print to read it in the terminal.

For a Bluetooth report, add the four things triage always asks for and the log does not make obvious:

  • bluetoothctl show and rfkill list bluetooth, together, so power state and block state can be compared.
  • busctl --system get-property org.bluez /org/bluez/hci0 org.bluez.Adapter1 Powered and the same for Discovering. This is what separates a genuinely off adapter from a panel showing the wrong thing.
  • The controller’s USB ID from lsusb and the firmware lines from journalctl -b | grep -i hci0.
  • systemctl --user status bt-agent.service if pairing is what failed.

If the panel disagrees with busctl, say so explicitly and say whether omarchy restart shell fixed it. That distinction is what placed issue #7573 in the panel’s cached adapter state rather than in BlueZ.

Most-discussed upstream issues

The most-discussed upstream issues for this subsystem (193 total, 114 open).

IssueStateCommentsOpened
#1744 Enable Bluetooth keyboard and mice at login screenclosed242025-09-18
#1818 Bluetooth Audio Devices Doesn't Work · fixed by #5336 #130 closed242025-09-19
#2916 key "F0134EE680CAC571" could not be looked up remotelyclosed142025-10-28
#4069 MacbookPro 2015 Retina GPU Lockup/System Freeze Requires Rebootopen162026-01-03
#6956 Bluetooth widget disappears from shell when turned offclosed142026-08-15
#927 Consider using tui (bluetui) instead of gtk Bluetooth controlclosed52025-08-19
#2064 Omarchy do not recognize my fringerprint readerclosed122025-09-29
#1288 Bluetooth Audio Intermittent Dropoutsclosed82025-08-29
#4801 Speaker output not working in Asus Zephyrus G14 after 3.4 updateopen52026-02-28
#1132 Omarchy 2.0 linux-firmware missing critical firmware, breaks iwd and moreclosed82025-08-26
#1635 Auto-wake up from suspend when Bluetooth device is connectedopen82025-09-12
#1734 AirPods Pro 2 not working properlyclosed82025-09-17

Questions people ask

I turned Bluetooth off and the icon disappeared. How do I turn it back on?
Run omarchy bluetooth power on in a terminal, or rfkill unblock bluetooth. The off path soft-blocks the radio, BlueZ then deletes the adapter object, and the widget hides itself because it is gated on that adapter existing. This is issue #6956, still open on 4.0.4.
Why does my Logitech MX mouse stop reconnecting?
An active LE scan blocks the connect. Close the Bluetooth panel, then check busctl --system get-property org.bluez /org/bluez/hci0 org.bluez.Adapter1 Discovering. If it is still true, some other client owns the scan, and omarchy bluetooth power off followed by on clears it.
Can I type my LUKS passphrase on a Bluetooth keyboard?
Not with the stock setup. The radio is not up in the initramfs. Use a 2.4 GHz receiver, or add the AUR package mkinitcpio-bluetooth to your hooks as described in issue #1744. Omarchy does not ship that path: the one PR that tried, #4561, was closed unmerged, and the issue became a discussion in July 2026.

Sources and credit

Fixes on this page were worked out by elytraVIII (Tracing the vanishing Bluetooth widget to the adapter-null visibility check and opening a fix), oren (Showing that a platform rfkill switch removes the radio from the USB bus entirely on a Dell Latitude 7440), DrakeMorrison (Identifying the type-wide rfkill block as the root cause and filing it separately), martin-irwin (Pinning the latched Turned Off panel to a firmware-load race at shell startup), stevepresley (Documenting that an open panel scan blocks BLE mice from reconnecting), erikvanzijst (Showing that Chrome FIDO discovery can hold the same stuck scan the panel gets blamed for), jturan (Retracting a panel report after finding a third-party AirPods daemon owned the leaked scan), igouss (Finding the missing volumeStep on BlueZ routes behind the dead output slider), jordanglean (Proving the shipped usbcore autosuspend drop-in cannot apply to a builtin module), techfg (Getting a Bluetooth keyboard to unlock LUKS with mkinitcpio-bluetooth). Text here is our own paraphrase; follow the links for the original threads.

Unofficial. Verify against the official manual for your version. Improve this page Markdown version Sources