A GUI monitor layout manager for mangowc. Designed to be similar to tools like nwg-displays or wdisplays.
- Visual Canvas: Drag and drop your screen layouts efficiently with magnetic edge snapping.
- Hardware Configurations: Manipulate DPI Scaling, Refresh Rates, Resolutions, and Orientation transforms.
- Live Previews: Temporarily apply your changes to experiment with custom layout configurations.
- Restore Default: Safely revert to your base configuration. MDisplay takes a frozen snapshot of your pre-existing monitor rules the very first time it runs, allowing you to easily undo all layout changes without affecting your other
mangowcsettings. - Persistent Saving: Save the finalized
monitorrulelines directly to~/.config/mango/monitors.conf, automatically appended to yourconfig.conf.
MDisplay relies on the wlr-output-management-unstable-v1 Wayland protocol to query the currently active outputs and apply modifications.
Before running, ensure you have:
- The
mangowcWayland compositor installed (or any wlroots-based compositor that supports the protocol). - Rust toolchain (Cargo, rustc) to compile the application.
The easiest way to install MDisplay and make it appear in application launchers (like Rofi or Wofi) is to use the provided install script. This will compile the program and set up the desktop entry automatically:
git clone https://github.com/ernestoCruz05/mdisplay.git
cd mdisplay
./install.shAlternatively, you can manually compile using Cargo and copy the .desktop file:
cargo install --path .
mkdir -p ~/.local/share/applications
cp mdisplay.desktop ~/.local/share/applications/Note
MDisplay is installed to Cargo's default binary directory. If your terminal or application launcher says "command not found", ensure ~/.cargo/bin is in your PATH. You can add it by putting export PATH="$HOME/.cargo/bin:$PATH" in your ~/.bashrc or ~/.zshrc.
You can customize where mdisplay saves your hardware configurations, and whether it automatically links them, by passing arguments before launching the GUI. These preferences are permanently saved to ~/.config/mdisplay/settings.json.
# Check current build version
mdisplay --version
# Set a custom save path for the monitors config
mdisplay --set-monitors-path ~/.config/some_folder/my_custom_monitors.conf
# Set a custom target for the main Wayland config appending
mdisplay --set-config-path ~/.config/some_other_folder/config.conf
# Disable auto-appending the source include line completely (you will need to manually add it, if you want it for some reason)
mdisplay --auto-append-source falseThe Save function integrates natively with mangowc config systems. Output format generally matches:
monitorrule=name:DP-1,width:1920,height:1080,refresh:144.000000,x:0,y:0,scale:1.000000,rr:0