1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-06-29 06:22:07 -04:00
Files
DankMaterialShell/distro/void

Void Linux packaging

XBPS templates for DankMaterialShell on Void Linux.

Package Source repo Template
dms DankMaterialShell srcpkgs/dms/template
dms-greeter (optional) DankMaterialShell srcpkgs/dms-greeter/template
dgop AvengeMedia/dgop maintained in the danklinux repo (distro/void/srcpkgs/dgop)
danksearch AvengeMedia/danksearch maintained in the danklinux repo (distro/void/srcpkgs/danksearch)

All build from source.

Distribution

This is a DMS maintained repo for VoidLinux until these packages are officially merged upstream in the Void Linux repositories, you can install them from our self-hosted custom XBPS repositories served via GitHub Pages.

Using the Self-Hosted Repositories

We serve both stable release and development packages directly from our repository branches.

1. Add Repository Configurations

Create configuration files in /etc/xbps.d/ pointing to our repositories (needed for both stable and git/nightly variants):

echo "repository=https://avengemedia.github.io/DankMaterialShell/current" | sudo tee /etc/xbps.d/dms.conf
echo "repository=https://avengemedia.github.io/DankLinux/current" | sudo tee /etc/xbps.d/danklinux.conf

2. Install DMS

Synchronize repositories and install the package:

  • For the stable variant:

    sudo xbps-install -S dms
    
  • For the git/nightly variant (this will conflict with and replace the stable package):

    sudo xbps-install -S dms-git
    

Note: 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.

The templates here are the source of truth: copy each into a void-packages checkout at srcpkgs/<pkg>/template to build or submit it.

Dependencies

Installing dms automatically pulls in quickshell, accountsservice, dgop, and matugen (which drives the Material You theming). The rest are optional — install whichever features you want:

Package Enables
danksearch launcher / filesystem search
cava audio visualiser widget
qt6-multimedia system sound feedback
qt6ct Qt app theming
wtype virtual keyboard input
power-profiles-daemon power profile control
cups-pk-helper printer management
NetworkManager network control
i2c-tools external-monitor brightness (DDC)
niri / hyprland / sway a Wayland compositor (niri is the team's choice)

Building & testing

Inside a void-packages checkout (symlink or copy these srcpkgs/<pkg> dirs in):

# build the dependency packages first (dms requires dgop)
./xbps-src pkg dgop
./xbps-src pkg danksearch
./xbps-src pkg dms
./xbps-src pkg dms-greeter      # optional

# lint (xlint ships in the xtools package)
xlint srcpkgs/dms/template

# install the built packages
sudo xbps-install --repository=hostdir/binpkgs dms dgop

dms requires Go ≥ 1.26 in the build environment (per core/go.mod).

Running the shell

DMS is a user-level Wayland shell with no system service — start it from your compositor's autostart, e.g. niri:

spawn-at-startup "dms" "run"

or Hyprland: exec-once = dms run.

Greeter (optional)

Install dms-greeter, then let the CLI do the setup:

dms greeter enable      # configures greetd + the Void seat/PAM bits below
dms greeter sync        # optional: share theming with the shell

dms greeter enable handles what logind does automatically on systemd: it points greetd at the greeter, enables seatd, adds _greeter 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 and a working DRM device (/dev/dri/card*) are required and not pulled in automatically.