Hey, I am trying to revive an old surface laptop with void linux, so far it hasn’t been too bad. I decided to try and go with wayland and niri for the desktop environment with lightdm. It is all kind of working except for waybar which I can’t seem to get going.
It does not launch on startup, I can run dbus-launch waybar
from the terminal and it kind of works (with a fair few warnings). But it does show at the top of the screen! Some errors from running it like this include:
[error] media stopped unexpectedly, is it endless?
...
[error] Failed to query power-profiles-daemon via dbus
If anyone has suggestions would love to hear them, included is basically everything I have installed so far because I did a chroot install for LUKS.
- Waybar
- base-devel
- base-system
- chrony
- cryptsetup
- elogind
- firefox
- font-firacode
- fuzzel
- git
- grub-x86_64-efi
- intel-video-accel
- kitty
- lightdm
- lvm2-2
- mako
- mesa-dri
- mesa-vulkan-intel
- mutter
- niri
- obfs4proxy
- openssl-devel
- pipewire
- plymouth
- swaybg
- swaylock
- tor
- vulkan-loader
- wget
- xorg-minimal
- xwayland-satellite
EDIT: Found a solution by editing /usr/share/wayland-sessions/niri.desktop
and changing
Exec=/usr/bin/niri --session
to
Exec=dbus-run-session /usr/bin/niri --session
So the idea is to launch waybar with your window manager (for example, sway) by configuring the windowmanager to run waybar when it starts.
As for the other errors, it looks like you might have some waybar plugins running that have dependencies on uninstalled packages. If you share your waybar config I (or someone else on this post) might be able to help further.
Thank you! I have in my niri config:
spawn-at-startup "waybar"
My config is is just the default given https://github.com/YaLTeR/niri/blob/main/resources/default-config.kdl
Might you know where there may be logs I can check for the service?
Just ran
niri --session 2> niri.log
and checked the output and it throws an error:dbus-update-activation-environment: error: unable to connect to D-Bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11
Ok so running
dbus-run-session niri --session
seems to successfully start niri with waybar. Now I just need to figure out how to get that same thing working with startup. Is there somewhere in void I can configure how dbus launches niri?You could try turning on the elogind service, but i never tried that myself to see if it worked. I’ve always just executed my window managers with dbus-run-session. Are you using a display manager? If so the best way to do it is probably to make a copy of niri.desktop in /usr/share/wayland-sessions, call it niri-dbus.desktop for example, then add dbus-run-session to the exec line, and also change the name field to something like Niri (dbus) for example, so that it shows a different name in the display manager. The reason you’d want to make a copy of the file instead of modifying the original is because the original will get replaced everytime xbps updates niri, so this way your changes will stick.
Thank you for the advice about the copy, that could have been annoying later!
I think you’ll need to update the lightdm config with “exec dbus-run-session niri --session”