add attwm support
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
# quickshell-bar
|
||||
|
||||
A Wayland status bar for [Sway](https://swaywm.org/), built with
|
||||
A Wayland status bar for [Sway](https://swaywm.org/), i3,
|
||||
[Hyprland](https://hypr.land/) and attwm (a dwm-like window manager for
|
||||
[river](https://codeberg.org/river/river)), built with
|
||||
[Quickshell](https://quickshell.outfoxxed.me/) and packaged with Nix flakes.
|
||||
|
||||

|
||||
@@ -11,7 +13,8 @@ Left → right:
|
||||
|
||||
| Module | Source |
|
||||
|-------------|------------------------------------------|
|
||||
| Workspaces | Sway/i3 IPC (`Quickshell.I3`) |
|
||||
| Workspaces | Sway/i3 IPC (`Quickshell.I3`), Hyprland IPC, or attwm tags |
|
||||
| Layout | attwm only — layout symbol, click to cycle |
|
||||
| Clock | local time (center) |
|
||||
| CPU | `/proc/stat` (per-core load bars + overall %) |
|
||||
| CPU temp | `coretemp`/`k10temp` hwmon, else thermal |
|
||||
@@ -33,7 +36,12 @@ use native Quickshell services.
|
||||
|
||||
## Requirements
|
||||
|
||||
- Sway (or i3) — the workspace module talks to `$SWAYSOCK`/`$I3SOCK`.
|
||||
- A supported window manager, detected from the environment at startup:
|
||||
Sway/i3 (`$SWAYSOCK`/`$I3SOCK`), Hyprland
|
||||
(`$HYPRLAND_INSTANCE_SIGNATURE`), or attwm — assumed when neither of the
|
||||
other two announces itself, and talking to
|
||||
`$XDG_RUNTIME_DIR/attwm-$WAYLAND_DISPLAY.sock` (override with
|
||||
`$ATTWM_SOCKET`).
|
||||
- A running PipeWire session for the volume module.
|
||||
- Nix with flakes enabled (`experimental-features = nix-command flakes`).
|
||||
|
||||
@@ -74,6 +82,23 @@ Or, if you install the package (e.g. into your system/Home-Manager profile),
|
||||
just `exec quickshell-bar`. The bar anchors to the top edge and reserves an
|
||||
exclusive zone, so windows tile beneath it automatically.
|
||||
|
||||
## Use it from attwm
|
||||
|
||||
attwm is started by river, so launch the bar from river's init alongside it:
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
# ~/.config/river/init
|
||||
quickshell-bar &
|
||||
exec attwm
|
||||
```
|
||||
|
||||
Tags replace workspaces: all nine are always shown, dim when empty, underlined
|
||||
when they hold windows you aren't looking at. Left click views a tag, right
|
||||
click toggles it into the view, middle click sends the focused window there.
|
||||
The layout symbol sits to their right — click to cycle forward, right click
|
||||
back. A bar can only map at all because attwm binds `river_layer_shell_v1`.
|
||||
|
||||
## Configuration
|
||||
|
||||
Everything is plain QML — edit and the bar hot-reloads.
|
||||
@@ -91,13 +116,16 @@ shell.qml entry point — one Bar per monitor
|
||||
config/
|
||||
Theme.qml colours, sizes, fonts (singleton)
|
||||
Icons.qml Nerd Font glyphs (singleton)
|
||||
Compositor.qml which window manager are we under? env only (singleton)
|
||||
services/
|
||||
SysStats.qml reads /proc & /sys via FileView into reactive props (singleton)
|
||||
Attwm.qml attwm IPC socket: state in, commands out (singleton)
|
||||
discover.sh one-shot hwmon/battery path discovery at startup
|
||||
widgets/
|
||||
Bar.qml the PanelWindow + layout
|
||||
Pill.qml rounded container used by every module
|
||||
MetricPill.qml icon + value helper
|
||||
Workspaces.qml Clock.qml CpuGraph.qml CpuTemp.qml
|
||||
WorkspaceChip.qml one workspace/tag chip, shared by every backend
|
||||
Workspaces.qml LayoutSymbol.qml Clock.qml CpuGraph.qml CpuTemp.qml
|
||||
Ram.qml Disk.qml Network.qml Volume.qml Tray.qml Battery.qml
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user