You are not logged in.
Pages: 1
This was mentioned in the release notes and got a certain amount of attention, so maybe it would be good to release something ASAP.
@micko01 and I discussed the basic idea at some length on GitHub at the end of 2024 (!): https://github.com/BunsenLabs/bunsen-configs/issues/134
I think we've got the basic idea down, and Carbon has been arranged so as not to make things too difficult for Wayland, so if no unexpected issues come up (they often do though) then it shouldn't take too much work at this point.
Basic Idea
Users can install a metapackage bunsen-meta-wayland-addon on top of an existing Carbon installation. At the next login a new item should appear on the login menu "Bunsenlabs Wayland" giving a rather basic stripped-down Wayland session. Users can add new apps etc and tweak it as they like, but the original Xorg based Carbon session will always be available for the times when something can't be done on Wayland.
Some time in the future, maybe there will be a self-standing Wayland-only install, but for now this is an addon for the regular Xorg session. All the regular Carbon apps will be installed of course, but some of them won't work on Wayland. Exactly how we handle that is one of the questions we want to consider now.
details
bunsen-meta-wayland-addon depends on bunsen-configs-wayland-base (or possibly bunsen-configs-wayland) and a selection of necessary apps:
labwc
...what else? We already have xfce4-panel, xfce4-terminal, xwwall, nwg-look which work on both Xorg and Wayland. lightDM seems to work OK for starting Wayland sessions (although itself it uses X).
bunsen-configs-wayland-base will configure any Wayland-only apps and the user startup script ~/.config/bunsen/autostart-wayland, and add /usr/share/wayland-sessions/bunsenlabs-wayland.desktop for the lightdm login menu item.
still needs thought
The menu is the big one IMO. It doesn't look as if we can just use jgmenu: https://github.com/jgmenu/jgmenu/issues … 4080018142
I haven't looked at labwc's native menu at all yet - even whether it supports pipemenus, though I guess it might. We'll probably have to write an xml menu like what we used with openbox before the days of jgmenu, trying to make it as similar as possible to the default Carbon menu.
xbindkeys: does it work on Wayland?
xsettingsd: same question
Especially @micko01 but all are welcome to jump in, what else needs adding to the above lists?
Or, any other comments?
links
The GitHub discussion: https://github.com/BunsenLabs/bunsen-configs/issues/134
Other older discussions:
"Wayland and BunsenLabs" https://forums.bunsenlabs.org/viewtopic.php?id=8843
"Organizing the Carbon BunsenLabs sessions for Wayland and X11" https://forums.bunsenlabs.org/viewtopic.php?id=9081
jimjamz' recent report: https://forums.bunsenlabs.org/viewtopic … 38#p149038
Last edited by johnraff (2026-03-27 01:58:26)
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
Labwc's native menu does support pipemenus and I have a few examples already.
Labwc (or other wayland compositors) does not support xbindkeys nor xsettingsd.
Labwc supports keybinds and mouse binds in it's native rc.xml.
#!/bin/sh
echo '#include <stdio.h>\nvoid main() { printf("Hi, bunsenlabs\\n"); return; }' > bunsen.c
gcc bunsen.c -o bunsen
./bunsen
Offline
The xfce4-panel menu plugin should work. I don't know if xfce4-panel supports multiple config files so that something like:
xfce4-panel -c labwc-configwould work. Otherwise it would call the existing BL carbon menu.
Thunar, xfce4-terminal, xfcce4-screenshot, and geany all work with wayland.
You must unlearn what you have learned.
-- yoda
Offline
I don't know if xfce4-panel supports multiple config files
It does, via Xfce Panel Profiles, though not "on the fly" as I understand it...
I don't care what you do at home. Would you care to explain?
Offline
As to the xfce4-panel menu plugin, that's going to be an auto-generated menu based on the apps' .desktop files I guess. As appears in "All Applications" in the default BL menu. Two points:
1) We want to display our own menu with all its useful shortcuts and pipemenus. That's going to mean writing an openbox-style xml menu for labwc I think. The Menu launcher we've put on Carbon's xfce4-panel runs a tiny BL script 'bl-menu' which looks at the session type and runs 'jgmenu_run' on Xorg, and some as yet undefined wayland_menu command on Wayland. That much is already done. It would be nice if the labwc menu could be triggered directly by a command, but as far as I've been able to tell, it needs a keyboard shortcut. I'd love to be wrong on that, but we can still work round it with some xdotool (or maybe ydotool) command to trigger the keyboard press.
2) The auto-generated menu is going to have some items which don't work on Wayland, and possibly some Wayland-only apps tht won't work on Xorg. I don't think there's any way at the moment for .desktop files to specify which sesson type they should be used in, ie some kind of 'OnlyShowIn=Wayland' as there is to distinguish between desktop environments like XFCE or GNOME. Again, I'd love to be wrong on that. But anyway a hodge-podge of Xorg and Wayland apps is not what we want to present our new users with in the default menu.
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
Labwc's native menu does support pipemenus and I have a few examples already.
Good news, thanks!
Labwc (or other wayland compositors) does not support xbindkeys nor xsettingsd.
I guess we can live without xbindkeys. It was brought in to give users more freedom to switch window managers, but if it doesn't work on Wayland then that road is coming to an end, and we can (will have to) go back to configuring the keybinds directly in labwc's xml file. It means developers and users having to maintain two keybind config files unfortunately, one of them being in the much-loved xml. ![]()
A little utility to read xbindkeysrc and automatically add the xml to labwc's config file???
xsettingsd is a daemon which gives instant updates on theming changes, so users don't have to log out/in to see their lxappearance/nwg-look changes on the desktop. It would be nice if there was a Wayland equivalent...
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
Added a couple of links to previous discussions to the OP.
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
1) We want to display our own menu with all its useful shortcuts and pipemenus. That's going to mean writing an openbox-style xml menu for labwc I think. The Menu launcher we've put on Carbon's xfce4-panel runs a tiny BL script 'bl-menu' which looks at the session type and runs 'jgmenu_run' on Xorg, and some as yet undefined wayland_menu command on Wayland. That much is already done. It would be nice if the labwc menu could be triggered directly by a command, but as far as I've been able to tell, it needs a keyboard shortcut. I'd love to be wrong on that, but we can still work round it with some xdotool (or maybe ydotool) command to trigger the keyboard press.
^xdotool will not work on wayland.
Maybe wtype is also worth a look.
https://orioninsist.org/blog/wayland-br … w-xdotool/
https://packages.debian.org/trixie/wtype
Offline
^Thanks. Yes, looking round the labwc github most people seem to be using wtype for this:
https://github.com/labwc/labwc/commit/2 … 72b547e788
That looks easy enough.
Another option might be wlrctl but I can't find a lot of documentation.
And programmers might be interested in the uinput kernel module.
And this: https://www.semicomplete.com/blog/xdoto … mentation/
Last edited by johnraff (2026-03-29 02:57:45)
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
micko01 wrote:Labwc's native menu does support pipemenus and I have a few examples already.
Good news, thanks!
Labwc (or other wayland compositors) does not support xbindkeys nor xsettingsd.
I guess we can live without xbindkeys. It was brought in to give users more freedom to switch window managers, but if it doesn't work on Wayland then that road is coming to an end, and we can (will have to) go back to configuring the keybinds directly in labwc's xml file. It means developers and users having to maintain two keybind config files unfortunately, one of them being in the much-loved xml.
A little utility to read xbindkeysrc and automatically add the xml to labwc's config file???
I had a look at the format of .xbindkeysrc and it would be no easy feat to make a utility to write to .config/labwc/rc.xml. Also possibly a watch might be needed on the file to update rc.xml whenever xbindkeysrc is modified.
xsettingsd is a daemon which gives instant updates on theming changes, so users don't have to log out/in to see their lxappearance/nwg-look changes on the desktop. It would be nice if there was a Wayland equivalent...
I don't think that's needed for labwc apart from actual labwc theme changes which just need a simple "labwc -r" (-r = --restart)
At the moment I have carbon installed with dev tools on my main laptop. I wiped windows completely so I have more SSD for work. I have only ever booted windows on it twice! It did have a boron install upgraded to carbon but a clean slate is the best place to start.
There are certainly going to be a lot of differences as there are not lilke for like replacements in wayland for X11 apps. All part of the adventure. ![]()
#!/bin/sh
echo '#include <stdio.h>\nvoid main() { printf("Hi, bunsenlabs\\n"); return; }' > bunsen.c
gcc bunsen.c -o bunsen
./bunsen
Offline
There are certainly going to be a lot of differences as there are not lilke for like replacements in wayland for X11 apps.
One thing we need to do fairly soon is to draw up a list of apps that will be needed for a basic Wayland desktop. I'm hoping that with xfce4-panel, xwwall, nwg-look and xfce4-terminal already Carbon Xorg defaults, we've got a lot of it covered already.
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
I had a look at the format of .xbindkeysrc and it would be no easy feat to make a utility to write to .config/labwc/rc.xml.
Likely not. Pity, not so much for devs as for users to have to wrangle with two separate files. Can't be helped I guess.
I'm just now playing with the idea of a jgmenu csv to labwc xml migration tool. Mainly for devs to save time pecking on the keyboard and reduce the chance of typos when updating the menus. Remains to be seen how practical it turns out to be.
xsettingsd is a daemon which gives instant updates on theming changes, so users don't have to log out/in to see their lxappearance/nwg-look changes on the desktop. It would be nice if there was a Wayland equivalent...
I don't think that's needed for labwc apart from actual labwc theme changes which just need a simple "labwc -r" (-r = --restart)
So GTK theme and icon changes get reflected immediately on Wayland?
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
So GTK theme and icon changes get reflected immediately on Wayland?
Usually, maybe not if the user has their file manager set to run in the background at login. Fonts definitely need a logout so they can get cached at the next login. Correct me if I'm wrong, anyone.
I don't care what you do at home. Would you care to explain?
Offline
The menu is the big one IMO. It doesn't look as if we can just use jgmenu: https://github.com/jgmenu/jgmenu/issues … 4080018142
I haven't looked at labwc's native menu at all yet - even whether it supports pipemenus, though I guess it might. We'll probably have to write an xml menu like what we used with openbox before the days of jgmenu, trying to make it as similar as possible to the default Carbon menu.
Anyone who would like to put together a labwc xml menu for the BL Carbon plugin, this utility I just wrote might save some time:
https://forums.bunsenlabs.org/viewtopic.php?id=9768
I fed it the current BL Carbon jgmenu csv menu file, and it came out with this xml:
<openbox_menu>
<!-- defining submenus -->
<menu id="bl-xfce4panelConfig" label="xfce4-panel" icon="xfce4-panel" >
<item label="xfce4-panel Preferences" icon="" >
<action name="Execute" command="xfce4-panel -p" />
</item>
<item label="xfce4-panel Profiles" icon="" >
<action name="Execute" command="xfce4-panel-profiles" />
</item>
<item label="man xfce4-panel" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man xfce4-panel' -e man xfce4-panel" />
</item>
</menu>
<menu id="bl-blConfig" label="BunsenLabs Session" icon="distributor-logo-bunsenlabs" >
<item label="Edit autostart" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/bunsen/autostart" />
</item>
<item label="Edit environment" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/bunsen/environment" />
</item>
<separator />
<separator label="Manuals" />
<item label="bunsenlabs-session" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man bunsenlabs-session' -e man bunsenlabs-session" />
</item>
<item label="xdg-autostart" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man bl-xdg-autostart' -e man bl-xdg-autostart" />
</item>
</menu>
<menu id="bl-xbindkeysConfig" label="Keybinds" icon="preferences-desktop-keyboard" >
<menu id="bl-kb-pipemenu-kbmenu" label="Display Keybinds in menu" icon="" execute="bl-kb-pipemenu --kbmenu" />
<item label="Display Keybinds in new window" icon="" >
<action name="Execute" command="bl-kb-pipemenu --gui" />
</item>
<separator />
<item label="Backup and Edit openbox rc file" icon="" >
<action name="Execute" command="bl-kb-pipemenu --rcedit" />
</item>
<item label="Backup and Edit .xbindkeysrc" icon="" >
<action name="Execute" command="bl-kb-pipemenu --xbkedit" />
</item>
<item label="Reconfigure openbox" icon="" >
<action name="Execute" command="openbox --reconfigure" />
</item>
<item label="Restart xbindkeys" icon="" >
<action name="Execute" command="sh -c 'pkill -x xbindkeys; xbindkeys_autostart'" />
</item>
<separator label="Help" />
<item label="man xbindkeys" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man xbindkeys' -e man xbindkeys" />
</item>
</menu>
<menu id="bl-user-settings" label="User Settings" icon="preferences-desktop" >
<menu id="bl-blConfig" />
<menu id="bl-obConfig" />
<menu id="bl-jgmenuConfig" />
<menu id="bl-xfce4panelConfig" />
<menu id="bl-xbindkeysConfig" />
<menu id="bl-compositor" label="Compositor" icon="picom" execute="bl-compositor" />
<menu id="bl-conky-pipemenu" label="Conky" icon="conky-manager" execute="bl-conky-pipemenu" />
<item label="BLOB Themes Manager" icon="distributor-logo-bunsenlabs" >
<action name="Execute" command="bl-obthemes" />
</item>
<item label="Appearance" icon="preferences-desktop-theme" >
<action name="Execute" command="sh -c 'nwg-look; bl-reload-gtk23'" />
</item>
<item label="Reload GTK" icon="preferences-desktop-theme" >
<action name="Execute" command="bl-reload-gtk23" />
</item>
<item label="Font configuration" icon="preferences-desktop-font" >
<action name="Execute" command="bl-text-editor ~/.config/fontconfig/fonts.conf" />
</item>
<item label="Wallpaper" icon="preferences-desktop-wallpaper" >
<action name="Execute" command="xwwall" />
</item>
<item label="Notifications" icon="org.xfce.notification" >
<action name="Execute" command="xfce4-notifyd-config" />
</item>
<item label="Power Management" icon="xfce4-power-manager-settings" >
<action name="Execute" command="xfce4-power-manager-settings" />
</item>
<menu id="bl-dmenuconfig" />
<menu id="bl-gmrunconfig" />
<menu id="bl-DisplaySettings" />
<item label="Network Connections" icon="preferences-system-network" >
<action name="Execute" command="nm-connection-editor" />
</item>
</menu>
<menu id="bl-DisplaySettings" label="Display settings" icon="video-display" >
<item label="Lxrandr Display Settings Editor" icon="" >
<action name="Execute" command="lxrandr.wrapper" />
</item>
<separator label="Help" />
<item label="How To Set Screen Resolution" icon="help-contents" >
<action name="Execute" command="x-www-browser "https://forums.bunsenlabs.org/viewtopic.php?pid=117065#p117065"" />
</item>
<item label="man xrandr" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man xrandr' -e man xrandr" />
</item>
</menu>
<menu id="bl-obConfig" label="Openbox" icon="openbox" >
<item label="obconf - GUI Config Tool" icon="" >
<action name="Execute" command="obconf --config-file ~/.config/bunsen/openbox/rc.xml" />
</item>
<separator />
<item label="Edit rc.xml" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/bunsen/openbox/rc.xml" />
</item>
<separator />
<item label="Reconfigure" icon="" >
<action name="Execute" command="openbox --reconfigure" />
</item>
<item label="Restart" icon="" >
<action name="Execute" command="openbox --restart" />
</item>
</menu>
<menu id="bl-system-settings" label="System Settings" icon="applications-system" >
<item label="inxi - Quick System Info" icon="applications-development" >
<action name="Execute" command="x-terminal-emulator -T 'inxi system info (Q to close)' -e bash -c "inxi -e -m -d -J -l -o -p -r -u -xxx -z -c 2 | less -R"" />
</item>
<item label="Hardinfo GUI system profiler" icon="applications-development" >
<action name="Execute" command="hardinfo" />
</item>
<item label="BunsenLabs Install Info" icon="distributor-logo-bunsenlabs" >
<action name="Execute" command="x-terminal-emulator -T 'BunsenLabs install info (Q to close)' -e less '/etc/bunsen/bunsen_install'" />
</item>
<separator />
<menu id="bl-printing-pipemenu" label="Printers" icon="printer" execute="bl-printing-pipemenu" />
<item label="Task Manager (htop)" icon="htop" >
<action name="Execute" command="x-terminal-emulator -T 'htop task manager' -e htop" />
</item>
<menu id="bl-install-pipemenu" label="Install Favourite Packages" icon="synaptic" execute="<!-- bl-install-pipemenu -->" />
<item label="Synaptic Package Manager" icon="synaptic" >
<action name="Execute" command="sh -c 'pkexec.wrapper synaptic'" />
</item>
<item label="Login Settings" icon="lightdm-settings" >
<action name="Execute" command="sudoedit.wrapper /etc/lightdm/lightdm-gtk-greeter.conf /etc/lightdm/lightdm.conf" />
</item>
<item label="Login Interface" icon="lightdm-settings" >
<action name="Execute" command="lightdm-gtk-greeter-settings-pkexec" />
</item>
<item label="Show Lightdm Config" icon="lightdm-settings" >
<action name="Execute" command="x-terminal-emulator -T 'Lightdm Config' -e bash -c "lightdm --show-config; printf '\n%s' 'Press any key to close'; read -srn1"" />
</item>
<item label="GParted Partition Manager" icon="gparted" >
<action name="Execute" command="sh -c 'pkexec.wrapper gparted'" />
</item>
<item label="Set Default Browser" icon="applications-internet" >
<action name="Execute" command="x-terminal-emulator -T 'Select Default Browser' -e sh -c 'sudo update-alternatives --config x-www-browser; sleep 5'" />
</item>
<item label="Edit Debian Alternatives" icon="galternatives" >
<action name="Execute" command="galternatives" />
</item>
<separator />
<item label="About Bunsen Alternatives" icon="distributor-logo-bunsenlabs" >
<action name="Execute" command="yad --button="OK":0 --center --window-icon=distributor-logo-bunsenlabs --text-info --title="About Bunsen Alternatives" --filename="/usr/share/bunsen/docs/helpfiles/helpfile-bl-alternatives.txt" --width=900 --height=700 --fontname=Monospace" />
</item>
</menu>
<menu id="bl-utilities" label="Utilities" icon="system-run" >
<item label="App Finder" icon="org.xfce.appfinder" >
<action name="Execute" command="xfce4-appfinder --disable-server" />
</item>
<item label="Catfish File Finder" icon="org.xfce.catfish" >
<action name="Execute" command="catfish" />
</item>
<menu id="bl-scrot-pipemenu" label="Take Screenshot" icon="camera-photo" execute="<!-- bl-scrot-pipemenu -->" />
<menu id="bl-sshconfig-pipemenu" label="SSH" icon="folder-remote-ssh" execute="bl-sshconfig-pipemenu" />
<menu id="bl-remote-desktop-pipemenu" label="Remote Desktop" icon="folder-remote" execute="bl-remote-desktop-pipemenu" />
</menu>
<menu id="bl-dmenuconfig" label="dmenu" icon="applications-development" >
<item label="Edit Start-up Script" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/dmenu/dmenu-bind.sh" />
</item>
<separator label="Help" />
<item label="man page" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man dmenu' -e man dmenu" />
</item>
</menu>
<menu id="bl-gmrunconfig" label="gmrun" icon="gmrun" >
<item label="Edit Config File" icon="" >
<action name="Execute" command="bl-text-editor ~/.gmrunrc" />
</item>
<separator label="Help" />
<item label="man page" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man gmrun' -e man gmrun" />
</item>
</menu>
<menu id="bl-jgmenuConfig" label="jgmenu" icon="jgmenu" >
<item label="Edit Menu Content" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/jgmenu/prepend.csv" />
</item>
<item label="Edit Menu Settings" icon="" >
<action name="Execute" command="bl-text-editor ~/.config/jgmenu/jgmenurc" />
</item>
<separator />
<item label="Sync theme with OpenBox" icon="" >
<action name="Execute" command="JGMENU_RCXML=~/.config/bunsen/openbox/rc.xml jgmenu_run init --apply-obtheme" />
</item>
<separator label="Help" />
<item label="man page" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man jgmenu' -e man jgmenu" />
</item>
<item label="tutorial" icon="" >
<action name="Execute" command="x-terminal-emulator -T 'man jgmenututorial' -e man jgmenututorial" />
</item>
</menu>
<!-- root menu starts here -->
<menu id="root-menu">
<separator />
<item label="Run Program" icon="system-run" >
<action name="Execute" command="gmrun" />
</item>
<separator />
<item label="Terminal" icon="utilities-terminal" >
<action name="Execute" command="x-terminal-emulator" />
</item>
<item label="Web Browser" icon="applications-internet" >
<action name="Execute" command="x-www-browser" />
</item>
<item label="File Manager" icon="system-file-manager" >
<action name="Execute" command="bl-file-manager" />
</item>
<item label="Text Editor" icon="accessories-text-editor" >
<action name="Execute" command="bl-text-editor" />
</item>
<item label="Media Player" icon="multimedia-player" >
<action name="Execute" command="bl-media-player" />
</item>
<separator />
<item label="Quick Screenshot+Upload" icon="camera-photo" >
<action name="Execute" command="bl-image-upload" />
</item>
<separator />
<menu id="bl-utilities" />
<menu id="bl-places-pipemenu" label="Places" icon="folder" execute="bl-places-pipemenu" />
<menu id="bl-recent-files-pipemenu" label="Recent Files" icon="emblem-favorite" execute="bl-recent-files-pipemenu -rl15" />
<separator />
<menu id="bl-user-settings" />
<menu id="bl-system-settings" />
<separator />
<menu id="bl-help-menu" />
<separator />
<menu id="apps" />
<separator />
<item label="Lock Screen" icon="system-lock-screen" >
<action name="Execute" command="bl-lock" />
</item>
<item label="Exit" icon="system-shutdown" >
<action name="Execute" command="bl-exit" />
</item>
</menu>
</openbox_menu>You can put that in ~/.config/bunsen/labwc/menu.xml and it pretty much works. Of course there are bits which need changing - like the openbox config section needs to be replaced with something for labwc - but most of what you need is there.
Any other parts which don't work, please report back here.
Preferably with suggested fixes!
...elevator in the Brain Hotel, broken down but just as well...
( a boring Japan blog (currently paused), now on Bluesky, there's also some GitStuff )
Offline
Pages: 1