Setup builds MorgenWM itself and does not install its runtime tools. Install only what you actually need:
Core dependencies (needed for any preset):
| Distro | Command |
|---|---|
| Arch Linux | sudo pacman -S river nim wlr-randr libxkbcommon pkgconf |
| Fedora | See note below |
| Void Linux | See note below |
| Alpine Linux | See note below |
Required packages in general:
The river protocol bindings are vendored in the repo, so no bindgen, c2nim or network access is needed at build time.
Nim is not in the default Fedora repositories. Enable the Terra repository first, then install the dependencies:
sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release sudo dnf install nim river wayland-devel libxkbcommon-devel pkgconfig wlr-randr
doas apk add nim river wayland-dev libxkbcommon-dev pkgconf wlr-randr
See the dedicated Void Linux installation tutorial for a complete walkthrough. In short: MorgenWM is available in the Void Community Repository (oco), which provides prebuilt binaries including a compatible river:
# Add the community repository echo 'repository=https://repo.osowoso.org/x86_64' | sudo tee /etc/xbps.d/00-VUR.conf # Update and install sudo xbps-install -Su morgenwm
Full preset extras (only needed if you pick the full preset):
| Distro | Install |
|---|---|
| Arch Linux | yay -S vibepanel-bin wbg (AUR) + sudo pacman -S fuzzel swayidle waylock mate-polkit wlsunset grim slurp wl-clipboard wtype xdg-user-dirs foot firefox glow zellij fish git noto-fonts-emoji |
| Fedora | Enable Terra or COPR, then sudo dnf install vibepanel wbg fuzzel swayidle waylock mate-polkit wlsunset grim slurp wl-clipboard wtype xdg-user-dirs foot firefox glow zellij fish git google-noto-emoji-fonts |
| Void Linux | sudo xbps-install vibepanel wbg fuzzel swayidle waylock mate-polkit wlsunset grim slurp wl-clipboard wtype xdg-user-dirs foot firefox glow zellij fish-shell git emptty noto-fonts-emoji |
| Alpine Linux | doas apk add wbg fuzzel swayidle waylock mate-polkit wlsunset grim slurp wl-clipboard wtype xdg-user-dirs foot firefox glow zellij fish git font-noto-emoji (plus vibepanel built from source) |
Install vibepanel with the Terra repository or COPR:
# Terra sudo dnf install --nogpgcheck --repofrompath 'terra,https://repos.fyralabs.com/terra$releasever' terra-release sudo dnf install vibepanel # or COPR sudo dnf copr enable prankstr/vibepanel sudo dnf install vibepanel
Setup does not auto-install these. Install them with your package manager, then pick the full preset during setup.
Config notes for the full preset:
Wallpapers:
Setup copies the bundled wallpapers to ~/.config/morgenwm/wallpapers and asks how you want them handled:
The choice is saved to ~/.config/morgenwm/wallpaper.mode. The wallpaper helper (installed to ~/.local/bin/wallpaper) runs it at login, and Mod+n cycles to the next wallpaper at any time, in any mode.
You can also drive it manually:
wallpaper next # next wallpaper wallpaper random # random wallpaper wallpaper fixed /path/to/img # set a specific wallpaper wallpaper slideshow 120 # slideshow every 2 minutes
If your distro ships MorgenWM (e.g. the Void community repository), install the package and run the built-in setup wizard instead of setup.sh (which needs the source tree):
morgenwm setup
It writes a preset config, installs the docs and templates, and optionally registers the desktop session entry so your display manager lists MorgenWM. The wizard reads its example assets from /usr/share/morgenwm (system package) or ~/.local/share/morgenwm (user install); the full preset additionally downloads wallpapers, helper scripts and themes from the dotfiles repo.
Clone and run the setup script. It builds MorgenWM and then runs the same setup flow as the wizard below:
git clone https://codeberg.org/LinuxNation/MorgenWM.git cd MorgenWM chmod +x setup.sh ./setup.sh
The setup script will:
This is a one-time step. To update later, see Updating.
If binaries were installed to ~/.local/bin:
launch_morgenwm
Or run directly from the project directory:
./bin/launch_morgenwm
launch_morgenwm reads your config to set the keyboard layout, then execs into River with MorgenWM as the init executable. You'll see River start with MorgenWM managing your windows.
If you installed the desktop session entry (Step 6 of setup), you can instead log out and pick MorgenWM from your display manager's session list. The session entry runs launch_morgenwm.
| Binary | Purpose |
|---|---|
| morgenwm | The window manager itself (River init executable; also: --version, validate, setup) |
| launch_morgenwm | Launcher: reads config, sets XKB layout, starts River |
| morgenwm_msg | CLI client for the IPC socket |
| morgenwm_setup | Standalone setup wizard (same as morgenwm setup) |
On first run MorgenWM uses built-in defaults. To customize, create a config file:
mkdir -p ~/.config/morgenwm cp example/config-minimal.toml ~/.config/morgenwm/config.toml # bare WM # or, for a desktop that works out of the box, run the setup wizard # (it fetches the full preset from the dotfiles repo): morgenwm setup
See Configuration Reference for all available options.
To verify your config file parses correctly:
morgenwm validate
cd MorgenWM git pull nimble release
If you installed to ~/.local/bin, copy the new binaries:
cp bin/morgenwm bin/launch_morgenwm bin/morgenwm_msg bin/morgenwm_keys bin/morgenwm_setup ~/.local/bin/