keep config files in source control
The intention of this README is to provide a verbose overview of the packages I've installed or use as part of my workflow. It also serves as documentation for myself when changing my setup or performing some uncommon operation.
I use a bare git repository
(as described in this post)
located in $HOME/.dotfiles.
- create the
$HOME/.dotfilesdirectory: (git init --bare $HOME/.dotfiles) - alias
dotto tell git where we're storing changes and where to look for changes:/usr/bin/git --git-dir=$HOME/.dotfiles --work-tree=$HOME. Usedotas a drop-in forgitto interact with this repo. - hide files from git by default:
dot --local status.showUntrackedFiles no(when creating new files, need to manually track them withdot add [file])
git clone --bare [repo url] $HOME/.dotfiles
To apply the changes once the repo's been pulled down:
dot checkout
This will likely have conflicts with existing files that already exist,
like .xinitrc or .bashrc. Either rename them and merge manually after
checkout or nuke them and replace with the checkout.
Terminal emulator. Using because text looks crisp, it's pretty fast, and works ootb how I expect.
Config: .config/alacritty/alacritty.yml
Window manager. Mostly use some hybrid of automatic/manual tiling.
Config: .config/bspwm/bspwmrc
Image viewer. Used to view images (woah) and set wallpaper.
feh --bg-[fill | center | scale | tile | max] [path]. I mostly use fill and
--no-xinerama to span one image across all monitors. Can assign different
wallpapers to individual monitors like feh --bg-fill [path1] [path2] [path3]
Text editor. Using nvim over vim for features like native lsp.
Config: .config/nvim/init.vim. See also vim
Compositor. Used for transparency, blur, drop shadows, etc. Running as a daemon on startup.
Config: .config/picom/picom.conf
Status bar. Use to display time/network/hardware usage/volume/wm info.
Config: .config/polybar/
Menu. Use globally to run applications/switch windows, using in scripts to
emulate dmenu (rofi -dmenu).
Config: .config/rofi/config.rasi
Hotkey daemon. Handles global hotkeys as well as wm-specific hotkeys.
Config .config/sxhkd/sxhkdrc
Automounter. For simple handling of removable storage. Mounts to /run/media/$USER - can unmount
with udiskie-umount [path]
Text editor. Using nvim these days, but I try to keep as much of the config as possible inside .vimrc in case I can't use nvim for whatever reason.
Config .vimrc
Palette generator. (Now pywal.) Use to generate colorschemes from an image;
use in concert with feh to set both image/colorscheme at once.
No particular config, but I do save some colorscheme .json files to
.config/wal/colorschemes to be loaded with wal -n --theme [path] (-n for "no wallpaper")
Package manager. Thin convenience wrapper around pacman.