NoSignal-OS/os updates/onbox-skill/SKILL.md
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

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.