Niri-wm Configuration and Troubleshooting

I recently switched my desktop environment from GNOME to niri-wm. This blog documents my configuration process and troubleshooting steps for niri-wm.

Why niri-wm

Two strengths drive me to have a taste for niri-wm:

  1. Niri-wm presents a scroll-based workspace view for each display. Compared to GNOME, where only the main display can have multiple workspaces, niri-wm is more flexible.
  2. Niri-wm requires fewer mouse operations -- different windows can be navigated effortlessly using the keyboard, ensuring a smooth and consistent workflow.

Installation

I hate the endless configuration required for certain software. A good post guides me in setting up a fancy shell and basic functions for niri-wm.

Troubleshootings

Screensharing for Wemeet

In niri-wm, Tencent Meeting's screen sharing has been problematic. After some attempts, I successfully resolved this issue.

Solution Approach: Instead of using the current Wayland client built into Wemeet, revert to the (older) Wemeet-x11 + wemeet-wayland-screenshare setup.

I've actually always preferred this method because it displays the cursor correctly under GNOME -- though I haven't used GNOME in a long time.

Steps:

  1. Use niri with the fixed shm sharing patch.
    The screen‑sharing feature using shared memory doesn’t seem to be merged into the main branch yet (there’s already a PR; it provides a patch). You can apply the patch yourself. If you’re on Arch Linux, you can try the PKGBUILD I wrote.

  2. Use wemeet-wayland-screenshare. It appears wemeet-wayland-screenshare hasn’t been updated for a while. Currently, after the first screen share in Wemeet, if you stop sharing, the second attempt won’t work properly. I fixed it with some AI assistance; the code is in my fork. For Arch Linux users, I’ve also provided a PKGBUILD.

Once everything is set up, you can simply launch Wemeet via the WemeetApp(Wayland Screenshare).desktop file -- screen sharing should now work normally!