aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home
Commit message (Collapse)AuthorAgeFilesLines
* refactor: migrate clipboard scripts from xclip to wl-clipboardLibravatar sommerfeld35 hours6-6/+7
| | | | | - linkhandler, videowrapper, togreta, tokodi, wqr: xclip -o → wl-paste - rqr: xclip -selection clipboard -f → wl-copy
* chore: remove X11-only scripts replaced by sway/waylandLibravatar sommerfeld35 hours6-232/+0
| | | | | | | | | - input-setup: replaced by sway input blocks - display-setup: replaced by sway output config + display-toggle.sh - launch-polybar: replaced by waybar - locknpause: replaced by swaylock - vibe: removed (xclip + xdotool, no wayland use case) - automute: removed (xdotool focus tracking, no wayland use case)
* refactor: update nvim autocmds for sway/waybar/makoLibravatar sommerfeld35 hours1-9/+9
| | | | | - Replace bspwm/polybar/dunst auto-restart with sway/waybar/mako - Use SIGUSR2 for waybar reload, swaymsg reload for sway
* refactor: update shell config for waylandLibravatar sommerfeld35 hours2-24/+9
| | | | | | | | | - Remove X11 env vars (SXHKD_SHELL, GDK_DISPLAY, vblank_mode) - Remove X11 XDG cleanup vars (XAUTHORITY, XINITRC, etc.) - Add XDG_CURRENT_DESKTOP=sway, MOZ_ENABLE_WAYLAND=1 - Export XDG_SESSION_TYPE=wayland before launching sway - Auto-start sway on VT1 (replaces sx) - Remove xclip alias and whichkey function from .zshrc
* feat: add fuzzel application launcher configLibravatar sommerfeld35 hours1-0/+18
| | | | | | - Gruvbox dark theme, mono font - Proper [colors] and [border] sections - Replaces rofi for Wayland
* feat: add mako notification daemon configLibravatar sommerfeld35 hours1-0/+21
| | | | | - Gruvbox dark theme with urgency-based colors - Replaces dunst for Wayland
* feat: add waybar status bar configLibravatar sommerfeld35 hours2-0/+138
| | | | | - Gruvbox dark themed bar replacing polybar - Modules: workspaces, cpu, memory, temperature, network, battery, pulseaudio, clock, tray
* feat: add sway wayland compositor configLibravatar sommerfeld35 hours2-0/+194
| | | | | | | | | - Full sway config with vanilla defaults + personal keybinds - Gruvbox dark theme, pixel borders, caps:escape, vim navigation - Window rules (feh/imv floating via class/app_id) - Session env import for systemd/dbus portals - Display mode toggle script (F7): mirror/laptop-off/side-by-side - Dynamic output positioning based on laptop panel width
* feat: add Ctrl-F to accept Copilot NES in insert modeLibravatar sommerfeld35 hours1-0/+11
|
* feat: emit OSC 7 CWD for zellij pane/tab inheritanceLibravatar sommerfeld35 hours1-0/+7
|
* chore: commit nvim pack lockfile with plugin revisionsLibravatar sommerfeld35 hours1-1/+220
|
* refactor: audit and fix neovim keybindsLibravatar sommerfeld35 hours4-36/+30
| | | | | | | | | | | | - 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
* fix: replace deprecated codelens.refresh with codelens.enableLibravatar sommerfeld35 hours1-11/+1
| | | | | | vim.lsp.codelens.refresh({ bufnr }) is deprecated in 0.12. Use vim.lsp.codelens.enable(true, { bufnr }) which handles the autocmds internally.
* feat: add Alt+q keybind to detach from zellijLibravatar sommerfeld35 hours1-0/+3
|
* chore: set ghostty as default terminalLibravatar sommerfeld35 hours1-1/+1
|
* feat: set block blinking cursor in ghosttyLibravatar sommerfeld35 hours1-0/+5
|
* feat: add minimal ghostty terminal configLibravatar sommerfeld35 hours1-0/+26
| | | | | | | | | | | | | | | 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)
* fix: restore WINIT_X11_SCALE_FACTOR for correct font scalingLibravatar sommerfeld35 hours1-0/+3
| | | | | Without this override, fonts render disproportionately large on X11 due to DPI auto-detection.
* chore: clean up alacritty minor optionsLibravatar sommerfeld35 hours1-4/+4
| | | | | | | - 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)
* fix: remap alacritty scroll bindings to avoid zellij conflictLibravatar sommerfeld35 hours1-4/+4
| | | | | | | | 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.
* fix: restore dynamic tab number prefixLibravatar sommerfeld35 hours1-2/+3
| | | | | | | 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.
* fix: drop tab number prefix from zellij tab namesLibravatar sommerfeld35 hours1-3/+2
| | | | | | | 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.
* fix: query zellij tab index dynamically on each promptLibravatar sommerfeld35 hours1-4/+3
| | | | | | | 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.
* feat: add keybinds and compact UI for zellijLibravatar sommerfeld35 hours1-0/+18
| | | | | | | | | | | | | 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
* fix: disable zellij startup tips and release notes popupsLibravatar sommerfeld35 hours1-0/+4
| | | | | | | | | | | 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.
* fix: remove redundant ZELLIJ_CONFIG_FILE env varLibravatar sommerfeld35 hours1-1/+0
| | | | | | | | | | | | 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.
* fix: prevent zellij from overwriting stow-managed configLibravatar sommerfeld35 hours1-12/+12
| | | | | | | 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.
* fix: prevent zellij from overwriting stow-managed configLibravatar sommerfeld35 hours1-0/+1
| | | | | | 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.
* 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.
* 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 hours10-16/+74
| | | | | | | | | | - 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.