MCPcopy Index your code
hub / github.com/MagmaWM/MagmaWM

github.com/MagmaWM/MagmaWM @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
215 symbols 430 edges 24 files 10 documented · 5%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README
<img src="https://repository-images.githubusercontent.com/635377565/a694ba10-40cb-4c7e-aec9-c3d44516e6c7" style="width: 15%;" alt="wmlogo"></img>
<h1 align="center">MagmaWM</h1>

a versatile and customizable Wayland Compositor

<img src="https://img.shields.io/github/languages/top/magmawm/magmawm?style=for-the-badge"/>
<img src="https://img.shields.io/github/commit-activity/m/magmawm/magmawm?style=for-the-badge"/>
<img src="https://img.shields.io/github/issues/magmawm/magmawm?style=for-the-badge"/>
<img src="https://img.shields.io/github/license/magmawm/magmawm?style=for-the-badge"/>
<img src="https://img.shields.io/discord/1087402623646322748?style=for-the-badge"/>

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

  • [x] RON Configuration
  • [x] Nvidia Support
  • [ ] Dynamic Tiling and Floating Windows
  • [x] Keyboard and Monitor Managament
  • [x] Screencopy Protocols for Screensharing/Screenshots
  • [ ] Blur
  • [ ] Animations
  • [X] Borders
  • [x] Can display wayland applications
  • [ ] Xwayland Support
  • [x] Working Popups
  • [x] 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-dev

Arch and derivatives (EndeavourOS, Garuda, etc.)

Manjaro is not supported.

# pacman -Syu udev wayland wayland-protocols libinput libxkbcommon libglvnd seatd dbus-glib mesa

Fedora

# dnf install systemd-devel libgbm-devel libxkbcommon-devel Mesa-libEGL-devel wayland-devel libinput-devel dbus-glib-devel libseat-devel

openSUSE Tumbleweed

# zypper in systemd-devel libgbm-devel libxkbcommon-devel Mesa-libEGL1 wayland-devel libinput-devel libdbus-glib-1-3 seatd-devel

2. Compilation

Clone the git repo and build MagmaWM by running the following command:

$ cargo build --release

The binary will be created in ./target/release/magmawm.

💡 You can also use cargo run --release to 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:

cargo install --path .

Troubleshooting

Getting logs

Logs for MagmaWM can be found at $HOME/.local/share/MagmaWM/, when debugging a issue run MagmaWM with RUST_LOG=debug

Extension points exported contracts — how you extend this code

ScreencopyHandler (Interface)
Handler trait for wlr-screencopy. [1 implementers]
src/protocols/screencopy/mod.rs
AsGlowRenderer (Interface)
(no doc) [2 implementers]
src/utils/render/mod.rs
Backend (Interface)
(no doc)
src/state.rs

Core symbols most depended-on inside this repo

wl_surface
called by 35
src/utils/focus.rs
iter
called by 20
src/utils/workspace.rs
current
called by 18
src/utils/workspace.rs
outputs
called by 13
src/utils/workspace.rs
insert
called by 12
src/utils/binarytree.rs
geometry
called by 7
src/utils/render/mod.rs
bsp_update_layout
called by 6
src/utils/tiling.rs
all_windows
called by 6
src/utils/workspace.rs

Shape

Method 146
Function 30
Class 29
Enum 7
Interface 3

Languages

Rust100%

Modules by API surface

src/utils/workspace.rs25 symbols
src/utils/focus.rs22 symbols
src/utils/render/mod.rs20 symbols
src/debug.rs18 symbols
src/backends/udev.rs17 symbols
src/config/mod.rs16 symbols
src/handlers/mod.rs13 symbols
src/config/types.rs13 symbols
src/handlers/xdg_shell.rs10 symbols
src/state.rs9 symbols
src/protocols/screencopy/frame.rs9 symbols
src/utils/binarytree.rs8 symbols

For agents

$ claude mcp add MagmaWM \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact