This is my neovim and terminal based development setup: Neovim in Tmux in Wezterm in MacOSX. Always a work progress!
Configuration: init.lua
- Plugin Manager: lazy.nvim
- Colorscheme: onedark/catppuccin
- Smart stuff: 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.
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 findfzf
fuzzy findergit-delta
better diffripgrep
better grep (and faster than ag)zoxide
directory jumperncdu
ncurses disk usage viewertldr
community written short man pages
lazygit
git interfaceneovim
better vim (async, community developed)ranger
file manager (install withpip install ranger-fm
)tmux
terminal multiplexeryazi
file manager, seemingly faster than rangernchat
telegram
hyperfine
commandline benchmarkingneofetch
display system infoqrcp
qr code generator for wifi transfer
unar
for yazi, archive previewpoppler
for yazi, pdf previewgnu-sed
for vim-spectrezsh-completions
for zsh, command line autocompletions
Terminal Multiplexer: tmux
- Configuration: tmux.conf
- keymaps, session keybing toggle
Install brew (this will also install x-code command line tools if you don't have them yet)
/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
Raycast
: launcher, see ./raycastKarabiner 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 everywhereBartender
: keep menubar tidierChoosy
: browser launcherShottr
: screenshot toolArc
: browerHammerspoon
: mac scriptingStats
: menubar system monitoringDato
: menubar calendar and meetingsMonitor Control
: menubar monitor brightnessBetterTouchTool
: add shortcuts; 3 finger tap -> middle click
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
Keyboard layers (0-index), global keyboard bindings are managed through ZSA Oryx firmware, Hammerspoon
- 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
- Copy over or symlink
.gitconfig
. Example:
ln -s ~/dev/dotfiles/.gitconfig ~/.gitconfig
- 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)