Personal configuration for Linux and macOS desktops. The repository is meant to
be linked into ~/.config or the home directory, with generated files created
from *.in templates when host-specific values are needed.
nvim/- Neovim configuration.
hypr/- Hyprland, Hyprpaper, Hyprlock, helper scripts, and wallpapers.
i3/- i3 configuration, launcher wrapper, and wallpapers.
waybar/- Waybar JSONC and CSS.
kitty/- Kitty terminal config and themes.
dunst/- Notification daemon config and reload helper.
rime/- Rime input method customizations.
i3blocks/- i3blocks config and helper scripts.
gtk-3.0/,gtk-4.0/,imsettings/- GTK and input method settings.
aerospace/- AeroSpace window manager config for macOS.
- Top-level dotfiles
.vimrc,.tmux.conf,.Xresources,.xprofile, and shared formatting/tooling config.
Clone the repository, generate host-specific files, then symlink the pieces you use into the expected locations.
git clone git@github.com:Jamie-Cui/dotfiles.git ~/opt/dotfiles
cd ~/opt/dotfiles
make help
make allExample links:
mkdir -p ~/.config
mkdir -p ~/.config/ibus
ln -sfn ~/opt/dotfiles/nvim ~/.config/nvim
ln -sfn ~/opt/dotfiles/kitty ~/.config/kitty
ln -sfn ~/opt/dotfiles/hypr ~/.config/hypr
ln -sfn ~/opt/dotfiles/waybar ~/.config/waybar
ln -sfn ~/opt/dotfiles/dunst ~/.config/dunst
ln -sfn ~/opt/dotfiles/rime ~/.config/ibus/rime
ln -sfn ~/opt/dotfiles/.vimrc ~/.vimrc
ln -sfn ~/opt/dotfiles/.tmux.conf ~/.tmux.conf
ln -sfn ~/opt/dotfiles/.Xresources ~/.XresourcesAdjust the links per host. For example, an i3/X11 machine may link i3 and
i3blocks, while a Wayland machine may link hypr and waybar.
Files ending in .in are sources. make all replaces @FONT_SIZE@ and writes
the generated config next to the template. Generated outputs are ignored by Git.
Current templates:
gtk-3.0/settings.ini.in->gtk-3.0/settings.inigtk-4.0/settings.ini.in->gtk-4.0/settings.inihypr/hyprland.conf.in->hypr/hyprland.confi3/config.in->i3/configkitty/kitty.conf.in->kitty/kitty.conf
The font size is read from ../config.toml:
[dotfiles]
font_size = 12It can also be overridden for one run:
make all FONT_SIZE=12
make cleanDo not commit secrets, proxy credentials, private keys, generated Rime user data, or local build/cache directories. Keep machine-specific values outside this repository when possible.