Files
debianito-post-install/docs/desktops_display.md
T
stornic56 d8878b67e1 Displays managers & zram menu
- LightDM Overhaul: Rewrote `install_lightdm()` logic to verify both lightdm and lightdm-gtk-gtk-greeter-settings. Now installs the trio in a single command if missing, skipping only when fully present. Added "Enable autologin" option modifying `/etc/lightdm/lightdm.conf` with robust `sed` patterns for `SUDO_USER`. Fixed missing `debconf-set-selections` to ensure LightDM is set as default during installation.
- GDM3 Implementation: Created a new sub-menu in `modules/desktop_display.sh` allowing independent installation of GDM3, User List toggle (hide/show), Autologin configuration via `/etc/gdm3/daemon.conf`, and conditional "Force Enable Wayland on NVIDIA" for Debian 12/13 using udev symlinks.
- SDDM Integration: Added SDDM as option 3 in the Display Manager menu. Implemented automatic session detection (Wayland > X11) to populate `/etc/sddm.conf.d/autologin.conf` without user input, defaulting to plasmawayland, lxqt-wayland, or generic fallbacks.
- greetd support: Added conditional support for Debian 12 and 13 only. Implemented sub-menu with base install, recommended `tuigreet` (with backports handling for Bookworm), and other manual setup options (`gtkgreet`, `nwg-hello`, `wlgreet`) exclusive to Trixie. 
- ZRAM UX Improvements: Updated descriptions in `modules/zram.sh` to explicitly mention I/O reduction and responsiveness benefits for low-RAM systems (e.g., 4GB). Cleaned up compression algorithm labels (`lz4`, `zstd`) to remove redundancy in menu values.
- General Code Quality: Standardized all user-facing messages to English across modules. Ensured independent package installation checks prevent script abortion if one DM fails, while maintaining strict error handling for system configurations.
- update docs and readme
2026-07-16 01:02:51 -05:00

7.1 KiB

Option 12: Desktop & Display

1. What does this component do?

This component manages display managers (the login screen you see before entering your desktop). It allows users to install and configure LightDM, GDM3, SDDM, or greetd. It handles autologin setup, user list visibility toggles, and a specific Wayland override for NVIDIA GPUs. Currently, Desktop Environment management is marked as "Coming Soon".

2. Logical Flow of Execution

The execution logic is divided into five functional blocks:

Block 1 — Display Manager Selection

  • The main menu offers two primary options within Option 12: "Desktop Environment" (currently unavailable) and "Display Manager".
  • Selecting "Display Manager" opens a submenu listing available display managers based on the Debian version.
  • 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.