Skip to content
slastraPublic

About

Hyprland desktop config: lastshell (Quickshell), hyprglaze, kitty. Rosé Pine.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

27 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dots

Desktop configuration for desk. Arch Linux, Hyprland, Quickshell, Rosé Pine.

The desktop in motion

Full quality: docs/demo.mp4.

Session

greetd starts tuigreet. tuigreet starts Hyprland. hyprland.lua then starts the desktop.

Program Function
lastshell The shell. Two bars, eight modals, notifications. Quickshell.
tabstrip Browser-tab daemon. Feeds the bar strip and the tab switcher.
claude-status.py Claude Code session daemon. Feeds the session chips.
hyprglaze Shader wallpaper daemon. It draws the wallpaper.
hypridle Idle timers (hypridle.conf). They report input to deskpresence and run scripts/tv-watchdog.sh.
wl-paste Clipboard watcher. It stores history in cliphist.

Hyprland reads the Lua files. Hyprland reloads the configuration when you save a file. Do not run hyprctl reload.

lastshell

config/quickshell/lastshell is the shell (a vendored copy of slastra/lastshell, last synced at 9026a64). Raw Quickshell, no framework.

The bars are tab chips hanging off the screen edges. Four instruments are drawn, not fonted: an analog clock (hour hand only), a thermometer, a speaker whose arcs grow with volume, and a usage ring. Icons are Lucide; text is ShureTechMono. Nerd-font icon glyphs are banned. Qt renders their private-use codepoints wrong.

The modals share one chrome: header with an identity icon and a prompt caret, scrolling body with a gliding cursor and gold match highlighting, hint footer, animated backdrop mask.

Bind Modal
SUPER + Space Launcher. Open windows first, by focus recency, then apps by frecency.
SUPER + W Tab switcher. Every tab in every browser window, globally.
SUPER + A Audio sink picker.
SUPER + B Wallpaper effect picker.
SUPER + V Clipboard history.
SUPER + N Notification center.
SUPER + / Hotkey sheet, parsed live from binds.lua. It cannot drift.
Print Capture menu. Stops a recording instantly if one is running.

Notifications are lastshell's own server: urgency-washed toasts with a countdown ring around the dismiss button, and a history the center reads.

Daemons

The shell renders; daemons own data. tabstrip (Go, repo) watches browsers over D-Bus and writes a snapshot the shell's FileView watches. The bar strip is workspace-filtered; tabstrip list is the global view. claude-status.py (config/lastshell/) watches Claude Code sessions, usage quotas, Hyprland focus, and MQTT face state, and writes one JSON snapshot.

Engines

Two rofi-era scripts survive as backends with the menus stripped off: capture.sh (grim/slurp/satty screenshots and gpu-screen-recorder capture, invoked by subcommand from the capture modal) and hotkeys.py (the live binds.lua parser behind the hotkey sheet, --json).

The TV

The display is an LG OLED. scripts/tv-screen.sh turns the TV itself off and on over the LAN instead of using DPMS. A DPMS wake forces an HDMI 2.1 FRL retrain the NVIDIA driver refuses to retry, which latches the desktop at 60 Hz. scripts/tv-pixel-refresh.sh runs the panel's pixel cleaning nightly by driving the TV's own menus over the remote-control API. scripts/lg-ipctl.py speaks the TV's encrypted IP-control protocol; its key lives in ~/.config/lgtv/ipcontrol.key, outside this repo.

deskpresence (radar presence) owns blanking the TV. scripts/tv-watchdog.sh is the fallback: if deskpresence has died, it blanks the TV after 10 minutes without input. scripts/unblank.sh lifts lastshell's blackout shader on input if a crash left it applied.

Layout

config/
├── quickshell/lastshell/   the shell (QML)
├── hypr/                   hyprland.lua, binds.lua, theme.lua, idle.sh, scripts/
├── lastshell/              claude-status.py, lamp.sh (shell-adjacent daemons)
├── rofi/scripts/           capture.sh, hotkeys.py (engines, menuless)
├── qt6ct/colors/           rose-pine.conf (Qt palette)
├── kitty/                  kitty.conf, colors.conf
├── nvim/lua/               colors.lua
└── starship.toml

Components

License

MIT

About

Hyprland desktop config: lastshell (Quickshell), hyprglaze, kitty. Rosé Pine.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages