readme at the root, and fix what would break on a fresh machine

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
This commit is contained in:
Sarthak 2026-09-04 10:09:16 +05:30
parent 10fca7d9e4
commit 0780a3abf5
22 changed files with 358 additions and 262 deletions

View file

@ -74,6 +74,10 @@ map_pkg() {
gd) echo "libgd-dev" ;;
xorg-xrandr) echo "x11-xserver-utils" ;;
xorg-xprop) echo "x11-utils" ;;
xorg-xrdb) echo "x11-xserver-utils" ;;
xorg-xsetroot) echo "x11-xserver-utils" ;;
wmname) echo "suckless-tools" ;;
gtk3) echo "libgtk-3-0" ;;
ttf-jetbrains-mono-nerd) echo "fonts-jetbrains-mono" ;;
noto-fonts) echo "fonts-noto" ;;
noto-fonts-emoji) echo "fonts-noto-color-emoji" ;;
@ -97,6 +101,9 @@ map_pkg() {
gd) echo "gd-devel" ;;
xorg-xrandr) echo "xrandr" ;;
xorg-xprop) echo "xprop" ;;
xorg-xrdb) echo "xorg-x11-server-utils" ;;
xorg-xsetroot) echo "xsetroot" ;;
wmname) echo "suckless-tools" ;;
ttf-jetbrains-mono-nerd) echo "jetbrains-mono-fonts" ;;
noto-fonts) echo "google-noto-sans-fonts" ;;
noto-fonts-emoji) echo "google-noto-emoji-fonts" ;;
@ -156,7 +163,10 @@ deploy_dotfiles() {
# Move anything that would be clobbered into a backup instead of losing it.
mkdir -p "$BACKUP"
local conflicts
conflicts="$(dot checkout main 2>&1 | grep -oP '^\s+\K\S+\.\S+$' || true)"
# git lists the offending paths indented by a tab; anything else it prints
# in that message is flush-left prose. Matching on a dot in the name would
# miss dotfiles like .bashrc, which is exactly what collides on a fresh box.
conflicts="$(dot checkout main 2>&1 | sed -n 's/^[[:space:]]\{1,\}\([^[:space:]].*\)$/\1/p' || true)"
if [ -n "$conflicts" ]; then
say "backing up files that would be overwritten -> $BACKUP"
while IFS= read -r f; do

View file

@ -12,6 +12,10 @@ feh
xdotool
xorg-xrandr
xorg-xprop
xorg-xrdb
xorg-xsetroot
xsettingsd
wmname
# --- build toolchain (st + particles) ---
base-devel
@ -41,19 +45,27 @@ aur:bibata-cursor-theme
# --- runtime deps the rice actually calls ---
networkmanager
wireplumber
bluez
bluez-utils
pamixer
playerctl
libnotify
gtk3
python-gobject
xclip
flameshot
i3lock
aur:rofi-greenclip
# --- shell / editor / files ---
fish
neovim
yazi
# --- apps ---
thunar
kitty
fastfetch
# --- showcase toys ---