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>
40 lines
1.6 KiB
Bash
Executable file
40 lines
1.6 KiB
Bash
Executable file
#!/bin/sh
|
|
# install-launcher-fix.sh — make Super+Space reliably open and KEEP the app
|
|
# launcher open. Idempotent.
|
|
#
|
|
# Bug: omarchy-keys binds `Super, Space -> global, caelestia:launcher`. But caelestia
|
|
# runs a custom `global` submap where `bindin = Super, catchall ->
|
|
# launcherInterrupt` fires on ANY key pressed with Super — including Space. The
|
|
# native launcher toggles on RELEASE only `if (!launcherInterrupted)`, so the
|
|
# Space that opens it also trips the interrupt and it won't stay.
|
|
#
|
|
# Fix: open the launcher via the drawer-toggle IPC directly, which is
|
|
# independent of the launcherInterrupted state machine.
|
|
set -eu
|
|
|
|
HYPRUSER="$HOME/.config/caelestia/hypr-user.conf"
|
|
MARK='launcher-fix: Super+Space via drawers IPC'
|
|
|
|
if [ ! -f "$HYPRUSER" ]; then
|
|
echo "NOTE: $HYPRUSER not found — rebind Super+Space manually."
|
|
elif grep -qF "$MARK" "$HYPRUSER"; then
|
|
echo ":: Super+Space already fixed in $HYPRUSER"
|
|
else
|
|
cat >> "$HYPRUSER" <<'EOF'
|
|
|
|
# >>> launcher-fix: Super+Space via drawers IPC >>>
|
|
# Toggle the launcher drawer directly (bypasses caelestia's launcherInterrupt,
|
|
# which Space trips via the `Super, catchall` interrupt bind). Native Super-tap
|
|
# still opens the launcher as before.
|
|
unbind = Super, Space
|
|
bind = Super, Space, exec, qs -c caelestia ipc call drawers toggle launcher # Launch apps
|
|
# <<< launcher-fix: Super+Space via drawers IPC <<<
|
|
EOF
|
|
echo ":: rebound Super+Space -> drawers toggle launcher"
|
|
fi
|
|
|
|
if command -v hyprctl >/dev/null 2>&1 && hyprctl version >/dev/null 2>&1; then
|
|
hyprctl reload >/dev/null 2>&1 && echo ":: reloaded Hyprland"
|
|
fi
|
|
|
|
echo "Done. Super+Space opens the launcher and it stays open."
|