NoSignal-OS/os updates/omarchy-keys/omarchy-keys-user.conf
28allday 19fd794b6b NoSignal — fully-offline Arch → Hyprland desktop installer
Single-script builder (nosignal.sh) that turns a stock Arch Linux ISO into a
fully-offline installer for a themed Hyprland + caelestia (Quickshell) desktop:
matching SDDM greeter, Btrfs/Limine bootable snapshots, chwd-style GPU
detection, and a curated "os updates" layer (keybind cheatsheet, settings
panels, system polish, on-box management skill). See README.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-21 11:03:10 +01:00

83 lines
5 KiB
Text

# NoSignal: Omarchy default keybindings — unbinds + extra binds.
# Appended to ~/.config/caelestia/hypr-user.conf (parsed last, so unbind here
# removes binds defined earlier in keybinds.conf).
# Toggle group on Super+G (Omarchy). Super+G was GitHub Desktop (hardcoded),
# Super+Comma was toggle group — GitHub Desktop moves to Super+Shift+G.
unbind = Super, G
unbind = Super, Comma
bind = Super, G, togglegroup
bind = Super+Shift, G, exec, app2unit -- github-desktop
# Clear notifications on Super+Shift+Comma (Omarchy: dismiss all). That key
# was group-lock, which is dropped. Ctrl+Alt+C still works as an alias.
unbind = Super+Shift, Comma
bindl = Super+Shift, Comma, global, caelestia:clearNotifs
# Music on Super+Shift+M (Omarchy). The mute alias on that key is dropped —
# XF86AudioMute still mutes. Super+M also still toggles music.
unbind = Super+Shift, M
bind = Super+Shift, M, exec, caelestia toggle music
# Alt+Tab cycles windows (Omarchy); group cycling moved to Super+Alt+Tab.
bind = Alt, Tab, cyclenext,
bind = Alt, Tab, bringactivetotop,
bind = Shift+Alt, Tab, cyclenext, prev
bind = Shift+Alt, Tab, bringactivetotop,
# Workspace cycling on Super+Tab (Omarchy). The overview sidecar that lived
# on Super+Tab moves to Super+Grave (the installer edits that existing bind).
bind = Super, Tab, workspace, e+1
bind = Super+Shift, Tab, workspace, e-1
bind = Super+Ctrl, Tab, workspace, previous
# Move window to workspace 1-10 on Super+Shift+number (Omarchy). Bound by
# keycode, not keysym — the shifted number row produces symbols on the GB
# layout. The old Super+Alt+number binds keep working as aliases.
bind = Super+Shift, code:10, exec, $wsaction movetoworkspace 1
bind = Super+Shift, code:11, exec, $wsaction movetoworkspace 2
bind = Super+Shift, code:12, exec, $wsaction movetoworkspace 3
bind = Super+Shift, code:13, exec, $wsaction movetoworkspace 4
bind = Super+Shift, code:14, exec, $wsaction movetoworkspace 5
bind = Super+Shift, code:15, exec, $wsaction movetoworkspace 6
bind = Super+Shift, code:16, exec, $wsaction movetoworkspace 7
bind = Super+Shift, code:17, exec, $wsaction movetoworkspace 8
bind = Super+Shift, code:18, exec, $wsaction movetoworkspace 9
bind = Super+Shift, code:19, exec, $wsaction movetoworkspace 10
# Remaining Omarchy keys mapped onto their NoSignal equivalents.
bind = Super, P, pseudo, # Pseudo window
bind = Super, J, layoutmsg, togglesplit # Toggle window split (Hyprland 0.54+ needs layoutmsg)
bind = Super, Space, exec, qs -c caelestia ipc call drawers toggle launcher # Launch apps (Super-tap still works; exec form bypasses caelestia's launcherInterrupt)
bind = Super, K, exec, ~/.local/bin/nosignal-keybinds # Show key bindings
bind = Super+Shift, B, exec, app2unit -- $browser # Browser (Omarchy alias)
bind = Super+Ctrl, E, exec, pkill fuzzel || caelestia emoji -p # Emoji picker
bind = Super+Ctrl, V, exec, pkill fuzzel || caelestia clipboard # Clipboard manager
bind = Super+Ctrl, A, exec, app2unit -- pavucontrol # Audio controls
bind = Super+Ctrl, T, exec, caelestia toggle sysmon # Activity (system monitor)
bind = Super, Print, exec, hyprpicker -a # Color picker
bindl = Ctrl+Alt, Delete, global, caelestia:session # Session menu (old key kept as alias)
# Super+D toggles the dashboard (calendar + widgets), previously hover-only.
# Super+D was the communication special-workspace toggle ($kbCommunication) —
# moved to Super+Shift+D so nothing is lost.
unbind = Super, D
bind = Super, D, exec, qs -c caelestia ipc call drawers toggle dashboard # Dashboard / calendar
bind = Super+Shift, D, exec, caelestia toggle communication # Communication workspace (moved from Super+D)
# Gaming Mode on Super+Shift+S — enters the DeckShift gamescope session IF it is
# installed; otherwise does NOTHING. Self-guards on the gaming session file +
# switch-to-gaming helper (DeckShift's opt-in install provides both), so the key
# is safe to bind unconditionally in the base. Replaces caelestia's Super+Shift+S
# screenshot-freeze — region shots stay on Print / Shift+Print / Super+Shift+Alt+S.
# Exit Gaming Mode from inside the session (Super+Shift+R, or Steam > Exit to Desktop).
unbind = Super+Shift, S
bind = Super+Shift, S, exec, sh -c '[ -x /usr/local/bin/switch-to-gaming ] && [ -f /usr/share/wayland-sessions/gamescope-session-steam-nm.desktop ] && exec /usr/local/bin/switch-to-gaming'
# Robust shell restart (see component shell-restart-fix). Stock caelestia binds
# Ctrl+Super+Alt+R to `qs -c caelestia kill; sleep .1; caelestia shell -d` — the
# fixed 100ms sleep often relaunches before the old instance releases its single-
# instance lock, so the shell doesn't fully come back. Wait until the old instance
# stops answering IPC (it's gone), up to ~5s, then relaunch detached.
unbind = Ctrl+Super+Alt, R
bindr = Ctrl+Super+Alt, R, exec, sh -c 'qs -c caelestia kill 2>/dev/null; for i in $(seq 1 50); do qs -c caelestia ipc show >/dev/null 2>&1 || break; sleep 0.1; done; setsid caelestia shell -d'