Skip to content

My configs for vim, zsh, window manager, title bar, etc. on Linux and macOS

License

Notifications You must be signed in to change notification settings

weirane/dotfiles

Repository files navigation

dotfiles

My configs for vim, zsh, i3, polybar etc on Linux.

For macOS dotfiles, see the macos branch.

TL;DR for desktop setup on Arch Linux

Setup archlinuxcn and run:

sudo pacman -S --needed base-devel zsh
./setup.sh
logout
# **Login again**
. /usr/share/nvm/nvm.sh
nvm install --lts
npm install -g neovim

Run in vim:

:PlugInstall
:CocInstall coc-jedi coc-tsserver coc-rust-analyzer coc-vimtex coc-diagnostic coc-css coc-html coc-json coc-prettier coc-vimlsp coc-word

Then check the optional dependencies of weirane-dotfiles-deps-cli and weriane-dotfiles-deps-gui.

Setup

Some of the steps below are covered by ./setup.sh.

Zsh

Install zsh with a package manager or from source. Running ./setup.sh will install powerlevel10k and fast-syntax-highlighting.

Command line utilities

name manual install
exa prebuilt binaries
ripgrep prebuilt binaries
fd prebuilt binaries
bat prebuilt binaries
fzf install with git

scripts

Some of the bindings I have use external shell scripts, which can be found in this GitHub repo. Installation of the scripts is covered by ./setup.sh.

Neovim

Install

Plugin manager vim-plug can be downloaded using the script ./setup.sh. Run :PlugInstall to install plugins.

coc.nvim

Run in vim to install additional coc.nvim components:

:CocInstall coc-jedi coc-tsserver coc-rust-analyzer coc-vimtex coc-diagnostic coc-css coc-html coc-json coc-prettier coc-vimlsp coc-word

For python linting, install flake8 via pip.

Other Vim plugins

Vim plugin Dependencies Notes
python-mode ipdb install with pip

Map Caps Lock to Escape and Ctrl

Only map in X, use XCAPE with Xmodmap.

xcape -e 'Control_L=Escape'  # rerun at startup

To map also in tty, install two AUR packages and enable udevmon:

yay -S interception-tools interception-caps2esc-nocaps-git
sudo cp ./etc/udevmon.yaml /etc/udevmon.yaml
sudo systemctl enable --now udevmon

Related blog post (zh_CN): link