Hello people, just switched to Alpine and it would be great if some of the Apine users could share some dotfiles that are running Wayland compositors. I have not figured out to make swayidle work and some other stuff. By the way I am running River but this happened aswell on a fresh install with the Sway option of setup-desktop
script.
I get some errors of unknown session
with swayidle and conky, but I have set the corresponding environment variables and launching with dbus-run-session -- river
River init file:
export XDG_SESSION_DESKTOP=river
export XDG_CURRENT_DESKTOP=river
dbus-update-activation-environment WAYLAND_DISPLAY XDG_CURRENT_DESKTOP=river
Shell env file:
export XDG_RUNTIME_DIR="$(mkrundir)"
export XDG_SESSION_TYPE=wayland
export QT_QPA_PLATFORM=wayland
export SDL_VIDEODRIVER=wayland
export GDK_BACKEND=wayland
export MOZ_ENABLE_WAYLAND=1
export _JAVA_AWT_WM_NONREPARENTING=1
If you encountered some quirks of your own please let me know. Thanks in advance!
Oof. You may want to rethink Alpine as a desktop if you’re not familiar with how to debug it. You are in for a world of shuffling back and forth haha.
Alpine was originally meant for embedded devices to have a super tiny static footprint, hence it being based on busybox. APK as a package manager coupled with using dotfiles as a configuration language is always going to leave you second guessing whether something got missed, and questions like you’re asking.
I would go back through the dep chain and make sure EVERYTHING is actually installed AND configured/linked. Even on image builds I’ve seen APK silently miss a dep due to a resolve error and continue. It’s not built to be as thorough as something like rpm or apt, and it’s very easy for something to get completely missed or just not configured or linked.
Good luck!
Thanks! I just wanted to give this one a good try and I’m not worried about a little testing/breakage since this is only a setup for a laptop that eventually want to use to run Jellyfin and Ente, plus I’m happy to learn.
As far as I’m aware, alpine isn’t designed for regular use, but as a minimal distro for container environments. Of course there’s technically nothing stopping you from using it on a desktop but you’re likely to be on your own in terms of support
That’s not really true. While Alpine is often used for containers due to its small footprint, that’s not what it is made for. It is meant to be a general purpose distro, geared towards power users. The Alpine wiki has some information for running it as a desktop system.
What is the output of
swayidle -d
and fromloginctl
?
You may not be running within an elogind session which could explain theunknown session
error.You are exactly right, I was running
seatd
. Switching toelogind
solved the problem.This was the output by the way:
2025-07-26 19:39:32 - [Line 750] Register idle timeout at 10000 ms 2025-07-26 19:39:32 - [Line 751] Setup idle 2025-07-26 19:39:32 - [Line 713] Command: doas /usr/sbin/zz 2025-07-26 19:39:32 - [Line 1083] Loaded config at /home/alec/.config/swayidle/config 2025-07-26 19:39:32 - [Line 439] GetSession failed: The name org.freedesktop.login1 was not provided by any .service files 2025-07-26 19:39:32 - [Line 448] GetSessionByPID failed: The name org.freedesktop.login1 was not provided by any .service files 2025-07-26 19:39:32 - [Line 450] Failed to find session 2025-07-26 19:39:32 - [Line 281] Failed to parse get BlockInhibited property: Host is unreachable 2025-07-26 19:39:32 - [Line 621] Enable idle timeouts 2025-07-26 19:39:32 - [Line 596] Register with timeout: 10000
Yep, the login1 errors are the giveaway - elogind provides that dbus interface that swayidle needs for session management, while seatd is more minimal and dosn’t implement the full logind API that many Wayland apps expect.
The Output from
swayidle -d
should be similar to the following lines2025-07-27 01:34:16 - [Line 1078] No config file found. 2025-07-27 01:34:16 - [Line 463] Using session: /org/freedesktop/login1/session/c4 2025-07-27 01:34:16 - [Line 1151] No command specified! Nothing to do, will exit
and the ouput from
loginctl
should list the session from the second line of theswayidle -d
output.SESSION UID USER SEAT TTY STATE IDLE SINCE c4 1000 subm77 seat0 tty3 active no - 1 sessions listed.
If that is not the case you could look into setting up a login manager like greetd.