2025年03月24日

lxc (using incus)

to setup wayland gui, make sure /etc/subuid and /etc/subgid contains the mapping of the container user.

for example, in debian there is a default user debian with the ids 1000.

hence, /etc/subuid and /etc/subgid should contain the following:

debian:1000000:1000000000
debian:1000:1

now, do not forget to restart the service incus and incus-user.

for the profiles, make sure to set the XDG_RUNTIME_DIR to your host user’s uid. typically it’s located at /tmp.

but in hyprland's case, it’s on $XDG_RUNTIME_DIR/wayland-1 (or it could be 0). in my case, it’s now on /run/user/1000/wayland-1.

make sure that raw.idmap is configured.

raw.idmap: |
uid 1000 1000
gid 1000 1000
warn: wayland.c:1728: compositor does not implement the XDG toplevel icon protocol
 err: slave.c:399: failed to change working directory to /root: Permission denied
 err: slave.c:508: /usr/bin/bash: failed to execute: Permission denied
 err: fdm.c:215: no such FD: 6

if this error shows up, change the current directory.

notice the /root: Permission denied. this is because the user shell has changed from root to a user.

Error: Error occurred when starting proxy device: Error: Failed to listen on /mnt/.container_sockets/wayland-1: listen unix /mnt/.container_sockets/wayland-1: bind: no such file or directory

.container_sockets directory doesn’t exist. a solution to fix this is to create a script that will create the directory.