aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-14 13:58:25 +0200
committerDanilo M. <danix@danix.xyz>2026-09-14 13:58:25 +0200
commit5d0d2a41523ad53b7b08dac8dca0ffdd08b7e699 (patch)
tree5a0970974cd4e6d0a6ca4d3590fdab02008a18b7 /desktop/README.md
parent9c00c48d9e2f0cb0c7cc56a4cac8f629012f40b0 (diff)
downloadquickshell-5d0d2a41523ad53b7b08dac8dca0ffdd08b7e699.tar.gz
quickshell-5d0d2a41523ad53b7b08dac8dca0ffdd08b7e699.zip
docs(desktop): document the bluetooth module
Diffstat (limited to 'desktop/README.md')
-rw-r--r--desktop/README.md14
1 files changed, 8 insertions, 6 deletions
diff --git a/desktop/README.md b/desktop/README.md
index 7dc9612..5b890e0 100644
--- a/desktop/README.md
+++ b/desktop/README.md
@@ -25,12 +25,14 @@ the IPC layer rejects. The page-less grid entry is therefore the zero-argument
modules/sound/ output and input volume, the OSD, the player
modules/network/ wired and wifi, radio, scan, join, forget
+ modules/bluetooth/ adapter, scan, pair, connect, forget, trust
modules/mail/ unread per account, threads, the watcher dot
modules/vm/ libvirt state, live stats, snapshots
modules/appearance/ a tile that opens the separate appearance shell
-Sound, mail, vm and network each carry their own README. Appearance is a tile
-onto the separate appearance shell, whose README covers the picker it opens.
+Sound, mail, vm, network and bluetooth each carry their own README. Appearance
+is a tile onto the separate appearance shell, whose README covers the picker
+it opens.
## Writing a module
@@ -56,8 +58,8 @@ fire-and-forget, so its click calls `activate()` and closes the drawer.
`modules/appearance/AppearanceModule.qml` is the smallest complete example: a
name, an icon, a label, and an `activate()` that launches the separate
appearance shell. It has no page, and it owns only a `Process` that fires the
-picker on click, no always-active service. Sound, mail, vm and network each add
-a service and a page on top of that same shape.
+picker on click, no always-active service. Sound, mail, vm, network and
+bluetooth each add a service and a page on top of that same shape.
Module files live under `desktop/modules/<name>/` and reference root types
(`Module`, `Page`, `Button`, `Theme`), so each needs `import "../.."`. A plain
@@ -69,7 +71,7 @@ directory import does not reach the parent. The moved `TransportButton.qml` and
`alwaysActive` is declarative metadata: it documents whether a module's service
is meant to run while the drawer is closed. The drawer does not read or enforce
it. Each module implements its own service lifetime, and the property records
-that choice rather than driving it. Sound, mail and network are
+that choice rather than driving it. Sound, mail, network and bluetooth are
`alwaysActive: true`; vm is false.
Sound's OSD has to answer a volume keypress with no drawer open, which is the
@@ -101,7 +103,7 @@ is an empty `Item` claiming the space, not a placeholder graphic, so the grid
below it sits where it will sit once notifications arrive. The bottom is a
fixed, never-scrolled `Flow` grid: three columns at 180px minimum, wrapping
and adding rows up to a 3x3 ceiling for the modules that exist, in the order
-Sound, Network, Mail, Appearance, Machines.
+Sound, Network, Bluetooth, Mail, Appearance, Machines.
## Hyprland and waybar