βββββββ ββββββ ββββ ββββββ βββ βββββββ βββββββ βββββββββββββββββββββββββ
βββββββββββββββββββββ ββββββ ββββββββββββ βββββββββββββββββββββββββββββββββ
βββ βββββββββββββββββ ββββββββββ βββ ββββββββββββββββββ ββββββ βββ
βββ ββββββββββββββββββββββββββββ βββ βββββββββββββββββ ββββββ βββ
βββββββββββ ββββββ βββββββββ βββββββββββββββ βββββββββββββββββββ βββ
βββββββ βββ ββββββ ββββββββ βββ βββββββ βββ βββββββββββββββββββ βββ
Installation
Installation Methodsβ
If DMS or another DankLinux package is already installed, the repository is already configured. The simplest option is:
dms greeter install
This installs the package and handles all configuration automatically.
Distro Installationβ
Arch & Derivativesβ
paru -S greetd-dms-greeter-git
Fedora & CentOSβ
sudo dnf copr enable avengemedia/danklinux
sudo dnf install dms-greeter
The dms-greeter RPM installs /usr/lib/sysusers.d/dms-greeter.conf so the greeter user is recreated from /usr on every boot. That matters on Fedora Atomic, Universal Blue, bootc, and other ostree systems where install-time useradd in /etc/passwd may not persist.
Debian & Ubuntuβ
Debianβ
Packages are published on OBS for Debian 13 (Trixie), Debian Testing, and Debian Sid.
Select your release:
- Debian 13 (Trixie)
- Debian Testing
- Debian Sid
curl -fsSL https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/Debian_13/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/danklinux.gpg
echo "deb [signed-by=/etc/apt/keyrings/danklinux.gpg] https://download.opensuse.org/repositories/home:/AvengeMedia:/danklinux/Debian_13/ /" | \
sudo tee /etc/apt/sources.list.d/danklinux.list
sudo apt update
sudo apt install dms-greeter
curl -fsSL https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/Debian_Testing/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/danklinux.gpg
echo "deb [signed-by=/etc/apt/keyrings/danklinux.gpg] https://download.opensuse.org/repositories/home:/AvengeMedia:/danklinux/Debian_Testing/ /" | \
sudo tee /etc/apt/sources.list.d/danklinux.list
sudo apt update
sudo apt install dms-greeter
curl -fsSL https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/Debian_Unstable/Release.key | \
sudo gpg --dearmor -o /etc/apt/keyrings/danklinux.gpg
echo "deb [signed-by=/etc/apt/keyrings/danklinux.gpg] https://download.opensuse.org/repositories/home:/AvengeMedia:/danklinux/Debian_Unstable/ /" | \
sudo tee /etc/apt/sources.list.d/danklinux.list
sudo apt update
sudo apt install dms-greeter
Ubuntuβ
Ubuntu 26.04 LTS+ (Resolute Raccoon) is supported via Launchpad PPA.
sudo add-apt-repository ppa:avengemedia/danklinux
sudo apt update
sudo apt install dms-greeter
openSUSE & Derivativesβ
DankGreeter is available through the Open Build Service (OBS) for OpenSUSE Tumbleweed, Leap 16/16.1, and Slowroll.
Select your distribution:
- Tumbleweed
- Leap 16
- Leap 16.1
- Slowroll
sudo zypper addrepo https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/openSUSE_Tumbleweed/home:AvengeMedia:danklinux.repo
sudo zypper refresh
sudo zypper install dms-greeter
sudo zypper addrepo https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/16.0/home:AvengeMedia:danklinux.repo
sudo zypper refresh
sudo zypper install dms-greeter
sudo zypper addrepo https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/16.1/home:AvengeMedia:danklinux.repo
sudo zypper refresh
sudo zypper install dms-greeter
sudo zypper addrepo https://download.opensuse.org/repositories/home:AvengeMedia:danklinux/openSUSE_Slowroll/home:AvengeMedia:danklinux.repo
sudo zypper refresh
sudo zypper install dms-greeter
Void Linuxβ
Void packages are pending submission to the official void-packages repository. Until they are merged upstream, you can install them from our self-hosted custom XBPS repositories or build them from source.
- DMS-Hosted Repository
- Build from Source
echo "repository=https://avengemedia.github.io/DankLinux/current" | sudo tee /etc/xbps.d/danklinux.conf
sudo xbps-install -Su
sudo xbps-install -S dms-greeter
On the first sync, xbps-install will output our signing key fingerprint and ask you to type y to trust and import it. Verify that the key matches our official signing fingerprint.
If you prefer to build from source using xbps-src:
# Set up the Void packages tree (one time)
git clone --depth 1 https://github.com/void-linux/void-packages.git
cd void-packages
./xbps-src binary-bootstrap
# Copy in the templates (adjust paths as needed)
cp -R ../DankLinux/distro/void/srcpkgs/dms-greeter* srcpkgs/
# Build the package
./xbps-src pkg dms-greeter
# Install the results
sudo xbps-install --repository=hostdir/binpkgs dms-greeter
After installation, proceed to Completing Setup below.
Greeter system user (RPM, DEB, and immutable systems)β
Official dms-greeter packages (Arch AUR, Fedora, Debian, Ubuntu, openSUSE) ship two systemd declarations under /usr:
| File | Purpose |
|---|---|
/usr/lib/sysusers.d/dms-greeter.conf | Declares the greeter UNIX account (home /var/lib/greeter, shell /bin/bash) |
/usr/lib/tmpfiles.d/dms-greeter.conf | Creates /var/cache/dms-greeter and /var/lib/greeter with greeter:greeter ownership |
systemd-sysusers applies the user definition at boot and on package install. Package scriptlets (useradd / adduser) remain as a fallback on traditional mutable systems.
Immutable and image-based systemsβ
On Fedora Atomic, Universal Blue, bootc, Zirconium, and similar systems:
- Install
dms-greeterfrom your distro repo (layered package or image build). Do not rely ondms greeter install,dms greeter enable, ordms greeter uninstallβ those commands are disabled on immutable systems by DMS CLI policy. - After installing or upgrading
dms-greeter, reboot once ifgetent passwd greeteris empty (sysusers runs early in boot). - Configure
/etc/greetd/config.toml, enablegreetd, and set up theme sync using your distro or image documentation.dms greeter syncmay still work for theme files if not blocked by your image policy.
Verify the account:
getent passwd greeter
getent group greeter
ls -l /usr/lib/sysusers.d/dms-greeter.conf
systemd-sysusers --dry-run | grep greeter
If you previously added a manual /usr/lib/sysusers.d/dms-greeter.conf workaround (for example on Zirconium before upstream packaging), you can remove it once dms-greeter from DankLinux includes the same file.
Gentooβ
DMS must already be installed on your system before running this command. The greeter wrapper is sourced from your local DMS installation.
dms greeter install
This will automatically install greetd via Portage, copy the greeter wrapper from your local DMS installation, configure permissions, and set up greetd to use DMS. To start the greeter immediately without rebooting, run sudo systemctl start greetd.
NixOSβ
NixOS has dedicated documentation with two installation methods:
- Native nixpkgs installation - Recommended for NixOS 26.05+
- Flake-based installation - Use for quicker updates
Void Linuxβ
Install the dms-greeter package (see the DMS installation guide to configure the repository), then install and enable it:
sudo xbps-install -S dms-greeter
dms greeter enable
dms greeter sync # optional: share theming with the shell
On Void, dms greeter enable sets up everything logind provides automatically on systemd distros: it configures greetd, enables seatd, adds the _greeter user to the _seatd/video/input groups, and adds pam_rundir to /etc/pam.d/greetd so the post-login session gets an XDG_RUNTIME_DIR.
A Wayland compositor (niri, hyprland, sway, β¦) and a working DRM device (/dev/dri/card*) are required and are not pulled in automatically.
Installer & Manual Installationβ
DankInstall Usersβ
(Niri and Hyprland users only)
dms-greeter is an opt-in component in the DankInstaller. It can be toggled on during the installation process, but is skipped by default to ensure users consciously choose to enable it (since it replaces your current display manager).
If you enable dms-greeter in DankInstall, the full greeter setup (permissions, ACLs, greetd configuration, service enablement) runs automatically at the end of the install process. No further steps are required.
If you skipped it during dankinstall and want to add it later, install the package for your distro (see the sections above) and then proceed to Completing Setup.
Enabling dms-greeter will replace your current display manager.
Manual installation (DMS already installed)β
If you already have DMS installed but need to set up the greeter manually, install greetd and then the greeter wrapper:
sudo wget https://raw.githubusercontent.com/AvengeMedia/DankMaterialShell/refs/heads/master/quickshell/Modules/Greetd/assets/dms-greeter -O /usr/local/bin/dms-greeter
sudo chmod +x /usr/local/bin/dms-greeter
Then proceed to Completing Setup below, using the following command in /etc/greetd/config.toml:
command = "dms-greeter --command niri -p /usr/share/quickshell/dms"
Manual installation (without DMS)β
For non-dankinstall users without DMS, install greetd, quickshell, and then the greeter:
sudo mkdir -p /etc/xdg/quickshell
sudo git clone https://github.com/AvengeMedia/DankMaterialShell.git /etc/xdg/quickshell/dms-greeter
sudo mkdir /var/cache/dms-greeter
sudo chown greeter:greeter /var/cache/dms-greeter
Some distributions may have different user/group names for the greetd user.
Prerequisites for Theme Syncingβ
ACLs (Access Control Lists) are required to allow the greeter user to traverse your home directory and access configuration files. The acl package is installed automatically when you run dms greeter sync or dms greeter install, so no manual action is needed on supported distributions.
Completing Setupβ
If you used dms greeter installβ
This applies to any distro where you ran dms greeter install, including Arch Linux (requires paru or yay), Ubuntu, Fedora, Debian, openSUSE, and Gentoo.
Configuration, permissions, theme syncing, and greetd service enablement are all handled automatically. To start the greeter immediately without rebooting:
sudo systemctl start greetd
You can verify your setup at any time with dms greeter status. dms greeter sync can be re-run after theme changes.
If you installed the package manuallyβ
This applies to: Arch Linux, and any other distro where you installed the package manually using the commands above.
After installing the package, run these two commands to complete setup:
1. Enable the Greeterβ
dms greeter enable
This will:
- Configure
/etc/greetd/config.tomlwith the correct compositor command - Disable conflicting display managers (gdm, lightdm, sddm)
- Enable and start the greetd service
2. Sync with Your User Themeβ
dms greeter sync
This will:
- Install
acl(if not already installed) - Add your user to the
greetergroup (if needed) - Set up ACL permissions on parent directories for greeter access
- Configure group permissions on DMS config directories
- Create symlinks to sync settings, wallpapers, and color themes
- Create your per-user cache slot at
/var/cache/dms-greeter/users/<username>/
After running dms greeter sync, you will need to log out and log back in for group membership changes to take effect.
One main admin runs dms greeter sync once for system setup. Add every other user to the greeter group in Settings β Users (greeter access toggle), or with sudo usermod -aG greeter <username>. Each of those accounts should then run dms greeter sync --profile after logging out and back inβnot full sync. See Configuration β Multi-user systems.
NixOS users: The dms greeter enable and dms greeter sync commands are not available on NixOS. Please follow the manual steps below or see the NixOS installation guides.
For all usersβ
You can check your greeter configuration at any time:
dms greeter status
This verifies your greeter setup and sync status. See the Configuration guide for detailed information.
Manual Setup (all distros)β
If you prefer to set up the greeter manually, follow these steps:
All users: You can use dms greeter enable to automate this process instead of following the manual steps below.
- Edit
/etc/greetd/config.tomland setcommand =to use dms-greeter:
[terminal]
vt = 1
[default_session]
user = "greeter"
command = "dms-greeter --command niri"
### Uncomment the below line to run the greeter on Hyprland
# command = "dms-greeter --command Hyprland"
### Uncomment to run the greeter on sway
# command = "dms-greeter --command sway"
### Uncomment to run the greeter on Miracle WM
# command = "dms-greeter --command miracle-wm"
- Disable any existing conflicting greeters:
Disabling a greeter while logged in under that greeter will log you out and bring you to a non-graphical TTY.
sudo systemctl disable gdm lightdm sddm
- Enable and start the greeter:
sudo systemctl enable greetd
sudo systemctl start greetd