No description
Find a file
2025-03-23 10:49:48 -07:00
bat/.config/bat/themes initial commit 2024-08-12 17:39:56 -07:00
emacs/.config/emacs minor updates to emacs config 2025-03-23 10:49:48 -07:00
fish/.config/fish cleaning up; rewrote README 2025-03-04 22:42:07 -08:00
foot/.config/foot iosevkaterm 2025-02-11 19:03:04 -08:00
fuzzel/.config/fuzzel misc desktop config changes 2025-01-10 23:23:00 -08:00
git/.config/git sign tags too 2025-03-01 21:39:55 -08:00
gtk/.config remove breeze gtk 2025-03-01 21:26:29 -08:00
keyd initial commit 2024-08-12 17:39:56 -07:00
kitty/.config/kitty misc changes 2025-02-06 20:53:05 -08:00
mako/.config/mako misc desktop config changes 2025-01-10 23:23:00 -08:00
nvim/.config/nvim slightly tweak coq config 2025-03-17 23:23:47 -07:00
pianobar/.config/pianobar back on arch, little bit of cleaning 2025-01-05 19:44:10 -08:00
river/.config/river switched back to thunderbird 2025-03-07 18:51:24 -08:00
scripts/.local/bin use fuzzel for pinentry 2025-03-05 09:14:20 -08:00
starship/.config reorganized misc 2024-09-02 21:53:58 -07:00
swayimg/.config/swayimg swayimg 2025-03-05 12:18:11 -08:00
swaylock/.config/swaylock initial commit 2024-08-12 17:39:56 -07:00
tmux/.config/tmux back on arch, little bit of cleaning 2025-01-05 19:44:10 -08:00
waybar/.config/waybar cleaning up; rewrote README 2025-03-04 22:42:07 -08:00
wezterm/.config/wezterm switch to wezterm 2024-08-13 15:23:30 -07:00
wob/.config/wob wob 2025-02-06 20:52:08 -08:00
zathura/.config/zathura fixed zathura font 2025-01-10 23:23:33 -08:00
zsh opam and pack config 2025-03-17 23:25:00 -07:00
.gitignore zsh config 2025-03-05 00:06:59 -08:00
.stow-local-ignore initial commit 2024-08-12 17:39:56 -07:00
LICENSE Initial commit 2024-08-12 17:36:15 -07:00
README.org cleaning up; rewrote README 2025-03-04 22:42:07 -08:00

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.

RIIR

I have a couple (mostly written in rust) replacements for standard unix tools. Here's a bunch of them:

Tool Replaces
bat cat
dust du
eza ls
fd find
hyperfine time
ripgrep grep
tokei wc

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

The first tiling window manager I used (after a brief stint with i3) was dwm, and river strikes the best balance between maturity, usability, and similarity to dwm. The tag system is strictly superior to usual workspaces in my opinion.

Mako

I use mako as my notification daemon of choice. I started off on X11 using dunst, but switched to mako before dunst got Wayland support, since mako's almost the same thing.

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

I use fuzzel as my launcher. It's basically rofi for wayland but with less baggage and better dmenu-like functionality. I use it in several scripts in addition to it being my launcher.

Wob

I use wob to show my volume and brightness when I change them. It's just a wayland version of the excellent xob.

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

My pdf viewer of choice is zathura, which is simply excellent. Configurable, uses vim keybindings, does exactly what I need it to out of the box and nothing more. I've tried to get into sioyek in the past, but never quite figured it out.

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).