| bat/.config/bat/themes | ||
| emacs/.config/emacs | ||
| fish/.config/fish | ||
| foot/.config/foot | ||
| fuzzel/.config/fuzzel | ||
| git/.config/git | ||
| gtk/.config | ||
| keyd | ||
| kitty/.config/kitty | ||
| mako/.config/mako | ||
| nvim/.config/nvim | ||
| pianobar/.config/pianobar | ||
| river/.config/river | ||
| scripts/.local/bin | ||
| starship/.config | ||
| swaylock/.config/swaylock | ||
| tmux/.config/tmux | ||
| waybar/.config/waybar | ||
| wezterm/.config/wezterm | ||
| wob/.config/wob | ||
| zathura/.config/zathura | ||
| .gitignore | ||
| .stow-local-ignore | ||
| LICENSE | ||
| README.org | ||
William's Dotfiles
Dotfiles
My personal dotfiles for River on Arch Linux. They are designed to be used with gnu stow. Each directory is a kind of 'module' that can be individually symlinked.
You are welcome to do whatever you would like with these configs (they are licensed under the 0 clause BSD license); be inspired by them, copy them, whatever, no attribution necessary. I would encourage you to fork this repo, then use stow to install whatever modules you would like, changing whatever you want as you go. For example, if you want to use just my neovim configuration, you could run stow nvim, assuming this repo is located in your home directory, and my neovim configuration will automatically be symlinked to ~/.config/nvim.
Some Software I run
Terminal
Foot
I use foot as my terminal of choice, mostly because I like having a terminal and client. It makes launching the terminal practically instantaneous, and I don't really need the multiplexing capabilities. I've also used and enjoyed alacritty, kitty, wezterm and st in the past and think they are all excellent terminals.
Fish
I use fish as my shell, with starship as my prompt. My config is fairly small and sensible, though you would likely want to tweak it. I particularly love and recommend settings fish_hybrid_key_bindings, as I'm used to both Emacs and Vim keybindings.
Most of the config is just setting the path, and tweaking some environment variables to make things better for wayland or force programs to follow the XDG spec.
Editors
Neovim
I absolutely love neovim, though it is a pain to configure. My config is fairly clean as far as neovim configs go, but probably isn't a very good fit for your use case. I would recommend checking out projects like lunarvim, nvchad, or LazyVim to get started, or borrowing how my config is structured but changing the actual details.
Emacs
I love both emacs and vim, but use them for different purposes. In terms of editing experience, my extremely customized neovim is absolutely perfect for me, but there are some things that emacs can do that is just impossible to replicate in neovim. Emacs is fantastic for org-mode and writing LaTeX, though I usually leave writing code to neovim (emacs still being single-threaded in <current-year> hurts).
Desktop
I use a custom Wayland desktop built around the excellent compositor river
River
Mako
Swaylock/Swayidle
I use swaylock and swayidle to handle my screen locking needs. I also have a couple scripts (timeout.sh and toggle_caffeine.sh in my river config), to basically enable toggling swayidle. I usually want my computer to lock automatically if I've been idle long enough, but sometimes want to be able to turn that off.
Fuzzel
Wob
Wbg
I use wbg as my wallpaper setter. There are a million of these, and it doesn't really matter which you pick.
Waybar
I don't really like really elaborate and fancy status bars. Whatever status bar I'm using, I like to have workspaces on the left, time and date in the middle, and volume, wifi, and battery on the right. I don't know where I picked up this habit (I think an ancient lemonbar script of mine, but I don't really remember), but it's what I'm used to now, and is very easy to emulate in waybar. I've tried yambar, but found it very confusing to configure.
Keyd
As a heavy emacs/vim user, remapping caps lock to esc/control is absolutely necessary, and keyd is great for this. Note that stow keyd won't work properly. Instead you should copy keyd/default.conf to /etc/keyd/ and enable the keyd service. caps2esc is also great for this purpose, but I find keyd a little easier to use.
Zathura
Pianobar
Pianobar is one of the most underrated pieces of software ever. It's an absolutely phenomenal cli pandora client (that skips ads btw). As just a cli, it's phenomenal, but it's also very easy to build on top of. I'm not much of a hacker, but I was easily able to throw together some scripts to let me pause, skip songs, etc. from keybinds from river, change the station with a dmenu style menu in fuzzel, and send notifications upon song changes with the album art and everything. All with a couple tiny bash scripts. If you don't want to set this up manually, there are also several pieces of software built on top of pianobar, my favorite being pithos (though pianobar.el is also a ton of fun, it just doesn't work very well for me).