Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

497 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Dotfiles

Configurations to improve the CLI dev experience.

Core tools:

Supporting TUIs:

📁 XDG Base Directory

The dotfiles leverage and follow the XDG Base Directory specification.

XDG_*_HOME variables are exported by the shell.

🔌 Plugins

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.

⌨️ Key Bindings

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.

📋 Clipboard

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.

🖥️ Tmux Sessions

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

📦 Dependencies

The dotfiles assume some additional packages to be installed on your system (such as fzf or language servers. Install the packages using your system's package manager or via Homebrew.

 MacOS Keyboard Settings

  • Add 'U.S. International - PC' input source
  • Change ' Caps Lock' to 'Control' (Keyboard Shortcuts > Modifier Keys)
  • Disable keyboard shortcuts for 'Input Sources' (i.e. Ctrl-Space)
  • Set 'Key repeat rate' to 'Fast'

🛠️ Installation

The dotfiles can be installed using stow:

git clone https://github.com/alimfeld/dotfiles ~/.dotfiles
cd ~/.dotfiles
stow --target=$HOME --dotfiles .

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages