aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-09-11 15:48:27 +0200
committerDanilo M. <danix@danix.xyz>2026-09-11 15:48:27 +0200
commit18fd64134f51ec99b123c91f79790c12ad5e1bb4 (patch)
tree32110d27fe7c944b31535a70a01fa152bd9014da /README.md
downloadquickshell-18fd64134f51ec99b123c91f79790c12ad5e1bb4.tar.gz
quickshell-18fd64134f51ec99b123c91f79790c12ad5e1bb4.zip
feat: quickshell repo with volume OSD
Scaffold the repo that will hold quickshell implementations, each in its own directory with its own README, and add the first one. volume-osd shows an on-screen display for output and input volume. It watches PipeWire through Quickshell's native service rather than polling wpctl, so it appears for any volume change, not only for the keybinds: pavucontrol, a per-application slider, or a phone acting as a remote. One widget serves both directions, showing whichever device moved last. Colours follow unified-desktop-theme: Catppuccin Macchiato fixed, with the accent read from the file udt-accent already writes and watched, so it tracks the wallpaper. Lavender is the fallback, which keeps the directory runnable where that file does not exist. The frosting is the compositor's: the panel draws translucent and Hyprland blurs behind it via a layerrule matched on the window's namespace. That avoids a MultiEffect and an offscreen blur pass in QML, and degrades to flat translucent without the rule. Two details are documented in the component README because both were wrong before they were right: PwObjectTracker is required or the volume reads stale, and a node reports its initial volume before `ready` goes true, so the ready check alone suppresses the startup values. An extra guard on top of it ate the user's first keypress instead. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7
Diffstat (limited to 'README.md')
-rw-r--r--README.md46
1 files changed, 46 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..24adbac
--- /dev/null
+++ b/README.md
@@ -0,0 +1,46 @@
+# quickshell
+
+Quickshell components for a Hyprland desktop, each one self-contained in its
+own directory. They are separate shells, not modules of a single bar: any of
+them can run alone, and running one does not require the others.
+
+Visually they follow [unified-desktop-theme][udt]: Catppuccin Macchiato as the
+fixed base, Noto Sans for UI text, and an accent that tracks the wallpaper.
+That accent is read from the file `udt-accent` already writes, so the two
+repos stay independent, this one has no build-time dependency on that one.
+
+[udt]: ../unified-desktop-theme
+
+## Implementations
+
+ volume-osd/ on-screen display for output and input volume
+
+Each directory has its own README covering what it does and how to run it.
+
+## Running one
+
+ qs -p ./volume-osd
+
+To start it with the session, from Hyprland:
+
+ exec-once = qs -p ~/Programming/GIT/quickshell/volume-osd
+
+Quickshell uses private Qt APIs, so it must be rebuilt after every Qt update.
+`qs --version` should report the same Qt as the installed one.
+
+Some components ask the compositor for an effect they cannot draw themselves,
+such as the blur behind `volume-osd`. Those rules live in the Hyprland config
+rather than here, and each component's README gives the block to add. They are
+optional: without the rule the component renders without that effect.
+
+## License
+
+GPLv2 only. See `LICENSE`.
+
+## Development Approach
+
+This project is developed using AI-assisted tools. Code is generated with the help of AI based on human-provided specifications, design decisions, and iterative feedback.
+
+All contributions are reviewed, tested, and curated by the maintainer before being included in the codebase. AI is used as a productivity and exploration tool, while human oversight remains central to all decisions.
+
+The goal is to combine the flexibility of AI-assisted development with standard open-source practices such as transparency, review, and accountability.