aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/home/.config
Commit message (Collapse)AuthorAgeFilesLines
* fix: set GPG_TTY per interactive shell, not just at loginLibravatar sommerfeld35 hours2-2/+3
| | | | | | GPG_TTY was set in .zprofile (login shell) to /dev/tty1, but terminal emulator shells get /dev/pts/N. Move the export to .zshrc so each interactive shell sets the correct TTY before telling the agent.
* refactor: remove pam-gnupg and simplify gpg-agent configLibravatar sommerfeld35 hours1-9/+0
| | | | | | | | | With GPG key passphrases being removed (LUKS provides at-rest encryption), pam-gnupg is no longer needed. Remove: - pam-gnupg config file and keygrip list - pam-gnupg-git from base metapackage - Cache TTL overrides (defaults are fine without passphrase caching) - allow-preset-passphrase (only needed by pam-gnupg)
* refactor: revert GNUPGHOME to default ~/.gnupgLibravatar sommerfeld35 hours10-21/+0
| | | | | | | | | | | | | | Drop custom GNUPGHOME=~/.local/share/gnupg which required 6 systemd socket/service overrides with hardcoded directory hashes. GnuPG periodically changes its hash algorithm on updates, silently breaking systemd socket activation and pam-gnupg passphrase presetting. With default GNUPGHOME, stock systemd units work out of the box. - Move gpg.conf, gpg-agent.conf, sshcontrol to home/.gnupg/ - Delete all gpg-agent socket/service/dirmngr override dirs - Remove GNUPGHOME from .zprofile, .pam_environment, pam-gnupg - Remove GNUPGHOME from vdirsyncer and bridge service overrides
* fix: update stale gpg-agent socket hash in systemd overridesLibravatar sommerfeld35 hours4-4/+4
| | | | | | | GnuPG changed its socket directory hash from d.hmaqciuk8y8ye3gwt9b6eth1 to d.199epr64wmzkrnk8u8qgricf. The mismatch broke systemd socket activation and pam-gnupg passphrase presetting, causing SSH auth failures after reboot.
* fix: move GNUPGHOME before SSH_AUTH_SOCK in zprofileLibravatar sommerfeld39 hours1-1/+1
| | | | | | gpgconf --list-dirs agent-ssh-socket needs GNUPGHOME set to return the correct hashed socket path. Without it, SSH_AUTH_SOCK pointed to a non-existent socket, breaking GPG agent SSH authentication.
* chore: minor config improvementsLibravatar sommerfeld39 hours3-4/+1
| | | | | | - wget/wgetrc: move hsts-file from /tmp to ~/.local/share for XDG compliance and persistence across reboots - cargo/config: rename to config.toml (modern Cargo convention)
* refactor: strip commented-default bloat from configsLibravatar sommerfeld39 hours4-1389/+2
| | | | | | | | Remove ~1400 lines of commented defaults that duplicate manpage docs: - aerc.conf: 602 → 32 lines - ipython_config.py: 625 → 5 lines - MangoHud.conf: 118 → 10 lines - gamemode.ini: 97 → 7 lines
* refactor: remove dead code and defunct settingsLibravatar sommerfeld39 hours7-19/+4
| | | | | | | | | | | | | | - streamlink: remove twitch-disable-hosting (removed 2022) and twitch-disable-ads (dropped by streamlink) - .zprofile: remove dead FZF_TMUX tmux check, GTK2_RC_FILES export (gtk-2.0 dir deleted), update qt5ct → qt6ct - gtk-3.0/settings.ini: remove 4 GTK2-only settings (toolbar-style, toolbar-icon-size, button-images, menu-images) - gtk-3.0/gtk.css: fix GTK2 selectors (GtkLabel→headerbar, GtkWindow→window), remove Nautilus rule (not used on sway) - npm/npmrc: remove init-module pointing to nonexistent file - mpv.conf: remove load-stats-overlay=no (references nonexistent script) - aerc.conf: change styleset nord → gruvbox for consistency
* fix: correct bugs across multiple config filesLibravatar sommerfeld39 hours4-7/+3
| | | | | | | | | - zathurarc: fix broken synctex command (missing quote, wrong placeholders) and remove duplicate window-title-basename line - makepkg.conf: remove typo'd pzip/pzip2 duplicate COMPRESSGZ/BZ2 lines - cargo/config: fix placeholder mold path to -fuse-ld=mold - linkhandler: fix typo *.JGP → *.JPG - mpv.conf: update deprecated profile=gpu-hq → profile=high-quality
* chore: remove stale and outdated configuration filesLibravatar sommerfeld39 hours15-1240/+0
| | | | | | | | | | | | | | | | Delete 17 items confirmed unused/superseded: - pulse/ (4 files): PulseAudio configs, superseded by PipeWire - pipewire/media-session.d/: deprecated, superseded by WirePlumber - neofetch/config.conf: neofetch is abandoned/archived - .urlview: mutt-era URL viewer config - nvim ftplugin xdefaults.lua, xmodmap.lua: X11-only (xrdb/xmodmap) - Steam CS:GO + L4D2 configs: CS:GO replaced by CS2, L4D2 untracked - fakecam/ + service: abandoned virtual webcam project - noisetorch.service: project abandoned, PipeWire has built-in noise cancellation - gtk-2.0/: GTK2 is legacy - spotifyd.service.d/: no longer using spotifyd - htop/htoprc: auto-generated, not worth tracking - cookiefire, terminal-benchmark, terminal-testdrive, stop, videowrapper: unused scripts
* fix: revert TERM hack for yazi in zellijLibravatar sommerfeld39 hours1-6/+2
| | | | | | | | Überzug++ Wayland overlay coordinates are wrong inside zellij panes, so the TERM=xterm-kitty workaround doesn't actually produce image previews. Image previews work natively outside zellij; inside zellij all image paths are broken until zellij adds Kitty graphics passthrough (zellij#775).
* feat: force ueberzug++ for yazi image previews inside zellijLibravatar sommerfeld39 hours1-2/+6
|
* feat: replace lf with yazi file managerLibravatar sommerfeld39 hours4-113/+23
| | | | | | | | - Create minimal yazi.toml: show_hidden, scrolloff=10, mtime linemode - Create keymap.toml: shell access (!), bookmark dirs (g r/./x/s/S) - Add y() shell wrapper for cd-on-exit to zshrc - Add yazi section to KEYBINDS.md - Remove old lf config
* fix: remove non-working Alt+m ToggleMouseMode zellij keybindLibravatar sommerfeld39 hours1-3/+0
|
* feat: add Ctrl+Shift+u to copy URL under cursor in ghosttyLibravatar sommerfeld39 hours1-0/+3
|
* feat: add Alt+m to toggle mouse mode in zellijLibravatar sommerfeld39 hours1-0/+3
|
* feat: enable bell urgency hints in ghosttyLibravatar sommerfeld39 hours1-0/+3
|
* feat: list PATH executables in fuzzel and set terminalLibravatar sommerfeld39 hours1-0/+2
|
* chore: remove all X11/Xorg configs and referencesLibravatar sommerfeld39 hours18-1273/+6
| | | | | | | | | | | | | | | Removed: - home/.config/{X11,bspwm,sxhkd,polybar,rofi,dunst,sxiv,sx,alacritty} - meta/{x-base,x-de,x-extra} metapackages - barscripts/ (polybar GPU scripts) - nvim sxhkdrc ftplugin and treesitter parser Updated: - mimeapps.list: sxiv → imv - ghostty config: bspwm → sway comment - .zshrc: alacritty → xterm-ghostty in TERM check - .zprofile: removed bspwm from comment - copilot-instructions.md: removed X11 references
* fix: simplify display toggle to laptop-off/side-by-sideLibravatar sommerfeld39 hours2-28/+4
| | | | | | | - Added --no-repeat to F7 binding (key repeat was firing script twice) - Dropped broken mirror mode (sway has no native mirroring support) - Removed wl-mirror dependency - F7 now toggles between laptop-off and side-by-side
* fix: remove set -e that broke display-toggleLibravatar sommerfeld39 hours1-23/+9
| | | | | | swaymsg returns non-zero for benign operations (e.g. output already enabled), causing set -e to abort the script before reaching the disable command. Added || true guards instead.
* fix: add logging and robustness to display-toggleLibravatar sommerfeld39 hours2-6/+25
| | | | | | Added logging to $XDG_RUNTIME_DIR/display-toggle.log for debugging. Single swaymsg call for output detection, proper error handling, increased startup delay to 2s.
* fix: focus workspace 1 after laptop-off switchLibravatar sommerfeld39 hours1-0/+1
| | | | | | Sway assigns workspace 1 to laptop, 2 to external on boot. When laptop gets disabled, focus stays on workspace 2. Now explicitly switches to workspace 1 after disabling laptop output.
* fix: fuzzel width and default display modeLibravatar sommerfeld39 hours2-6/+6
| | | | | | fuzzel width is in characters, not pixels — 600 was absurdly wide. Changed default display mode to laptop-off when external connected. Cycle order: laptop-off → side-by-side → mirror → laptop-off.
* fix: use wl-mirror for true display mirroringLibravatar sommerfeld39 hours2-17/+42
| | | | | | | | | The pos 0 0 hack created two independent overlapping outputs, causing workspace duplication and fuzzel rendering across wrong boundaries. Now uses wl-mirror to properly duplicate laptop screen to external display. Script runs at startup (with 'init' arg) and cycles on F7. Added wl-mirror to metapackage, fullscreen window rule for wl-mirror.
* fix: default to mirror mode on multi-monitor startupLibravatar sommerfeld39 hours1-0/+1
| | | | | Place all outputs at pos 0 0 so sway starts in mirror layout instead of side-by-side when external monitor is connected.
* refactor: update nvim autocmds for sway/waybar/makoLibravatar sommerfeld39 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 sommerfeld39 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 sommerfeld39 hours1-0/+18
| | | | | | - Gruvbox dark theme, mono font - Proper [colors] and [border] sections - Replaces rofi for Wayland
* feat: add mako notification daemon configLibravatar sommerfeld39 hours1-0/+21
| | | | | - Gruvbox dark theme with urgency-based colors - Replaces dunst for Wayland
* feat: add waybar status bar configLibravatar sommerfeld39 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 sommerfeld39 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 sommerfeld39 hours1-0/+11
|
* feat: emit OSC 7 CWD for zellij pane/tab inheritanceLibravatar sommerfeld39 hours1-0/+7
|
* chore: commit nvim pack lockfile with plugin revisionsLibravatar sommerfeld39 hours1-1/+220
|
* refactor: audit and fix neovim keybindsLibravatar sommerfeld39 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 sommerfeld39 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 sommerfeld39 hours1-0/+3
|
* chore: set ghostty as default terminalLibravatar sommerfeld39 hours1-1/+1
|
* feat: set block blinking cursor in ghosttyLibravatar sommerfeld39 hours1-0/+5
|
* feat: add minimal ghostty terminal configLibravatar sommerfeld39 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 sommerfeld39 hours1-0/+3
| | | | | Without this override, fonts render disproportionately large on X11 due to DPI auto-detection.
* chore: clean up alacritty minor optionsLibravatar sommerfeld39 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 sommerfeld39 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 sommerfeld39 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 sommerfeld39 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 sommerfeld39 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 sommerfeld39 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 sommerfeld39 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 sommerfeld39 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.