Skip to content

Jamie-Cui/dotfiles

Repository files navigation

dotfiles

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.

Repository layout

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.

Quick start

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 all

Example 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 ~/.Xresources

Adjust the links per host. For example, an i3/X11 machine may link i3 and i3blocks, while a Wayland machine may link hypr and waybar.

Generated configs

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.ini
  • gtk-4.0/settings.ini.in -> gtk-4.0/settings.ini
  • hypr/hyprland.conf.in -> hypr/hyprland.conf
  • i3/config.in -> i3/config
  • kitty/kitty.conf.in -> kitty/kitty.conf

The font size is read from ../config.toml:

[dotfiles]
font_size = 12

It can also be overridden for one run:

make all FONT_SIZE=12
make clean

Security

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

About

Personal configuration for Linux and macOS desktops.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors