Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-4603GitHub issuePublicReceived

Bluetooth widget disappears from shell when turned off

Reported by elytraVIII · filed Aug 15, 2026Closed upstream on 2026-09-23 by its own reporter elytraVIII. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Bluetooth widget disappears from shell when turned offrevision 1 · captured 2026-10-04 12:03 UTC via poll

Summary

The Bluetooth widget completely disappears from the Omarchy status bar when Bluetooth is turned off via the UI switch. This leaves the user with no way to turn Bluetooth back on using the UI.

Expected Behaviour

When turning off Bluetooth using the status bar toggle, the widget should remain visible but display a "Turned Off" or "Disabled" state. Clicking the toggle again should turn the Bluetooth adapter back on.

Actual Behaviour

When Bluetooth is toggled off, the entire widget vanishes from the shell. The only way to restore Bluetooth functionality is via the terminal (e.g. rfkill unblock bluetooth or omarchy bluetooth power on).

Steps to Reproduce

  1. Open the Omarchy status bar menus.
  2. Ensure the Bluetooth widget is visible.
  3. Click the toggle switch on the Bluetooth widget to turn it off.
  4. The widget immediately disappears from the bar and cannot be recovered via the UI.

System Details

  • OS: Omarchy Linux (Kernel: 7.1.8-arch1-3)
  • Omarchy Version: 4.0.0-1

Cause of Bug

When turning off Bluetooth via the Omarchy UI toggle switch, it calls omarchy-bluetooth-power off, which soft blocks the adapter via rfkill. This causes the adapter to completely disappear from the BlueZ daemon, meaning the adapter property becomes null in Quickshell.Bluetooth.

Because the built-in omarchy.bluetooth widget (Panel.qml) has a strict visibility condition tied to the adapter (visible: adapter !== null), the widget hides itself when adapter becomes null.

The code that didn't work properly in `Panel.qml`:

  visible: adapter !== null

  // ... (inside toggleBluetooth)
  function toggleBluetooth() {
    if (!adapter) return
    Quickshell.execDetached(["omarchy-bluetooth-power", adapter.enabled ? "off" : "on"])
  }

Fix for Bug

The fix involves ensuring the widget stays visible even when the adapter disappears (due to being soft-blocked), and updating the UI text/icons and the toggle logic to handle a null adapter state.

Here are the fixes to apply in Panel.qml:

  1. Change panel visibility to always true:
  visible: true
  1. Update toggleBluetooth() to send the on signal when the adapter is missing:
  function toggleBluetooth() {
    if (!adapter) {
      Quickshell.execDetached(["omarchy-bluetooth-power", "on"])
      return
    }
    Quickshell.execDetached(["omarchy-bluetooth-power", adapter.enabled ? "off" : "on"])
  }
  1. Update the icon and heroStatusText to fallback to disabled visuals when !adapter:
  readonly property string icon: {
    if (!adapter) return "󰂲"
    if (!adapter.enabled) return "󰂲"
    // ...
  }

(Reporting on behalf of a user using the Antigravity assistant)

View raw text
### Summary
The Bluetooth widget completely disappears from the Omarchy status bar when Bluetooth is turned off via the UI switch. This leaves the user with no way to turn Bluetooth back on using the UI.

### Expected Behaviour
When turning off Bluetooth using the status bar toggle, the widget should remain visible but display a "Turned Off" or "Disabled" state. Clicking the toggle again should turn the Bluetooth adapter back on.

### Actual Behaviour
When Bluetooth is toggled off, the entire widget vanishes from the shell. The only way to restore Bluetooth functionality is via the terminal (e.g. `rfkill unblock bluetooth` or `omarchy bluetooth power on`).

### Steps to Reproduce
1. Open the Omarchy status bar menus.
2. Ensure the Bluetooth widget is visible.
3. Click the toggle switch on the Bluetooth widget to turn it off.
4. The widget immediately disappears from the bar and cannot be recovered via the UI.

### System Details
- **OS**: Omarchy Linux (Kernel: 7.1.8-arch1-3)
- **Omarchy Version**: 4.0.0-1

### Cause of Bug
When turning off Bluetooth via the Omarchy UI toggle switch, it calls `omarchy-bluetooth-power off`, which soft blocks the adapter via `rfkill`. This causes the adapter to completely disappear from the BlueZ daemon, meaning the `adapter` property becomes `null` in `Quickshell.Bluetooth`.

Because the built-in `omarchy.bluetooth` widget (`Panel.qml`) has a strict visibility condition tied to the adapter (`visible: adapter !== null`), the widget hides itself when `adapter` becomes `null`. 

**The code that didn't work properly in `Panel.qml`:**
```qml
  visible: adapter !== null

  // ... (inside toggleBluetooth)
  function toggleBluetooth() {
    if (!adapter) return
    Quickshell.execDetached(["omarchy-bluetooth-power", adapter.enabled ? "off" : "on"])
  }
```

### Fix for Bug
The fix involves ensuring the widget stays visible even when the adapter disappears (due to being soft-blocked), and updating the UI text/icons and the toggle logic to handle a `null` adapter state. 

Here are the fixes to apply in `Panel.qml`:

1. Change panel visibility to always true:
```qml
  visible: true
```

2. Update `toggleBluetooth()` to send the `on` signal when the adapter is missing:
```qml
  function toggleBluetooth() {
    if (!adapter) {
      Quickshell.execDetached(["omarchy-bluetooth-power", "on"])
      return
    }
    Quickshell.execDetached(["omarchy-bluetooth-power", adapter.enabled ? "off" : "on"])
  }
```

3. Update the `icon` and `heroStatusText` to fallback to disabled visuals when `!adapter`:
```qml
  readonly property string icon: {
    if (!adapter) return "󰂲"
    if (!adapter.enabled) return "󰂲"
    // ...
  }
```

*(Reporting on behalf of a user using the Antigravity assistant)*

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.