Files
debianito-post-install/docs/desktops_display.md
T
stornic56 53088aad4b Docs Update
- ZRAM Scaling (docs/QUICKSTART.md): Updated Step 9 with the current fixed-4096MB formula: `≤8 GB → 50%`, `>8 GB → 4096 MB fixed`. Replaced obsolete `ram_gb > 16 ? 25% : 50%` and `/4` vs `/2` logic with the new behavior (`ram_gb <= 8 ? 50% : 4096 MB`). Examples: 4GB → 2048 MB, 8GB → 4096 MB, 16GB → 4096 MB, 32GB → 4096 MB.

- GPU Configuration (docs/gpu.md): Added AMD GCN Migration subsection with duplicate guard (`content_differs-style` check) and sed fix logic. Added Secure Boot warning for NVIDIA DKMS (`mokutil --sb-state` detection). Documented `|| return 1` protection for `/etc/modprobe.d/nvidia-wayland.conf` writing. Renumbered duplicate sections 7 → 8 → 9 to avoid duplicate headings.

- Firmware Installation (docs/firmware.md): Updated Broadcom section with `_run_cmd` wrappers (`|| true`) for `apt install broadcom-sta-dkms` and `modprobe wl`. Added SSH network warning (`WARNING: SSH is not recommended on a router`) before `modprobe -r`. Updated Initramfs step with `_run_cmd` wrapper (`|| true`).

- Repo Configuration (docs/repos_config.md): Removed `REPOS_CONFIGURED=true` from the POST-EXECUTION PHASE diagram and Safety Mechanisms. Added `_write_branch_sources` with its `_restore_backup` rollback and "Branch Migration Rollback" safety note to the diagram.

- System Info & Pre-flight (docs/system_info.md): Added pre-flight init (auto-install whiptail + lsb-release). Added LSPCI_OUTPUT cache with `command -v lspci` guard. Added `_ensure_apt_updated` deduplication helper. Added `STATE_REFRESHED=true` flag mechanism across all menu branches.

- User Home Ownership (docs/user_priv_feed.md): Updated Option 3 (Repair Home Ownership) to use `getent passwd "${SUDO_USER:-$USER}"` instead of the insecure `eval echo "~$USER"` pattern. Added documentation note explaining the security rationale.

- QuickStart ZRAM (docs/QUICKSTART.md): Updated Step 9 ZRAM scaling to "50% of RAM (≤8 GB) or 4096 MB fixed (>8 GB)".
2026-09-12 16:53:10 -05:00

7.3 KiB

Option 13: Desktop & Display

1. What does this component do?

This component manages both desktop environments and display managers. Desktop Environment installs XFCE/LXDE with polkit integration; Display Manager handles LightDM, GDM3, SDDM, and greetd (login screens). It handles autologin setup, user list visibility toggles, and a specific Wayland override for NVIDIA GPUs. Desktop Environment management supports XFCE (full / minimal / Wayland labwc on Trixie / custom) and LXDE (full / core), with polkit rules for suspend/backlight.

2. Logical Flow of Execution

The execution logic is divided into five functional blocks:

Block 1 — Desktop & Display Menu

  • The main menu (manage_desktop_display in desktop_display.sh) offers two primary options: 1 Desktop Environment and 2 Display Manager (plus 3 Back to main menu).
  • Desktop Environment opens desktop_environment_menu — XFCE or LXDE.
  • Display Manager opens display_manager_menu — LightDM, GDM3, SDDM, and greetd (12/13 only).
  • Available Managers:
    • LightDM (available on all Debian versions).
    • GDM3 (available on all Debian versions).
    • SDDM (available on all Debian versions).
    • greetd (available only on Debian 12 and 13).
  • Each selected manager opens its own dedicated configuration submenu.

Block 2 — LightDM Configuration

  • A checklist menu presents three options:
    1. Install LightDM + GTK Greeter (auto-selects the display manager via debconf-set-selections).
    2. Enable user list at login screen (writes greeter-hide-users=false to a configuration file in .conf.d).
    3. Enable autologin for current user (uncomments autologin-user and sets timeout to 0 in the main config).
  • Idempotency: The script checks if lightdm and lightdm-gtk-greeter-settings are already installed before attempting installation, skipping redundant steps.

Block 3 — GDM3 Configuration

  • A checklist menu presents up to four options:
    1. Install/Reinstall gdm3 (auto-selects via debconf).
    2. Toggle user list visibility (toggles disable-user-list in greeter.dconf-defaults).
    3. Configure autologin (prompts for a username via whiptail inputbox to set in daemon.conf).
    4. Force Enable Wayland on NVIDIA (Bookworm/Trixie + NVIDIA only).
      • Mechanism: Creates or removes a symlink: /etc/udev/rules.d/61-gdm.rules/dev/null.
      • Purpose: This disables the udev rule that blocks GDM from using Wayland on NVIDIA GPUs.
      • Risk Warning: Displays a warning that this may break graphics or cause instability.
      • Toggle Behavior: If the symlink exists, removing it reverts to default behavior; if not present, creating it enables the override.

