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
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 # Install the repository key curl -fsSL "https://codeberg.org/oSoWoSo/oco/raw/branch/OCO/keys/oco-repo-key.plist" \ -o /tmp/oco-repo-key.plist 2>/dev/null || \ curl -fsSL "https://raw.githubusercontent.com/oSoWoSo/Void_Community_Repository/OCO/keys/oco-repo-key.plist" \ -o /tmp/oco-repo-key.plist sudo cp /tmp/oco-repo-key.plist /var/db/xbps/keys/oco-repo-key.plist # Update and install sudo xbps-install -S 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 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 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 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 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
Clone, build, and optionally install to ~/.local/bin:
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) |
| launch_morgenwm | Launcher: reads config, sets XKB layout, starts River |
| morgenwm_msg | CLI client for the IPC socket |
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: cp example/config-full.toml ~/.config/morgenwm/config.toml # panel + wallpaper + launcher
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 ~/.local/bin/