██████╗ █████╗ ███╗ ██╗██╗ ██╗ ██████╗ ██████╗ ███████╗███████╗████████╗
██╔══██╗██╔══██╗████╗ ██║██║ ██╔╝██╔════╝ ██╔══██╗██╔════╝██╔════╝╚══██╔══╝
██║ ██║███████║██╔██╗ ██║█████╔╝ ██║ ███╗██████╔╝█████╗ █████╗ ██║
██║ ██║██╔══██║██║╚██╗██║██╔═██╗ ██║ ██║██╔══██╗██╔══╝ ██╔══╝ ██║
██████╔╝██║ ██║██║ ╚████║██║ ██╗╚██████╔╝██║ ██║███████╗███████╗ ██║
╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═╝
Installation
Installation Methods
Choose the installation method for your distribution:
Arch Linux
Install from the AUR:
paru -S greetd-dms-greeter-git
# Or with yay
yay -S greetd-dms-greeter-git
After installation, proceed to Completing Setup below.
Fedora
sudo dnf copr enable avengemedia/danklinux
sudo dnf install dms-greeter
After installation, proceed to Completing Setup below.
NixOS
NixOS has dedicated documentation with two installation methods:
- Native nixpkgs installation - Recommended for NixOS unstable users
- Flake-based installation - For NixOS stable or quicker updates
Other distributions
For dankinstall users
If you installed DMS using dankinstall on a distribution other than Arch or Fedora, use this automated command:
dms greeter install
This command will automatically:
- Install greetd (if not already installed)
- Set up the dms-greeter wrapper
- Configure permissions and ACLs for theme syncing
- Create the greeter cache directory
- Configure greetd to use DMS
Then proceed to Completing Setup below.
Manual installation
For non-dankinstall users, 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
If you want to sync your user's theme with the greeter, ensure the acl package is installed.
ACLs (Access Control Lists) are required to allow the greeter user to traverse your home directory and access configuration files.
Completing Setup
After installing the greeter package, you can use automated commands to complete setup, or follow manual steps.
Automated Setup (All users)
After installing the greeter package, you can use these commands to enable and sync the greeter:
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:
- 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
After running dms greeter sync, you will need to log out and log back in for group membership changes to take effect.
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"
- 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