Block 4 — SDDM Configuration

  • A submenu offers two options:
    1. Install SDDM (auto-selects via debconf).
    2. Enable Autologin:
      • Session Detection: Auto-detects the installed session by checking .desktop files in priority order: plasmawaylandlxqt-waylandplasmalxqt.
      • Configuration: Writes autologin settings to /etc/sddm.conf.d/autologin.conf.
      • Fallback: If no session is found, it enables autologin but warns that SDDM will use the default session.

Block 5 — greetd Configuration

  • greetd is a minimal, modern display manager designed for Wayland environments.
  • Submenu options vary by Debian version:
    • All Versions: Install base greetd, Install greetd + tuigreet (recommended TUI greeter).
    • Debian 13 only: Additional options to install gtk-greet, nwg-hello, or wlgreet.
  • Backports Handling: On Bookworm, tuigreet is installed from backports if not enabled.
  • Important Warning: greetd is installed but NOT configured by the script. The user must manually create /etc/greetd/config.toml to be able to log in. The script displays a warning with references to man pages for configuration details.

3. Smart Automations

The component utilizes several intelligent automation features:

  • debconf-set-selections: Pre-selects the display manager as default before apt install, preventing the interactive "Configuring shared/default-x-display-manager" dialog that would otherwise pause the script execution.
  • Session Auto-Detection (SDDM): Checks .desktop files in priority order (Wayland first, then X11) to set the correct session type for autologin configuration.
  • Wayland Toggle: Creates or removes a udev rule symlink to /dev/null. This is a known workaround that disables the GDM rule blocking NVIDIA Wayland support.
  • greetd Backports: On Bookworm, tuigreet is installed from backports (newer version) if not already enabled in the system.
  • Manual Config Warning: The script explicitly informs users that greetd requires manual configuration and points to man pages for further details.
  • User Detection: Uses SUDO_USER (the real user who ran sudo) instead of $USER (which is root during script execution). This ensures the correct user is set for automatic login across all display managers.

4. Packages and Resources Managed

Display Manager Packages:

DM Packages Debian Versions
LightDM lightdm, lightdm-gtk-greeter, lightdm-gtk-greeter-settings All
GDM3 gdm3 All
SDDM sddm All
greetd (base) greetd 12, 13
greetd + tuigreet greetd, tuigreet 12 (backports), 13
greetd + gtk-greet greetd, gtk-greet 13 only
greetd + nwg-hello greetd, nwg-hello 13 only
greetd + wlgreet greetd, wlgreet 13 only

Configuration Files Modified:

DM File Path Configuration Purpose
LightDM /etc/lightdm/lightdm.conf.d/50-debianito-userlist.conf User list visibility toggle
LightDM /etc/lightdm/lightdm.conf Autologin user + timeout settings
GDM3 /etc/gdm3/greeter.dconf-defaults User list toggle (disable-user-list)
GDM3 /etc/gdm3/daemon.conf Autologin user and enable flag
GDM3 /etc/udev/rules.d/61-gdm.rules Wayland override (symlink to /dev/null)
SDDM /etc/sddm.conf.d/autologin.conf Autologin user + session type

Session Detection Priority (SDDM Autologin):

Priority Session File Session Type
1 /usr/share/wayland-sessions/plasmawayland.desktop KDE Wayland
2 /usr/share/wayland-sessions/lxqt-wayland.desktop LXQt Wayland
3 /usr/share/xsessions/plasma.desktop KDE X11
4 /usr/share/xsessions/lxqt.desktop LXQt X11

⚠️ Warning: Wayland on NVIDIA: The "Force Enable Wayland on NVIDIA" option creates a symlink that disables the GDM udev rule. This is a known workaround but MAY cause graphics instability or breakage. To revert, remove /etc/udev/rules.d/61-gdm.rules.

⚠️ Warning: greetd: Unlike other display managers, greetd is installed but NOT configured by this script. You MUST manually create /etc/greetd/config.toml before you can log in. See man greetd and man 5 greetd-sessions for configuration details.

⚠️ Warning: Autologin: All autologin configurations use SUDO_USER (the user who ran sudo) instead of $USER (which is root during script execution). This ensures the correct user is set for automatic login.

💡 Technical Note: debconf-set-selections pre-selects the display manager before apt install, preventing the interactive "Configuring shared/default-x-display-manager" dialog that would otherwise pause the script.