The repo landing page showed .config, .themes and .gtkrc-2.0 and nothing else,
so there was no sign the bootstrap existed. It has always been at
.config/rice/install.sh - that is just where it lands on disk. Root README now
carries the curl one-liner, a map of what is tracked, and a note that this is a
bare repo over $HOME so nobody goes looking for a wrapper folder again.
Things that would not have survived a replication:
- polybar's click and scroll handlers called $HOME/bin/system-info.sh and
$HOME/bin/volume.sh. That directory does not exist; the scripts are in
.config/scripts. The exec lines already pointed there, so only the
interactive bits were dead.
- bspwmrc hardcoded DisplayPort-0, so no desktops on any other machine.
Takes the xrandr primary now, falling back to the first monitor bspc sees.
- install.sh picked conflicting files out of git's checkout error with a
regex that required a dot inside the name, so .bashrc and .xinitrc were
never matched and never backed up - and .bashrc always exists on a fresh
Arch install, which is precisely when the checkout aborts.
- bspwmrc sourced ~/.env and merged ~/.Xresources unconditionally; neither
exists. Guarded.
packages.txt was missing programs whose configs this repo already carries:
fish, neovim, yazi, kitty, plus xrdb/xsetroot/xsettingsd/wmname that bspwmrc
launches, gtk3 for the control panel, and wireplumber for the wpctl calls.
Newly tracked: .xinitrc (the thing that actually starts bspwm), .bashrc (which
holds the dotfiles alias), greenclip, flameshot, kitty, Thunar, mimeapps and
user-dirs. Dropped six editor backups that had been committed by accident.
Skipped QtProject.conf - it is file-dialog history, not configuration.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011beBgzmH72WFn8wiWqRZPf
- GtkBox set_border_width shrinks the widget's own background, so the card was
inset 30px while its contents sat flush against the card edge. Padding is css
now: 12px transparent gutter outside, 20px inside. Measured on a virtual
display rather than guessed.
- the panel grabs the seat on map, like rofi, so it keeps keyboard and pointer
focus wherever the cursor is; the grab is released on close
- every control shows its key in the bottom-right: n b v d p w for the tiles,
a c s t for the row beneath, l o z r q for power, m/i to mute, arrows for
volume
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt
- audio view: output/input device switching, master volume + mic, and
per-application streams with their own sliders (pactl sink-inputs)
- icons rendered black because GTK used the desktop font (Noto Sans), which
has no Nerd Font glyphs; Pango's per-glyph fallback then ignored the css
colour. Icon classes now name the font explicitly.
- bspwm drew a focus border around the panel that fought the css rounded
corners: border=off on the rule
- picom now blurs translucent surfaces, so the panel reads as glass rather
than showing the text behind it
- padding and spacing throughout: frame 20px, section margins, card padding
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt
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
GTK4 ignores gtk-application-prefer-dark-theme, and did not follow the
portal's prefer-dark either, so Adwaita stayed light while the custom css
darkened only some surfaces - that is why pavucontrol had dark-grey labels
on dark backgrounds and a white content pane. GTK_THEME=Adwaita:dark fixes
GTK3 and GTK4 together.
Also recolour the stale ~/.themes Terminal-Dark leftovers, point gtk-4.0 at
a theme and icon set that exist, and start the particle layer from bspwmrc.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt
Palette sampled from bspwm/wallpaper/wallpaper.jpg and applied per-role
(not per-hex, so terminal green stays green and nvim's LineNr/Comment
stay recessive) across st, kitty, polybar, rofi, dunst, nvim, qt5ct/qt6ct
and GTK 2/3/4.
Also:
- rofi drun centred, icons enabled
- polybar translucent (true ARGB) and rounded; picom corner-radius, with
the desktop layer and fullscreen windows excluded
- fix qt5ct color_scheme_path pointing at a nonexistent /home/carrie
- export QT_QPA_PLATFORMTHEME so qt6ct is actually consulted
- point GTK at an icon theme that exists on this system
- add .config/rice: one-shot install.sh (--dry-run supported), package
list, vendored st config.h (gitignored upstream) and the particles
wallpaper-layer source, so a clone reproduces the rice
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Cn3dHfbgNYdbZvzb1b3GQt