• Stars
    star
    166
  • Rank 227,748 (Top 5 %)
  • Language
    Lua
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐Ÿ”ง My dotfiles on ๏ฃฟ macOS for Neovim, Zsh, kitty, lf, etc

.dotfiles

My dotfiles for macOS and Linux. Just cherry pick the piece of code you totally understand.

platform last commit

config-demo For the color theme, check arctic

โœจ Contents

๐Ÿ”ฅ Text Editor

Neovim: [config]

๐Ÿš Shell

Zsh: [config]

๐Ÿ› ๏ธ Terminal Emulator

Kitty: [config]

Wezterm: [config]

Alacritty: [config]

๐Ÿช„ Tiling Window Manager

yabai: [config]

skhd: [config]

๐Ÿ—ƒ๏ธ Console File Manager

lf: [config]

vifm: [config]

ranger: [config]

โŒจ๏ธ Keyboard Customizer

Karabiner-Elements: [config]

๐Ÿงถ Others

Tmux: [config]

fzf: [config]

bin: Useful scripts

๐Ÿ’ก How I am managing the dotfiles

Using a bare repository. The dotfiles can reside where they are. No symlinks needed.

Initial setup

Create a bare repository to store the history.

git init --bare $HOME/dotfiles

Create an alias in zshrc, tell Git where the history and the working tree (snapshot) live.

alias cfg='git --git-dir=$HOME/dotfiles/ --work-tree=$HOME'

Tell Git not to show all the untracked files, otherwise all files under $HOME will be shown when running git status.

cfg config status.showUntrackedFiles no

Set up the remote repository for syncing

cfg remote add origin https://github.com/xxx/dotfiles.git

Done! Now we can manage our dotfiles.

cfg status
cfg add ~/.config/zsh
cfg commit -m "zsh config"
cfg push origin master

Clone to another machine

Clone the dotfiles into a bare repository.

git clone --bare https://github.com/xxx/dotfiles.git $HOME/dotfiles

Checkout the actual content from the bare repository to $HOME.

git --git-dir=$HOME/dotfiles/ --work-tree=$HOME checkout

Done!

Notes

If using vim-fugitive in Neovim, to make it work with this bare repo correctly, we should modify ~/dotfiles/config as below

...

[core]
  bare = false
  worktree = /Users/rockyzhang/

...