ryoku/, system/, and installation/.
Paths are repo-relative; runtime targets are generic (~/.config, /usr/share,
/etc), not machine-specific.
The same three pillars from the rest of the docs apply here:
ryoku/lays files into the user’s home (mostly under~/.config).system/ships helpers and policy into the target’s/usrand/etc.installation/is what assembles those files onto a machine.
.gitkeep placeholders are excluded:
they are assets, not customization surfaces. The [ryoku] pacman package
ryoku-desktop copies the base layout to /usr/share/ryoku/config; the
ryoku materialize step (from the ryoku CLI) copies that tree into
~/.config, replacing Ryoku-owned files but never touching the user’s own
overrides. See /docs/customize for the customization story
and /docs/updates for how updates apply.
Hyprland session
The compositor config is authored in Lua.hyprland.lua is the entry point
and requires the rest; the load order ends with user.lua, so personal
overrides always win.
User overrides for the session live alongside the shipped files and are never
clobbered:
Hyprland helper scripts
ryoku-desktop also lays the scripts/ directory beside the Lua config, and
copies each helper to /usr/bin so it works from a keybind or the CLI. The
shell calls these by absolute path under ~/.config/hypr/scripts/.
Themes
Full-system themes live one directory per theme underryoku/hyprland/themes/.
Ryoku Settings (Hub) reads the catalogue and applies a theme by writing
~/.config/hypr/theme.lua (and the shell’s matching tokens). Each theme dir
holds the same three files.
Shipped themes:
aqua, cassette, catppuccin, compact, crt, default,
drift, glass, gruvbox, mountains, nord, rose-pine, soft_color,
tokyo-night, washi.
Shell (Quickshell UI + Go daemon)
The shell is one Quickshell tree underryoku/shell/quickshell/ driven by
ryoku-shell (the Go daemon under ryoku/shell/ipc/). The shell config
files below are the customizable surfaces; the QML components themselves are
covered in /docs/ui-patterns.
The shell’s persistent appearance state (live edits from Ryoku Settings) is
JSON at
~/.config/ryoku/shell.json, watched by the shell so changes apply
without a reload.
Ryoku Settings (Hub)
The Hub is one Qt6/QML app plus a Go backend. Its quickshell config is deployed beside the desktop shell.Apps
Each app keeps its own native format underryoku/apps/<app>/.
ryoku materialize lays them into ~/.config (or the app’s expected home).
Lockscreen and greeter
System (boot, hardware, extras)
system/ ships files into the target’s /usr, /etc, and /boot.
Boot
Hardware helpers
ryoku-desktop ships each helper to /usr/bin; Hyprland autostart, Lua
keybinds, and the shell call them by bare name.
Extras (Hub bundles)
ryoku-desktop ships these to /usr/bin. The Hub’s Extras section drives
them; see /docs/plugins.
Package sets
pacstrap and the post-install AUR step read these.
Per-user overrides that survive updates
Updates use the same one-wayrepo to system flow (/docs/updates).
ryoku materialize clobbers files it owns and prunes dropped ones, but the
files below are yours and never touched.

