commit ca66c465728496160bbea4d81a527b3bf08d06d1
parent 8d630e29b72120013b2f576241f2861164fec123
Author: ccx <ccx@te2000.cz>
Date: Sun, 17 Mar 2024 00:27:04 +0000
Add xorg container definition
Diffstat:
1 file changed, 46 insertions(+), 0 deletions(-)
diff --git a/zsh-functions/confz_containers_init b/zsh-functions/confz_containers_init
@@ -474,6 +474,52 @@ confz_container_service_xsession_check() {
content="$mnt_dirs"
}
+confz_container_service_xorg_check() {
+ local uid gid container_user_dir svc_dir container
+ local -a fstab
+ checkvars containers_dir svscan_dir image_name ttyN
+ defvar user xorg
+ defvar fstab_extra ''
+ defvar container_name "X$vars[ttyN]"
+ container=$vars[container_name]
+
+ uid="${${(s.:.)"$(getent passwd $vars[user])"}[3]}" \
+ gid="${${(s.:.)"$(getent group $vars[user])"}[3]}" \
+
+ require fs_d filename=$vars[containers_dir]/user/$vars[user]
+ require fs_m filename=$vars[containers_dir]/user/$vars[user] mode=751
+ require fs_o filename=$vars[containers_dir]/user/$vars[user] owner=0:$gid
+
+ container_user_dir=$vars[containers_dir]/user/$vars[user]/$container
+ require fs_d filename=$container_user_dir
+ require fs_m filename=$container_user_dir mode=751
+ require fs_o filename=$container_user_dir owner=0:$gid
+
+ require fs_d filename=$container_user_dir/root
+
+ fstab=(
+ $vars[containers_dir]/systems/$vars[image_name]$'\t'$container_user_dir/root$'\tnone\tbind,ro,nosuid,nodev\t0 0'
+ /run/containers/$container.$vars[user]/run$'\t'$container_user_dir/root/run$'\tnone\tbind,nosuid,nodev\t0 0'
+ /run/containers/$container.$vars[user]/tmp$'\t'$container_user_dir/root/tmp$'\tnone\tbind,nosuid,nodev\t0 0'
+ "${(f@)vars[fstab_extra]}"
+ )
+
+ svc_dir=$vars[svscan_dir]/container.$container
+ require container_service_preset preset=xorg \
+ svc_dir=$svc_dir control_user=0 control_group=0 \
+ log_dir=/run/container-logs/$container \
+ log_uid=0 log_gid=0 \
+ root_link=$container_user_dir/root \
+ fstab=${(F)fstab} \?down \?fstab_post
+ require fs_d filename=$svc_dir/env
+ require fs_contentnl filename=$svc_dir/env/CONTAINER_USER \
+ content=$vars[user]
+ require fs_contentnl filename=$svc_dir/env/CONTAINER_NAME \
+ content=$container
+ require fs_contentnl filename=$svc_dir/env/vtN \
+ content=$vars[vtN]
+}
+
# --- new image constructor
() {