Configurations to improve the CLI dev experience.
Core tools:
Supporting TUIs:
The dotfiles leverage and follow the XDG Base Directory specification.
XDG_*_HOME variables are exported by the shell.
Use of plugins in core tools is reduced to a minimum. Since plugins are specific to the respective tool, the tools are configured in a way to have those plugins auto-installed.
Fish and tmux are setup with vi key bindings.
The tmux prefix is <Ctrl-Space> following the leader key <Space> used in
Neovim.
<Ctrl-h>, <Ctrl-j>, <Ctrl-k> and <Ctrl-l> can be used to seamlessly
navigate between Neovim and tmux splits using
vim-tmux-navigator.
Fish uses custom key bindings to interact with the system clipboard in normal
mode (using fish_clipboard_copy and fish_clipboard_paste).
Neovim sets the clipboard option to unnamedplus to yank and paste to/from
the system clipboard.
Tmux uses terminal features to synchronize copied text with the system clipboard. See tmux wiki for details.
To start and switch to tmux sessions based on directories under '~/dev', the
tmux-sessionizer script is used. This script is heavily inspired by
ThePrimagen's
tmux-sessionizer
The script is started from fish using the <Ctrl-Space> key binding. From tmux
it's invoked using <Ctrl-Space Tab>.
The dotfiles assume some additional packages to be installed on your system (such as fzf or language servers. Install the packages using your systems's package manager or via Homebrew.
The dotfiles can be installed using stow:
git clone https://github.com/alimfeld/dotfiles ~/.dotfiles
cd ~/.dotfiles
stow --target=$HOME --dotfiles */