NoSignal-OS/os updates/display-manager-sddm/README.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

3.2 KiB
Executable file

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-server for 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, enables sddm.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-server if using the X11 greeter, OR weston if using the Wayland greeter — pick one). Remove greetd, greetd-tuigreet, greetd-agreety from the image package list (or keep as fallback).
  • Services: enable sddm.service instead of greetd.service in the image.
  • Greeter display server (decision):
    • X11 greeter (this component's default): most reliable, but adds xorg-server to an otherwise Wayland-only image.
    • Wayland greeter: keeps the image X-free — set DisplayServer=wayland + [Wayland] CompositorCommand=weston --shell=kiosk and add weston.
  • Session default: ensure hyprland-uwsm.desktop is the preferred desktop session (uwsm launch — matches the old greetd --cmd). Don't let plain hyprland.desktop win.
  • 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.conf with [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 flips Session= 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's gaming-session-switch to 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.