You are not logged in.
Carried over from https://forums.bunsenlabs.org/viewtopic.php?id=9877
These mangowm instructions assume you've built and installed niri (see the link above), which probably brought in some dependencies that this tutorial might miss.
mangowm, a Wayland fork of dwm/dwl, is not available in Debian but we can build it from source. There are no uninstall scripts, so removal is manual, but this is sid... let's see if it breaks!
The instructions for building from source om the GitHub page are fine, it's the dependencies that are a bitch. I'm a bigger, much moodier bitch though, so...
More build packages...
sudo apt install meson cmakewlroots dependencies...
sudo apt install libdrm-dev wayland-protocols libweston-16-dev glslang-tools spirv-toolmango dependencies...
sudo apt install libxcb-icccm4-dev libcjson-devscenefx should be good. Then just follow the instructions...
wl-roots...
git clone -b 0.20.2 https://gitlab.freedesktop.org/wlroots/wlroots.git
cd wlroots
meson build -Dprefix=/usr
sudo ninja -C build installscenefx...
git clone -b 0.5 https://github.com/wlrfx/scenefx.git
cd scenefx
meson build -Dprefix=/usr
sudo ninja -C build installmango...
git clone https://github.com/mangowm/mango.git
cd mango
meson build -Dprefix=/usr
sudo ninja -C build installglslang-tools and spirv-tool, I found you! Bitches! You didn't think I'd run a build-deps on http://deb.debian.org/debian/pool/main/ … 20.2-1.dsc , did you? I LEARNED THAT TRICK OVER A DECADE AGO! IN YOUR FACES!!!
My "I got you, bitch." moment...
https://packages.debian.org/sid/libwlroots-0.20-dev
Please let me know if you try this and it either fails or succeeds. Cheers.
-edit- Looking closer at the text readout of the *.dsc I linked, spirv-tool is a dependency of glslang tools. I'll leave it in the deps line I posted, better safe than sorry and no harm no fowl.
Last edited by hhh (2026-09-12 02:54:23)
Why why why why?!!???
Offline
@hhh you can get mango from my repos as well. Hatchery has been using mango with a little quickshell config I wrote for most of the year. hatcherylinux.org or just get the repo from my live build.
https://github.com/troutcobbler/hatcher … g/archives
I’m a couple releases behind because mango releases so much but I’ll update it before too long. At least I’m up to date with wlroots 20 and the new scenefx, plus the new mmsg rebase to json. JSON is actually easier to parse in quickshell than a proprietary standard output.
Feel free to use my Debian source package. Probably as you’ve realized the dependencies are the biggest hurdle.
Offline
@cog, much obliged! Yes, I think I was clear on that... A bitch.
Why why why why?!!???
Offline
No prob. The promise of Mango was that it would be easier to maintain with a bunch of features. That’s kind of shifted recently. Still great but bordering on hyprland with deps. You use to could build it with what’s in Trixie. It’s still a great compositor so I’m still using it.
Offline
Please let me know if you try this and it either fails or succeeds. Cheers.
^^Thank you for your excellent instructions! ![]()
Unfortunately, the story ends here. ![]()
mango...
... sudo ninja -C build install
In my case, it wasn't glslang-tools and spirv-tools (you wrote spriv-tool above). Here it was:
meson.build:32:12: ERROR: Dependency "xcb-randr" not found (tried pkg-config and cmake)Based on your suggestion: https://deb.debian.org/debian/pool/main … 20.2-1.dsc I was able to fix that. Almost all libxcb... packages had to be installed.
The dependency debhelper-compat does not exist in sid, therefore debhelper.
yay... ![]()
unklar@debian:~/mango$ meson build -Dprefix=/usr
The Meson build system
Version: 1.12.1
Source dir: /home/unklar/mango
Build dir: /home/unklar/mango/build
Build type: native build
Project name: mango
Project version: 0.17.4
C compiler for the host machine: cc (gcc 16.2.0 "cc (Debian 16.2.0-3) 16.2.0")
C linker for the host machine: cc ld.bfd 2.47
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program wayland-scanner found: YES (/usr/bin/wayland-scanner)
Found pkg-config: YES (/usr/bin/pkg-config) 2.5.1
Run-time dependency wayland-protocols found: YES 1.49
Library m found: YES
Run-time dependency libdrm found: YES 2.4.134
Run-time dependency xcb found: YES 1.17.0
Run-time dependency xcb-icccm found: YES 0.4.2
Run-time dependency xcb-randr found: YES 1.17.0
Run-time dependency wayland-server found: YES 1.26.0
Run-time dependency wlroots-0.20 found: YES 0.20.2
Run-time dependency xkbcommon found: YES 1.13.1
Run-time dependency libinput found: YES 1.31.3
Run-time dependency wayland-client found: YES 1.26.0
Run-time dependency libpcre2-8 found: YES 10.48
Run-time dependency scenefx-0.5 found: YES 0.5.0
Run-time dependency pixman-1 found: YES 0.46.4
Run-time dependency libcjson found: YES 1.7.19
Run-time dependency pangocairo found: YES 1.58.0
Program git found: YES (/usr/bin/git)
Program find found: YES (/usr/bin/find)
Configuring mmsg.1 using configuration
Build targets in project: 2
mango 0.17.4
User defined options
prefix: /usr
Found ninja-1.13.2 at /usr/bin/ninja
WARNING: Running the setup command as `meson [options]` instead of `meson setup [options]` is ambiguous and deprecated.Finally, the errors persist even after installing the libwlroots-0.20-dev package from Debian with an "undefined reference to"... ![]()
unklar@debian:~/mango$ sudo ninja -C build install
ninja: Entering directory `build'
[54/55] Linking target mango
FAILED: [code=1] mango
cc -o mango mango.p/meson-generated_xdg-shell-protocol.c.o mango.p/meson-generated_pointer-constraints-unstable-v1-protocol.c.o mango.p/meson-generated_xdg-output-unstable-v1-protocol.c.o mango.p/meson-generated_cursor-shape-v1-protocol.c.o mango.p/meson-generated_tablet-v2-protocol.c.o mango.p/meson-generated_ext-image-copy-capture-v1-protocol.c.o mango.p/meson-generated_ext-image-capture-source-v1-protocol.c.o mango.p/meson-generated_ext-foreign-toplevel-list-v1-protocol.c.o mango.p/meson-generated_ext-workspace-v1-protocol.c.o mango.p/meson-generated_tearing-control-v1-protocol.c.o mango.p/meson-generated_wlr-foreign-toplevel-management-unstable-v1-protocol.c.o mango.p/meson-generated_wlr-layer-shell-unstable-v1-protocol.c.o mango.p/meson-generated_wlr-output-power-management-unstable-v1-protocol.c.o mango.p/src_manage_layer.c.o mango.p/src_manage_xwayland_primary.c.o mango.p/src_manage_client.c.o mango.p/src_manage_misc.c.o mango.p/src_manage_monitor.c.o mango.p/src_ipc_ipc.c.o mango.p/src_draw_text-node.c.o mango.p/src_draw_dim-node.c.o mango.p/src_main.c.o mango.p/src_overview_overview.c.o mango.p/src_ext-protocol_xdg-output.c.o mango.p/src_ext-protocol_foreign-toplevel.c.o mango.p/src_ext-protocol_hdr.c.o mango.p/src_ext-protocol_tearing.c.o mango.p/src_ext-protocol_ext-workspace.c.o mango.p/src_ext-protocol_xdg-activation.c.o mango.p/src_ext-protocol_text-input.c.o mango.p/src_switcher_switcher.c.o mango.p/src_layout_arrange.c.o mango.p/src_layout_vertical.c.o mango.p/src_layout_dwindle.c.o mango.p/src_layout_horizontal.c.o mango.p/src_layout_scroll.c.o mango.p/src_layout_overview.c.o mango.p/src_animation_layer.c.o mango.p/src_animation_tag.c.o mango.p/src_animation_common.c.o mango.p/src_animation_client.c.o mango.p/src_dispatch_bind.c.o mango.p/src_input_pointer.c.o mango.p/src_input_device.c.o mango.p/src_input_switch.c.o mango.p/src_input_keyboard.c.o mango.p/src_input_trackpad.c.o mango.p/src_input_tablet.c.o mango.p/src_input_touch.c.o mango.p/src_config_parse_config.c.o mango.p/src_config_preset.c.o mango.p/src_common_util.c.o mango.p/src_common_log.c.o mango.p/src_common_server.c.o -Wl,--as-needed -Wl,--no-undefined -Wl,--start-group -lm /usr/lib/x86_64-linux-gnu/libdrm.so /usr/lib/x86_64-linux-gnu/libxcb.so /usr/lib/x86_64-linux-gnu/libxcb-icccm.so /usr/lib/x86_64-linux-gnu/libxcb-randr.so /usr/lib/x86_64-linux-gnu/libscenefx-0.5.so /usr/lib/x86_64-linux-gnu/libwayland-server.so /usr/lib/x86_64-linux-gnu/libwlroots-0.20.so /usr/lib/x86_64-linux-gnu/libxkbcommon.so /usr/lib/x86_64-linux-gnu/libinput.so /usr/lib/x86_64-linux-gnu/libwayland-client.so /usr/lib/x86_64-linux-gnu/libpcre2-8.so /usr/lib/x86_64-linux-gnu/libpixman-1.so /usr/lib/x86_64-linux-gnu/libcjson.so /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so /usr/lib/x86_64-linux-gnu/libpango-1.0.so /usr/lib/x86_64-linux-gnu/libcairo.so /usr/lib/x86_64-linux-gnu/libharfbuzz.so /usr/lib/x86_64-linux-gnu/libgobject-2.0.so /usr/lib/x86_64-linux-gnu/libglib-2.0.so -Wl,--end-group
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_main.c.o: In Funktion »cleanup«:
/home/unklar/mango/build/../src/main.c:209:(.text+0x732): undefinierter Verweis auf »wlr_xwayland_destroy«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_main.c.o: In Funktion »setup«:
/home/unklar/mango/build/../src/main.c:854:(.text+0x17ad): undefinierter Verweis auf »wlr_drm_lease_v1_manager_create«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/main.c:879:(.text+0x1832): undefinierter Verweis auf »wlr_xwayland_create«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_is_x11_popup«:
/home/unklar/mango/build/../src/manage/client.c:690:(.text+0x486): undefinierter Verweis auf »wlr_xwayland_surface_has_window_type«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »toplevel_from_wlr_surface«:
/home/unklar/mango/build/../src/manage/client.c:85:(.text+0x7b3): undefinierter Verweis auf »wlr_xwayland_surface_try_from_wlr_surface«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_activate_surface«:
/home/unklar/mango/build/../src/manage/client.c:136:(.text+0x8cc): undefinierter Verweis auf »wlr_xwayland_surface_try_from_wlr_surface«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:138:(.text+0x93b): undefinierter Verweis auf »wlr_xwayland_surface_set_minimized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_is_float_type«:
/home/unklar/mango/build/../src/manage/client.c:256:(.text+0xb9b): undefinierter Verweis auf »wlr_xwayland_surface_has_window_type«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:258:(.text+0xbad): undefinierter Verweis auf »wlr_xwayland_surface_has_window_type«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:260:(.text+0xbe2): undefinierter Verweis auf »wlr_xwayland_surface_has_window_type«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:262:(.text+0xbf4): undefinierter Verweis auf »wlr_xwayland_surface_has_window_type«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_wants_focus«:
/home/unklar/mango/build/../src/manage/client.c:728:(.text+0x1608): undefinierter Verweis auf »wlr_xwayland_surface_override_redirect_wants_focus«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:730:(.text+0x1620): undefinierter Verweis auf »wlr_xwayland_surface_icccm_input_model«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_activate_surface«:
/home/unklar/mango/build/../src/manage/client.c:136:(.text+0x5ab7): undefinierter Verweis auf »wlr_xwayland_surface_try_from_wlr_surface«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:139:(.text+0x5aca): undefinierter Verweis auf »wlr_xwayland_surface_activate«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_wants_focus«:
/home/unklar/mango/build/../src/manage/client.c:728:(.text+0x5b73): undefinierter Verweis auf »wlr_xwayland_surface_override_redirect_wants_focus«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:730:(.text+0x5b87): undefinierter Verweis auf »wlr_xwayland_surface_icccm_input_model«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:728:(.text+0x5ee4): undefinierter Verweis auf »wlr_xwayland_surface_override_redirect_wants_focus«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:730:(.text+0x5efc): undefinierter Verweis auf »wlr_xwayland_surface_icccm_input_model«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »handle_xwayland_surface_request_activate«:
/home/unklar/mango/build/../src/manage/client.c:4402:(.text+0x6548): undefinierter Verweis auf »wlr_xwayland_surface_activate«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_maximized«:
/home/unklar/mango/build/../src/manage/client.c:623:(.text+0x6af3): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_fullscreen«:
/home/unklar/mango/build/../src/manage/client.c:333:(.text+0x6b0e): undefinierter Verweis auf »wlr_xwayland_surface_set_fullscreen«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_maximized«:
/home/unklar/mango/build/../src/manage/client.c:623:(.text+0x6b36): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:623:(.text+0x746c): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_fullscreen«:
/home/unklar/mango/build/../src/manage/client.c:333:(.text+0x74b5): undefinierter Verweis auf »wlr_xwayland_surface_set_fullscreen«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:333:(.text+0x76e3): undefinierter Verweis auf »wlr_xwayland_surface_set_fullscreen«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_maximized«:
/home/unklar/mango/build/../src/manage/client.c:623:(.text+0x76fc): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_size«:
/home/unklar/mango/build/../src/manage/client.c:593:(.text+0x9d64): undefinierter Verweis auf »wlr_xwayland_surface_configure«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_init_unmanaged«:
/home/unklar/mango/build/../src/manage/client.c:1886:(.text+0xad2e): undefinierter Verweis auf »wlr_xwayland_surface_configure«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_wants_focus«:
/home/unklar/mango/build/../src/manage/client.c:728:(.text+0xadb6): undefinierter Verweis auf »wlr_xwayland_surface_override_redirect_wants_focus«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:730:(.text+0xadd9): undefinierter Verweis auf »wlr_xwayland_surface_icccm_input_model«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »handle_xwayland_ready«:
/home/unklar/mango/build/../src/manage/client.c:4559:(.text+0xbad3): undefinierter Verweis auf »wlr_xwayland_set_seat«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:4574:(.text+0xbb61): undefinierter Verweis auf »wlr_xwayland_set_cursor«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_activate_surface«:
/home/unklar/mango/build/../src/manage/client.c:139:(.text+0x8f4): undefinierter Verweis auf »wlr_xwayland_surface_activate«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_send_close«:
/home/unklar/mango/build/../src/manage/client.c:311:(.text+0xd80): undefinierter Verweis auf »wlr_xwayland_surface_close«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_fullscreen«:
/home/unklar/mango/build/../src/manage/client.c:333:(.text+0xe08): undefinierter Verweis auf »wlr_xwayland_surface_set_fullscreen«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_minimized«:
/home/unklar/mango/build/../src/manage/client.c:609:(.text+0x148c): undefinierter Verweis auf »wlr_xwayland_surface_set_minimized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_maximized«:
/home/unklar/mango/build/../src/manage/client.c:623:(.text+0x14ba): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_tiled«:
/home/unklar/mango/build/../src/manage/client.c:637:(.text+0x1540): undefinierter Verweis auf »wlr_xwayland_surface_set_maximized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_send_close«:
/home/unklar/mango/build/../src/manage/client.c:311:(.text+0x4140): undefinierter Verweis auf »wlr_xwayland_surface_close«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_fullscreen«:
/home/unklar/mango/build/../src/manage/client.c:333:(.text+0x7815): undefinierter Verweis auf »wlr_xwayland_surface_set_fullscreen«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »client_set_minimized«:
/home/unklar/mango/build/../src/manage/client.c:609:(.text+0x7f41): undefinierter Verweis auf »wlr_xwayland_surface_set_minimized«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:609:(.text+0x7f85): undefinierter Verweis auf »wlr_xwayland_surface_set_minimized«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_client.c.o: In Funktion »handle_xwayland_surface_request_configure«:
/home/unklar/mango/build/../src/manage/client.c:4446:(.text+0xb7fc): undefinierter Verweis auf »wlr_xwayland_surface_configure«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/client.c:4437:(.text+0xb868): undefinierter Verweis auf »wlr_xwayland_surface_configure«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_misc.c.o: In Funktion »handle_drm_lease_request«:
/home/unklar/mango/build/../src/manage/misc.c:714:(.text+0x1398): undefinierter Verweis auf »wlr_drm_lease_request_v1_grant«
/usr/bin/x86_64-linux-gnu-ld.bfd: /home/unklar/mango/build/../src/manage/misc.c:718:(.text+0x13cf): undefinierter Verweis auf »wlr_drm_lease_request_v1_reject«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_manage_monitor.c.o: In Funktion »handle_new_output«:
/home/unklar/mango/build/../src/manage/monitor.c:606:(.text+0x250b): undefinierter Verweis auf »wlr_drm_lease_v1_manager_offer_output«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_animation_client.c.o: In Funktion »scene_buffer_apply_effect«:
/home/unklar/mango/build/../src/animation/client.c:248:(.text+0x9c): undefinierter Verweis auf »wlr_xwayland_surface_try_from_wlr_surface«
/usr/bin/x86_64-linux-gnu-ld.bfd: mango.p/src_input_keyboard.c.o: In Funktion »handle_keyboard_key«:
/home/unklar/mango/build/../src/input/keyboard.c:659:(.text+0xe2f): undefinierter Verweis auf »wlr_xwayland_surface_try_from_wlr_surface«
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.Edit: I guess I'll have to uninstall the package again because it's “not the latest version.”
Last edited by unklar (Today 10:26:20)
Offline