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>
9.6 KiB
NoSignal OS
A single-script builder that turns a stock Arch Linux ISO into a fully offline installer for a ready-to-use Hyprland desktop: Arch + Hyprland + the caelestia dotfiles/shell, with a themed SDDM login screen that matches the desktop.
Everything needed for the install is bundled on the ISO — a complete pacman repo (every package incl. all GPU driver variants, with the caelestia stack pre-built from the AUR at ISO-build time), the pinned dotfiles, the theme. No internet is needed to install or on first boot: the machine boots straight into the themed login screen and a fully configured desktop.
NoSignal is the ISO builder. It bundles and installs the upstream caelestia dotfiles; it is not affiliated with that project.
⚠️ Experimental — and built to be modified. NoSignal OS is young and opinionated; expect rough edges. It is designed to be reshaped by you: every NoSignal tweak sits in a config-override layer on top of stock caelestia (delete a file to revert one), and the installed system ships an on-box AI guide so you can customise and fix it with Claude Code — see Customising the desktop below.
What you get on the installed system
- Hyprland + caelestia shell (Quickshell), restyled with a restrained flat look (no blur/glassmorphism) and the OS's own Moebius-style wallpaper set (dynamic Material palette generated from the wallpaper).
- Themed SDDM login that mirrors the desktop palette/wallpaper/font
(
sudo sddm-theme-syncre-syncs it after you change wallpaper). - Omarchy-style keybindings —
Super+Kopens a searchable cheatsheet of every bind. UniversalSuper+C/Super+Vcopy/paste,Print= region screenshot,Super+Spacelauncher,Super+Ddashboard/calendar,Super+Graveworkspace overview. - Software story:
yay(AUR), the Shelly GUI store onSuper+I(repos + AUR + Flathub), flatpak preconfigured. - Btrfs + bootable snapshots: every package transaction snapshots (snapper + snap-pac), and each snapshot appears as a bootable entry in the Limine menu (10-second timeout) — roll back a bad update from the boot screen.
nosignal-update: one command for snapshot → package upgrade → layer migrations; a Settings → Updates page shows pending counts.- Gaming (opt-in): the
[multilib]repo is enabled and Omarchy-installer shims are included, so DeckShift-style Steam gaming sessions can be added post-install — including a login fix that keeps a password on cold boots. Not active unless you set it up. - Bluetooth, printing (CUPS + network discovery), power-profiles, zram swap, ufw on, locale/timezone/keymap of your choice.
Customising the desktop (on-box AI guide)
NoSignal OS is meant to be tinkered with, so nothing is locked down. Every
NoSignal change lives in a config-override layer at ~/.config/caelestia/
on top of stock caelestia — edit a file to change behaviour, delete it to fall
back to the default. Updates and rollbacks are safe: nosignal-update snapshots
before every upgrade, and each snapshot is a bootable entry in the Limine menu.
To make changes easy — even if you don't know the internals — the installed system ships an on-box AI skill for Claude Code. It explains exactly what's safe to edit, how to change keybinds / monitors / wallpaper / theme, how updates and snapshots work, how to install software, and how to recover the desktop if the shell ever fails to start.
- Just ask. Run
claudeon a NoSignal machine and it auto-discovers thenosignalskill — say "customise my NoSignal desktop" or "the bar didn't load, fix it" and it reads the guide before touching anything. - Point an assistant at the files directly if you prefer:
~/.claude/skills/nosignal/SKILL.md— the Claude skill (guardrails + tasks)~/.local/share/nosignal/ONBOX-AI-NOTES.md— the full system briefing~/.local/share/nosignal/NoSignal-keybindings.md— the keybinding reference
The skill is strictly for managing your installed system — it carries no build/release tooling, and it always reads the guardrails before editing config.
Build the ISO
The builder runs on an Arch Linux (or Arch-based) host with an internet
connection — it uses pacman, makepkg, and devtools to assemble the offline
package set, so it can't run on a non-Arch distro.
1. Install the build dependencies:
sudo pacman -S --needed git libisoburn squashfs-tools coreutils devtools pacman-contrib
2. Clone this repository and enter it:
git clone https://github.com/28allday/NoSignal-OS.git
cd NoSignal-OS
3. Download a stock Arch Linux ISO into this folder. The filename must start
with archlinux-. Grab the latest from any mirror, e.g.:
curl -LO https://geo.mirror.pkgbuild.com/iso/latest/archlinux-x86_64.iso
(or pick a mirror from https://archlinux.org/download/.)
4. Run the builder:
./nosignal.sh
It downloads the full package closure and builds the AUR pieces in a clean
chroot — allow roughly 15–40 minutes on the first run (you'll be asked for
sudo). Everything is cached in ./offline/, so later rebuilds take a couple of
minutes.
5. Done. nosignal-arch-YYYYMMDD.iso (~4 GB) appears in the folder —
Ventoy-compatible and dd-bootable. Write it to a USB stick and install (see
Install below).
Install
1. Write the ISO to a USB stick. Replace /dev/sdX with your USB device
(check it with lsblk first — this erases the whole stick):
sudo dd if=nosignal-arch-YYYYMMDD.iso of=/dev/sdX bs=4M status=progress conv=fsync
(or just drop the .iso onto a Ventoy USB.)
2. Boot the USB on the target machine — UEFI only (no BIOS/MBR).
3. Follow the installer. It is fully offline (no network questions) and
asks for: hostname, user, password, your region (timezone / locale / keyboard),
and the target disk. It then wipes that disk — 1G EFI + btrfs with
@/@home/@snapshots/@log subvolumes and the Limine bootloader — and runs
a clean, centred progress screen. It erases the chosen disk — back up first.
4. Reboot into the themed SDDM login and your desktop. Connect Wi-Fi from the
desktop's network panel; once you're online, run sudo pacman -Syu one time to
sync the package databases.
GPU detection
The installer auto-detects the GPU(s) and installs the right drivers,
borrowing CachyOS chwd's method (PCI
display-class scan → vendor-id → driver set) but implemented natively, so the
ISO stays vanilla Arch (no CachyOS repos / lib32 / cachyos-kernel deps).
Multiple GPUs union their package sets (e.g. an Intel/AMD iGPU + an NVIDIA
dGPU). All variants are bundled in the offline repo; only the matching subset
is installed.
| Detected | Packages |
|---|---|
NVIDIA (10de) |
nvidia-open-dkms nvidia-utils egl-wayland libva-nvidia-driver nvidia-settings linux-headers + DRM/KMS setup |
AMD (1002) |
mesa vulkan-radeon |
Intel (8086) |
mesa vulkan-intel intel-media-driver |
VM guest (1af4/1b36/1234/15ad/80ee) |
qemu-guest-agent spice-vdagent |
| Unknown | vulkan-swrast (software fallback) |
For NVIDIA it also does the Wayland-critical bits (the same ones chwd does):
early-loads nvidia nvidia_modeset nvidia_uvm nvidia_drm in the initramfs,
drops the kms hook so nouveau doesn't grab the card, sets
nvidia_drm.modeset=1, and writes the EGL/VA env to /etc/environment.
Notes / current limitations
- UEFI only. No BIOS/MBR boot.
- No disk encryption yet.
- NVIDIA uses the open kernel module (
nvidia-open-dkms), which is for Turing and newer (RTX 20-series+). Older Maxwell/Pascal cards would need the proprietary/legacy branch — not yet selected by generation. - The bundled packages are a snapshot from build day — run
sudo pacman -Syuonce online.
Credits
NoSignal OS is a thin builder around excellent upstream work — it bundles, themes, and installs these projects rather than replacing them. Please support the originals. Each remains under its own licence.
- Arch Linux — the base system and live ISO.
- Hyprland — the Wayland compositor.
- caelestia — the desktop dotfiles and shell that define the look and most of the UX. The installed shell is a light soft-fork; the CLI / theming engine is upstream, unchanged.
- Quickshell — the runtime the shell runs on.
- SDDM — the login manager (themed to match).
- Limine, with snapper and snap-pac — bootloader and Btrfs snapshot tooling (bootable snapshots).
- Omarchy — keybinding layout and UX inspiration, and
its prebuilt
[omarchy]package repo for the Limine snapshot tools. - CachyOS
chwd— the GPU-detection method (PCI scan → vendor-id → driver set), reimplemented natively here. - Fonts: JetBrains Mono Nerd Font and Material Symbols.
License
MIT — see LICENSE. The wallpaper art set is the project author's own original work and ships with the ISO under the same licence.