Window manager labwc usage notes
I noticed that labwc has been around for a while, and most window managers are integrated with the desktop environment, such as Gnome's Mutter. The independent window manager is very special, especially under wayland, and labwc exists like this.
If you're tired of monolithic desktop environments like Gnome and KDE, and don't want to mess with tiling Wayland compositors like sway, try labwc's window-stacking Wayland compositor.
When I wrote this article, no one in the Chinese world shared labwc-related information, at least Google, Bing, and Baidu did not include it, and the WeChat search suggested "Lai'an Bawang Meal". This cannot but be said to be a pity, and it is also one of the motivations for me to insist on maintaining this small station.
This article will compile and install labwc in the Ubuntu 23.10 environment, so that it can be used in daily work and study. I am writing this article in a labwc related environment. Without further ado, let’s start quickly:
1. Compile and install labwc
- Download the source code
1git clone https://github.com/labwc/labwc
-
Compile and install
-
Install dependencies
1sudo apt install libseat-dev
If you need xwayland, I personally think you need it, because the Linux environment in mainland China is not good. Up to now, some software such as DingTalk and WeChat still have to be supported by xwayland, and cannot easily run under pure wayland.
To enable xwayland, please install dependencies:
1sudo apt install libxcb-composite0-de 2sudo apt isntall libxcb-icccm4-dev 3sudo apt install libxcb-res0-dev
Some readers may ask, how do you know that you need these dependencies, because I need to use DingTalk for work, and I have suffered a lot. The dependent package names are all based on the error message, apt search xxx combined with experience.
-
compile
Compile for the first time
1meson setup build/ 2meson compile -C build/
It is not the first compilation, pay attention to the parameter
-Dxwayland=enabled
, it is recommended to enable xwayland1meson setup --reconfigure -Dxwayland=enabled build
-
Put the command into the common directory
After the previous step is completed, the build directory will generate labwc and copy it to the /usr/bin directory
1sudo cp build/labwc /usr/bin
At this point, the installation of the labwc window manager is complete. You can directly execute the labwc command in the terminal to start. After startup, it will be black (don’t panic, this is a normal operation), press
Win + Enter
keys, and alacritty will pop up. As shown below: -
Impatient readers would like to ask, with this bare interface, which is similar to a server without a graphical interface, what else is there to play? In fact, at this time, it can already be used, but it is just a rough room. If you use the launcher or the command line to start various programs directly, they can all run normally, but there is no complete desktop environment, and the conditions are relatively difficult.
2. Add necessary desktop elements
Before further operation, it is best to ensure: 1. You can switch back to the complete Gnome environment at any time; 2. The system can automatically connect to the Internet. In such an accident, there is still a way out.
-
set wayland-sessions
Create the labwc.desktop file, the path and content are as follows, don't tell me you won't create the file.
1➜ ~ cat /usr/share/wayland-sessions/labwc.desktop 2[Desktop Entry] 3Name=Labwc 4Comment=Labwc 5Exec=labwc 6Type=Application 7➜ ~
The purpose is to allow gdm3 to select labwc so that you can enter the labwc environment. You can’t start it every time from the command line, right? gdm3 is the so-called display manager, or login manager, there are tui and gui, which is the thing for you to enter the user and password and select sessions after the operating system is started. This step is to give sessions one more option.
-
labwc basic configuration
First create and download 4 core configuration files
1mkdir -p ~/.config/labwc 2wget https://raw.githubusercontent.com/labwc/labwc/master/docs/environment -O ~/.config/labwc/environment 3wget https://raw.githubusercontent.com/labwc/labwc/master/docs/autostart -O ~/.config/labwc/autostart 4wget https://raw.githubusercontent.com/labwc/labwc/master/docs/menu.xml -O ~/.config/labwc/menu.xml 5wget https://raw.githubusercontent.com/labwc/labwc/master/docs/rc.xml -O ~/.config/labwc/rc.xml
Can use mine directly: https://github.com/kmephistoh/dotfiles/tree/main/.config/labwc
-
autostart
1➜ labwc egrep -v "#|^$" autostart 2swaybg -i ~/Pictures/mount.jpeg >/dev/null 2>&1 & 3waybar >/dev/null 2>&1 & 4fcitx5 >/dev/null 2>&1 & 5➜ labwc pwd 6/home/mephisto/.config/labwc
They are to set the wallpaper, activate the waybar status bar, and activate the fcitx5 input method (the input method is not required for English speakers, but Chinese readers must have it). Please modify the path of the wallpaper image by yourself. -environment
1➜ labwc egrep -v "#|^$" environment 2XDG_CURRENT_DESKTOP=wlroots 3MOZ_ENABLE_WAYLAND=1 4XDG_CURRENT_DESKTOP=labwc 5XCURSOR_THEME=breeze_cursors 6GTK_IM_MODULE=fcitx 7QT_IM_MODULE=fcitx 8XMODIFIERS=@im=fcitx 9INPUT_METHOD=fcitx 10SDL_IM_MODULE=fcitx 11➜ labwc pwd 12/home/mephisto/.config/labwc
Among them,
MOZ_ENABLE_WAYLAND=1
allows firefox to run under wayland,XDG_CURRENT_DESKTOP=labwc
is required for flameshot screen capture software, I figured it out by myself, add chicken legs! The fcitx related is what makes fcitx work properly.If you prefer chrome and are not used to firefox, you need to do some special settings (if xwayland support is not enabled).
1➜ labwc grep -i exec /usr/share/applications/google-chrome.desktop 2Exec=/usr/bin/google-chrome-stable-enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 %U 3Exec=/usr/bin/google-chrome-stable-enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4 4Exec=/usr/bin/google-chrome-stable --incognito-enable-features=UseOzonePlatform --ozone-platform=wayland --gtk-version=4
-enable-features=UseOzonePlatform --ozone-platform=wayland
is to enable wayland support--gtk-version=4
enables fcitx5 input method support, the candidate word interface will run away, this is the daily life of Linux users^_^ -
rc.xml
This part has not been changed much, but shortcut keys have been added, wofi is the launcher (lancher), flameshot is the screen capture tool, and swaylock is the lock screen tool. Wofi will write a separate article later when I have time.
1<keybind key="F8"> 2<action name="Execute" command="wofi" /> 3</keybind> 4<keybind key="F9"> 5<action name="Execute" command="flameshot gui" /> 6</keybind> 7<keybind key="W-l"> 8<action name="Execute" command="swaylock" /> 9</keybind>
-
menu.xml
It is recommended to read the document and modify it as needed. You can also download mine directly. It is not important at present.
-
-
set waybar
A simple understanding of waybar is a status bar that displays various basic information.
It is recommended to install directly
1sudo apt install waybar
waybar can be customized, it is recommended to see official document
There are many examples: https://github.com/Alexays/Waybar/wiki/Examples
Just find one you like, the author's configuration is at: https://github.com/kmephistoh/dotfiles
-
set swaylock
swaylock is to lock the screen. It is a good habit to lock the screen when you leave the computer. It is fireproof, antitheft and anti-hypocrites.
install first
1sudo apt install swaylock
It can also be customized, if you don’t want to bother, you can download my
https://github.com/kmephistoh/dotfiles/tree/main/.config/swaylock
According to the settings in rc.xml,
Win + l
keys lock the screen, when it is used for the first time, the effect is really surprising, it looks like this (the lock screen interface cannot be screenshotted, only a network image can be found, I configured It's not as good-looking as this one).
3. Desktop overall preview
After such an operation, the result is as follows:
Dual screenshot
-
- Status bar waybar
-
- Launcher wofi
-
- Menu (click the blank area to pop up, you can exit labwc, otherwise you don't know how to exit, right?)
-
- Proof that chrome is working fine, with a web browser you should have nothing to fear
-
- If you don’t have wofi yet, please use
Alt + F3
to pop up the bemenue first, it’s not good enough
- If you don’t have wofi yet, please use
Notification screenshot
In the end, it is no problem to work with labwc. I plan to continue to experience it for a period of time. I may encounter various small flaws, but they are not critical. The important thing is that you can customize various components of the desktop environment according to your own preferences, avoiding being restricted by heavy environments such as Gnome/KDE, the system responds quickly (mostly written in C), and you know how these components work together , You can learn some knowledge, and you can replace it at any time if you don’t like it. This is the feeling of freedom.
Update on 2023-08-04: After 2 months of using experience, labwc runs stably and smoothly, meeting 99% of daily needs. It can be said that it is too late to meet each other, and I have bid farewell to the Gnome environment. It is recommended for Linux users. If you don’t know how to configure it, you can search for relevant tutorials on this site.
Copyright statement:
- All content that is not sourced is original., please do not reprint without authorization (because the typesetting is often disordered after reprinting, the content is uncontrollable, and cannot be continuously updated, etc.);
- For non-profit purposes, to deduce any content of this blog, please give the relevant webpage address of this site in the form of 'source of original text' or 'reference link' (for the convenience of readers).