Skip to main content
Version: 1.5

Setup

███████╗███████╗████████╗██╗   ██╗██████╗
██╔════╝██╔════╝╚══██╔══╝██║   ██║██╔══██╗
███████╗█████╗     ██║   ██║   ██║██████╔╝
╚════██║██╔══╝     ██║   ██║   ██║██╔═══╝
███████║███████╗   ██║   ╚██████╔╝██║
╚══════╝╚══════╝   ╚═╝    ╚═════╝ ╚═╝

The dms setup command generates default configuration files for your compositor (niri or Hyprland). It only writes files that don't already exist or are empty, so it won't clobber anything you've customized.

Running dms setup with no arguments deploys all defaults at once. You can also deploy individual configs one at a time.

Quick Start

Deploy all default configs:

dms setup

Deploy just keybinds:

dms setup binds

Subcommands

SubcommandDescriptionniriHyprland
bindsDefault keybinds config~/.config/niri/dms/binds.kdl~/.config/hypr/dms/binds.conf
colorsDefault colors config~/.config/niri/dms/colors.kdl~/.config/hypr/dms/colors.conf
layoutDefault layout config~/.config/niri/dms/layout.kdl~/.config/hypr/dms/layout.conf
outputsDefault outputs config~/.config/niri/dms/outputs.kdl~/.config/hypr/dms/outputs.conf
cursorDefault cursor config~/.config/niri/dms/cursor.kdl~/.config/hypr/dms/cursor.conf
windowrulesDefault window rules config~/.config/niri/dms/windowrules.kdl~/.config/hypr/dms/windowrules.conf
alttabDefault alt-tab config (niri only)~/.config/niri/dms/alttab.kdl

Running dms setup with no subcommand deploys all of the above.

tip

If you installed DMS from packages (not through the interactive installer), run dms setup after install to get working compositor and terminal configs right away.

NixOS Home-Manager Users

If you manage your niri or Hyprland config through home-manager, you probably don't want dms setup writing files that conflict with your declarative config. Instead, use the individual subcommands to generate only the pieces you need.

For example, if you handle keybinds through the niri home-manager module but want DMS defaults for colors and layout:

dms setup colors
dms setup layout

The niri home-manager module's niri.includes option references these same files under ~/.config/niri/dms/. See the niri integration docs for the full list of included files.

info

The individual subcommands are safe to run at any time — they skip files that already have content. To force a reset, delete or empty the file first, then run the subcommand again.