Skip to content

Integration update page #74

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Aug 11, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
68 changes: 24 additions & 44 deletions src/integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,6 @@ z-depth and also to be anchored to the edges/corners of a screen.
with a list of opened applications and supports requests for certain actions
such as maximizing, etc.

At the time of writing some common toolkits do not have full support for
[`wlr-layer-shell`], most notably `GTK4` and `Qt <6.5`. In order to integrate
components written in these eco-systems in the short/medium term, window
rules can be used to achieve a reasonable setup. Please note though that the
use of window-rules is a sub-optimal solution which relies on user
configuration and does not always support per-output configuration.

[`wlr-layer-shell`]: https://wayland.app/protocols/wlr-layer-shell-unstable-v1
[`wlr-foreign-toplevel-management`]: https://wayland.app/protocols/wlr-foreign-toplevel-management-unstable-v1

Expand Down Expand Up @@ -79,6 +72,21 @@ protocol to the `~/.config/waybar/config` file:
},
```

From waybar `0.14.0` the ext-workspace protocol is supported and can be
configured like this:

```
"modules-right": ["ext/workspaces"],
```

```
"ext/workspaces": {
"format": "{name}",
"sort-by-number": true,
"on-click": "activate",
},
```

See the [waybar documentation] for further information.

## 2.2 sfwbar {#sfwbar}
Expand All @@ -101,37 +109,20 @@ See example configuration [here](obligatory-screenshot.html#panel).

## 2.3 xfce4-panel {#xfce4panel}

[xfce4-panel repository]
- [xfce4-panel repository]
- [MR103]
- [xfce4-panel]

Just after the release of Xfce 4.18 in Dec 2022, Wayland support was added
([MR103]) to [xfce4-panel] including the layer-shell and
foreign-toplevel-management protocols.
Since Xfce 4.20, Wayland support has included wlr-layer-shell and
wlr-foreign-toplevel-management protocols.

For the time being it is best to force all plugins to run as internal:
For the time being it is best to force all plugins to run as internal with:

`xfconf-query -c xfce4-panel -p /force-all-internal -t bool -s true --create`

Until the next release, you can get it going by cloning the master branch and
building with the following (adjusting prefix to suit your system of course):

```
./autogen --prefix=/usr
make
make install
```

On Arch Linux you can simply install the following packages: [xfce4-dev-tools],
[libxfce4util], [libxfce4ui], [libxfce4windowing-devel] and [xfce4-panel-git].

[MR103]: https://gitlab.xfce.org/xfce/xfce4-panel/-/merge_requests/103
[xfce4-panel]: https://docs.xfce.org/xfce/xfce4-panel/start

[xfce4-dev-tools]: https://archlinux.org/packages/extra/x86_64/xfce4-dev-tools/
[libxfce4util]: https://archlinux.org/packages/extra/x86_64/libxfce4util/
[libxfce4ui]: https://archlinux.org/packages/extra/x86_64/libxfce4ui/
[libxfce4windowing-devel]: https://aur.archlinux.org/packages/libxfce4windowing-devel
[xfce4-panel-git]: https://aur.archlinux.org/packages/xfce4-panel-git

## 2.4 yambar {#yambar}

[yambar repository]
Expand All @@ -144,21 +135,10 @@ Read the [yambar documentation] for further information.
## 2.5 lxqt-panel {#lxqt-panel}

Since version `2.0.0`, `lxqt-panel` supports the [`wlr-layer-shell`] protocol
and thus runs natively under Wayland without window rules. Should you have an
older version, it can still be used with a window rule such as:

```
<windowRules>
<windowRule identifier="lxqt-panel" matchOnce="true" fixedPosition="yes">
<skipTaskbar>yes</skipTaskbar>
<action name="MoveTo" x="0" y="0" />
<action name="ToggleAlwaysOnTop"/>
</windowRule>
</windowRules>
```
and thus runs natively under Wayland.

Note: `lxqt-panel` does not support [`wlr-foreign-toplevel-management`] so the
taskbar does not work.
With version `>=2.1.0` the [`wlr-foreign-toplevel-management`] is supported
enabling taskbar functionality and thereby making this an excellent choice.

# 3. Menu Generators {#menu-generators}

Expand Down