Beta

gardm

Display Manager

A system-level display manager with a graphical greeter. gardm manages user login sessions with a clean, modern interface and seamless integration with the gar desktop.

gardm screenshot 1200 × 700

Features

  • Graphical greeter with modern UI
  • PAM-based authentication
  • Session selection (X11 and Wayland)
  • Multi-user support
  • Auto-login capability
  • Systemd service integration
  • Configurable theming
  • User avatar support
  • Last session memory
  • Accessible design

Installation

bash
$ curl -fsSL https://gar.dev/install.sh | bash -s -- --component=gardm

Or use the universal installer to install all components.

Configuration

config.toml
# /etc/gardm/config.toml

[general]
# Default session to launch
default_session = "gar"

# Auto-login (use with caution)
auto_login = false
auto_login_user = ""

[greeter]
# Background image
background = "/usr/share/gardm/backgrounds/default.png"

# Theme colors
background_color = "#14171e"
foreground_color = "#abb2bf"
accent_color = "#61afef"

# Font settings
font = "Inter"
font_size = 14

[sessions]
# Session directories to scan
dirs = [
  "/usr/share/xsessions",
  "/usr/share/wayland-sessions"
]

[security]
# Minimum UID to display
min_uid = 1000

# Maximum UID to display
max_uid = 65534

# Hide users matching these shells
hide_shells = ["/usr/sbin/nologin", "/bin/false"]

Architecture

gardm consists of two components:

gardmd

The daemon process that runs as root, managing X server startup, user sessions, and authentication.

gardm-greeter

The graphical login interface that runs as a dedicated user, communicating with the daemon via IPC.

Installation

Note: gardm requires system-wide installation and root privileges. Test in a VM or with TTY backup access.

After installation, enable gardm as your display manager:

$ sudo systemctl disable gdm sddm lightdm # Disable current DM
$ sudo systemctl enable gardm
$ sudo reboot

Files

  • /usr/bin/gardmd Display manager daemon
  • /usr/bin/gardm-greeter Graphical greeter
  • /etc/gardm/config.toml Configuration file
  • /etc/pam.d/gardm PAM configuration
  • /usr/lib/systemd/system/gardm.service Systemd service