Files
mpuchstein 8b9c38ab48 hypr: unify lockscreen and login screen via hyprlogin
Replace nwg-hello with hyprlogin as the greetd greeter. Both hyprlock
and hyprlogin now share a single apex-neon theme fragment
(.chezmoitemplates/apex-neon-lock.conf), giving an identical look on
lock and login.

- Add system/ staging tree for /etc files (not auto-applied by chezmoi)
- Add system/install-greeter.sh to render templates and sudo-install to /etc
- Add apex-neon shared fragment: palette, font, animations, input-field,
  clock/date bubbles, weather/location bubbles
- Add dot_config/hypr/themes/apex-neon-lock.conf.tmpl ($HOME copy for hyprlock)
- Rewrite hyprlock.conf.tmpl to source the shared fragment; move
  notification bubble here (hyprlock-only, requires quickshell)
- Add Quickshell IpcHandler so `qs ipc call notifications count` works
- Session fixed to hyprland-uwsm.desktop; greetd config targets greetd.conf
2026-05-29 17:19:32 +02:00
..

Quickshell Desktop Shell

A vertical bar + popout panel shell for Hyprland, built with Quickshell v0.2.x and themed with Catppuccin.

Setup

quickshell   # launch (reads from ~/.config/quickshell/)

Quickshell hot-reloads on file save. If it crashes: killall quickshell && quickshell &

Configuration

All user settings live in shared/Config.qml. Edit this file to customize your setup:

Setting Default Description
catppuccinFlavor "mocha" Color theme: "mocha", "macchiato", "frappe", "latte"
transparency true Semi-transparent bar/popouts (requires Hyprland layerrules below)
monitor "DP-1" Which monitor to display the bar on
workspaceCount 5 Number of workspace indicators
weatherLocation "Munich" City name for wttr.in weather data
useCelsius true Temperature unit (false for Fahrenheit)
use24h true Clock format (false for 12-hour)
weekStartsMonday true Calendar week start day
diskMount1 / diskMount2 "/" / ~/data Disk mounts shown in system popout
idleProcess "hypridle" Idle daemon to toggle
lockCommand "hyprlock" Lock screen command

Hyprland Layerrules (required for blur/transparency)

Add to your hyprland.conf:

# Enable blur on all Quickshell windows
layerrule = match:namespace quickshell:.*, blur on
layerrule = match:namespace quickshell:.*, ignore_alpha 0.79

The shell registers these namespaces:

Namespace Window
quickshell:bar The main bar panel
quickshell:popout Popout overlay (notifications, media, weather, etc.)
quickshell:osd Volume/brightness OSD
quickshell:notifications Toast notification popups
quickshell:idle Idle screen overlay

To target specific windows, replace quickshell:.* with the exact namespace:

# Only blur the bar, not popouts
layerrule = match:namespace quickshell:bar, blur on
layerrule = match:namespace quickshell:bar, ignore_alpha 0.79

If you set transparency: false in Config.qml, layerrules are not needed.

Dependencies

  • Hyprland — compositor
  • PipeWire — audio control
  • lm_sensors (sensors) — CPU temperature
  • Nerd Fonts (Inconsolata Go Nerd Font) — all icons
  • hyprlock / hypridle / hyprshutdown — lock, idle, power
  • brightnessctl — brightness OSD (optional, auto-detected)
  • wf-recorder — screen recording (optional)
  • hyprpicker — color picker (optional)