For all to be inspired by and/or judge me by, my dotfiles.
Find a file
2026-07-17 16:41:04 -04:00
archiso feat(pacstrap): run install_arch from pacstrap 2026-07-03 15:28:21 -04:00
bspwm/dot-config refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
fish/dot-config/fish refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
ghostty/dot-config/ghostty refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
git refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
misc refactor: further cleanup/modularization 2026-07-03 15:28:21 -04:00
niri/dot-config/niri refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
nvim/dot-config/nvim feat(zsh): add zsh config 2026-07-17 16:41:04 -04:00
starship/dot-config refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
tmux refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
wezterm refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
yabai refactor: rename period-prefixed files to dot-<filename> 2026-07-03 15:28:18 -04:00
zsh feat(zsh): add .zsh with zsh-users plugins 2026-07-17 16:41:04 -04:00
.gitignore chore: ignore noctalia themes 2026-07-03 15:28:21 -04:00
.gitmodules feat(zsh): add .zsh with zsh-users plugins 2026-07-17 16:41:04 -04:00
install_utils refactor(install_utils): convert to bash 2026-07-17 16:41:04 -04:00
README.md feat/refactor: new computer, new configs, new desktop environment 2026-04-02 15:43:47 -04:00

mitchell's dotfiles

This mostly exists for my convenient bootstrapping onto new systems. I would generally recommend drawing from individual applications' configurations as inspiration for your own dotfiles. However, the included scripts should be generalized enough to work on anybody's machines.

This repo contains my preferred configurations for:

  • neovim
  • fish shell
  • git
  • tmux
  • wezterm (X11/macOS)
  • ghostty (X11/Wayland)
  • keepassxc
  • bspwm (X11)
  • sxhkd (X11)
  • Niri (Wayland)
  • yabaiwm (macOS)
  • skhd (macOS)

Scripts

sync

Dependencies

  • fish
  • git
  • rsync
  • curl

Description

Warning: This will overwrite any existing files by the same name.

Syncs all configuration files found in this repository to your home folder.

To run sync script using curl: curl https://raw.githubusercontent.com/mitchell/dotfiles/master/sync | fish

install_utils

Dependencies

  • git
  • fish

Description

Installs various CLI utilities based on OS availability. Supports Arch, Debian, Fedora, and macOS (brew). I recommend quickly reading what you're getting.

install_arch

Dependencies

  • fish

Description

Performs the final installation steps for Arch Linux once inside arch-chroot. This is a highly specific configuration that makes A LOT of assumptions.

The timezone, hostname, username, network client, and boot mode can be chosen at runtime.

Locale is assumed to be en_US.UTF-8.

The created user will be added to the wheel group and given sudo permission. The root user will be locked.

If you choose systemd-networkd as your network manager it only configures a single interface matching the glob en*.

If installing to a UEFI system, it will use the systemd-boot bootloader and the "Boot target" should be the root partition, like /dev/vda2. UEFI mode makes the assumption that the root partition is a BTRFS partition, with at least one subvolume called root.

If installing to a BIOS system (VMs), it will use the Grub bootloader and the "Boot target" should be the boot drive, like /dev/vda (not partition /dev/vda1). BIOS mode makes no assumptions about root filesystem type.