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:
parent
10fca7d9e4
commit
0780a3abf5
22 changed files with 358 additions and 262 deletions
67
README.md
Normal file
67
README.md
Normal file
|
|
@ -0,0 +1,67 @@
|
|||
# dotfiles
|
||||
|
||||
Everything needed to rebuild my Arch + bspwm desktop on a bare machine:
|
||||
**Sakura Line**, a bspwm rice with a GTK control panel and a particle wallpaper layer.
|
||||
|
||||
## Install
|
||||
|
||||
```sh
|
||||
bash <(curl -fsSL https://git.srtk.in/sarthak/dotfiles/raw/branch/main/.config/rice/install.sh)
|
||||
```
|
||||
|
||||
That one command installs the packages, clones this repo, checks it out over
|
||||
`$HOME`, builds `st` and `particles`, and does the theming. It is safe to
|
||||
re-run, and nothing in `$HOME` is overwritten without being backed up to
|
||||
`~/.rice-backup-<timestamp>/` first.
|
||||
|
||||
Add `--dry-run` to see every step without changing anything.
|
||||
|
||||
**[→ Full rice documentation: keybindings, control panel, palette](.config/rice/README.md)**
|
||||
|
||||
## Why the repo looks like this
|
||||
|
||||
This is a [bare repo tracking `$HOME`](https://www.atlassian.com/git/tutorials/dotfiles),
|
||||
so paths are relative to your home directory and the top level only shows the
|
||||
dotfiles themselves — there is no `src/` or wrapper folder. The bootstrap lives
|
||||
at `.config/rice/install.sh` because that is where it lands on disk.
|
||||
|
||||
Manage it with:
|
||||
|
||||
```sh
|
||||
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
|
||||
dotfiles status
|
||||
dotfiles add .config/polybar/config.ini
|
||||
dotfiles commit -m "polybar: ..."
|
||||
dotfiles push
|
||||
```
|
||||
|
||||
That alias is in the tracked [`.bashrc`](.bashrc).
|
||||
|
||||
## What is in here
|
||||
|
||||
| path | what |
|
||||
|---|---|
|
||||
| [`.config/rice/`](.config/rice) | **the bootstrap** — `install.sh`, `packages.txt`, `st/config.h`, `particles/` |
|
||||
| [`.config/bspwm/`](.config/bspwm) | WM config, keybindings (`sxhkdrc`), picom, wallpaper |
|
||||
| [`.config/polybar/`](.config/polybar) | the bar and its launcher |
|
||||
| [`.config/scripts/`](.config/scripts) | control panel (GTK), volume, media, wallpaper, screenshots |
|
||||
| [`.config/rofi/`](.config/rofi) | launcher, clipboard and emoji menus |
|
||||
| [`.config/dunst/`](.config/dunst) | notifications |
|
||||
| [`.config/fish/`](.config/fish) | shell — prompt, functions, plugins |
|
||||
| [`.config/nvim/`](.config/nvim) | LazyVim setup |
|
||||
| [`.config/yazi/`](.config/yazi) | file manager, plugins and scripts |
|
||||
| [`.config/kitty/`](.config/kitty) | fallback terminal (`st` is the primary) |
|
||||
| [`.config/gtk-*/`, `.themes/`, `.config/qt*ct/`](.themes) | GTK 2/3/4 and Qt theming |
|
||||
| [`.config/btop/`, `.config/cava/`, `.config/fastfetch/`](.config/fastfetch) | the showcase toys |
|
||||
| [`.xinitrc`](.xinitrc) | starts bspwm |
|
||||
|
||||
Programs unrelated to the rice are deliberately not tracked.
|
||||
|
||||
## Requirements
|
||||
|
||||
Arch is the first-class target — `packages.txt` is a pacman list, with
|
||||
`aur:`-prefixed lines for the AUR extras. Debian/Ubuntu and Fedora are
|
||||
best-effort: `install.sh` maps the package names it can and skips the AUR bits.
|
||||
|
||||
Licensed MIT where the vendored sources say so (`st`, `particles`, yazi plugins
|
||||
keep their own upstream licenses).
|
||||
Loading…
Add table
Add a link
Reference in a new issue