Personal configuration files for various Linux applications.
Find a file
2025-12-08 21:54:08 -05:00
assets more README updates 2025-11-27 21:29:38 -05:00
dunst/.config/dunst added dunst config to git repo 2025-12-07 15:10:09 -05:00
fish/.config/fish added blink plugin to neovim and an abbr to fish 2025-11-16 06:57:20 -05:00
foot/.config/foot added some transparency to foot and neovim 2025-12-07 14:40:57 -05:00
hypr/.config/hypr changed scaling for my old eyes and tweaked a min-width setting for window in waybar 2025-12-08 21:54:08 -05:00
ly/.config/ly added ly config 2025-11-29 21:52:50 -05:00
nvim/.config/nvim added some transparency to foot and neovim 2025-12-07 14:40:57 -05:00
rofi/.config/rofi README updates, added ctrl+shift+print to hyprland config for full screenshot, and updated rofi color scheme to match onedarkpro 2025-11-27 21:21:34 -05:00
starship/.config/starship restructured directory 2025-11-15 19:55:00 -05:00
sway/.config/sway tweaked border colors or sway 2025-12-03 20:59:20 -05:00
tmux/.config/tmux more README updates 2025-11-25 21:40:30 -05:00
waybar/.config/waybar changed scaling for my old eyes and tweaked a min-width setting for window in waybar 2025-12-08 21:54:08 -05:00
yazi/.config/yazi added yazi config 2025-11-28 12:38:06 -05:00
.gitignore added .gitignore file 2025-11-25 07:57:34 -05:00
README.md more README updates 2025-11-27 21:29:38 -05:00

Another dotfiles Repo

I keep all of my configs in the typical Linux config file directory /home/username/.config/ or the shorthand ~/.config/ and I use GNU Stow to symlink my configs from the git repo directory to my actual config directory.

The initial setup consists of creating a 'dotfiles' directory in my home directory, ~/dotfiles/, which will be initialized as a git repo with git init. Then for each config I want to add to my git repo, I move either the entire folder, or just the config files to my new dotfiles folder. The approach I take allows for easy stowing of individual configs which can be useful if you want to manage different configs for different systems.

For each dotfile I want to store in my ~/dotfiles/ git repo, I create a directory for the application I want to manage. For example, for my fish config, I would create ~/dotfiles/fish/. This allows me to use the stow command $stow fish in my dotfiles directory, where stow would create a symlink for items in the fish directory under the parent of dotfiles directory. Since I want stow to symlink my config to ~/.config/fish/config.fish, I need to use this exact file path in my dotfiles. Here is an example to illustrate exactly how the symlinking works.

# symlinking the entire config directory for fish
$ mkdir --parents ~/dotfiles/fish/.config/
$ mv ~/.config/fish/ ~/dotfiles/fish/.config/

# now my fish config directory is moved to my dotfiles directory
# now running the following command from the dotfiles directory
~/dotfiles $ stow fish

# creates a symlink from
~/dotfiles/fish/.config/fish/
# to
~/.config/fish/

# if instead you want to do individual files instead of the whole
# directory, you could take the following approach
$ mkdir --parents ~/dotfiles/fish/.config/fish/
mv ~/.config/fish/* ~/dotfiles/fish/.config/fish/

# then when  you run the stow command above, it would symlink the
# individual files instead of the entire directory

That's the setup. In order to apply to a new system you can simply clone the git repo, install stow, and begin stowing your desired configs. Existing config directories/files on the new target machine will need to be deleted before you can stow a new config. If you create, for example, an additional fish config (~/dotfiles/fish2/.config/) you can switch to that by deleting the existing stow symlink with stow --delete fish, then stow the alternate config with stow fish2.

I had previously used the bare git repo setup and I find this setup to much simpler and more flexible.

Configs in Use

My plan is to try and keep this updated with some details and screenshots of most of my stored dotfiles. But realistically this will often lag behind and I may choose to not bother documenting some configs.

Theme

Currently most colors used throughout most of my configs are using colors based on the onedarkpro.nvim Neovim theme. Tired eyes appreciate the more high contrast color schemes.

  1. Terminal
    1. Foot, Fish, Starship, Tmux, Neovim
  2. Desktop
    1. Hyprland, Waybar, Rofi

Terminal

Nothing too special about my foot terminal configuration. Using a onedarkpro color scheme. Hack and FiraCode Nerd fonts. I use Fish Shell with the Starship prompt set to the Pure theme.

foot terminal showing neofetch, solid background foot neofetch screenshot

foot terminal showing neofetch, transparent background foot neofetch transparent
screenshot

I have a blog post talking about my current Neovim configuration. I fear I've already moved past my 'staying minimal' desire, but all in all, I'm quite happy with where it's at. I finally have a config that works the way I want it to and that I feel I actually know how to utilize half decently.

neovim screenshot

Desktop

My 'Desktop' is primarily made up of 3 main pieces, Hyprland, Rofi launcher, and Waybar.

desktop screenshot desktop screenshot

Waybar

My waybar config is floating/detached at the top of the desktop. It has the following sections from left to right:

  • Arch Logo
  • Date & Time
  • System Stats (CPU %, Disk %, RAM %, CPU Temp)
  • Focused Window Title
  • Workspaces
  • Tray
  • System Utilities (Pacman Updates, Brightness, Volume, Network, Bluetooth, Awake)
  • Battery