From 48121c013af862be9daca4757beb93f97e021163 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Fri, 17 Apr 2026 10:54:00 +0100 Subject: docs: update keybinds and copilot instructions for sway - 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 --- .github/copilot-instructions.md | 8 +++++-- KEYBINDS.md | 47 ++++++++++++++++++++++++++++++++--------- 2 files changed, 43 insertions(+), 12 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 09b4cce..3019205 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -10,10 +10,14 @@ This is a personal dotfiles repository for an Arch Linux system. Configuration f - `etc/` and `etc2/` contain system-level configs (`/etc/` targets) — systemd units, pacman hooks, sysctl tunables, kernel module loading. - `meta/` contains Arch Linux PKGBUILDs that bundle groups of packages into metapackages (e.g. `sommerfeld-base`, `sommerfeld-dev`). Each subdirectory is a standalone PKGBUILD recipe with a `.SRCINFO` and pre-built `.pkg.tar.zst` artifacts. - `lists/` holds keymap files (e.g. `caps2esc.map`). -- `barscripts/` has polybar status bar scripts (GPU stats). +- `barscripts/` has polybar status bar scripts (GPU stats) — legacy X11, kept for reference. - `firefox/` contains Firefox hardening overrides and custom CSS. - `create-efi.sh` is an interactive EFI boot entry creation script using `efibootmgr`. +## Window manager + +Sway (Wayland compositor, i3-compatible). Config lives in `home/.config/sway/config`. Uses vanilla sway defaults for all standard WM operations with personal keybinds layered on top for media, volume, screenshots, lock screen, notifications, and display mode switching. The status bar is waybar (`home/.config/waybar/`), notifications via mako (`home/.config/mako/config`), and the launcher is fuzzel (`home/.config/fuzzel/fuzzel.ini`). Old X11 configs (bspwm, sxhkd, polybar, rofi, dunst) are kept in the repo for reference but are no longer active. + ## Terminal multiplexer Zellij is the terminal multiplexer. Config lives in `home/.config/zellij/config.kdl`. Most features are built-in defaults (session resurrection, mouse mode, clipboard). The `vim-zellij-navigator` WASM plugin enables seamless Ctrl h/j/k/l navigation between zellij panes and neovim splits (paired with `smart-splits.nvim` on the neovim side). @@ -45,4 +49,4 @@ When editing shell config, all zsh configuration goes in `.config/zsh/` — do n ## Keybinds reference -`KEYBINDS.md` at the repository root documents every non-default keybind across neovim, zellij, zsh, and ghostty. Whenever you add, remove, or change a keybind in any of these tools, you must update `KEYBINDS.md` to reflect the change in the same commit. +`KEYBINDS.md` at the repository root documents every non-default keybind across neovim, zellij, zsh, ghostty, and sway. Whenever you add, remove, or change a keybind in any of these tools, you must update `KEYBINDS.md` to reflect the change in the same commit. diff --git a/KEYBINDS.md b/KEYBINDS.md index 2d52cac..b02c672 100644 --- a/KEYBINDS.md +++ b/KEYBINDS.md @@ -1,6 +1,6 @@ # Custom Keybinds Reference -All non-default keybinds across neovim, zellij, zsh, and ghostty. +All non-default keybinds across neovim, zellij, zsh, ghostty, and sway. ## Neovim @@ -258,12 +258,39 @@ Emacs mode (`bindkey -e`) is the base. ## Cross-tool Shared Keys -| Key | Neovim | Zellij | Zsh | Ghostty | -|-----|--------|--------|-----|---------| -| `Ctrl-h/j/k/l` | Split nav (smart-splits) | Pane nav (vim-zellij-navigator) | — | — | -| `Alt-h/j/k/l` | Treewalker nav | — | — | — | -| `Alt-1..9` | — | Go to tab N | — | — | -| `Alt-t` | — | New tab | — | — | -| `Alt-q` | — | Detach | — | — | -| `Alt-u` | — | — | — | Scroll page up | -| `Alt-d` | — | — | — | Scroll page down | +| Key | Neovim | Zellij | Zsh | Ghostty | Sway | +|-----|--------|--------|-----|---------|------| +| `Ctrl-h/j/k/l` | Split nav (smart-splits) | Pane nav (vim-zellij-navigator) | — | — | — | +| `Alt-h/j/k/l` | Treewalker nav | — | — | — | — | +| `Alt-1..9` | — | Go to tab N | — | — | — | +| `Alt-t` | — | New tab | — | — | — | +| `Alt-q` | — | Detach | — | — | — | +| `Alt-u` | — | — | — | Scroll page up | — | +| `Alt-d` | — | — | — | Scroll page down | — | +| `Super+h/j/k/l` | — | — | — | — | Focus direction | +| `Super+n` | — | — | — | — | Dismiss notification | + +## Sway + +Mod key: `Super` (Mod4). Only personal additions beyond sway defaults listed. + +### Personal keybinds (sway/config) + +| Key | Action | +|-----|--------| +| `XF86AudioRaiseVolume` | Volume +5% | +| `XF86AudioLowerVolume` | Volume -5% | +| `XF86AudioMute` | Mute toggle | +| `Super+m` | Mic mute toggle | +| `Super+Shift+m` | Speaker mute toggle | +| `XF86AudioPlay` | Play/pause | +| `XF86AudioNext` | Next track | +| `XF86AudioPrev` | Previous track | +| `Print` | Region screenshot (grim+slurp) | +| `Shift+Print` | Full screenshot (grim) | +| `Super+Shift+s` | Lock screen + pause media | +| `Super+n` | Dismiss notification | +| `Super+Shift+n` | Dismiss all notifications | +| `Super+Tab` | Next workspace | +| `Super+Shift+Tab` | Previous workspace | +| `F7` | Cycle display mode (mirror/off/side-by-side) | -- cgit v1.2.3-70-g09d2