This is my personal computer configuration files.
.
├── etc/ # System-wide configs (e.g., keyd)
├── home/ # User configs (~)
│ ├── .config/
│ │ ├── nvim/ # Neovim configuration
│ │ └── ...
│ ├── .zshrc
│ ├── .gitconfig
│ └── ...
├── notes/ # OS-specific setup guides (fedora, macos, nixos, windows)
│ ├── fedora/
│ ├── macos/
│ ├── nixos/
│ ├── windows/
│ └── ...
├── scripts/ # Utility scripts
└── README.md
CLI:
- zsh/oh-my-zsh
- nvim
- tmux
- fzf
- ripgrep
- fd
- zoxide
- starship.rs
Terminal:
- Kitty
- Alacritty
Preferred Fonts:
- IBM Plex Mono / Lilex
- Ioskeley Mono
- Hermit
Keyboard map:
- keyd (Linux)
- karabiner elements (MacOS)
- auto hot key (Windows)
The following command will create symlinks to the configuration files in the home directory.
- Install GNU stow
stow --adopt -t ~ home
It may overwrite dotfiles because of the --adopt flag, review and adjust changes as necessary.
Also, it will only create symlinks for config under user home directory, so we need to create symlinks for other config files manually, e.g. keyd to /etc/keyd.
Cmd-Shift-P— command paletteCmd-P— find fileCmd-Shift-F— search in projectCmd-Shift-O— find symbol in file;Cmd-T— find symbol in projectCmd-Shift-E— project panel;Cmd-Shift-B— outline panelCtrl+ backtick — toggle terminalCmd-Shift-M— diagnosticsCmd-,— settings
See home/.config/zed/keymap.json. Current custom bindings:
- In normal Vim mode,
;opens the command palette and:repeats the last find. - In normal or visual Vim mode,
j/kmove by screen lines,sjumps to a word,g aswitches to the alternate file,g h/g lmove to line start/end, andm mjumps to the matching bracket. - In normal mode,
g pselects the last pasted text. In visual mode,g lextends to line end anda mselects through the matching bracket. Ctrl-Tab/Ctrl-Shift-Tabswitch between open items in the editor and terminal.- In the terminal,
Cmd-[/Cmd-]move to the left/right pane. Ctrl-Cmd-Ropens recent projects.- In the editor,
Ctrl-Minserts a newline.
- Compare changes against a base branch (e.g. for review)
- Search Git history by changed content (pickaxe,
git log -S) - Three way diff for merge conflicts
Workaround:
- Search commit messages with the
Git Graph: Openaction, then use its search box.