| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Replicates tmux prefix+number behavior. Available in all modes
except locked.
|
| |
|
|
|
| |
Queries tab position once at shell init (cached, no per-prompt cost)
and prepends it: '1:dotfiles', '2:~:nvim', etc.
|
| | |
|
| |
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
| |
0 sessions: create new. 1 session: attach directly. Multiple: open
the welcome picker. Replaces broken 'zellij attach -c' which required
a session name argument.
|
| |
|
|
|
|
|
| |
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).
|
| |
|
|
|
| |
Replaces tmux-yank's prefix+y functionality with a native zsh
widget that copies $BUFFER to clipboard via wl-copy.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
- Remove ta/tas tmux aliases
- Add za (zellij attach -c): attach or create session
Usage: za (default session), za myname (named session)
|
| |
|
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
- Remove 'stage = add' — redundant with 'a = add'.
- Add 'cp = cherry-pick' — common operation without a shortcut.
- Add 'lg = log --graph --oneline' — visual branch graph.
|
| |
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
- 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.
|
| |
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
| |
Each line now has an inline comment explaining what it does and why.
The completer pipeline gets a multi-line breakdown of each stage.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
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).
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
appendhistory (<D>), nomatch (<C><Z>), and notify (<Z>) are all set
by default in zsh emulation. Add a comment noting this for reference.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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.).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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)
|
| |
|
|
|
| |
Sets ZDOTDIR so zsh finds .zprofile and .zshrc in XDG_CONFIG_HOME/zsh
instead of requiring files in $HOME.
|
| |
|
|
| |
Re-enable shada for persistent marks, registers, and command history.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
| |
Immediately overridden by tiny-inline-diagnostic setup in lsp.lua.
|
| |
|
|
| |
Has no effect when mapleader is already set to Space.
|
| |
|
|
| |
Bytecode caching is enabled by default in Neovim 0.12.
|
| |
|
|
| |
grug-far, spectre_panel, tsplayground are not installed plugins.
|
| |
|
|
|
| |
Neovim 0.12 provides vim.treesitter.indentexpr() natively, replacing
the nvim-treesitter plugin's indentexpr function.
|
| |
|
|
|
| |
Server binary may not be installed on all machines. Wrap in pcall to
prevent startup errors when tblgen_lsp_server is unavailable.
|
| |
|
|
|
|
| |
System uses doas for privilege escalation. Renamed SudoWrite → DoasWrite
and switched from sudo -p '' -S to doas -S with newline-terminated
password input.
|
| |
|
|
|
| |
Neovim 0.12 changed the signature from a table { bufnr = N } to a
plain integer bufnr parameter.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| | |
|
| |
|
|
|
| |
Auto-loaded as dependency by neogit, gitlinker, gitsigns, and
refactoring.nvim. Standalone spec was unnecessary.
|
| |
|
|
|
| |
Marginal utility (auto-sizing cmdheight) for startup cost of
a lazy=false plugin with empty opts.
|
| |
|
|
|
| |
Neotest plugin was removed but its which-key group and
close-with-q filetypes remained as dead config.
|
| |
|
|
|
| |
Redundant with copilot.lua (inline completions via NES) and
Copilot CLI (chat/agentic workflows outside the editor).
|