| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
| |
Place all outputs at pos 0 0 so sway starts in mirror layout
instead of side-by-side when external monitor is connected.
|
| |
|
|
|
|
| |
Combines and replaces x-base, x-de, and x-extra metapackages.
Includes sway, waybar, fuzzel, mako, swaylock, grim, slurp,
wf-recorder, imv, wl-clipboard, ghostty, and desktop apps.
|
| |
|
|
|
| |
- linkhandler: sxiv → imv for image display
- wqr: feh → imv for QR display, SVG → PNG output for stdin compat
|
| |
|
|
|
| |
- Replace ffmpeg x11grab with wf-recorder for Wayland
- wf-recorder auto-detects output and uses pipewire
|
| |
|
|
|
| |
- linkhandler, videowrapper, togreta, tokodi, wqr: xclip -o → wl-paste
- rqr: xclip -selection clipboard -f → wl-copy
|
| |
|
|
|
|
|
|
|
| |
- 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)
|
| |
|
|
|
|
|
| |
- Add sway keybinds section to KEYBINDS.md
- Update cross-tool conflict matrix with sway column
- Add sway architecture to copilot instructions
- Mark old X11 configs as legacy
|
| |
|
|
|
| |
- Replace bspwm/polybar/dunst auto-restart with sway/waybar/mako
- Use SIGUSR2 for waybar reload, swaymsg reload for sway
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
| |
- Gruvbox dark theme, mono font
- Proper [colors] and [border] sections
- Replaces rofi for Wayland
|
| |
|
|
|
| |
- Gruvbox dark theme with urgency-based colors
- Replaces dunst for Wayland
|
| |
|
|
|
| |
- Gruvbox dark themed bar replacing polybar
- Modules: workspaces, cpu, memory, temperature, network, battery, pulseaudio, clock, tray
|
| |
|
|
|
|
|
|
|
| |
- 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
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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.
|
| | |
|