My neovim and terminal (Tmux in Wezterm) based development setup. Always a work progress!
Configuration: init.lua
Key plugins:
- Plugin Manager: lazy.nvim
- Colorscheme: onedark/catppuccin
- Smarts: Treesitter, LSP, completion, snippets, fuzzy finder
- Visuals: statusline, tabline, scrollbar, whichkey, startpage
- Motions/operators/jump: textobjects, comments, surrounds, sorting
- Terminal Integrations: lazygit, ranger
Set up below.
Application: Wezterm
Shell + Framework: zsh
+ oh-my-zsh
- autocompletions, vi-mode, syntax highlighting, fzf, z jumping
bat
better cat (syntax highlighting and pager)eza
better lsfd
better find (fd-find forapt
)fzf
fuzzy findergit-delta
better diffncdu
ncurses disk usage viewerripgrep
better grep (and faster than ag)stow
symlink managertldr
community written short man pageszoxide
directory jumper
lazygit
git interfacenchat
telegramneovim
better vim (async, community developed)ranger
file manager (install withpip install ranger-fm
)tmux
terminal multiplexeryazi
file manager, seemingly faster than ranger
hyperfine
commandline benchmarking
neofetch
display system infoqrcp
qr code generator for wifi transferscrcpy
android screen mirror/recorder (requires adb)
gnu-sed
for nvim, vim-spectrepoppler
for yazi, pdf previewunar
for yazi, archive previewzsh-completions
for zsh, command line autocompletions
Terminal Multiplexer: tmux
- Configuration: tmux.conf
- keymaps, session keybing toggle
Copy over configuration files (using stow
)
make all
Install brew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Disable mouse acceleration
defaults write .GlobalPreferences com.apple.mouse.scaling -1
Enable key repeat
defaults write -g ApplePressAndHoldEnabled -bool false
- Settings -> Keyboard -> Key repeat rate & Delay until repeat
Bartender
: menubar managementDato
: menubar calendar and meetingsMonitor Control
: menubar monitor brightnessStats
: menubar system monitoring
BetterTouchTool
: add shortcuts; 3 finger tap -> middle clickChoosy
: browser launcherDropover
: drag & drop temporary file shelfHammerspoon
: mac scriptingKarabiner Elements
: remap keys; RShift -> Backspace; Fn -> Fn on external keyboards (maintain for builtin)Mac Mouse Fix
: invert mouse scrolling, fancy remaps, add smooth scrollingShortcat
: keyboard shortcuts everywhereShottr
: screenshot toolRaycast
: launcher
Install zsh framework
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
Install zsh plugin manager
https://github.com/tarjoilija/zgen | git clone https://github.com/tarjoilija/zgen.git "${HOME}/.zgen"
Set up fzf
$(brew --prefix)/opt/fzf/install
Install neovim and pynvim (to support python plugins in nvim)
brew install neovim
pip3 install --upgrade pynvim
Ensure python is working with :checkhealth
deno
- for peek.nvimfzf
Configuration: init.lua
- window management, sleep toggle, toggle apps
Remap Capslock to Control under MacOs settings: Keyboard -> Keyboard Shortcuts -> Modifier Keys
Keyboard layers (0-index), global keyboard bindings are managed through ZSA Oryx firmware, Hammerspoon, and Karabiner Elements
- Symbols, numbers
Layer 1
- System control, arrow keys
Layer 2
+,./
: mediashift
+ctrl
+,./
: mediaLayer 2
+hjkl
: arrow keysshift
+ctrl
+hjkl
: arrow keys
- Window movement
cmd
+ctrl
+hjkl mnbv
: move, resizecmd
+ctrl
+shift
+hjkl
, change display
- Create ssh key for git (press enter for default file location)
- https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent
ssh-keygen -t rsa -b 4096 -C "youremail@domain.com"
- Start ssh-agent in background
eval "$(ssh-agent -s)"
- Add SSH key
ssh-add ~/.ssh/id_rsa
- Set config file to automatically load key
echo "Host *\n AddKeysToAgent yes\n UseKeychain yes\n IdentityFile ~/.ssh/id_rsa" > ~/.ssh/config
- Add key to GH account at https://github.com/settings/keys, using this command to copy key to clipboard:
pbcopy < ~/.ssh/id_rsa.pub
- Spicetify: theme spotify
- install cli tool, install marketplace, restart app
spicetify --config spicetify backup apply spicetify update
- install cli tool, install marketplace, restart app
See detailed instructions in the raspberrypi directory
- fish (shell) + fisher (plugin manager) + tmux (terminal multiplexer)