aboutsummaryrefslogtreecommitdiffstatshomepage
Commit message (Collapse)AuthorAgeFilesLines
* refactor: clean up zellij config and update vim-zellij-navigatorLibravatar sommerfeld35 hours1-19/+10
| | | | | | | Restore minimal config after accidental dump-config overwrite. Remove clear-defaults=true (custom bindings merge with defaults). Remove support_kitty_keyboard_protocol (debug leftover). Update vim-zellij-navigator from v0.2.1 to v0.3.0.
* fix: create XDG state dir for chpwd recent dirsLibravatar sommerfeld35 hours1-7/+11
| | | | | | | | | The chpwd_recent_dirs handler errors when $XDG_STATE_HOME/zsh/ doesn't exist. Add a mkdir -p guard before setting the zstyle. Also rewrites za() to properly handle zellij list-sessions output by splitting into a zsh array and filtering empty lines. Adds a $ZELLIJ nesting guard and passes explicit session name to attach.
* feat: add Alt+1-9 keybinds for direct tab navigationLibravatar sommerfeld35 hours1-0/+13
| | | | | Replicates tmux prefix+number behavior. Available in all modes except locked.
* feat: prefix zellij tab name with tab numberLibravatar sommerfeld35 hours1-2/+4
| | | | | Queries tab position once at shell init (cached, no per-prompt cost) and prepends it: '1:dotfiles', '2:~:nvim', etc.
* fix: show ~ for home directory in zellij tab nameLibravatar sommerfeld35 hours1-6/+3
|
* feat: auto-rename zellij tabs as dir:cmd (tmux-style)Libravatar sommerfeld35 hours1-0/+12
| | | | | | | Uses precmd/preexec hooks to rename the active zellij tab: - At prompt: shows directory name (e.g. 'dotfiles') - During command: shows dir:cmd (e.g. 'dotfiles:nvim') Only active inside zellij ($ZELLIJ is set).
* fix: make za smart-attach (create/attach/pick based on session count)Libravatar sommerfeld35 hours1-2/+11
| | | | | | 0 sessions: create new. 1 session: attach directly. Multiple: open the welcome picker. Replaces broken 'zellij attach -c' which required a session name argument.
* fix: use OSC 52 for clipboard instead of wl-copyLibravatar sommerfeld35 hours2-4/+3
| | | | | | | System uses Xorg, not Wayland. OSC 52 is terminal-native and works on both X11 and Wayland without external tools. Alacritty supports it natively. Removes copy_command from zellij config (OSC 52 is the default when no copy_command is set).
* feat: add Ctrl-Y widget to copy command line to clipboardLibravatar sommerfeld35 hours1-0/+5
| | | | | Replaces tmux-yank's prefix+y functionality with a native zsh widget that copies $BUFFER to clipboard via wl-copy.
* docs: add zellij section to copilot-instructionsLibravatar sommerfeld35 hours1-0/+4
| | | | | Document the terminal multiplexer setup: zellij config location, vim-zellij-navigator + smart-splits.nvim integration.
* chore: remove tmux configLibravatar sommerfeld35 hours1-82/+0
| | | | | | | Fully migrated to zellij. All 14 TPM plugins are replaced by zellij built-ins or smart-splits.nvim. Session resurrection, clipboard, mouse mode, pane management, gruvbox theme, and session manager are all native zellij features.
* refactor: replace tmux aliases with zellij in .zshrcLibravatar sommerfeld35 hours1-3/+2
| | | | | | - Remove ta/tas tmux aliases - Add za (zellij attach -c): attach or create session Usage: za (default session), za myname (named session)
* refactor: replace tmux.nvim with smart-splits.nvim for zellijLibravatar sommerfeld35 hours67-23/+447
| | | | | | | | | | - Swap aserowy/tmux.nvim for mrjones2014/smart-splits.nvim in init.lua - Configure Ctrl h/j/k/l navigation keymaps (same keys as before) - Add vim-zellij-navigator WASM plugin keybindings to zellij config - Remove tmux treesitter parser (no longer needed) smart-splits.nvim auto-detects zellij as the multiplexer and provides seamless split/pane navigation across neovim and zellij boundaries.
* feat: add zellij config with gruvbox-dark themeLibravatar sommerfeld35 hours1-0/+22
| | | | | | | | | | | | Migrate from tmux to zellij. Most tmux plugin features are zellij built-ins: session resurrection, mouse mode, clipboard integration, pane/tab management, session manager, and search. - gruvbox-dark theme (built-in, replaces tmux-gruvbox plugin) - serialize_pane_viewport for full session resurrection - copy_on_select with wl-copy for Wayland clipboard - 50k line scrollback buffer - attach_to_session for auto-reattach
* chore: clean up gitignore, extend mergiraf, add colorMovedWSLibravatar sommerfeld35 hours3-6/+8
| | | | | | | | - gitignore: remove redundant */node_modules/ (node_modules/ already matches at any depth), consolidate clangd cache pattern to **/ - attributes: add .tsx and .lua to mergiraf merge driver - config: add diff.colorMovedWS = allow-indentation-change to complement colorMoved, ignoring whitespace in moved blocks
* refactor: clean up git aliasesLibravatar sommerfeld35 hours1-1/+2
| | | | | | - Remove 'stage = add' — redundant with 'a = add'. - Add 'cp = cherry-pick' — common operation without a shortcut. - Add 'lg = log --graph --oneline' — visual branch graph.
* refactor: improve safety of autocorrect and remove undo aliasLibravatar sommerfeld35 hours1-3/+4
| | | | | | | | - Change help.autocorrect from 1 (0.1s auto-execute) to 'prompt' (asks before executing the guessed command). Prevents accidental execution of wrong commands. - Remove 'undo = reset --hard' alias — destructive with no confirmation, could silently discard uncommitted work.
* feat: add modern git optionsLibravatar sommerfeld35 hours1-0/+5
| | | | | | | | | - rebase.updateRefs = true: auto-update dependent branches when rebasing a stack. Essential for stacked branch workflows. - rerere.enabled = true: remember conflict resolutions and auto-apply them when the same conflict is encountered again. - column.ui = auto: display branches and tags in columns instead of a long vertical list.
* chore: remove unnecessary core.autocrlf on LinuxLibravatar sommerfeld35 hours1-1/+0
| | | | | | core.autocrlf = input does nothing on a Linux-only system — no files will have CRLF line endings natively. The modern approach for cross-platform repos is per-repo .gitattributes.
* fix: remove invalid whitespace value and enable histogram diffLibravatar sommerfeld35 hours1-2/+2
| | | | | | | - Remove 'fix' from core.whitespace — it's an apply.whitespace action, not a valid whitespace type. Was silently ignored. - Uncomment diff.algorithm = histogram — produces better diffs than the default myers algorithm, especially for moved code blocks.
* refactor: strip terminal keys section to essentialsLibravatar sommerfeld35 hours1-29/+7
| | | | | | | | | | Remove 9 explicit key bindings (Home, End, Insert, Backspace, Delete, Left, Right, PageUp, PageDown) — all already work OOTB in emacs mode on modern terminals. Keep only: - Application mode block (ensures terminfo works during zle) - Up/Down key lookup (needed for substring-search bindings below)
* docs: document every completion zstyleLibravatar sommerfeld35 hours1-10/+15
| | | | | Each line now has an inline comment explaining what it does and why. The completer pipeline gets a multi-line breakdown of each stage.
* fix: declare ZSH_HIGHLIGHT_STYLES before subscript assignmentLibravatar sommerfeld35 hours1-0/+1
| | | | | | | With extendedglob on, ZSH_HIGHLIGHT_STYLES[comment] triggers 'assignment to invalid subscript range' because the array doesn't exist yet and [comment] is parsed as a glob pattern. Explicitly declare it as an associative array first.
* feat: add Ctrl-Z toggle for foreground/backgroundLibravatar sommerfeld35 hours1-0/+14
| | | | | | Single Ctrl-Z press suspends a process AND resumes it — no need to type 'fg' manually. If no jobs are suspended, clears the screen instead. Very ergonomic for editor/build workflows.
* feat: add zoxide for smart directory jumpingLibravatar sommerfeld35 hours1-0/+5
| | | | | | | | z foo → jump to best frecency-ranked directory matching "foo" zi → interactive fzf picker for directory history Much more powerful than cdr — learns from usage patterns across all sessions and ranks by frequency + recency (frecency algorithm).
* feat: add modern word-navigation keybindingsLibravatar sommerfeld35 hours1-0/+8
| | | | | | | | | Ctrl-Right/Left and Alt-Right/Left for word-by-word navigation. Ctrl-Backspace/Delete for word-by-word deletion. The key insight: Ctrl-Right (forward-word) with zsh-autosuggestions installed automatically accepts the next word of the suggestion, giving fish's killer partial-accept feature for free.
* refactor: modernize aliases and clean up LESS flagsLibravatar sommerfeld35 hours2-4/+4
| | | | | | | | | - Replace fgrep/egrep aliases with grep -F/grep -E (POSIX deprecated the standalone fgrep/egrep commands) - Rename gdb alias to gdbr (gdb auto-started with args is a convenience shortcut, not a replacement for plain gdb) - Remove LESS -X flag (legacy workaround for old less versions that didn't properly use alternate screen)
* chore: remove outdated exports from .zprofileLibravatar sommerfeld35 hours1-4/+0
| | | | | | | - AWT_TOOLKIT=MToolkit: removed in Java 7 (2011), does nothing - GTK_RC_FILES for gtk-1.0: GTK1 is from 1998, no apps use it - PYTHON_EGG_CACHE: eggs deprecated, pip/setuptools use wheels - WORKON_HOME: virtualenvwrapper not used (modern Python uses venv/uv)
* feat: add history hardening and directory stack optionsLibravatar sommerfeld35 hours1-0/+8
| | | | | | | | | | | | | | History: - extended_history: save timestamps per entry - share_history: share across concurrent sessions - hist_ignore_all_dups: remove older duplicate on new entry - hist_find_no_dups: skip duplicates when searching - hist_reduce_blanks: trim superfluous whitespace - hist_ignore_space: leading space = private command Navigation: - auto_pushd: cd pushes onto dir stack (cd -<TAB> to browse) - pushd_ignore_dups: don't push duplicate dirs
* chore: remove redundant setopts (already zsh defaults)Libravatar sommerfeld35 hours1-3/+1
| | | | | appendhistory (<D>), nomatch (<C><Z>), and notify (<Z>) are all set by default in zsh emulation. Add a comment noting this for reference.
* fix: resolve multiple bugs in .zshrcLibravatar sommerfeld35 hours1-13/+8
| | | | | | | | | | | | | | | | - Move HISTFILE from XDG_CACHE_HOME to XDG_STATE_HOME (history is state, not cache — cache cleaners could delete it) - Fix compinit: add -d flag to put zcompdump in XDG_CACHE_HOME instead of polluting $HOME - Fix cdr: set recent-dirs-file to XDG_STATE_HOME location - Fix ZSH_HIGHLIGHT_HIGHLIGHTERS/STYLES: set BEFORE sourcing the plugin (required by plugin docs) - Fix zsh-history-substring-search: bind to Up/Down keys (was loaded but never bound — dead code) - Remove dead .../..../….. aliases (rationalise-dot widget intercepts every dot keystroke, making these unreachable) - Remove redundant ShiftTab reverse-menu-complete binding (overridden by autosuggest-accept)
* docs: update copilot-instructions for new shell layoutLibravatar sommerfeld35 hours1-0/+40
| | | | | | Rewrite shell config section to reflect the zsh-only 3-file architecture (.zshenv, .zprofile, .zshrc). Remove references to deleted files (.profile, .bashrc, envrc, aliases, shinit).
* chore: delete obsolete shell config filesLibravatar sommerfeld35 hours6-394/+0
| | | | | | | | | | | | Remove files made redundant by the zsh-only rewrite: - home/.profile (POSIX login shell — replaced by .zprofile) - home/.bashrc (bash interactive — no longer needed) - home/.bash_logout (bash logout — no longer needed) - home/.config/sh/envrc (shared env vars — merged into .zprofile) - home/.config/sh/aliases (shared aliases — merged into .zshrc) - home/.config/sh/shinit (POSIX interactive init — merged into .zshrc) The inputrc file is kept for readline-based tools (python REPL, etc.).
* refactor: rewrite .zshrc as unified interactive configLibravatar sommerfeld35 hours1-127/+178
| | | | | | | | | | | | | | | | | | Merge aliases into .zshrc and fix multiple bugs: - Fix: remove duplicate zle application mode block (lines 110-115) - Fix: select-word-style called once (shell), was called twice (bash then shell) - Fix: remove contradictory no_complete_aliases/COMPLETE_ALIASES setopts - Fix: remove 'set zle_bracketed_paste' (wrong syntax, did nothing) - Remove: case $- guard (unnecessary — zsh only sources .zshrc interactively) - Remove: shinit sourcing (replaced by direct config in .zprofile/.zshrc) - Remove: safesource calls (direct source) - Remove: ZSH_AUTOSUGGEST_USE_ASYNC (deprecated, async is default) - Remove: run-help-sudo (system uses doas) - Remove: bash() wrapper function (no longer needed) - Remove: initial Up/Down bindings (immediately overridden by prefix search) - Organize into clearly labeled sections with comments - Consolidate compdef calls
* refactor: rewrite .zprofile as zsh login configLibravatar sommerfeld35 hours2-2/+133
| | | | | | | | | | | | | | | | | | Replace the symlink-to-.profile with a proper zsh-native .zprofile. Merges content from envrc into a single file. Changes: - Remove POSIX compat helpers (safesource, exists, ifexists) - Remove LESS_TERMCAP block (MANPAGER is nvim) - Remove deprecated MOZ_WEBRENDER, MOZ_X11_EGL, GPG_AGENT_INFO - Remove SENTRY_ACCESS_TOKEN, ENV export - Remove .zshrc dispatch (zsh handles this natively via ZDOTDIR) - Fix duplicate RUSTUP_HOME export - Fix work-envrc: was checking wrong file readability - Fix XAUTHORITY: also skip when over SSH - Use zsh idioms: typeset -U, $+commands, [[]] - Use $TTY for GPG_TTY (zsh sets this automatically) - Organize into clearly labeled sections with comments - Delete home/.zprofile (was symlink to .profile, now redundant)
* feat: add .zshenv bootstrap fileLibravatar sommerfeld35 hours1-0/+2
| | | | | Sets ZDOTDIR so zsh finds .zprofile and .zshrc in XDG_CONFIG_HOME/zsh instead of requiring files in $HOME.
* chore: remove shadafile=NONE optionLibravatar sommerfeld35 hours1-1/+0
| | | | Re-enable shada for persistent marks, registers, and command history.
* docs: document every option in options.luaLibravatar sommerfeld35 hours1-44/+61
| | | | | | Add inline comments explaining the intent and behavior of each setting, including non-obvious choices like shadafile=NONE, scrolloff=999, and the two-phase folding setup.
* chore: remove redundant vim.diagnostic.configLibravatar sommerfeld35 hours1-5/+0
| | | | Immediately overridden by tiny-inline-diagnostic setup in lsp.lua.
* chore: remove redundant Space-to-Nop mappingLibravatar sommerfeld35 hours1-2/+0
| | | | Has no effect when mapleader is already set to Space.
* chore: remove redundant vim.loader.enable()Libravatar sommerfeld35 hours1-2/+0
| | | | Bytecode caching is enabled by default in Neovim 0.12.
* chore: remove stale filetypes from close_with_q autocmdLibravatar sommerfeld35 hours1-3/+0
| | | | grug-far, spectre_panel, tsplayground are not installed plugins.
* fix: use native treesitter indentexpr instead of plugin APILibravatar sommerfeld35 hours1-1/+1
| | | | | Neovim 0.12 provides vim.treesitter.indentexpr() natively, replacing the nvim-treesitter plugin's indentexpr function.
* fix: wrap tblgen_lsp_server enable in pcallLibravatar sommerfeld35 hours1-1/+1
| | | | | Server binary may not be installed on all machines. Wrap in pcall to prevent startup errors when tblgen_lsp_server is unavailable.
* fix: use doas instead of sudo in DoasWrite commandLibravatar sommerfeld35 hours1-6/+6
| | | | | | System uses doas for privilege escalation. Renamed SudoWrite → DoasWrite and switched from sudo -p '' -S to doas -S with newline-terminated password input.
* fix: correct inlay_hint.is_enabled API for Neovim 0.12Libravatar sommerfeld35 hours1-1/+1
| | | | | Neovim 0.12 changed the signature from a table { bufnr = N } to a plain integer bufnr parameter.
* fix: use branch for blink.download (no semver tags)Libravatar sommerfeld35 hours1-1/+1
|
* feat: migrate from lazy.nvim to vim.packLibravatar sommerfeld35 hours13-1543/+1105
| | | | | | | | | | | | | | | | Replace lazy.nvim plugin manager with Neovim 0.12's native vim.pack API. All plugin config files rewritten from lazy.nvim spec tables to imperative require/setup format with explicit vim.keymap.set() calls. Key changes: - vim.pack.add() with ~53 plugins in init.lua - blink.cmp/pairs/download pinned to version tags (vim.version.range) - PackChanged autocmd for markdown-preview build hook - Ordered requires: colorscheme → ui → treesitter → completion → lsp → rest - Plugin setup guards (gitsigns, which-key, blink.cmp) handle deferred plugin/ file loading correctly Net reduction: ~438 lines across 13 files.
* chore: remove stale codecompanion source from blink.cmpLibravatar sommerfeld35 hours1-1/+0
|
* chore: remove explicit plenary.nvim specLibravatar sommerfeld35 hours1-1/+0
| | | | | Auto-loaded as dependency by neogit, gitlinker, gitsigns, and refactoring.nvim. Standalone spec was unnecessary.