My neovim and terminal (tmux in Kitty) based development setup. Always a work progress!
Copy over configuration files with stow
make all
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: Kitty
Shell + Framework: zsh + oh-my-zsh
- autocompletions, vi-mode, syntax highlighting, fzf, z jumping
TODO
TODO
Install with rustup:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
These are mostly brew packages.
batbetter cat (syntax highlighting and pager)ezabetter lsfdbetter find (fd-find forapt)fzffuzzy findergdubetter ncdu, disk usage viewerripgrepbetter grep (and faster than ag)stowsymlink managertlrccommunity written short man pages (command is tldr; tlrc is rust client of tldr)zoxidedirectory jumper
lazygitgit interfacenchattelegramneovimbetter vim (async, community developed)rangerfile manager (install withpip install ranger-fm)tmuxterminal multiplexertmuxpterminal session manageryazifile manager, seemingly faster than ranger
android-platform-tools(cask)qrcpqr code generator for wifi transferscrcpyandroid screen mirror/recorder (requires adb)
fastfetchdisplay system info (replaces neofetch)
git-deltafor git and lazygit, better diffgnu-sedfor nvim, vim-spectreimagemagickfor image rendering with kittypopplerfor yazi, pdf previewunarfor yazi, archive previewzsh-completionsfor zsh, command line autocompletions
kitty(cask) terminal emulatoremacs(cask) text editor / environment / operating system
- Configuration: tmux.conf
- keymaps, session keybind toggle
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
defaults write .GlobalPreferences com.apple.mouse.scaling -1
defaults write -g ApplePressAndHoldEnabled -bool false
- Settings -> Keyboard -> Key repeat rate & Delay until repeat
Ice: menubar management (FOSS, replaces Bartender)Dato: menubar calendar and meetingsMeteorologist: weather in menubarMonitor Control: menubar monitor brightnessStats: menubar system monitoring
BetterTouchTool: add shortcuts; 3 finger tap -> middle click
Choosy: browser launcherDropover: drag & drop temporary file shelfHammerspoon: mac scriptingJankyBorders: visually highlight focused window (need to start brew service)Karabiner Elements: remap keys; RShift -> Backspace; Fn -> Fn on external keyboards (maintain for builtin)LocalSend: file transferMac Mouse Fix: invert mouse scrolling, fancy remaps, add smooth scrollingRaycast: launcherShortcat: keyboard shortcuts everywhere
Shottr: screenshot toolSyncthing: file sync
- syncthing
- borders
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.nvimfzfrust- for fff.nvimlua- for various plugins
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
ssh-add ~/.ssh/id_ed25519
ssh-copy-id <username>@<hostname>
- 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)
