Editors
Three editors are configured and deployed by the shell component: Neovim (primary), Micro (lightweight), and Yazi (terminal file manager).
Neovim
Config lives in nvim/. Deployed to ~/.config/nvim/ during shell module install.
Plugin Manager
vim-plug is auto-installed on first launch. Run :PlugInstall after the first start to fetch all plugins.
Plugins
Language & Completion
| Plugin |
Purpose |
neoclide/coc.nvim |
LSP client, auto-completion, diagnostics |
rust-lang/rust.vim |
Rust filetype support |
nvim-telescope/telescope.nvim |
Fuzzy finder (files, grep, LSP symbols) |
UI
| Plugin |
Purpose |
vim-airline/vim-airline |
Status bar |
vim-airline/vim-airline-themes |
Airline theme collection |
junegunn/goyo.vim |
Distraction-free writing mode |
voldikss/vim-floaterm |
Floating terminal windows |
norcalli/nvim-colorizer.lua |
Inline colour preview |
Navigation
| Plugin |
Purpose |
preservim/nerdtree |
File tree sidebar |
junegunn/fzf + fzf.vim |
Fuzzy file/buffer search |
elihunter173/dirbuf.nvim |
Editable directory buffer |
Snippets
| Plugin |
Purpose |
SirVer/ultisnips |
Snippet engine |
honza/vim-snippets |
Snippet collection |
Database
| Plugin |
Purpose |
tpope/vim-dadbod |
Database query runner |
kristijanhusak/vim-dadbod-ui |
GUI for vim-dadbod |
Markdown
| Plugin |
Purpose |
tadmccorkle/markdown.nvim |
Enhanced Markdown support |
ellisonleao/glow.nvim |
Markdown preview in terminal |
Theme
| Plugin |
Purpose |
the_miro/cyberqueer.nvim |
CyberQueer colour scheme (local) |
AI
| Plugin |
Purpose |
coder/claudecode.nvim |
Native WebSocket bridge to the Claude Code CLI — inline diff review, buffer/selection context, model switching. Runs with terminal.provider = "native" (no snacks.nvim dependency). Replaces the older greggh/claude-code.nvim terminal-only wrapper. |
CoC LSP Settings
nvim/coc-settings.json configures language servers for:
- Python (pyright)
- Lua (lua-language-server)
- Rust (rust-analyzer via rust.vim)
CyberQueer Airline Theme
nvim/cyberqueer-airline.vim — a custom vim-airline theme using the CyberQueer palette, providing hot-pink/violet segments in the status bar.
Keybindings
All custom bindings live in nvim/init.lua. Leader is the Vim default (\), unchanged.
Window navigation
| Key |
Mode |
Action |
Ctrl+h / Ctrl+j / Ctrl+k |
Normal, Terminal |
Move to the split left/below/above |
Ctrl+l |
Normal, Terminal |
Cycle to the next split (wraps) |
Also restored inside calendar.vim buffers, which otherwise steal Ctrl+hjkl for month navigation.
Quick app toggles (single key, normal mode)
| Key |
Action |
t |
Open a new floating terminal (vim-floaterm) |
e |
Toggle the NERDTree file-tree sidebar |
s |
Toggle the vim-dadbod-ui database browser |
q |
Save & quit; falls back to force-quit on unsaved/read-only buffers |
m |
Toggle a centered floating alot (email) terminal |
g |
Toggle a centered floating khal interactive (calendar) terminal |
f |
Toggle a centered floating abook (contacts) terminal |
x |
Toggle the sideward-T PIM overlay (alot + abook + khal panes at once) |
m was previously n — moved to free up n for its default Vim meaning (repeat last search).
Claude Code (coder/claudecode.nvim)
All under the <leader>a ("AI") prefix — a namespace that was otherwise completely unused, so nothing above was disturbed.
| Key |
Mode |
Action |
<leader>ac |
Normal |
Toggle the Claude Code terminal |
<leader>af |
Normal |
Focus the Claude Code terminal |
<leader>ar |
Normal |
Resume the last Claude session (--resume) |
<leader>aC |
Normal |
Continue the last Claude session (--continue) |
<leader>am |
Normal |
Select the Claude model |
<leader>ab |
Normal |
Add the current buffer to Claude's context |
<leader>as |
Visual |
Send the selection to Claude as context |
<leader>ay |
Normal |
Accept the proposed diff |
<leader>an |
Normal |
Deny the proposed diff |
<leader>aq |
Normal |
Close all pending diffs |
<leader>aS |
Normal |
Show Claude connection status |
Insert mode
| Key |
Action |
Tab |
Next completion entry (CoC popup menu if visible, else built-in keyword completion) |
Shift+Tab |
Previous completion entry (CoC popup menu if visible, else literal tab) |
Enter |
Confirm the CoC completion if the popup menu is visible |
Ctrl+Tab |
Expand an UltiSnips snippet trigger |
Ctrl+b / Ctrl+z |
Jump forward/backward through UltiSnips snippet placeholders |
Ctrl+l |
Expand a CoC snippet |
Ctrl+j |
Expand-and-jump a CoC snippet |
Other
| Key |
Mode |
Action |
<leader>x |
Visual/Select |
Convert selection to a UltiSnips snippet (via CoC) |
:Vb |
Command |
Enter visual-block mode (alternative to Ctrl+v, which some terminals intercept) |
:w!! |
Command |
Save the current file through sudo tee, for read-only files |
Micro
A modern, keyboard-friendly terminal editor. Config in micro/. Deployed to ~/.config/micro/.
Settings (settings.json)
| Setting |
Value |
Effect |
colorscheme |
miro-darcula |
Custom dark colour scheme |
| Various |
— |
File-type-specific settings |
Keybindings (bindings.json)
Custom keybindings extending Micro's defaults. See micro/bindings.json for the full list.
Colour Schemes
micro/colorschemes/ contains additional colour scheme definitions including the custom miro-darcula scheme.
Plugins (micro/plug/)
| Plugin |
Purpose |
filemanager |
Sidebar file browser |
mlsp |
Language Server Protocol integration |
Yazi
A fast, feature-rich terminal file manager written in Rust.
Config in yazi/. Deployed to ~/.config/yazi/.
Configuration Files
| File |
Purpose |
yazi.toml |
Core settings (openers, file rules, display) |
theme.toml |
CyberQueer colour palette |
keymap.toml |
Keybindings (17 KB, extensively customised) |
Theme
yazi/theme.toml maps the CyberQueer colours to Yazi's theme variables. It is a colour-substitution target in apply-theme.sh, so it updates automatically when you change the palette.
File Openers
| File type |
Opens with |
*.svg |
Inkscape |
| Text files |
Neovim |
| Everything else |
xdg-open (system default) |
Display Options
- Hidden files visible by default
- Symlinks shown and followed
- Three-pane layout (parent, current, preview)
Launching Editors
From the Hyprland desktop:
| Shortcut |
Action |
Super + M |
Open Micro in Kitty |
Super + E |
Open Yazi in Kitty |
Super + T then nvim |
Neovim in terminal |
From the shell:
nvim file.rs # Neovim
micro config.yaml # Micro
yazi # Yazi file manager