No description
Find a file
2026-08-14 21:36:55 -06:00
src +cursor theme 2026-08-14 21:36:55 -06:00
.gitignore init 2026-08-14 14:56:37 -06:00
.justfile +install + setup instructions 2026-08-14 15:09:58 -06:00
Cargo.lock init 2026-08-14 14:56:37 -06:00
Cargo.toml init 2026-08-14 14:56:37 -06:00
README.md ~tism keybindings +ipc watcher 2026-08-14 19:58:13 -06:00

orilla

Personal River window manager configuration, built with the orilla Rust library.

Installation

Install the binary to ~/.local/bin and symlink it as the River init script:

just install

This runs cargo install into ~/.local, then creates ~/.config/river/init -> ~/.local/bin/my-orilla.

Building

cargo build --release

Dependencies

Runtime tools referenced in keybindings:

  • ghostty — terminal emulator
  • fuzzel — application launcher
  • lf — terminal file manager
  • texec — launch lf in a floating terminal
  • cutie — qutebrowser tab management wrapper
  • idle — idle inhibitor toggle
  • mako — notification daemon (makoctl)
  • pactl — PulseAudio/PipeWire volume control
  • playerctl — media player control
  • brightnessctl — backlight control
  • screenshot — screenshot helper script
  • kanshi — output configuration daemon
  • loginctl / systemctl — session and power management (systemd)

Layouts

Seven layouts are available, cycled with Super+Space. Layout controls are uniform across all layouts that support them: Super+Ctrl+H/L resizes the main area, Super+Ctrl+J/K adjusts the main window count.

Layout Description
Tall Classic master-stack (resize + count)
Full Single focused window fills the screen
Grid Approximately square grid of all windows
CenteredMain Main window centered, secondaries split left/right (resize)
Dwindle Fibonacci/dwindle split — each new window halves the remaining space
Stream Main column pegged to 16:9 aspect ratio, secondaries stack on right (count)
Trunk 16:9 center column, secondaries alternate left and right sides (count)

Tags 14 have fixed layouts; tags 59 use the global cycle above.

Tag Purpose Layout
1 Browser Full
2 Terminal / code Tall
3 Email / social CenteredMain
4 Gaming Full

Key bindings

Modifier keys follow a consistent philosophy:

Modifier Role
Super Speed — frequently used actions, instant access
Super+Shift Modification — change the state of a window
Super+Ctrl Management — layout control, visibility, counts
Super+Alt Applications — launching and managing apps

Applications

Key Action
Super+Return Terminal ($TERMINAL, default: ghostty)
Super+O Launcher ($LAUNCHER, default: fuzzel)
Super+U qutebrowser history
Super+Alt+O File manager (lf via texec)
Super+Alt+I qutebrowser new session (cutie)
Super+Alt+D qutebrowser delete session (cutie)
Super+Alt+R qutebrowser rename session (cutie)
Super+Alt+B Browser (qutebrowser)
Super+Alt+E Email (Thunderbird)
Super+Alt+C Calculator (Qalculate)
Super+Alt+P Passwords (Bitwarden)
Super+Alt+G Games (Steam)
Super+Alt+N Network manager (nmtui)
Super+Ctrl+Z Toggle idle inhibitor

Window management

Key Action
Super+Shift+C Close focused window
Super+J/K Focus next/prev
Super+M Focus primary
Super+Shift+J/K Swap next/prev
Super+Shift+Return Promote to main area

Tags (workspaces 19)

Key Action
Super+[1-9] Switch to tag
Super+Shift+[1-9] Move window to tag
Super+Ctrl+[1-9] Toggle tag visibility
Super+./, Next/prev tag
Super+Tab Last used tag
Super+N Next empty tag

Session

Key Action
Super+Shift+L Lock session
Super+Shift+S Suspend
Super+Shift+H Hibernate
Super+Shift+Q Kill session

Notifications (mako)

Key Action
Super+C Dismiss notification
Super+Shift+N Dismiss all notifications

Screenshots

Key Action
Print Capture region → clipboard
Shift+Print Capture full screen → clipboard
Ctrl+Print OCR region → clipboard
Super+Z Scan QR code → open URL
Super+Shift+Z Scan QR code → clipboard

Media keys

Volume, playback, brightness, and eject are bound to the standard XF86 media keys.