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>
61 lines
2.5 KiB
Markdown
Executable file
61 lines
2.5 KiB
Markdown
Executable file
# NoSignal — system polish bundle
|
|
|
|
Three small quality-of-life pieces in one bundle.
|
|
|
|
## A. Menu cleanup + working printing
|
|
|
|
**Hidden launcher entries** (per-user `Hidden=true` overrides in
|
|
`~/.local/share/applications/` — survive package upgrades, deleting the
|
|
override restores the entry):
|
|
|
|
| Entry | Why hidden |
|
|
|-------|-----------|
|
|
| `avahi-discover`, `bssh`, `bvnc` | Avahi's bundled mDNS browser tools — diagnostic clutter. **The avahi-daemon itself stays** (needed for `.local` resolution and network printer discovery) |
|
|
| `qv4l2`, `qvidcap` | V4L2 camera test tools |
|
|
| `foot`, `footclient`, `foot-server` | Caelestia's stock terminal; NoSignal uses kitty. Package stays (caelestia-meta dep) — just hidden |
|
|
| `org.gnupg.pinentry-qt`, `-qt5` | GPG PIN dialogs, not launchable apps |
|
|
|
|
**Printing:** the full stack (cups + system-config-printer + avahi) is
|
|
installed on the base but `cups.service` was disabled — so printing silently
|
|
didn't work. The installer enables **`cups.socket`** (socket-activated: zero
|
|
cost until something prints). Print dialogs and `system-config-printer` then
|
|
work, with network printers auto-discovered via avahi.
|
|
|
|
## B. Web-app installer
|
|
|
|
The piece of Omarchy's app story not covered by the software-install and keybinding components:
|
|
|
|
```sh
|
|
nosignal-webapp-install "WhatsApp" https://web.whatsapp.com https://example.com/icon.png
|
|
nosignal-webapp-remove "WhatsApp"
|
|
```
|
|
|
|
Creates a launcher entry running `chromium --app=<url>` (no tabs/omnibox —
|
|
feels like a native app). Icon URL optional (generic web icon otherwise).
|
|
Icons live in `~/.local/share/applications/icons/`.
|
|
|
|
## C. First-login welcome
|
|
|
|
`nosignal-welcome` (started by `exec-once` in `hypr-user.conf`) shows one
|
|
notification on first login pointing at the discoverability keys —
|
|
`Super+K` keybindings, `Super+Space` launcher, `Super+I` software,
|
|
`Super+Ctrl+H` monitors — then stamps
|
|
`~/.local/state/nosignal/welcomed` and never appears again. (Remove the stamp
|
|
to see it again.)
|
|
|
|
## Install
|
|
|
|
```sh
|
|
sh ~/Downloads/system-polish/install-system-polish.sh # sudo only for cups.socket
|
|
```
|
|
|
|
Also wired into `nosignal-update` as migration `1781240400-system-polish.sh`.
|
|
|
|
## Packaging
|
|
|
|
- Bake the hidden-entry overrides into the user skeleton, enable
|
|
`cups.socket` in the image (`systemctl enable cups.socket`), ship the three
|
|
scripts in `~/.local/bin`, and put the welcome `exec-once` in the baked
|
|
`hypr-user.conf` (don't pre-create the stamp!).
|
|
- Optionally pre-seed a couple of web apps (e.g. YouTube, WhatsApp) by
|
|
running `nosignal-webapp-install` in the skeleton — keep it minimal.
|