| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- fix visual p register clobbering: use "_dP black-hole pattern
- remove ; -> : mapping: restore native repeat-find motion
- remove <C-a>/<C-e> -> ^/$ emacs mappings: anti-vim-philosophy
- map dial.nvim to <C-a>/<C-x>/g<C-a>/g<C-x> (standard increment keys)
- remove redundant <leader>oq diagnostic loclist (covered by <leader>tl)
- collapse <leader>{,v,x,t}D type-def onto g{v,x,t}t pattern (0.12 grt)
- move <leader>oc/<leader>ic calls to <leader>co/<leader>ci (Code group)
- add gvr/gxr/gtr for references in splits
- remove empty <leader>s and <leader>d which-key group declarations
|
| |
|
|
|
|
| |
vim.lsp.codelens.refresh({ bufnr }) is deprecated in 0.12.
Use vim.lsp.codelens.enable(true, { bufnr }) which handles
the autocmds internally.
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Minimal Ghostty config for use with zellij multiplexer:
- Gruvbox Dark theme (built-in)
- No window decorations (bspwm manages windows)
- OSC 52 clipboard-read allowed (for zellij clipboard sync)
- All built-in tab/split keybinds unbound (zellij handles this)
- Scroll keybinds matching alacritty setup (Alt+U/D/G/Shift+G)
- Font inherited from fontconfig monospace alias (Fira Code)
Removed all redundant-with-defaults options:
mouse-hide-while-typing, copy-on-select, clipboard-write,
cursor-style-blink, scrollback-limit, gtk-titlebar,
gtk-tabs-location, window-save-state (macOS-only)
|
| |
|
|
|
| |
Without this override, fonts render disproportionately large
on X11 due to DPI auto-detection.
|
| |
|
|
|
|
|
| |
- Enable live_config_reload (apply config changes without restart)
- Remove WINIT_X11_SCALE_FACTOR env override (no longer needed)
- Add terminal.osc52 = CopyPaste for full clipboard via OSC 52
(used by zellij for clipboard sync)
|
| |
|
|
|
|
|
|
| |
Alt+[/] for ScrollLineUp/Down conflicted with zellij's
Alt+[/] GoToPreviousTab/GoToNextTab — alacritty intercepted
them before zellij could see them.
Remap to Ctrl+Shift+Up/Down which don't conflict.
|
| |
|
|
|
|
|
| |
The compact bar does not show tab numbers on its own, so the
prefix is needed. The index is queried dynamically via
current-tab-info on each prompt. Inactive tabs may briefly show
a stale number after a tab close but correct on focus.
|
| |
|
|
|
|
|
| |
The number prefix was redundant with zellij's compact bar which
already shows tab numbers. Worse, inactive tabs showed stale
numbers after tab closes since each shell can only update its own
tab name on prompt. Now tabs show just dir or dir:cmd.
|
| |
|
|
|
|
|
| |
The tab index was captured once at shell startup and cached in a
variable. When tabs were closed and renumbered, the stale index
persisted, showing wrong numbers. Now _zellij_tab_idx is a function
that queries current-tab-info on every precmd/preexec call.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Keybindings (all in shared_except locked):
- Alt+t: new tab, Alt+[/]: cycle tabs
- Alt+w: zoom/fullscreen toggle (like tmux prefix+z)
- Alt+x: close focused pane (like tmux prefix+x)
- Alt+e: edit scrollback in $EDITOR (opens in nvim)
- Alt+-/=: quick pane resize without entering resize mode
UI options:
- pane_frames false: hide pane borders for cleaner look
- default_layout compact: single bottom status bar, no top bar
|
| |
|
|
|
|
|
|
|
|
|
| |
These floating popups (tips, release notes) appear on startup when
not explicitly disabled. Dismissing them with Ctrl+C triggers
zellij's Reconfigure with write_config_to_disk=true, which backs
up the config to .bak and writes a 600-line autogenerated version,
destroying stow symlinks.
Setting both to false in the config prevents the popups from
appearing and the destructive write from ever being triggered.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The env var pointed to the same default path zellij already uses
($XDG_CONFIG_HOME/zellij/config.kdl). It was added as a workaround
to prevent config overwrites, but investigating the zellij source
(config.rs, lib.rs) confirmed the overwrite is caused by the setup
wizard's Reconfigure instruction, not a path resolution issue.
The real protection: deploy stow before first zellij launch so the
config file exists and write_config_to_disk_if_it_does_not_exist()
returns false, preventing the wizard from appearing.
|
| |
|
|
|
|
|
| |
Set ZELLIJ_CONFIG_FILE to explicitly point at the XDG config path.
Without this, zellij overwrites the stow symlink with an auto-generated
default config on startup. Also remove KDL v1 semicolons from
MessagePlugin child nodes.
|
| |
|
|
|
|
| |
Set ZELLIJ_CONFIG_FILE to explicitly point at the XDG config path.
Without this, zellij auto-migrates the config on startup, replacing
the stow symlink with a regular file.
|
| |
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Document the terminal multiplexer setup: zellij config location,
vim-zellij-navigator + smart-splits.nvim integration.
|
| |
|
|
|
|
|
| |
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)
|