MagmaWM
a versatile and customizable Wayland Compositor
About
MagmaWM is a versatile and customizable window manager / Wayland compositor, currently in development and actively seeking contributions from the community. Built with the Smithay library and programmed in Rust, MagmaWM along with it's RON config provides users with flexibility and customization options. MagmaWM is licensed under MIT, ensuring that it remains open-source and free for all to use and contribute to.
Join our Discord!
Features
- RON Configuration
- Nvidia Support
- Dynamic Tiling and Floating Windows
- Keyboard and Monitor Managament
- Screencopy Protocols for Screensharing/Screenshots
- Blur
- Animations
- Borders
- Can display wayland applications
- Xwayland Support
- Working Popups
- Can be launched from TTY
Build
1. Dependencies
You will need to install MagmaWM's dependencies with your package manager of choice.
Debian and derivatives (Ubuntu, Linux Mint, MX Linux, etc.)
# apt install libudev-dev libgbm-dev libxkbcommon-dev libegl1-mesa-dev libwayland-dev libinput-dev libdbus-1-dev libsystemd-dev libseat-devArch and derivatives (EndeavourOS, Garuda, etc.)
Manjaro is not supported.
# pacman -Syu udev wayland wayland-protocols libinput libxkbcommon libglvnd seatd dbus-glib mesaFedora
# dnf install systemd-devel libgbm-devel libxkbcommon-devel Mesa-libEGL-devel wayland-devel libinput-devel dbus-glib-devel libseat-developenSUSE Tumbleweed
# zypper in systemd-devel libgbm-devel libxkbcommon-devel Mesa-libEGL1 wayland-devel libinput-devel libdbus-glib-1-3 seatd-devel2. Compilation
Clone the git repo and build MagmaWM by running the following command:
The binary will be created in ./target/release/magmawm.
💡 You can also use
cargo run --releaseto run the project.
Install
MagmaWM is still under heavy development and installation is not recommended. If you really want to, run the following command to install MagmaWM:
Troubleshooting
Getting logs
Logs for MagmaWM can be found at $HOME/.local/share/MagmaWM/, when debugging a issue run MagmaWM with RUST_LOG=debug