██████╗ █████╗ ███╗ ██╗██╗ ██╗██╗███╗ ██╗███████╗████████╗ █████╗ ██╗ ██╗ ██╔══██╗██╔══██╗████╗ ██║██║ ██╔╝██║████╗ ██║██╔════╝╚══██╔══╝██╔══██╗██║ ██║ ██║ ██║███████║██╔██╗ ██║█████╔╝ ██║██╔██╗ ██║███████╗ ██║ ███████║██║ ██║ ██║ ██║██╔══██║██║╚██╗██║██╔═██╗ ██║██║╚██╗██║╚════██║ ██║ ██╔══██║██║ ██║ ██████╔╝██║ ██║██║ ╚████║██║ ██╗██║██║ ╚████║███████║ ██║ ██║ ██║███████╗███████╗ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═══╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚══════╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚══════╝
dankinstall sets up the full DankMaterialShell desktop experience - wallpapers, auto-theming, notifications, lock screen, and everything else you'd expect from a modern desktop. It installs packages and configures user-level settings for your compositor and terminal. If you already have niri or Hyprland set up, dankinstall can work around your existing config (and always backs things up before making changes).
curl -fsSL https://install.danklinux.com | sh
The installer is interactive and guides you through setup for your distribution. You can also download the latest release manually.
Build dependencies: git, jq, curl, wget, go, cmake, rustup. The exact package list varies by distribution.
Supported: Arch, ArchARM, Archcraft, CachyOS, EndeavourOS, Manjaro
Uses pacman for system packages from official repos, including dms-shell from extra. Builds quickshell, matugen (pre-compiled binary), and dgop from AUR using makepkg - no AUR helper needed. niri and hyprland are available in official repos.
If you're using archinstall, the minimal profile with NetworkManager for networking is a good starting point.
Supported: Fedora, Nobara, Fedora Asahi Remix
Almost everything comes from official repos or COPR repositories (avengemedia/danklinux, avengemedia/dms, solopasha/hyprland, niri-wm/niri). Only dgop needs to be built from source with Go.
dankinstall is tested on Workstation Edition but should work fine on any Fedora flavor.
Supported: Ubuntu 25.04+
Packages come from the DankLinux PPA (ppa:avengemedia/danklinux). Hyprland comes from ppa:cppiber/hyprland.
Supported: Debian 13+ (Trixie), Debian Testing, Debian Sid
Packages come from the DankLinux OBS repository. niri only - Debian doesn't have Hyprland packages yet.
Good package availability out of the box. niri, hyprland, ghostty, and most tools are in standard repos. Additional packages come from the DankLinux OBS repository.
Gentoo requires a systemd installation. OpenRC is not supported.
Special Notes:
dankinstall is most likely to succeed on a fresh stage3/systemd system/etc/portage/make.conf
/etc/portage/package.use/danklinux/etc/portage/package.accept_keywords/danklinuxamd64 and arm64 architectures dynamicallyPackage Sources:
emerge** keywords), full feature set~/.config/quickshell/dmsGlobal USE Flags:
dbus udev alsa policykit jpeg png webp gif tiff svg brotli gdbm accessibility gtk qt6 egl gbm
Package-Specific USE Flags:
sys-apps/xdg-desktop-portal-gtk: wayland Xgui-wm/niri: dbus screencastgui-wm/hyprland: Xdev-qt/qtbase: wayland opengl vulkan widgetsdev-qt/qtdeclarative: opengl vulkanmedia-libs/mesa: opengl vulkangui-apps/quickshell: breakpad jemalloc sockets wayland layer-shell session-lock toplevel-management screencopy X pipewire tray mpris pam hyprland hyprland-global-shortcuts hyprland-focus-grab i3 i3-ipc bluetoothMost distros now have pre-built packages via the DankLinux Repository. The installer handles any remaining builds automatically:
/usr/local/bin.dankinstall configures DMS as a systemd user service by default. The shell starts automatically when you log in - no need to add anything to your compositor config.
# Restart the shell (works with both systemd and manual setups)
dms restart
# Check service status
systemctl --user status dms
# View logs
journalctl --user -u dms -f
# Interactive management TUI
dms
# Send IPC commands to running shell
dms ipc <command>
See Managing Your Installation for details on switching between systemd and manual startup, environment variable configuration, and more.
dankinstall creates ~/.config/environment.d/90-dms.conf with environment variables for Qt/GTK theming and Wayland compatibility. If you need to change Qt platform theming (e.g., switching from gtk3 to qt6ct), edit this file and log out/in for changes to take effect.
You can also run systemctl --user edit dms and add Environment=VAR=Value lines under [Service]. This only affects DMS and apps it launches, whereas 90-dms.conf applies to all user sessions.