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>
82 lines
4.5 KiB
Markdown
82 lines
4.5 KiB
Markdown
---
|
|
name: nosignal
|
|
description: >-
|
|
How to manage a NoSignal system for its user. Load this whenever you are helping
|
|
the user configure, customize, fix, update, or troubleshoot their NoSignal machine
|
|
(Arch Linux + Hyprland + Caelestia/Quickshell shell + SDDM). Explains the config
|
|
override layer and exactly what is safe to edit, how to change keybinds / monitors
|
|
/ wallpaper / theme, how system updates and snapshots work, how to install
|
|
software, and how to recover the desktop if the shell fails. Read this before
|
|
changing any desktop or system config on a NoSignal box.
|
|
---
|
|
|
|
# NoSignal — system management skill
|
|
|
|
You are managing a **NoSignal** machine on behalf of its user: Arch Linux +
|
|
Hyprland + the Caelestia shell (Quickshell) + SDDM. A "NoSignal layer" of config and
|
|
tooling sits ON TOP of stock Caelestia. Your goal is to help the user safely —
|
|
**read the guardrails below before editing anything.** Full detail is in
|
|
`references/ONBOX-AI-NOTES.md`.
|
|
|
|
## Config layout — where to make changes (and what NOT to touch)
|
|
|
|
- **Edit here:** `~/.config/caelestia/`
|
|
- `hypr-user.conf` — keybinds/rules/exec-once; sourced **last**, so it wins. The
|
|
right place for new binds (`unbind =` works here).
|
|
- `hypr-vars.conf` — `$variables` ($terminal, gaps, blur…); sourced before binds.
|
|
- `shell.json` / `shell-tokens.json` — shell appearance/behaviour.
|
|
- Deleting any of these restores stock behaviour.
|
|
- **Do NOT touch:**
|
|
- `~/.config/hypr` is a **symlink** into the dotfiles clone — never replace it with
|
|
a copy, never edit the clone's `hyprland.conf`. Use `hypr-user.conf`.
|
|
- **Never create `~/.config/quickshell/caelestia`.** The shell runs from
|
|
`/etc/xdg/quickshell/caelestia` with NoSignal patches re-applied by pacman hooks;
|
|
a user copy shadows it and silently drops those patches.
|
|
|
|
## Common tasks
|
|
|
|
- **Keybinds:** add to `hypr-user.conf`; the `Super+K` cheatsheet is generated from
|
|
`~/.local/share/nosignal/NoSignal-keybindings.md` (`nosignal-keybinds-gen`) — keep
|
|
it in sync. Layout follows Omarchy defaults (Super+Return terminal, Super+W close,
|
|
Super+Space launcher, Super+Grave overview, Super+C/V universal copy/paste, Print =
|
|
region screenshot, Super+I Shelly store).
|
|
- **Monitors:** use `hyprmoncfg` (`Super+Ctrl+H`, TUI). It writes
|
|
`~/.config/hypr/monitors.conf` (sourced by hypr-user.conf); keep the `source =`
|
|
lines. `hyprmoncfgd` (user unit) applies profiles live on save.
|
|
- **Wallpaper / theme:** `caelestia wallpaper -f <file>` (or the UI). The Material
|
|
colour scheme is generated FROM the wallpaper. The SDDM greeter does NOT
|
|
auto-follow — run **`sudo sddm-theme-sync`** after a wallpaper change.
|
|
- **System updates:** **`nosignal-update`** = snapper snapshot → `yay -Syu` → run new
|
|
migrations (tracked in `~/.local/state/nosignal/applied` — don't re-run by hand).
|
|
- **Installing software:** `yay` for AUR; **Shelly** (`shelly-ui`, Super+I) is the
|
|
GUI store (repos + AUR + Flathub, preconfigured). Settings → **Additions** installs
|
|
curated optional apps (DeckShift, Spotify, Once, Obsidian, OBS, Claude Code, Codex,
|
|
opencode). NOTE: some Additions apps (e.g. **Once**) need the **Docker daemon** —
|
|
if one errors with "Cannot connect to the Docker daemon", enable it:
|
|
`sudo systemctl enable --now docker.socket` (and add the user to the `docker` group
|
|
to avoid sudo).
|
|
- **Gaming mode:** OPT-IN. `sh ~/deckshift/deckshift.sh` then the deckshift-login
|
|
installer; `Super+Shift+S` enters the gamescope/Steam session, `Super+Shift+R`
|
|
returns. `[multilib]` is enabled.
|
|
- **Firewall:** `ufw`, enabled with Omarchy defaults — quiet; check `sudo ufw status`.
|
|
|
|
## Recovery / troubleshooting
|
|
|
|
- **Shell fails at login** (wallpaper but no bar): reproduce from a TTY with
|
|
`qs -c caelestia -n` (`WAYLAND_DISPLAY=wayland-1`) to get the QML error chain;
|
|
suspect the shell page patches first.
|
|
- **System broken after an update:** every pacman transaction makes a Btrfs/snapper
|
|
snapshot; snapshots are **bootable** from the Limine menu. Worst case: reboot →
|
|
pick an earlier snapshot.
|
|
- **Don't remove `fish`** — required by caelestia-meta even though bash is the login
|
|
shell.
|
|
|
|
## Reference files (bundled)
|
|
|
|
`references/ONBOX-AI-NOTES.md` (full system briefing) and
|
|
`references/NoSignal-keybindings.md` (keybind reference). On a live install the
|
|
originals are in `~/.local/share/nosignal/`.
|
|
|
|
> Note: development and release-engineering concerns are **out of scope** for
|
|
> this skill — it is focused on managing the user's installed system, not on
|
|
> building or releasing the distribution.
|