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> |
||
|---|---|---|
| .. | ||
| install-display-manager-sddm.sh | ||
| README.md | ||
| sddm-10-nosignal.conf | ||
display-manager-sddm — switch greetd → SDDM (for DeckShift gaming mode)
DeckShift's desktop↔gaming-mode switching is built on SDDM: switch-to-gaming
rewrites SDDM's config to point at the Gamescope/Steam session and restarts SDDM
to auto-log into it (and back). NoSignal ships greetd + tuigreet, which has no
equivalent, so this change replaces the display manager with SDDM.
What it does
- Installs
sddm(+xorg-serverfor the reliable X11 greeter — the Hyprland session stays Wayland; only SDDM's greeter uses X). - Installs
/etc/sddm.conf.d/10-nosignal.conf(X11 greeter, Numlock on, notes on the preferred session). - Disables
greetd.service, enablessddm.service. Takes effect on reboot.
Critical: preserve the uwsm session
greetd launched Hyprland via uwsm:
uwsm start -e -D Hyprland hyprland.desktop. The matching session entry is
/usr/share/wayland-sessions/hyprland-uwsm.desktop ("Hyprland
(uwsm-managed)"). Under SDDM, pick that session, not plain
hyprland.desktop (which runs start-hyprland directly and loses the
uwsm/systemd-managed session caelestia relies on). SDDM remembers the last
session per user.
Install (live)
sh install-display-manager-sddm.sh # sudo; reboot afterwards
To revert: sudo systemctl disable sddm; sudo systemctl enable greetd.
Builder notes — display-manager swap (package + service delta)
This is not a no-delta change. For the ISO:
- Packages: add
sddm(+xorg-serverif using the X11 greeter, ORwestonif using the Wayland greeter — pick one). Removegreetd,greetd-tuigreet,greetd-agreetyfrom the image package list (or keep as fallback). - Services: enable
sddm.serviceinstead ofgreetd.servicein the image. - Greeter display server (decision):
- X11 greeter (this component's default): most reliable, but adds
xorg-serverto an otherwise Wayland-only image. - Wayland greeter: keeps the image X-free — set
DisplayServer=wayland+[Wayland] CompositorCommand=weston --shell=kioskand addweston.
- X11 greeter (this component's default): most reliable, but adds
- Session default: ensure
hyprland-uwsm.desktopis the preferred desktop session (uwsm launch — matches the old greetd--cmd). Don't let plainhyprland.desktopwin. - Login behaviour: greetd here did not autologin (tuigreet prompts).
SDDM keeps a password prompt unless
[Autologin]is set. DeckShift configures its own autologin/session entries on top — let it. - DeckShift autologin (interaction to know about): DeckShift writes
/etc/sddm.conf.d/zz-gaming-session.confwith[Autologin] User=… / Session=hyprland-uwsm / Relogin=true. Once DeckShift runs, this overrides the password prompt — the box boots straight into the desktop, and the desktop↔gaming switch flipsSession=then restarts SDDM (autologin, no greeter). That's the intended Steam-Deck-style behaviour. If the ISO wants a password on normal boots, ship a higher-priority SDDM drop-in or adjust DeckShift'sgaming-session-switchto only autologin while in gaming mode. - Pairs with gaming-enablement (multilib + omarchy-pkg-add). Together these two make NoSignal DeckShift/Steam-Deck capable.
- The base's plymouth/limine boot splash is unaffected.