One centred rofi panel (super+x, or the gear in the bar) now drives network, bluetooth, audio, WireGuard, display, notifications, clipboard, emoji, screenshots, wallpaper, the particle layer, the bar and power. The separate per-function menus are gone. dunst: icons and images were disabled outright (icon_position=off, max_icon_size=0). Now icons resolve through Papirus, images render, progress bars are styled, notifications gap and stack, and fullscreen windows are not covered unless the message is critical. Volume up/down never notified at all; they now show a stacking OSD with a progress bar. Removed things that were broken or belonged to whoever this rice came from: - vpn-launcher.sh (mullvad/openvpn) and dc-multivpn - audio/bluetooth/network/power rofi menus, folded into the control centre - untar-all, unzip-all, resetxdgportal (unreferenced) - a sxhkd binding hardcoded to /home/sarthak/projects/scribe - clipboard-manager.sh keyed off XDG_SESSION_TYPE, which is 'tty' here, so it only ever printed a Russian error; rewritten on greenclip - toggle-bar.sh was bound to super+b but did not exist; written Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt
2.9 KiB
2.9 KiB
Sakura Line
bspwm rice. Palette sampled from ~/.config/bspwm/wallpaper/wallpaper.jpg.
Replicate on a fresh machine
bash <(curl -fsSL https://git.srtk.in/sarthak/dotfiles/raw/branch/main/.config/rice/install.sh)
Or, if the dotfiles are already cloned:
~/.config/rice/install.sh # full run
~/.config/rice/install.sh --dry-run # show what it would do, change nothing
Arch is the first-class target. Debian/Ubuntu and Fedora are best-effort — the desktop, build and theming steps work; the AUR extras are skipped.
The script is safe to re-run. Anything in $HOME that would be overwritten by
the dotfiles checkout is moved to ~/.rice-backup-<timestamp>/ first.
What it sets up
| WM | bspwm + sxhkd |
| Bar | polybar (translucent, rounded) |
| Compositor | picom (rounded corners, vsync) |
| Launcher | rofi, centred, with icons |
| Notifications | dunst |
| Terminal | st, built from st/config.h here (upstream gitignores it) |
| Wallpaper layer | particles, built from particles/ here |
| Toolkits | GTK2/3/4 via gtk.css overrides, Qt via qt6ct |
Control centre
super + x, or the gear at the right of the bar, opens one centred panel that
drives everything — no separate menus:
| Network | Wi-Fi on/off, rescan, pick a network (password prompt inline) |
| Bluetooth | power on/off, scan, connect/disconnect paired devices |
| Audio | volume, mute, mic mute, switch output sink |
| VPN | WireGuard interfaces up/down via systemctl wg-quick@… |
| Display | switch resolution/refresh on the connected output |
| Notifications | do-not-disturb, replay history, clear |
| Clipboard / Emoji / Screenshot | greenclip, rofimoji, flameshot |
| Wallpaper / Particles / Bar | shuffle, toggle the particle layer, hide the bar |
| Power | lock, log out, suspend, reboot, shut down |
Keybindings
super + Return |
terminal (st) |
super + w |
app launcher (rofi drun) |
super + x |
control centre |
super + v |
clipboard history |
super + period |
emoji picker |
super + b |
toggle the bar |
super + alt + p |
screenshot (flameshot) |
super + q |
close window |
super + f |
fullscreen |
super + space |
float/tile |
super + Escape |
reload sxhkd |
Palette
| role | hex | from |
|---|---|---|
| bg | #0f0d17 |
twilight shadow |
| fg | #e9eefb |
cool white |
| accent | #92b9ea |
sky |
| red | #cf6a80 |
blossom |
| green | #8fae74 |
grass |
| yellow | #d8a87c |
train stripe |
| magenta | #b483c0 |
plum blossom |
| cyan | #8ab6c4 |
station house |
Changing the wallpaper does not re-derive these — they are written into each app's config.
Layout
.config/rice/
├── install.sh one-shot bootstrap
├── packages.txt package list ("aur:" prefix = needs an AUR helper)
├── st/config.h st build config
└── particles/ wallpaper-layer particle field (source + Makefile)