summary refs log tree commit diff
path: root/os/etc/s6-rc
diff options
context:
space:
mode:
Diffstat (limited to 'os/etc/s6-rc')
-rw-r--r--os/etc/s6-rc/TODO10
-rw-r--r--os/etc/s6-rc/config/cgroups.conf6
-rw-r--r--os/etc/s6-rc/config/containerd.conf6
-rw-r--r--os/etc/s6-rc/config/evdoublebind.conf2
-rw-r--r--os/etc/s6-rc/config/log.conf6
-rw-r--r--os/etc/s6-rc/config/user.conf12
-rwxr-xr-xos/etc/s6-rc/make-logservice38
-rwxr-xr-xos/etc/s6-rc/reload34
-rwxr-xr-xos/etc/s6-rc/restart6
-rw-r--r--os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_LIST1
l---------os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_RETRIEVE_REGEX1
-rw-r--r--os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_STORE_REGEX0
-rw-r--r--os/etc/s6-rc/rules.d/uid/default/deny0
-rwxr-xr-xos/etc/s6-rc/runas15
-rw-r--r--os/etc/s6-rc/src/bluetoothd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/bluetoothd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/bluetoothd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/bluetoothd-log/run9
-rw-r--r--os/etc/s6-rc/src/bluetoothd-log/type1
-rw-r--r--os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/dbus-system0
-rw-r--r--os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/udev0
-rw-r--r--os/etc/s6-rc/src/bluetoothd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/bluetoothd-srv/run4
-rw-r--r--os/etc/s6-rc/src/bluetoothd-srv/type1
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/console0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/hostname0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/hwclock0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/kmod-static-nodes0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/mount0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/plymouth-splash0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/seedrng0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/sysctl0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/systemd-tmpfiles-setup0
-rw-r--r--os/etc/s6-rc/src/boot/contents.d/udev0
-rw-r--r--os/etc/s6-rc/src/boot/type1
-rw-r--r--os/etc/s6-rc/src/buildkitd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/buildkitd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/buildkitd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/buildkitd-log/run9
-rw-r--r--os/etc/s6-rc/src/buildkitd-log/type1
-rw-r--r--os/etc/s6-rc/src/buildkitd-srv/dependencies.d/containerd0
-rw-r--r--os/etc/s6-rc/src/buildkitd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/buildkitd-srv/run27
-rw-r--r--os/etc/s6-rc/src/buildkitd-srv/type1
-rw-r--r--os/etc/s6-rc/src/chronyd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/chronyd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/chronyd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/chronyd-log/run9
-rw-r--r--os/etc/s6-rc/src/chronyd-log/type1
-rw-r--r--os/etc/s6-rc/src/chronyd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/chronyd-srv/run4
-rw-r--r--os/etc/s6-rc/src/chronyd-srv/type1
-rw-r--r--os/etc/s6-rc/src/connman-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/connman-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/connman-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/connman-log/run9
-rw-r--r--os/etc/s6-rc/src/connman-log/type1
-rw-r--r--os/etc/s6-rc/src/connman-srv/dependencies.d/dbus-system0
-rw-r--r--os/etc/s6-rc/src/connman-srv/dependencies.d/iwd0
-rw-r--r--os/etc/s6-rc/src/connman-srv/dependencies.d/udevd0
-rw-r--r--os/etc/s6-rc/src/connman-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/connman-srv/run4
-rw-r--r--os/etc/s6-rc/src/connman-srv/type1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-log/run9
-rw-r--r--os/etc/s6-rc/src/connman-vpn-log/type1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-srv/dependencies.d/connman0
-rw-r--r--os/etc/s6-rc/src/connman-vpn-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/connman-vpn-srv/run3
-rw-r--r--os/etc/s6-rc/src/connman-vpn-srv/type1
-rw-r--r--os/etc/s6-rc/src/console/dependencies.d/getty0
-rw-r--r--os/etc/s6-rc/src/console/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/console/dependencies.d/remount-root0
-rw-r--r--os/etc/s6-rc/src/console/type1
-rw-r--r--os/etc/s6-rc/src/console/up14
-rw-r--r--os/etc/s6-rc/src/containerd-fdholder/run8
-rw-r--r--os/etc/s6-rc/src/containerd-fdholder/type1
-rw-r--r--os/etc/s6-rc/src/containerd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/containerd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/containerd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/containerd-log/run9
-rw-r--r--os/etc/s6-rc/src/containerd-log/type1
-rw-r--r--os/etc/s6-rc/src/containerd-setup/dependencies.d/containerd-fdholder0
-rw-r--r--os/etc/s6-rc/src/containerd-setup/down6
-rw-r--r--os/etc/s6-rc/src/containerd-setup/type1
-rw-r--r--os/etc/s6-rc/src/containerd-setup/up19
-rw-r--r--os/etc/s6-rc/src/containerd-srv/dependencies.d/mount-cgroups0
-rw-r--r--os/etc/s6-rc/src/containerd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/containerd-srv/run32
-rw-r--r--os/etc/s6-rc/src/containerd-srv/type1
-rw-r--r--os/etc/s6-rc/src/containers/contents.d/buildkitd0
-rw-r--r--os/etc/s6-rc/src/containers/contents.d/containerd0
-rw-r--r--os/etc/s6-rc/src/containers/type1
-rw-r--r--os/etc/s6-rc/src/cupsd/dependencies.d/dbus-system0
-rw-r--r--os/etc/s6-rc/src/cupsd/run2
-rw-r--r--os/etc/s6-rc/src/cupsd/type1
-rw-r--r--os/etc/s6-rc/src/dbus-session-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/dbus-session-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/dbus-session-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/dbus-session-log/run9
-rw-r--r--os/etc/s6-rc/src/dbus-session-log/type1
-rw-r--r--os/etc/s6-rc/src/dbus-session-srv/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/dbus-session-srv/notification-fd1
-rw-r--r--os/etc/s6-rc/src/dbus-session-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/dbus-session-srv/run3
-rw-r--r--os/etc/s6-rc/src/dbus-session-srv/type1
-rw-r--r--os/etc/s6-rc/src/dbus-system-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/dbus-system-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/dbus-system-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/dbus-system-log/run9
-rw-r--r--os/etc/s6-rc/src/dbus-system-log/type1
-rw-r--r--os/etc/s6-rc/src/dbus-system-srv/notification-fd1
-rw-r--r--os/etc/s6-rc/src/dbus-system-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/dbus-system-srv/run7
-rw-r--r--os/etc/s6-rc/src/dbus-system-srv/type1
-rw-r--r--os/etc/s6-rc/src/debug/contents.d/boot0
-rw-r--r--os/etc/s6-rc/src/debug/contents.d/network0
-rw-r--r--os/etc/s6-rc/src/debug/type1
-rw-r--r--os/etc/s6-rc/src/default/contents.d/boot0
-rw-r--r--os/etc/s6-rc/src/default/contents.d/desktop0
-rw-r--r--os/etc/s6-rc/src/default/contents.d/network0
-rw-r--r--os/etc/s6-rc/src/default/type1
-rw-r--r--os/etc/s6-rc/src/desktop-session-running/dependencies.d/tinydm0
-rw-r--r--os/etc/s6-rc/src/desktop-session-running/down6
-rwxr-xr-xos/etc/s6-rc/src/desktop-session-running/find-marker-proc15
-rw-r--r--os/etc/s6-rc/src/desktop-session-running/type1
-rw-r--r--os/etc/s6-rc/src/desktop-session-running/up21
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/bluetoothd0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/evdoublebind0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/footserver0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/kanshi0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/mako0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/powertop0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/seatd0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/sound0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/swayidle0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/swww0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/tinydm0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/user0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/waybar0
-rw-r--r--os/etc/s6-rc/src/desktop/contents.d/wlsunset0
-rw-r--r--os/etc/s6-rc/src/desktop/type1
-rw-r--r--os/etc/s6-rc/src/easyeffects/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/easyeffects/dependencies.d/pipewire0
-rw-r--r--os/etc/s6-rc/src/easyeffects/run4
-rw-r--r--os/etc/s6-rc/src/easyeffects/type1
-rw-r--r--os/etc/s6-rc/src/evdoublebind/run9
-rw-r--r--os/etc/s6-rc/src/evdoublebind/type1
-rw-r--r--os/etc/s6-rc/src/footserver-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/footserver-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/footserver-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/footserver-log/run9
-rw-r--r--os/etc/s6-rc/src/footserver-log/type1
-rw-r--r--os/etc/s6-rc/src/footserver-srv/dependencies.d/dbus-session0
-rw-r--r--os/etc/s6-rc/src/footserver-srv/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/footserver-srv/notification-fd1
-rw-r--r--os/etc/s6-rc/src/footserver-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/footserver-srv/run3
-rw-r--r--os/etc/s6-rc/src/footserver-srv/type1
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty10
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty20
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty30
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty40
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty50
-rw-r--r--os/etc/s6-rc/src/getty/contents.d/tty60
-rw-r--r--os/etc/s6-rc/src/getty/type1
-rw-r--r--os/etc/s6-rc/src/hostname/dependencies.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/hostname/type1
-rw-r--r--os/etc/s6-rc/src/hostname/up4
-rw-r--r--os/etc/s6-rc/src/hwclock/down2
-rw-r--r--os/etc/s6-rc/src/hwclock/type1
-rw-r--r--os/etc/s6-rc/src/hwclock/up2
-rw-r--r--os/etc/s6-rc/src/iwd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/iwd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/iwd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/iwd-log/run9
-rw-r--r--os/etc/s6-rc/src/iwd-log/type1
-rw-r--r--os/etc/s6-rc/src/iwd-srv/dependencies.d/dbus-system0
-rw-r--r--os/etc/s6-rc/src/iwd-srv/dependencies.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/iwd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/iwd-srv/run4
-rw-r--r--os/etc/s6-rc/src/iwd-srv/type1
-rw-r--r--os/etc/s6-rc/src/kanshi/run3
-rw-r--r--os/etc/s6-rc/src/kanshi/type1
-rw-r--r--os/etc/s6-rc/src/kmod-static-nodes/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/kmod-static-nodes/type1
-rw-r--r--os/etc/s6-rc/src/kmod-static-nodes/up4
-rw-r--r--os/etc/s6-rc/src/mako/dependencies.d/dbus-session0
-rw-r--r--os/etc/s6-rc/src/mako/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/mako/run3
-rw-r--r--os/etc/s6-rc/src/mako/type1
-rw-r--r--os/etc/s6-rc/src/modules/dependencies.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/modules/dependencies.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/modules/type1
-rw-r--r--os/etc/s6-rc/src/modules/up5
-rwxr-xr-xos/etc/s6-rc/src/mount-cgroups/cgroup-release-agent.sh19
-rw-r--r--os/etc/s6-rc/src/mount-cgroups/dependencies.d/mount-procfs0
-rwxr-xr-xos/etc/s6-rc/src/mount-cgroups/shell-up178
-rw-r--r--os/etc/s6-rc/src/mount-cgroups/type1
-rw-r--r--os/etc/s6-rc/src/mount-cgroups/up3
-rw-r--r--os/etc/s6-rc/src/mount-devfs/dependencies.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/mount-devfs/type1
-rw-r--r--os/etc/s6-rc/src/mount-devfs/up52
-rw-r--r--os/etc/s6-rc/src/mount-filesystems/dependencies.d/modules0
-rw-r--r--os/etc/s6-rc/src/mount-filesystems/type1
-rw-r--r--os/etc/s6-rc/src/mount-filesystems/up3
-rw-r--r--os/etc/s6-rc/src/mount-procfs/type1
-rw-r--r--os/etc/s6-rc/src/mount-procfs/up7
-rw-r--r--os/etc/s6-rc/src/mount-sysfs/dependencies.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/mount-sysfs/type1
-rw-r--r--os/etc/s6-rc/src/mount-sysfs/up66
-rw-r--r--os/etc/s6-rc/src/mount-tmpfs/type1
-rw-r--r--os/etc/s6-rc/src/mount-tmpfs/up2
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-cgroups0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-filesystems0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-sysfs0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/mount-tmpfs0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/remount-root0
-rw-r--r--os/etc/s6-rc/src/mount/contents.d/swap0
-rw-r--r--os/etc/s6-rc/src/mount/type1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-log/run9
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-log/type1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-srv/dbus-session0
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-srv/run4
-rw-r--r--os/etc/s6-rc/src/mpris-scrobbler-srv/type1
-rw-r--r--os/etc/s6-rc/src/net-lo/type1
-rw-r--r--os/etc/s6-rc/src/net-lo/up2
-rw-r--r--os/etc/s6-rc/src/net-online/dependencies.d/mount-sysfs0
-rw-r--r--os/etc/s6-rc/src/net-online/dependencies.d/net-lo0
-rwxr-xr-xos/etc/s6-rc/src/net-online/shell-up62
-rw-r--r--os/etc/s6-rc/src/net-online/type1
-rw-r--r--os/etc/s6-rc/src/net-online/up2
-rw-r--r--os/etc/s6-rc/src/network/contents.d/chronyd0
-rw-r--r--os/etc/s6-rc/src/network/contents.d/connman0
-rw-r--r--os/etc/s6-rc/src/network/contents.d/iwd0
-rw-r--r--os/etc/s6-rc/src/network/contents.d/net-lo0
-rw-r--r--os/etc/s6-rc/src/network/contents.d/syncthing0
-rw-r--r--os/etc/s6-rc/src/network/contents.d/tailscale0
-rw-r--r--os/etc/s6-rc/src/network/type1
-rw-r--r--os/etc/s6-rc/src/pipewire-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/pipewire-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/pipewire-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/pipewire-log/run9
-rw-r--r--os/etc/s6-rc/src/pipewire-log/type1
-rw-r--r--os/etc/s6-rc/src/pipewire-pulse/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/pipewire-pulse/dependencies.d/pipewire0
-rw-r--r--os/etc/s6-rc/src/pipewire-pulse/run9
-rw-r--r--os/etc/s6-rc/src/pipewire-pulse/type1
-rw-r--r--os/etc/s6-rc/src/pipewire-srv/dependencies.d/dbus-session0
-rw-r--r--os/etc/s6-rc/src/pipewire-srv/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/pipewire-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/pipewire-srv/run3
-rw-r--r--os/etc/s6-rc/src/pipewire-srv/type1
-rw-r--r--os/etc/s6-rc/src/plymouth-quit/dependencies.d/plymouth-start0
-rw-r--r--os/etc/s6-rc/src/plymouth-quit/type1
-rw-r--r--os/etc/s6-rc/src/plymouth-quit/up2
-rw-r--r--os/etc/s6-rc/src/plymouth-splash/dependencies.d/plymouth-start0
-rw-r--r--os/etc/s6-rc/src/plymouth-splash/type1
-rw-r--r--os/etc/s6-rc/src/plymouth-splash/up2
-rw-r--r--os/etc/s6-rc/src/plymouth-start/dependencies.d/console0
-rw-r--r--os/etc/s6-rc/src/plymouth-start/run2
-rw-r--r--os/etc/s6-rc/src/plymouth-start/type1
-rw-r--r--os/etc/s6-rc/src/powertop/dependencies.d/mount0
-rw-r--r--os/etc/s6-rc/src/powertop/type1
-rw-r--r--os/etc/s6-rc/src/powertop/up4
-rw-r--r--os/etc/s6-rc/src/remount-root/dependencies.d/mount-filesystems0
-rw-r--r--os/etc/s6-rc/src/remount-root/type1
-rw-r--r--os/etc/s6-rc/src/remount-root/up3
-rw-r--r--os/etc/s6-rc/src/seatd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/seatd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/seatd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/seatd-log/run9
-rw-r--r--os/etc/s6-rc/src/seatd-log/type1
-rw-r--r--os/etc/s6-rc/src/seatd-srv/notification-fd1
-rw-r--r--os/etc/s6-rc/src/seatd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/seatd-srv/run3
-rw-r--r--os/etc/s6-rc/src/seatd-srv/type1
-rw-r--r--os/etc/s6-rc/src/seedrng/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/seedrng/dependencies.d/mount-procfs0
-rw-r--r--os/etc/s6-rc/src/seedrng/dependencies.d/remount-root0
-rw-r--r--os/etc/s6-rc/src/seedrng/dependencies.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/seedrng/type1
-rw-r--r--os/etc/s6-rc/src/seedrng/up2
-rw-r--r--os/etc/s6-rc/src/snooze-daily/producer-for1
-rw-r--r--os/etc/s6-rc/src/snooze-daily/run8
-rw-r--r--os/etc/s6-rc/src/snooze-daily/type1
-rw-r--r--os/etc/s6-rc/src/snooze-hourly/producer-for1
-rw-r--r--os/etc/s6-rc/src/snooze-hourly/run8
-rw-r--r--os/etc/s6-rc/src/snooze-hourly/type1
-rw-r--r--os/etc/s6-rc/src/snooze-log/consumer-for2
-rw-r--r--os/etc/s6-rc/src/snooze-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/snooze-log/run9
-rw-r--r--os/etc/s6-rc/src/snooze-log/type1
-rw-r--r--os/etc/s6-rc/src/snooze/contents.d/snooze-daily0
-rw-r--r--os/etc/s6-rc/src/snooze/contents.d/snooze-hourly0
-rw-r--r--os/etc/s6-rc/src/snooze/type1
-rw-r--r--os/etc/s6-rc/src/sound/contents.d/pipewire0
-rw-r--r--os/etc/s6-rc/src/sound/contents.d/pipewire-pulse0
-rw-r--r--os/etc/s6-rc/src/sound/contents.d/wireplumber0
-rw-r--r--os/etc/s6-rc/src/sound/type1
-rw-r--r--os/etc/s6-rc/src/sshd/run3
-rw-r--r--os/etc/s6-rc/src/sshd/type1
-rw-r--r--os/etc/s6-rc/src/startpage/run8
-rw-r--r--os/etc/s6-rc/src/startpage/type1
-rw-r--r--os/etc/s6-rc/src/swap/dependencies.d/mount-filesystems0
-rw-r--r--os/etc/s6-rc/src/swap/type1
-rw-r--r--os/etc/s6-rc/src/swap/up4
-rw-r--r--os/etc/s6-rc/src/swayidle/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/swayidle/run4
-rw-r--r--os/etc/s6-rc/src/swayidle/type1
-rw-r--r--os/etc/s6-rc/src/swww/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/swww/dependencies.d/kanshi0
-rw-r--r--os/etc/s6-rc/src/swww/run4
-rw-r--r--os/etc/s6-rc/src/swww/type1
-rw-r--r--os/etc/s6-rc/src/syncthing-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/syncthing-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/syncthing-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/syncthing-log/run9
-rw-r--r--os/etc/s6-rc/src/syncthing-log/type1
-rw-r--r--os/etc/s6-rc/src/syncthing-srv/dependencies.d/net-online0
-rw-r--r--os/etc/s6-rc/src/syncthing-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/syncthing-srv/run12
-rw-r--r--os/etc/s6-rc/src/syncthing-srv/type1
-rw-r--r--os/etc/s6-rc/src/sysctl/dependencies.d/mount0
-rw-r--r--os/etc/s6-rc/src/sysctl/type1
-rw-r--r--os/etc/s6-rc/src/sysctl/up4
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/kmod-static-nodes0
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/type1
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/up2
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/mount-tmpfs0
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/remount-root0
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup/type1
-rw-r--r--os/etc/s6-rc/src/systemd-tmpfiles-setup/up2
-rw-r--r--os/etc/s6-rc/src/tailscale-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/tailscale-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/tailscale-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/tailscale-log/run9
-rw-r--r--os/etc/s6-rc/src/tailscale-log/type1
-rw-r--r--os/etc/s6-rc/src/tailscale-srv/dependencies.d/net-online0
-rw-r--r--os/etc/s6-rc/src/tailscale-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/tailscale-srv/run12
-rw-r--r--os/etc/s6-rc/src/tailscale-srv/type1
-rw-r--r--os/etc/s6-rc/src/tinydm-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/tinydm-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/tinydm-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/tinydm-log/run9
-rw-r--r--os/etc/s6-rc/src/tinydm-log/type1
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/dependencies.d/seatd0
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/dependencies.d/systemd-tmpfiles-setup0
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/finish4
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/finish-sh10
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/run9
-rw-r--r--os/etc/s6-rc/src/tinydm-srv/type1
-rw-r--r--os/etc/s6-rc/src/tty1/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty1/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty1/run4
-rw-r--r--os/etc/s6-rc/src/tty1/type1
-rw-r--r--os/etc/s6-rc/src/tty2/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty2/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty2/run4
-rw-r--r--os/etc/s6-rc/src/tty2/type1
-rw-r--r--os/etc/s6-rc/src/tty3/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty3/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty3/run4
-rw-r--r--os/etc/s6-rc/src/tty3/type1
-rw-r--r--os/etc/s6-rc/src/tty4/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty4/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty4/run4
-rw-r--r--os/etc/s6-rc/src/tty4/type1
-rw-r--r--os/etc/s6-rc/src/tty5/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty5/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty5/run4
-rw-r--r--os/etc/s6-rc/src/tty5/type1
-rw-r--r--os/etc/s6-rc/src/tty6/dependencies.d/hostname0
-rw-r--r--os/etc/s6-rc/src/tty6/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/tty6/run4
-rw-r--r--os/etc/s6-rc/src/tty6/type1
-rw-r--r--os/etc/s6-rc/src/udev-settle/dependencies.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/udev-settle/dependencies.d/udevd0
-rw-r--r--os/etc/s6-rc/src/udev-settle/type1
-rw-r--r--os/etc/s6-rc/src/udev-settle/up3
-rw-r--r--os/etc/s6-rc/src/udev-trigger/dependencies.d/udevd0
-rw-r--r--os/etc/s6-rc/src/udev-trigger/type1
-rw-r--r--os/etc/s6-rc/src/udev-trigger/up4
-rw-r--r--os/etc/s6-rc/src/udev/contents.d/udev-trigger0
-rw-r--r--os/etc/s6-rc/src/udev/contents.d/udevd0
-rw-r--r--os/etc/s6-rc/src/udev/type1
-rw-r--r--os/etc/s6-rc/src/udevd-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/udevd-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/udevd-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/udevd-log/run9
-rw-r--r--os/etc/s6-rc/src/udevd-log/type1
-rw-r--r--os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-cgroups0
-rw-r--r--os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-devfs0
-rw-r--r--os/etc/s6-rc/src/udevd-srv/dependencies.d/systemd-tmpfiles-setup-dev0
-rw-r--r--os/etc/s6-rc/src/udevd-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/udevd-srv/run4
-rw-r--r--os/etc/s6-rc/src/udevd-srv/type1
-rw-r--r--os/etc/s6-rc/src/user/contents.d/mpris-scrobbler0
-rw-r--r--os/etc/s6-rc/src/user/contents.d/plymouth-quit0
-rw-r--r--os/etc/s6-rc/src/user/contents.d/startpage0
-rw-r--r--os/etc/s6-rc/src/user/type1
-rw-r--r--os/etc/s6-rc/src/waybar-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/waybar-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/waybar-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/waybar-log/run9
-rw-r--r--os/etc/s6-rc/src/waybar-log/type1
-rw-r--r--os/etc/s6-rc/src/waybar-srv/dependencies.d/dbus-session0
-rw-r--r--os/etc/s6-rc/src/waybar-srv/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/waybar-srv/dependencies.d/sound0
-rw-r--r--os/etc/s6-rc/src/waybar-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/waybar-srv/run3
-rw-r--r--os/etc/s6-rc/src/waybar-srv/type1
-rw-r--r--os/etc/s6-rc/src/wireplumber-log/consumer-for1
-rw-r--r--os/etc/s6-rc/src/wireplumber-log/notification-fd1
-rw-r--r--os/etc/s6-rc/src/wireplumber-log/pipeline-name1
-rw-r--r--os/etc/s6-rc/src/wireplumber-log/run9
-rw-r--r--os/etc/s6-rc/src/wireplumber-log/type1
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire0
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire-pulse0
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/producer-for1
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/run3
-rw-r--r--os/etc/s6-rc/src/wireplumber-srv/type1
-rw-r--r--os/etc/s6-rc/src/wlsunset/dependencies.d/desktop-session-running0
-rw-r--r--os/etc/s6-rc/src/wlsunset/run9
-rw-r--r--os/etc/s6-rc/src/wlsunset/type1
438 files changed, 1292 insertions, 0 deletions
diff --git a/os/etc/s6-rc/TODO b/os/etc/s6-rc/TODO
new file mode 100644
index 0000000..55f9b8f
--- /dev/null
+++ b/os/etc/s6-rc/TODO
@@ -0,0 +1,10 @@
+- fsck
+- modules
+- ttyS?
+- ttyN - why do we check if mount-filesystems is in the service list?
+
+- can we drop autologin
+- chrony vs connman ntp
+- proper cgroups setup?
+
+- rules.d ??? s6-accessrules-cdb-from-fs
diff --git a/os/etc/s6-rc/config/cgroups.conf b/os/etc/s6-rc/config/cgroups.conf
new file mode 100644
index 0000000..811c33a
--- /dev/null
+++ b/os/etc/s6-rc/config/cgroups.conf
@@ -0,0 +1,6 @@
+
+cgroup_opts=nodev,noexec,nosuid
+cgroup_mode=unified
+cgroup_controllers=
+cgroup_memory_use_hierarchy=no
+cgroupsize=10m
diff --git a/os/etc/s6-rc/config/containerd.conf b/os/etc/s6-rc/config/containerd.conf
new file mode 100644
index 0000000..69f104c
--- /dev/null
+++ b/os/etc/s6-rc/config/containerd.conf
@@ -0,0 +1,6 @@
+
+containerd_socket=/run/user/1000/containerd-rootless/containerd.sock
+containerd_namespace=default
+containerd_snapshotter=overlayfs
+containerd_rootless_net=slirp4netns
+containerd_rootless_port_driver=builtin
diff --git a/os/etc/s6-rc/config/evdoublebind.conf b/os/etc/s6-rc/config/evdoublebind.conf
new file mode 100644
index 0000000..345cc05
--- /dev/null
+++ b/os/etc/s6-rc/config/evdoublebind.conf
@@ -0,0 +1,2 @@
+KEYBOARD=/dev/input/by-path/platform-i8042-serio-0-event-kbd
+MAPPING=58:1
diff --git a/os/etc/s6-rc/config/log.conf b/os/etc/s6-rc/config/log.conf
new file mode 100644
index 0000000..7800a08
--- /dev/null
+++ b/os/etc/s6-rc/config/log.conf
@@ -0,0 +1,6 @@
+
+# log base directory
+LOG_DIR=/run/log
+
+# configure the s6-log defaults
+LOG_DIRECTIVES="n2 s2000000 T"
diff --git a/os/etc/s6-rc/config/user.conf b/os/etc/s6-rc/config/user.conf
new file mode 100644
index 0000000..8dc4d1b
--- /dev/null
+++ b/os/etc/s6-rc/config/user.conf
@@ -0,0 +1,12 @@
+
+USER=robert
+
+# NOTE: use city2coords
+
+# berlin
+#LAT=56.94
+#LON=24.11
+
+# japan
+LAT=36.32
+LON=139.00
diff --git a/os/etc/s6-rc/make-logservice b/os/etc/s6-rc/make-logservice
new file mode 100755
index 0000000..da53a75
--- /dev/null
+++ b/os/etc/s6-rc/make-logservice
@@ -0,0 +1,38 @@
+#!/bin/sh
+set -eu
+
+sv=${1?:need service name.}
+basedir=/etc/s6-rc/src
+
+mkdir "${basedir}/${sv}-srv" "${basedir}/${sv}-log"
+
+(
+	cd "${basedir}/${sv}-srv"
+	echo longrun > type
+	echo "${sv}-log" > producer-for
+	cat <<-EOF > run
+	#!/bin/execlineb -P
+
+	fdmove -c 2 1
+	exec sh -c 'echo TODO >&2'
+	EOF
+)
+
+(
+	cd "${basedir}/${sv}-log"
+	echo longrun > type
+	echo 3 > notification-fd
+	echo "${sv}-srv" > consumer-for
+	echo "${sv}" > pipeline-name
+	cat <<-EOF > run
+	#!/bin/execlineb -P
+
+	envfile /etc/s6-rc/config/log.conf
+	envfile -I /etc/s6-rc/config/${sv}.conf
+	importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+	importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+	foreground { install -d \${LOG_DIR}/${sv} }
+	s6-log -d3 -b -- \${LOG_DIRECTIVES} \${LOG_DIR}/${sv}
+	EOF
+)
diff --git a/os/etc/s6-rc/reload b/os/etc/s6-rc/reload
new file mode 100755
index 0000000..16f288d
--- /dev/null
+++ b/os/etc/s6-rc/reload
@@ -0,0 +1,34 @@
+#!/bin/sh
+[ -n "$DEBUG" ] && set -x
+set -eu
+
+. /lib/gentoo/functions.sh
+
+old=$(find /etc/s6-rc/ -maxdepth 1 -name '_[0-9]*' -print)
+
+if [ "$UID" -ne 0 ]; then
+	EERROR_QUIET=0 EINFO_LOG=0 eerror "need to be root"
+	exit 1
+fi
+
+name=_$(date +%s)
+ebegin "compile new db"
+s6-rc-compile /etc/s6-rc/"$name" /etc/s6-rc/src
+eend
+
+# refresh active s6-rc tree
+if s6-rc -a list >/dev/null 2>&1; then
+	ebegin "update current db"
+	s6-rc-update -v2 /etc/s6-rc/"$name"
+	eend
+fi
+
+ebegin "swap current db"
+# make atomic
+ln -sf /etc/s6-rc/$name /tmp/compiled
+mv -f /tmp/compiled /etc/s6-rc/
+eend
+
+ebegin "cleanup old db"
+rm -r $old >/dev/null 2>&1
+eend
diff --git a/os/etc/s6-rc/restart b/os/etc/s6-rc/restart
new file mode 100755
index 0000000..4216120
--- /dev/null
+++ b/os/etc/s6-rc/restart
@@ -0,0 +1,6 @@
+#!/bin/sh
+set -eu
+
+sv=${1:?missing service name.}
+s6-rc -v2 -d change $sv
+s6-rc -v2 -u change $sv
diff --git a/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_LIST b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_LIST
new file mode 100644
index 0000000..3b48656
--- /dev/null
+++ b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_LIST
@@ -0,0 +1 @@
+^unix:/var/run/user/1000/containerd/containerd.sock-
diff --git a/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_RETRIEVE_REGEX b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_RETRIEVE_REGEX
new file mode 120000
index 0000000..8534683
--- /dev/null
+++ b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_RETRIEVE_REGEX
@@ -0,0 +1 @@
+S6_FDHOLDER_STORE_REGEX
\ No newline at end of file
diff --git a/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_STORE_REGEX b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_STORE_REGEX
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/rules.d/uid/1000/env/S6_FDHOLDER_STORE_REGEX
diff --git a/os/etc/s6-rc/rules.d/uid/default/deny b/os/etc/s6-rc/rules.d/uid/default/deny
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/rules.d/uid/default/deny
diff --git a/os/etc/s6-rc/runas b/os/etc/s6-rc/runas
new file mode 100755
index 0000000..52b494b
--- /dev/null
+++ b/os/etc/s6-rc/runas
@@ -0,0 +1,15 @@
+#!/bin/execlineb -S1
+
+envfile /etc/s6-rc/config/user.conf
+importas -iu USER USER
+
+s6-setuidgid ${USER}
+
+s6-envdir /run/session-env
+
+importas -i home HOME
+execline-cd ${home}
+
+#foreground { fdmove -c 1 2 echo "+" "user:" ${USER} }
+#foreground { fdmove -c 1 2 echo "+" "command:" ${@} }
+exec ${@}
diff --git a/os/etc/s6-rc/src/bluetoothd-log/consumer-for b/os/etc/s6-rc/src/bluetoothd-log/consumer-for
new file mode 100644
index 0000000..5a76a1a
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-log/consumer-for
@@ -0,0 +1 @@
+bluetoothd-srv
diff --git a/os/etc/s6-rc/src/bluetoothd-log/notification-fd b/os/etc/s6-rc/src/bluetoothd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/bluetoothd-log/pipeline-name b/os/etc/s6-rc/src/bluetoothd-log/pipeline-name
new file mode 100644
index 0000000..8d0fe91
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-log/pipeline-name
@@ -0,0 +1 @@
+bluetoothd
diff --git a/os/etc/s6-rc/src/bluetoothd-log/run b/os/etc/s6-rc/src/bluetoothd-log/run
new file mode 100644
index 0000000..871ac0a
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/bluetoothd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/bluetoothd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/bluetoothd
diff --git a/os/etc/s6-rc/src/bluetoothd-log/type b/os/etc/s6-rc/src/bluetoothd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/dbus-system b/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/dbus-system
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/dbus-system
diff --git a/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/udev b/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/udev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-srv/dependencies.d/udev
diff --git a/os/etc/s6-rc/src/bluetoothd-srv/producer-for b/os/etc/s6-rc/src/bluetoothd-srv/producer-for
new file mode 100644
index 0000000..4ac5993
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-srv/producer-for
@@ -0,0 +1 @@
+bluetoothd-log
diff --git a/os/etc/s6-rc/src/bluetoothd-srv/run b/os/etc/s6-rc/src/bluetoothd-srv/run
new file mode 100644
index 0000000..ffee7e4
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+exec /usr/libexec/bluetooth/bluetoothd --nodetach --experimental
diff --git a/os/etc/s6-rc/src/bluetoothd-srv/type b/os/etc/s6-rc/src/bluetoothd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/bluetoothd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/boot/contents.d/console b/os/etc/s6-rc/src/boot/contents.d/console
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/console
diff --git a/os/etc/s6-rc/src/boot/contents.d/hostname b/os/etc/s6-rc/src/boot/contents.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/hostname
diff --git a/os/etc/s6-rc/src/boot/contents.d/hwclock b/os/etc/s6-rc/src/boot/contents.d/hwclock
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/hwclock
diff --git a/os/etc/s6-rc/src/boot/contents.d/kmod-static-nodes b/os/etc/s6-rc/src/boot/contents.d/kmod-static-nodes
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/kmod-static-nodes
diff --git a/os/etc/s6-rc/src/boot/contents.d/mount b/os/etc/s6-rc/src/boot/contents.d/mount
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/mount
diff --git a/os/etc/s6-rc/src/boot/contents.d/plymouth-splash b/os/etc/s6-rc/src/boot/contents.d/plymouth-splash
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/plymouth-splash
diff --git a/os/etc/s6-rc/src/boot/contents.d/seedrng b/os/etc/s6-rc/src/boot/contents.d/seedrng
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/seedrng
diff --git a/os/etc/s6-rc/src/boot/contents.d/sysctl b/os/etc/s6-rc/src/boot/contents.d/sysctl
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/sysctl
diff --git a/os/etc/s6-rc/src/boot/contents.d/systemd-tmpfiles-setup b/os/etc/s6-rc/src/boot/contents.d/systemd-tmpfiles-setup
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/systemd-tmpfiles-setup
diff --git a/os/etc/s6-rc/src/boot/contents.d/udev b/os/etc/s6-rc/src/boot/contents.d/udev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/contents.d/udev
diff --git a/os/etc/s6-rc/src/boot/type b/os/etc/s6-rc/src/boot/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/boot/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/buildkitd-log/consumer-for b/os/etc/s6-rc/src/buildkitd-log/consumer-for
new file mode 100644
index 0000000..2563f6f
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-log/consumer-for
@@ -0,0 +1 @@
+buildkitd-srv
diff --git a/os/etc/s6-rc/src/buildkitd-log/notification-fd b/os/etc/s6-rc/src/buildkitd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/buildkitd-log/pipeline-name b/os/etc/s6-rc/src/buildkitd-log/pipeline-name
new file mode 100644
index 0000000..586b201
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-log/pipeline-name
@@ -0,0 +1 @@
+buildkitd
diff --git a/os/etc/s6-rc/src/buildkitd-log/run b/os/etc/s6-rc/src/buildkitd-log/run
new file mode 100644
index 0000000..5db9eab
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/buildkitd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/buildkitd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/buildkitd
diff --git a/os/etc/s6-rc/src/buildkitd-log/type b/os/etc/s6-rc/src/buildkitd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/buildkitd-srv/dependencies.d/containerd b/os/etc/s6-rc/src/buildkitd-srv/dependencies.d/containerd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-srv/dependencies.d/containerd
diff --git a/os/etc/s6-rc/src/buildkitd-srv/producer-for b/os/etc/s6-rc/src/buildkitd-srv/producer-for
new file mode 100644
index 0000000..6a2e7b9
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-srv/producer-for
@@ -0,0 +1 @@
+buildkitd-log
diff --git a/os/etc/s6-rc/src/buildkitd-srv/run b/os/etc/s6-rc/src/buildkitd-srv/run
new file mode 100644
index 0000000..ea41db5
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-srv/run
@@ -0,0 +1,27 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/user.conf
+importas -iu USER USER
+
+envfile /etc/s6-rc/config/containerd.conf
+importas -iu ns containerd_namespace
+importas -iu sn containerd_snapshotter
+
+s6-setuidgid ${USER}
+s6-envdir -i /run/session-env
+
+importas -i run XDG_RUNTIME_DIR
+importas -i data XDG_DATA_HOME
+
+define bk_dir ${run}/buildkit-${ns}
+define bk_root ${data}/buildkit-${ns}
+
+foreground { mkdir -vp ${bk_root} }
+foreground { mkdir -vp ${bk_dir} }
+
+fdmove -c 2 1
+exec /usr/bin/containerd-rootless-setuptool.sh nsenter -- \
+	buildkitd --root=${bk_root} \
+		--addr=unix://${bk_dir}/buildkitd.sock \
+		--containerd-worker-namespace=${ns} \
+		--containerd-worker-snapshotter=${sn}
diff --git a/os/etc/s6-rc/src/buildkitd-srv/type b/os/etc/s6-rc/src/buildkitd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/buildkitd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/chronyd-log/consumer-for b/os/etc/s6-rc/src/chronyd-log/consumer-for
new file mode 100644
index 0000000..efab2c2
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-log/consumer-for
@@ -0,0 +1 @@
+chronyd-srv
diff --git a/os/etc/s6-rc/src/chronyd-log/notification-fd b/os/etc/s6-rc/src/chronyd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/chronyd-log/pipeline-name b/os/etc/s6-rc/src/chronyd-log/pipeline-name
new file mode 100644
index 0000000..1b78e59
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-log/pipeline-name
@@ -0,0 +1 @@
+chronyd
diff --git a/os/etc/s6-rc/src/chronyd-log/run b/os/etc/s6-rc/src/chronyd-log/run
new file mode 100644
index 0000000..925259a
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/chronyd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/chronyd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/chronyd
diff --git a/os/etc/s6-rc/src/chronyd-log/type b/os/etc/s6-rc/src/chronyd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/chronyd-srv/producer-for b/os/etc/s6-rc/src/chronyd-srv/producer-for
new file mode 100644
index 0000000..d1c93e7
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-srv/producer-for
@@ -0,0 +1 @@
+chronyd-log
diff --git a/os/etc/s6-rc/src/chronyd-srv/run b/os/etc/s6-rc/src/chronyd-srv/run
new file mode 100644
index 0000000..aefc757
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+exec /usr/sbin/chronyd -d -u ntp
diff --git a/os/etc/s6-rc/src/chronyd-srv/type b/os/etc/s6-rc/src/chronyd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/chronyd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/connman-log/consumer-for b/os/etc/s6-rc/src/connman-log/consumer-for
new file mode 100644
index 0000000..a93f76a
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-log/consumer-for
@@ -0,0 +1 @@
+connman-srv
diff --git a/os/etc/s6-rc/src/connman-log/notification-fd b/os/etc/s6-rc/src/connman-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/connman-log/pipeline-name b/os/etc/s6-rc/src/connman-log/pipeline-name
new file mode 100644
index 0000000..3ddb988
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-log/pipeline-name
@@ -0,0 +1 @@
+connman
diff --git a/os/etc/s6-rc/src/connman-log/run b/os/etc/s6-rc/src/connman-log/run
new file mode 100644
index 0000000..6d26bc5
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/connman.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/connman }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/connman
diff --git a/os/etc/s6-rc/src/connman-log/type b/os/etc/s6-rc/src/connman-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/connman-srv/dependencies.d/dbus-system b/os/etc/s6-rc/src/connman-srv/dependencies.d/dbus-system
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/dependencies.d/dbus-system
diff --git a/os/etc/s6-rc/src/connman-srv/dependencies.d/iwd b/os/etc/s6-rc/src/connman-srv/dependencies.d/iwd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/dependencies.d/iwd
diff --git a/os/etc/s6-rc/src/connman-srv/dependencies.d/udevd b/os/etc/s6-rc/src/connman-srv/dependencies.d/udevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/dependencies.d/udevd
diff --git a/os/etc/s6-rc/src/connman-srv/producer-for b/os/etc/s6-rc/src/connman-srv/producer-for
new file mode 100644
index 0000000..25bf72c
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/producer-for
@@ -0,0 +1 @@
+connman-log
diff --git a/os/etc/s6-rc/src/connman-srv/run b/os/etc/s6-rc/src/connman-srv/run
new file mode 100644
index 0000000..855b9b9
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+exec /usr/sbin/connmand -n
diff --git a/os/etc/s6-rc/src/connman-srv/type b/os/etc/s6-rc/src/connman-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/connman-vpn-log/consumer-for b/os/etc/s6-rc/src/connman-vpn-log/consumer-for
new file mode 100644
index 0000000..39c09d3
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-log/consumer-for
@@ -0,0 +1 @@
+connman-vpn-srv
diff --git a/os/etc/s6-rc/src/connman-vpn-log/notification-fd b/os/etc/s6-rc/src/connman-vpn-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/connman-vpn-log/pipeline-name b/os/etc/s6-rc/src/connman-vpn-log/pipeline-name
new file mode 100644
index 0000000..399a038
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-log/pipeline-name
@@ -0,0 +1 @@
+connman-vpn
diff --git a/os/etc/s6-rc/src/connman-vpn-log/run b/os/etc/s6-rc/src/connman-vpn-log/run
new file mode 100644
index 0000000..e02f7cd
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/connman-vpn.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/connman-vpn }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/connman-vpn
diff --git a/os/etc/s6-rc/src/connman-vpn-log/type b/os/etc/s6-rc/src/connman-vpn-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/connman-vpn-srv/dependencies.d/connman b/os/etc/s6-rc/src/connman-vpn-srv/dependencies.d/connman
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-srv/dependencies.d/connman
diff --git a/os/etc/s6-rc/src/connman-vpn-srv/producer-for b/os/etc/s6-rc/src/connman-vpn-srv/producer-for
new file mode 100644
index 0000000..359a44f
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-srv/producer-for
@@ -0,0 +1 @@
+connman-vpn-log
diff --git a/os/etc/s6-rc/src/connman-vpn-srv/run b/os/etc/s6-rc/src/connman-vpn-srv/run
new file mode 100644
index 0000000..caa9484
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+exec /usr/sbin/connman-vpnd -n
diff --git a/os/etc/s6-rc/src/connman-vpn-srv/type b/os/etc/s6-rc/src/connman-vpn-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/connman-vpn-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/console/dependencies.d/getty b/os/etc/s6-rc/src/console/dependencies.d/getty
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/console/dependencies.d/getty
diff --git a/os/etc/s6-rc/src/console/dependencies.d/mount-devfs b/os/etc/s6-rc/src/console/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/console/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/console/dependencies.d/remount-root b/os/etc/s6-rc/src/console/dependencies.d/remount-root
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/console/dependencies.d/remount-root
diff --git a/os/etc/s6-rc/src/console/type b/os/etc/s6-rc/src/console/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/console/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/console/up b/os/etc/s6-rc/src/console/up
new file mode 100644
index 0000000..21da75a
--- /dev/null
+++ b/os/etc/s6-rc/src/console/up
@@ -0,0 +1,14 @@
+#!/bin/execlineb -P
+
+# loop over tty1-6
+pipeline { seq 1 6 }
+forstdin ttyN
+foreground {
+	importas -iu ttyN ttyN
+	foreground { redirfd -w 1 /dev/null setfont "default8x16" -C /dev/tty${ttyN} }
+	foreground { kbd_mode -u /dev/tty${ttyN} }
+	foreground { redirfd -w 1 /dev/tty${ttyN} printf "\033%s" "%G" }
+}
+
+# set key layout
+foreground { loadkeys -q -u us }
diff --git a/os/etc/s6-rc/src/containerd-fdholder/run b/os/etc/s6-rc/src/containerd-fdholder/run
new file mode 100644
index 0000000..ffec068
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-fdholder/run
@@ -0,0 +1,8 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/containerd.conf
+importas -iu containerd_socket containerd_socket
+
+runas
+
+s6-fdholder-daemon -x data/rules ${containerd_socket}
diff --git a/os/etc/s6-rc/src/containerd-fdholder/type b/os/etc/s6-rc/src/containerd-fdholder/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-fdholder/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/containerd-log/consumer-for b/os/etc/s6-rc/src/containerd-log/consumer-for
new file mode 100644
index 0000000..136f84d
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-log/consumer-for
@@ -0,0 +1 @@
+containerd-srv
diff --git a/os/etc/s6-rc/src/containerd-log/notification-fd b/os/etc/s6-rc/src/containerd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/containerd-log/pipeline-name b/os/etc/s6-rc/src/containerd-log/pipeline-name
new file mode 100644
index 0000000..29ad8d0
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-log/pipeline-name
@@ -0,0 +1 @@
+containerd
diff --git a/os/etc/s6-rc/src/containerd-log/run b/os/etc/s6-rc/src/containerd-log/run
new file mode 100644
index 0000000..01cfc51
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/containerd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/containerd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/containerd
diff --git a/os/etc/s6-rc/src/containerd-log/type b/os/etc/s6-rc/src/containerd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/containerd-setup/dependencies.d/containerd-fdholder b/os/etc/s6-rc/src/containerd-setup/dependencies.d/containerd-fdholder
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-setup/dependencies.d/containerd-fdholder
diff --git a/os/etc/s6-rc/src/containerd-setup/down b/os/etc/s6-rc/src/containerd-setup/down
new file mode 100644
index 0000000..f962adf
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-setup/down
@@ -0,0 +1,6 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/containerd.conf
+importas -iu containerd_socket containerd_socket
+
+s6-fdholder-delete ${containerd_socket} unix:${containerd_socket}
diff --git a/os/etc/s6-rc/src/containerd-setup/type b/os/etc/s6-rc/src/containerd-setup/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-setup/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/containerd-setup/up b/os/etc/s6-rc/src/containerd-setup/up
new file mode 100644
index 0000000..c3f5236
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-setup/up
@@ -0,0 +1,19 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/containerd.conf
+importas -iu containerd_socket containerd_socket
+
+backtick -E socketpath { dirname ${containerd_socket} }
+
+runas
+
+foreground { echo "mkdir" }
+foreground { mkdir -p ${socketpath} }
+
+foreground { echo "bind" }
+s6-ipcserver-socketbinder ${containerd_socket}
+
+foreground { echo "store" }
+s6-fdholder-store -t 5000 ${containerd_socket} unix:${containerd_socket}
+
+foreground { echo "done" }
diff --git a/os/etc/s6-rc/src/containerd-srv/dependencies.d/mount-cgroups b/os/etc/s6-rc/src/containerd-srv/dependencies.d/mount-cgroups
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-srv/dependencies.d/mount-cgroups
diff --git a/os/etc/s6-rc/src/containerd-srv/producer-for b/os/etc/s6-rc/src/containerd-srv/producer-for
new file mode 100644
index 0000000..56f3960
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-srv/producer-for
@@ -0,0 +1 @@
+containerd-log
diff --git a/os/etc/s6-rc/src/containerd-srv/run b/os/etc/s6-rc/src/containerd-srv/run
new file mode 100644
index 0000000..b1e529a
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-srv/run
@@ -0,0 +1,32 @@
+#!/bin/execlineb -P
+
+# privileged:
+#s6-softlimit -p = -o 1048576
+#exec /usr/bin/containerd
+
+# rootless:
+envfile /etc/s6-rc/config/containerd.conf
+importas -iu containerd_namespace containerd_namespace
+export CONTAINERD_NAMESPACE ${containerd_namespace}
+
+importas -iu containerd_snapshotter containerd_snapshotter
+export CONTAINERD_SNAPSHOTTER ${containerd_snapshotter}
+
+importas -iu containerd_rootless_net containerd_rootless_net
+export CONTAINERD_ROOTLESS_ROOTLESSKIT_NET ${containerd_rootless_net}
+
+importas -iu containerd_rootless_port_driver containerd_rootless_port_driver
+export CONTAINERD_ROOTLESS_ROOTLESSKIT_PORT_DRIVER ${containerd_rootless_port_driver}
+
+#TODO: doesn't work because containerd doesn't listen on stdin
+#and ipcserverd passes the fd to it's stdin/stdout
+#
+#importas -iu containerd_socket containerd_socket
+#foreground { echo "retrieving..." }
+#s6-fdholder-retrieve ${containerd_socket} unix:${containerd_socket}
+#foreground { echo "pickup..." }
+#s6-ipcserverd
+#foreground { echo "exec..." }
+
+fdmove -c 2 1
+runas /usr/bin/containerd-rootless.sh
diff --git a/os/etc/s6-rc/src/containerd-srv/type b/os/etc/s6-rc/src/containerd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/containerd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/containers/contents.d/buildkitd b/os/etc/s6-rc/src/containers/contents.d/buildkitd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/containers/contents.d/buildkitd
diff --git a/os/etc/s6-rc/src/containers/contents.d/containerd b/os/etc/s6-rc/src/containers/contents.d/containerd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/containers/contents.d/containerd
diff --git a/os/etc/s6-rc/src/containers/type b/os/etc/s6-rc/src/containers/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/containers/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/cupsd/dependencies.d/dbus-system b/os/etc/s6-rc/src/cupsd/dependencies.d/dbus-system
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/cupsd/dependencies.d/dbus-system
diff --git a/os/etc/s6-rc/src/cupsd/run b/os/etc/s6-rc/src/cupsd/run
new file mode 100644
index 0000000..8be2963
--- /dev/null
+++ b/os/etc/s6-rc/src/cupsd/run
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec cupsd -f -c /etc/cups/cupsd.conf -s /etc/cups/cups-files.conf
diff --git a/os/etc/s6-rc/src/cupsd/type b/os/etc/s6-rc/src/cupsd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/cupsd/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/dbus-session-log/consumer-for b/os/etc/s6-rc/src/dbus-session-log/consumer-for
new file mode 100644
index 0000000..21d1963
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-log/consumer-for
@@ -0,0 +1 @@
+dbus-session-srv
diff --git a/os/etc/s6-rc/src/dbus-session-log/notification-fd b/os/etc/s6-rc/src/dbus-session-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/dbus-session-log/pipeline-name b/os/etc/s6-rc/src/dbus-session-log/pipeline-name
new file mode 100644
index 0000000..c6be106
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-log/pipeline-name
@@ -0,0 +1 @@
+dbus-session
diff --git a/os/etc/s6-rc/src/dbus-session-log/run b/os/etc/s6-rc/src/dbus-session-log/run
new file mode 100644
index 0000000..1303a8f
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/dbus-session.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/dbus-session }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/dbus-session
diff --git a/os/etc/s6-rc/src/dbus-session-log/type b/os/etc/s6-rc/src/dbus-session-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/dbus-session-srv/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/dbus-session-srv/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-srv/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/dbus-session-srv/notification-fd b/os/etc/s6-rc/src/dbus-session-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/dbus-session-srv/producer-for b/os/etc/s6-rc/src/dbus-session-srv/producer-for
new file mode 100644
index 0000000..041e48e
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-srv/producer-for
@@ -0,0 +1 @@
+dbus-session-log
diff --git a/os/etc/s6-rc/src/dbus-session-srv/run b/os/etc/s6-rc/src/dbus-session-srv/run
new file mode 100644
index 0000000..be72e69
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/bin/dbus-daemon --session --address=unix:runtime=yes --nofork --nopidfile --nosyslog --print-pid=3
diff --git a/os/etc/s6-rc/src/dbus-session-srv/type b/os/etc/s6-rc/src/dbus-session-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-session-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/dbus-system-log/consumer-for b/os/etc/s6-rc/src/dbus-system-log/consumer-for
new file mode 100644
index 0000000..cceb21b
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-log/consumer-for
@@ -0,0 +1 @@
+dbus-system-srv
diff --git a/os/etc/s6-rc/src/dbus-system-log/notification-fd b/os/etc/s6-rc/src/dbus-system-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/dbus-system-log/pipeline-name b/os/etc/s6-rc/src/dbus-system-log/pipeline-name
new file mode 100644
index 0000000..c1bc1ad
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-log/pipeline-name
@@ -0,0 +1 @@
+dbus-system
diff --git a/os/etc/s6-rc/src/dbus-system-log/run b/os/etc/s6-rc/src/dbus-system-log/run
new file mode 100644
index 0000000..d5605ed
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/dbus-system.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/dbus-system }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/dbus-system
diff --git a/os/etc/s6-rc/src/dbus-system-log/type b/os/etc/s6-rc/src/dbus-system-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/dbus-system-srv/notification-fd b/os/etc/s6-rc/src/dbus-system-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/dbus-system-srv/producer-for b/os/etc/s6-rc/src/dbus-system-srv/producer-for
new file mode 100644
index 0000000..999d525
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-srv/producer-for
@@ -0,0 +1 @@
+dbus-system-log
diff --git a/os/etc/s6-rc/src/dbus-system-srv/run b/os/etc/s6-rc/src/dbus-system-srv/run
new file mode 100644
index 0000000..99af96b
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-srv/run
@@ -0,0 +1,7 @@
+#!/bin/execlineb -P
+
+foreground { dbus-uuidgen --ensure=/etc/machine-id }
+foreground { install -m775 -d /run/dbus }
+
+fdmove -c 2 1
+exec /usr/bin/dbus-daemon --system --nofork --nopidfile --nosyslog --print-pid=3
diff --git a/os/etc/s6-rc/src/dbus-system-srv/type b/os/etc/s6-rc/src/dbus-system-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/dbus-system-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/debug/contents.d/boot b/os/etc/s6-rc/src/debug/contents.d/boot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/debug/contents.d/boot
diff --git a/os/etc/s6-rc/src/debug/contents.d/network b/os/etc/s6-rc/src/debug/contents.d/network
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/debug/contents.d/network
diff --git a/os/etc/s6-rc/src/debug/type b/os/etc/s6-rc/src/debug/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/debug/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/default/contents.d/boot b/os/etc/s6-rc/src/default/contents.d/boot
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/default/contents.d/boot
diff --git a/os/etc/s6-rc/src/default/contents.d/desktop b/os/etc/s6-rc/src/default/contents.d/desktop
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/default/contents.d/desktop
diff --git a/os/etc/s6-rc/src/default/contents.d/network b/os/etc/s6-rc/src/default/contents.d/network
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/default/contents.d/network
diff --git a/os/etc/s6-rc/src/default/type b/os/etc/s6-rc/src/default/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/default/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/desktop-session-running/dependencies.d/tinydm b/os/etc/s6-rc/src/desktop-session-running/dependencies.d/tinydm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop-session-running/dependencies.d/tinydm
diff --git a/os/etc/s6-rc/src/desktop-session-running/down b/os/etc/s6-rc/src/desktop-session-running/down
new file mode 100644
index 0000000..aa46989
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop-session-running/down
@@ -0,0 +1,6 @@
+#!/bin/execlineb -P
+
+importas -D "/run" XDG_RUNTIME_DIR XDG_RUNTIME_DIR
+define dir ${XDG_RUNTIME_DIR}/session-env
+
+foreground { rm -rf ${dir} }
diff --git a/os/etc/s6-rc/src/desktop-session-running/find-marker-proc b/os/etc/s6-rc/src/desktop-session-running/find-marker-proc
new file mode 100755
index 0000000..4f39eec
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop-session-running/find-marker-proc
@@ -0,0 +1,15 @@
+#!/bin/sh
+# find first process with marker=true envvar set
+set -eu
+uid="${1:?}"
+done=
+while true; do
+	for pid in $(pgrep -u ${uid}); do
+		if grep -q 'marker=true' /proc/${pid}/environ 2>/dev/null; then
+			printf "%s" "$pid"
+			done=1
+			break
+		fi
+	done
+	[ -n "$done" ] && break
+done
diff --git a/os/etc/s6-rc/src/desktop-session-running/type b/os/etc/s6-rc/src/desktop-session-running/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop-session-running/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/desktop-session-running/up b/os/etc/s6-rc/src/desktop-session-running/up
new file mode 100644
index 0000000..de48622
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop-session-running/up
@@ -0,0 +1,21 @@
+#!/bin/execlineb -P
+
+# get username from config
+envfile /etc/s6-rc/config/user.conf
+importas -iu USER USER
+s6-envuidgid -i ${USER}
+importas -iu UID UID
+
+# find first process with marker=true envvar set
+backtick -E pid { sh /etc/s6-rc/src/desktop-session-running/find-marker-proc ${UID} }
+
+# create session-env directory
+importas -D "/run" XDG_RUNTIME_DIR XDG_RUNTIME_DIR
+define dir ${XDG_RUNTIME_DIR}/session-env
+foreground { mkdir -p ${dir} }
+cd ${dir}
+pipeline { grep -zE "^(SWAY|I3|.*DISPLAY|DBUS|XDG|BEMENU|PATH|HOME|LANG)" /proc/${pid}/environ }
+foreground { awk --assign=RS=\\0 -- "{idx=index($0,\"=\"); print substr($0,idx+1) > substr($0,0,idx-1)}" }
+
+# hack
+foreground { sleep 0.5 }
diff --git a/os/etc/s6-rc/src/desktop/contents.d/bluetoothd b/os/etc/s6-rc/src/desktop/contents.d/bluetoothd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/bluetoothd
diff --git a/os/etc/s6-rc/src/desktop/contents.d/evdoublebind b/os/etc/s6-rc/src/desktop/contents.d/evdoublebind
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/evdoublebind
diff --git a/os/etc/s6-rc/src/desktop/contents.d/footserver b/os/etc/s6-rc/src/desktop/contents.d/footserver
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/footserver
diff --git a/os/etc/s6-rc/src/desktop/contents.d/kanshi b/os/etc/s6-rc/src/desktop/contents.d/kanshi
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/kanshi
diff --git a/os/etc/s6-rc/src/desktop/contents.d/mako b/os/etc/s6-rc/src/desktop/contents.d/mako
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/mako
diff --git a/os/etc/s6-rc/src/desktop/contents.d/powertop b/os/etc/s6-rc/src/desktop/contents.d/powertop
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/powertop
diff --git a/os/etc/s6-rc/src/desktop/contents.d/seatd b/os/etc/s6-rc/src/desktop/contents.d/seatd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/seatd
diff --git a/os/etc/s6-rc/src/desktop/contents.d/sound b/os/etc/s6-rc/src/desktop/contents.d/sound
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/sound
diff --git a/os/etc/s6-rc/src/desktop/contents.d/swayidle b/os/etc/s6-rc/src/desktop/contents.d/swayidle
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/swayidle
diff --git a/os/etc/s6-rc/src/desktop/contents.d/swww b/os/etc/s6-rc/src/desktop/contents.d/swww
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/swww
diff --git a/os/etc/s6-rc/src/desktop/contents.d/tinydm b/os/etc/s6-rc/src/desktop/contents.d/tinydm
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/tinydm
diff --git a/os/etc/s6-rc/src/desktop/contents.d/user b/os/etc/s6-rc/src/desktop/contents.d/user
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/user
diff --git a/os/etc/s6-rc/src/desktop/contents.d/waybar b/os/etc/s6-rc/src/desktop/contents.d/waybar
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/waybar
diff --git a/os/etc/s6-rc/src/desktop/contents.d/wlsunset b/os/etc/s6-rc/src/desktop/contents.d/wlsunset
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/contents.d/wlsunset
diff --git a/os/etc/s6-rc/src/desktop/type b/os/etc/s6-rc/src/desktop/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/desktop/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/easyeffects/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/easyeffects/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/easyeffects/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/easyeffects/dependencies.d/pipewire b/os/etc/s6-rc/src/easyeffects/dependencies.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/easyeffects/dependencies.d/pipewire
diff --git a/os/etc/s6-rc/src/easyeffects/run b/os/etc/s6-rc/src/easyeffects/run
new file mode 100644
index 0000000..d74eb5c
--- /dev/null
+++ b/os/etc/s6-rc/src/easyeffects/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+runas /usr/bin/flatpak run --branch=stable --arch=x86_64 --command=easyeffects com.github.wwmm.easyeffects --gapplication-service
diff --git a/os/etc/s6-rc/src/easyeffects/type b/os/etc/s6-rc/src/easyeffects/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/easyeffects/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/evdoublebind/run b/os/etc/s6-rc/src/evdoublebind/run
new file mode 100644
index 0000000..de946f8
--- /dev/null
+++ b/os/etc/s6-rc/src/evdoublebind/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/evdoublebind.conf
+importas -iu KEYBOARD KEYBOARD
+importas -iu MAPPING MAPPING
+
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+exec evdoublebind ${KEYBOARD} ${MAPPING}
diff --git a/os/etc/s6-rc/src/evdoublebind/type b/os/etc/s6-rc/src/evdoublebind/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/evdoublebind/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/footserver-log/consumer-for b/os/etc/s6-rc/src/footserver-log/consumer-for
new file mode 100644
index 0000000..830bec3
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-log/consumer-for
@@ -0,0 +1 @@
+footserver-srv
diff --git a/os/etc/s6-rc/src/footserver-log/notification-fd b/os/etc/s6-rc/src/footserver-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/footserver-log/pipeline-name b/os/etc/s6-rc/src/footserver-log/pipeline-name
new file mode 100644
index 0000000..9de7c0d
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-log/pipeline-name
@@ -0,0 +1 @@
+footserver
diff --git a/os/etc/s6-rc/src/footserver-log/run b/os/etc/s6-rc/src/footserver-log/run
new file mode 100644
index 0000000..6c2e1d1
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/footserver.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/footserver }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/footserver
diff --git a/os/etc/s6-rc/src/footserver-log/type b/os/etc/s6-rc/src/footserver-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/footserver-srv/dependencies.d/dbus-session b/os/etc/s6-rc/src/footserver-srv/dependencies.d/dbus-session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/dependencies.d/dbus-session
diff --git a/os/etc/s6-rc/src/footserver-srv/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/footserver-srv/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/footserver-srv/notification-fd b/os/etc/s6-rc/src/footserver-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/footserver-srv/producer-for b/os/etc/s6-rc/src/footserver-srv/producer-for
new file mode 100644
index 0000000..49b72f8
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/producer-for
@@ -0,0 +1 @@
+footserver-log
diff --git a/os/etc/s6-rc/src/footserver-srv/run b/os/etc/s6-rc/src/footserver-srv/run
new file mode 100644
index 0000000..9ed11b1
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas foot --server --log-no-syslog --print-pid=3
diff --git a/os/etc/s6-rc/src/footserver-srv/type b/os/etc/s6-rc/src/footserver-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/footserver-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty1 b/os/etc/s6-rc/src/getty/contents.d/tty1
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty1
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty2 b/os/etc/s6-rc/src/getty/contents.d/tty2
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty2
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty3 b/os/etc/s6-rc/src/getty/contents.d/tty3
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty3
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty4 b/os/etc/s6-rc/src/getty/contents.d/tty4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty4
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty5 b/os/etc/s6-rc/src/getty/contents.d/tty5
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty5
diff --git a/os/etc/s6-rc/src/getty/contents.d/tty6 b/os/etc/s6-rc/src/getty/contents.d/tty6
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/contents.d/tty6
diff --git a/os/etc/s6-rc/src/getty/type b/os/etc/s6-rc/src/getty/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/getty/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/hostname/dependencies.d/mount-procfs b/os/etc/s6-rc/src/hostname/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/hostname/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/hostname/type b/os/etc/s6-rc/src/hostname/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/hostname/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/hostname/up b/os/etc/s6-rc/src/hostname/up
new file mode 100644
index 0000000..7a15844
--- /dev/null
+++ b/os/etc/s6-rc/src/hostname/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+if -t { test -s /etc/hostname } backtick -n -E HOSTNAME { head -1 /etc/hostname }
+if -t { test -n $HOSTNAME } redirfd -w 1 /proc/sys/kernel/hostname echo $HOSTNAME
diff --git a/os/etc/s6-rc/src/hwclock/down b/os/etc/s6-rc/src/hwclock/down
new file mode 100644
index 0000000..093045b
--- /dev/null
+++ b/os/etc/s6-rc/src/hwclock/down
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+foreground { hwclock --systohc --localtime --noadjfile }
diff --git a/os/etc/s6-rc/src/hwclock/type b/os/etc/s6-rc/src/hwclock/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/hwclock/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/hwclock/up b/os/etc/s6-rc/src/hwclock/up
new file mode 100644
index 0000000..8ca6641
--- /dev/null
+++ b/os/etc/s6-rc/src/hwclock/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+foreground { /sbin/hwclock --hctosys --systz --localtime --noadjfile }
diff --git a/os/etc/s6-rc/src/iwd-log/consumer-for b/os/etc/s6-rc/src/iwd-log/consumer-for
new file mode 100644
index 0000000..c521d59
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-log/consumer-for
@@ -0,0 +1 @@
+iwd-srv
diff --git a/os/etc/s6-rc/src/iwd-log/notification-fd b/os/etc/s6-rc/src/iwd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/iwd-log/pipeline-name b/os/etc/s6-rc/src/iwd-log/pipeline-name
new file mode 100644
index 0000000..8cdc481
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-log/pipeline-name
@@ -0,0 +1 @@
+iwd
diff --git a/os/etc/s6-rc/src/iwd-log/run b/os/etc/s6-rc/src/iwd-log/run
new file mode 100644
index 0000000..944915e
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/iwd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/iwd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/iwd
diff --git a/os/etc/s6-rc/src/iwd-log/type b/os/etc/s6-rc/src/iwd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/iwd-srv/dependencies.d/dbus-system b/os/etc/s6-rc/src/iwd-srv/dependencies.d/dbus-system
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-srv/dependencies.d/dbus-system
diff --git a/os/etc/s6-rc/src/iwd-srv/dependencies.d/udev-trigger b/os/etc/s6-rc/src/iwd-srv/dependencies.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-srv/dependencies.d/udev-trigger
diff --git a/os/etc/s6-rc/src/iwd-srv/producer-for b/os/etc/s6-rc/src/iwd-srv/producer-for
new file mode 100644
index 0000000..29e0ef7
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-srv/producer-for
@@ -0,0 +1 @@
+iwd-log
diff --git a/os/etc/s6-rc/src/iwd-srv/run b/os/etc/s6-rc/src/iwd-srv/run
new file mode 100644
index 0000000..af93c51
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+exec /usr/libexec/iwd
diff --git a/os/etc/s6-rc/src/iwd-srv/type b/os/etc/s6-rc/src/iwd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/iwd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/kanshi/run b/os/etc/s6-rc/src/kanshi/run
new file mode 100644
index 0000000..de37705
--- /dev/null
+++ b/os/etc/s6-rc/src/kanshi/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/bin/kanshi
diff --git a/os/etc/s6-rc/src/kanshi/type b/os/etc/s6-rc/src/kanshi/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/kanshi/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/kmod-static-nodes/dependencies.d/mount-devfs b/os/etc/s6-rc/src/kmod-static-nodes/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/kmod-static-nodes/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/kmod-static-nodes/type b/os/etc/s6-rc/src/kmod-static-nodes/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/kmod-static-nodes/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/kmod-static-nodes/up b/os/etc/s6-rc/src/kmod-static-nodes/up
new file mode 100644
index 0000000..0f5c203
--- /dev/null
+++ b/os/etc/s6-rc/src/kmod-static-nodes/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+foreground { if -n { test -d /run/tmpfiles.d } mkdir /run/tmpfiles.d }
+foreground { kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf }
diff --git a/os/etc/s6-rc/src/mako/dependencies.d/dbus-session b/os/etc/s6-rc/src/mako/dependencies.d/dbus-session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mako/dependencies.d/dbus-session
diff --git a/os/etc/s6-rc/src/mako/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/mako/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mako/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/mako/run b/os/etc/s6-rc/src/mako/run
new file mode 100644
index 0000000..f6a2731
--- /dev/null
+++ b/os/etc/s6-rc/src/mako/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/bin/mako
diff --git a/os/etc/s6-rc/src/mako/type b/os/etc/s6-rc/src/mako/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/mako/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/modules/dependencies.d/mount-procfs b/os/etc/s6-rc/src/modules/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/modules/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/modules/dependencies.d/udev-trigger b/os/etc/s6-rc/src/modules/dependencies.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/modules/dependencies.d/udev-trigger
diff --git a/os/etc/s6-rc/src/modules/type b/os/etc/s6-rc/src/modules/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/modules/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/modules/up b/os/etc/s6-rc/src/modules/up
new file mode 100644
index 0000000..f8c1d8c
--- /dev/null
+++ b/os/etc/s6-rc/src/modules/up
@@ -0,0 +1,5 @@
+#!/bin/execlineb -P
+
+foreground {
+	true
+}
diff --git a/os/etc/s6-rc/src/mount-cgroups/cgroup-release-agent.sh b/os/etc/s6-rc/src/mount-cgroups/cgroup-release-agent.sh
new file mode 100755
index 0000000..0a6ec17
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-cgroups/cgroup-release-agent.sh
@@ -0,0 +1,19 @@
+#!/bin/sh
+# This is run by the kernel after the last task is removed from a
+# control group in the openrc hierarchy.
+
+# Copyright (c) 2007-2015 The OpenRC Authors.
+# See the Authors file at the top-level directory of this distribution and
+# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
+#
+# This file is part of OpenRC. It is subject to the license terms in
+# the LICENSE file found in the top-level directory of this
+# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
+# This file may not be copied, modified, propagated, or distributed
+#    except according to the terms contained in the LICENSE file.
+
+cgroup=/sys/fs/cgroup/openrc
+PATH=/bin:/usr/bin:/sbin:/usr/sbin
+if [ -d ${cgroup}/"$1" ]; then
+	rmdir ${cgroup}/"$1"
+fi
diff --git a/os/etc/s6-rc/src/mount-cgroups/dependencies.d/mount-procfs b/os/etc/s6-rc/src/mount-cgroups/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-cgroups/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/mount-cgroups/shell-up b/os/etc/s6-rc/src/mount-cgroups/shell-up
new file mode 100755
index 0000000..f26a99e
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-cgroups/shell-up
@@ -0,0 +1,178 @@
+#!/bin/sh
+# Copyright (c) 2017 The OpenRC Authors.
+# See the Authors file at the top-level directory of this distribution and
+# https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
+#
+# This file is part of OpenRC. It is subject to the license terms in
+# the LICENSE file found in the top-level directory of this
+# distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
+# This file may not be copied, modified, propagated, or distributed
+# except according to the terms contained in the LICENSE file.
+
+set -eux
+
+cgroup_opts=${cgroup_opts:-nodev,noexec,nosuid}
+rc_cgroup_mode=${cgroup_mode:-hybrid}
+rc_cgroup_controllers=${cgroup_controllers:-}
+rc_cgroup_memory_use_hierarchy=${cgroup_memory_use_hierarchy:-no}
+rc_cgroupsize=${cgroupsize:-10m}
+
+yesno()
+{
+	[ -z "$1" ] && return 1
+
+	case "$1" in
+	[Yy][Ee][Ss]|[Tt][Rr][Uu]|[Oo][Nn]|1) return 0 ;;
+	[Nn][Oo]|[Ff][Aa][Ll][Ss]|[Oo][Ff][Ff]|0) return 1 ;;
+	esac
+
+	local value=
+	eval value=\"\$$1\"
+	case "$value" in
+	[Yy][Ee][Ss]|[Tt][Rr][Uu]|[Oo][Nn]|1) return 0 ;;
+	[Nn][Oo]|[Ff][Aa][Ll][Ss]|[Oo][Ff][Ff]|0) return 1 ;;
+	*) echo "\$$1 is not set properly" >&2; return 2 ;;
+	esac
+}
+
+cgroup2_find_path()
+{
+	if grep -qw cgroup2 /proc/filesystems; then
+		case "${rc_cgroup_mode}" in
+		hybrid) printf "/sys/fs/cgroup/unified" ;;
+		unified) printf "/sys/fs/cgroup" ;;
+		esac
+	fi
+	return 0
+}
+
+cgroup1_base()
+{
+	grep -qw cgroup /proc/filesystems || return 0
+	if ! mountpoint -q /sys/fs/cgroup; then
+		local opts="${cgroup_opts},mode=755,size=${rc_cgroupsize:-10m}"
+		mount -n -t tmpfs -o "${opts}" cgroup_root /sys/fs/cgroup
+	fi
+
+	if ! mountpoint -q /sys/fs/cgroup/openrc; then
+		local agent="/etc/s6-rc/src/mount-cgroups/cgroup-release-agent.sh"
+		mkdir /sys/fs/cgroup/openrc
+		mount -n -t cgroup \
+			-o none,${cgroup_opts},name=openrc,release_agent="$agent" \
+			openrc /sys/fs/cgroup/openrc
+		printf 1 > /sys/fs/cgroup/openrc/notify_on_release
+	fi
+	return 0
+}
+
+cgroup1_controllers()
+{
+	yesno "${rc_controller_cgroups:-YES}" && [ -e /proc/cgroups ]  &&
+	grep -qw cgroup /proc/filesystems || return 0
+	while read -r name _ _ enabled _; do
+		case "${enabled}" in
+			1)	mountpoint -q "/sys/fs/cgroup/${name}" && continue
+				local x
+				for x in $rc_cgroup_controllers; do
+				[ "${name}" = "blkio" ] && [ "${x}" = "io" ] &&
+					continue 2
+				[ "${name}" = "${x}" ] &&
+				continue 2
+				done
+				mkdir "/sys/fs/cgroup/${name}"
+				mount -n -t cgroup -o "${cgroup_opts},${name}" \
+					"${name}" "/sys/fs/cgroup/${name}"
+				yesno "${rc_cgroup_memory_use_hierarchy:-no}" &&
+					[ "${name}" = memory ] &&
+					echo 1 > /sys/fs/cgroup/memory/memory.use_hierarchy
+				;;
+		esac
+	done < /proc/cgroups
+	return 0
+}
+
+cgroup2_base()
+{
+	grep -qw cgroup2 /proc/filesystems || return 0
+	local base
+	base="$(cgroup2_find_path)"
+	if ! mountpoint -q "${base}"; then
+		mkdir -p "${base}"
+		mount -t cgroup2 none -o "${cgroup_opts},nsdelegate" "${base}" 2> /dev/null ||
+			mount -t cgroup2 none -o "${cgroup_opts}" "${base}"
+	fi
+	return 0
+}
+
+cgroup2_controllers()
+{
+	grep -qw cgroup2 /proc/filesystems || return 0
+	local active cgroup_path x y
+	cgroup_path="$(cgroup2_find_path)"
+	[ -z "${cgroup_path}" ] && return 0
+	[ ! -e "${cgroup_path}/cgroup.controllers" ] && return 0
+	[ ! -e "${cgroup_path}/cgroup.subtree_control" ]&& return 0
+	read -r active < "${cgroup_path}/cgroup.controllers"
+	for x in ${active}; do
+	case "${rc_cgroup_mode}" in
+		unified)
+			echo "+${x}"  > "${cgroup_path}/cgroup.subtree_control"
+			;;
+		hybrid)
+			for y in ${rc_cgroup_controllers}; do
+				if [ "$x" = "$y" ]; then
+					echo "+${x}"  > "${cgroup_path}/cgroup.subtree_control"
+				fi
+			done
+			;;
+		esac
+	done
+	return 0
+}
+
+cgroups_hybrid()
+{
+	cgroup1_base
+	cgroup2_base
+	cgroup2_controllers
+	cgroup1_controllers
+	return 0
+}
+
+cgroups_legacy()
+{
+	cgroup1_base
+	cgroup1_controllers
+	return 0
+}
+
+cgroups_unified()
+{
+	cgroup2_base
+	cgroup2_controllers
+	return 0
+}
+
+mount_cgroups()
+{
+	case "${rc_cgroup_mode}" in
+	hybrid) cgroups_hybrid ;;
+	unified) cgroups_unified ;;
+	legacy) cgroups_legacy ;;
+	esac
+	return 0
+}
+
+restorecon_cgroups()
+{
+	if [ -x /sbin/restorecon ]; then
+		restorecon -rF /sys/fs/cgroup >/dev/null 2>&1
+	fi
+	return 0
+}
+
+# set up kernel support for cgroups
+if [ -d /sys/fs/cgroup ]; then
+	mount_cgroups
+	restorecon_cgroups
+fi
diff --git a/os/etc/s6-rc/src/mount-cgroups/type b/os/etc/s6-rc/src/mount-cgroups/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-cgroups/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-cgroups/up b/os/etc/s6-rc/src/mount-cgroups/up
new file mode 100644
index 0000000..87c9a66
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-cgroups/up
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+envfile /etc/s6-rc/config/cgroups.conf
+exec sh /etc/s6-rc/src/mount-cgroups/shell-up
diff --git a/os/etc/s6-rc/src/mount-devfs/dependencies.d/mount-procfs b/os/etc/s6-rc/src/mount-devfs/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-devfs/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/mount-devfs/type b/os/etc/s6-rc/src/mount-devfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-devfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-devfs/up b/os/etc/s6-rc/src/mount-devfs/up
new file mode 100644
index 0000000..bbb8ec5
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-devfs/up
@@ -0,0 +1,52 @@
+#!/bin/execlineb -P
+
+# mount /dev through fstab
+foreground {
+	if -n { mountpoint -q /dev }
+		if -t { fstabinfo -q /dev } fstabinfo -q --mount /dev
+}
+# or manually
+foreground {
+	if -n { mountpoint -q /dev }
+		ifelse -n { grep -q devtmpfs /proc/filesystems } { echo "This kernel doesn't have support for devtmpfs! This means /dev will not be mounted." }
+			mount -n -t devtmpfs dev /dev -o mode=0755,noexec,nosuid,size=10M
+}
+
+# creating console, tty1 and tty to be able to write to console
+# with/without bootsplash before udevd creates it
+foreground { if -n { test -c /dev/console } mknod -m 600 /dev/console c 5 1 }
+foreground { if -n { test -c /dev/tty1 } mknod -m 620 /dev/tty1 c 4 1 }
+foreground { if -n { test -c /dev/tty } mknod -m 666 /dev/tty c 5 0 }
+
+# udevd will dup it's std{in,out,err} to /dev/null
+# and we don't want a file which gets buffered in ram
+foreground { if -n { test -c /dev/null } mknod -m 666 /dev/null c 1 3 }
+
+# so udev can add it's start message to dmesg
+foreground { if -n { test -c /dev/kmesg } mknod -m 660 /dev/kmesg c 1 11 }
+
+# extra symlinks
+foreground { ln -snf /proc/self/fd /dev/fd }
+foreground { ln -snf /proc/self/fd/0 /dev/stdin }
+foreground { ln -snf /proc/self/fd/1 /dev/stdout }
+foreground { ln -snf /proc/self/fd/2 /dev/stderr }
+foreground { ln -snf /proc/kcore /dev/core }
+
+# mount required dirs that may not be in /etc/fstab
+foreground { mkdir -m 1777 -p /dev/mqueue }
+foreground {
+	if -n { mountpoint -q /dev/mqueue }
+		mount -n -t mqueue mqueue /dev/mqueue -o nosuid,noexec,nodev
+}
+
+foreground { mkdir -m 0755 -p /dev/pts }
+foreground {
+	if -n { mountpoint -q /dev/pts }
+		mount -n -t devpts devpts /dev/pts -o gid=5,mode=0620,nosuid,noexec
+}
+
+foreground { mkdir -m 1777 -p /dev/shm }
+foreground {
+	if -n { mountpoint -q /dev/shm }
+		mount -n -t tmpfs shm /dev/shm -o mode=1777,nosuid,noexec,nodev
+}
diff --git a/os/etc/s6-rc/src/mount-filesystems/dependencies.d/modules b/os/etc/s6-rc/src/mount-filesystems/dependencies.d/modules
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-filesystems/dependencies.d/modules
diff --git a/os/etc/s6-rc/src/mount-filesystems/type b/os/etc/s6-rc/src/mount-filesystems/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-filesystems/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-filesystems/up b/os/etc/s6-rc/src/mount-filesystems/up
new file mode 100644
index 0000000..25fcdf7
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-filesystems/up
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+
+foreground { mount -a -O no_netdev }
diff --git a/os/etc/s6-rc/src/mount-procfs/type b/os/etc/s6-rc/src/mount-procfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-procfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-procfs/up b/os/etc/s6-rc/src/mount-procfs/up
new file mode 100644
index 0000000..d950f34
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-procfs/up
@@ -0,0 +1,7 @@
+#!/bin/execlineb -P
+
+foreground {
+	if -n { test -e /proc/mounts }
+		if -n { mountpoint -q /proc }
+			mount -t proc proc /proc -o nosuid,noexec,nodev
+}
diff --git a/os/etc/s6-rc/src/mount-sysfs/dependencies.d/mount-procfs b/os/etc/s6-rc/src/mount-sysfs/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-sysfs/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/mount-sysfs/type b/os/etc/s6-rc/src/mount-sysfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-sysfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-sysfs/up b/os/etc/s6-rc/src/mount-sysfs/up
new file mode 100644
index 0000000..d84627f
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-sysfs/up
@@ -0,0 +1,66 @@
+#!/bin/execlineb -P
+
+# /sys
+foreground {
+	if -n { test -d /sys } mkdir -m 0755 /sys
+	if -n { mountpoint -q /sys }
+		mount -t sysfs sys /sys -o nosuid,noexec,nodev
+
+}
+
+# securityfs
+foreground {
+	if -t { test -d /sys/kernel/security }
+	if -t { grep -qs securityfs /proc/filesystems }
+	if -n { mountpoint -q /sys/kernel/security }
+		mount -t securityfs securityfs /sys/kernel/security -o nosuid,noexec,nodev
+}
+
+# debugfs
+foreground {
+	if -t { test -d /sys/kernel/debug }
+	if -t { grep -qs debugfs /proc/filesystems }
+	if -n { mountpoint -q /sys/kernel/debug }
+		mount -t debugfs debugfs /sys/kernel/debug -o nosuid,noexec,nodev
+}
+
+# configfs
+foreground {
+	if -t { test -d /sys/kernel/config }
+	if -t { grep -qs configfs /proc/filesystems }
+	if -n { mountpoint -q /sys/kernel/config }
+		mount -t configfs configfs /sys/kernel/config -o nosuid,noexec,nodev
+}
+
+# fusectl
+foreground {
+	if -t { test -d /sys/fs/fuse/connections }
+	if -t { grep -qs fusectl /proc/filesystems }
+	if -n { mountpoint -q /sys/fs/fuse/connections }
+		mount -t fusectl fusectl /sys/fs/fuse/connections -o nosuid,noexec,nodev
+}
+
+# pstore
+foreground {
+	if -t { test -d /sys/fs/pstore }
+	if -t { grep -qs 'pstore$' /proc/filesystems }
+	if -n { mountpoint -q /sys/fs/pstore }
+		mount -t pstore pstore /sys/fs/pstore -o nosuid,noexec,nodev
+}
+
+# selinux
+foreground {
+	if -t { test -d /sys/fs/selinux }
+	if -t { grep -qs selinuxfs /proc/filesystems }
+	if -n { mountpoint -q /sys/fs/selinux }
+		mount -t selinuxfs selinuxfs /sys/fs/selinux -o nosuid,noexec,nodev
+}
+
+# efivarfs
+foreground {
+	if -t { test -d /sys/firmware/efi }
+	if -t { grep -qs efivarfs /proc/filesystems }
+	if { test -d /sys/firmware/efi }
+		if -n { mountpoint -q /sys/firmware/efi/efivars }
+			mount -n -t efivarfs efivarfs /sys/firmware/efi/efivars -o ro,nosuid,noexec,nodev
+}
diff --git a/os/etc/s6-rc/src/mount-tmpfs/type b/os/etc/s6-rc/src/mount-tmpfs/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-tmpfs/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/mount-tmpfs/up b/os/etc/s6-rc/src/mount-tmpfs/up
new file mode 100644
index 0000000..f93bc72
--- /dev/null
+++ b/os/etc/s6-rc/src/mount-tmpfs/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+foreground { if -n { mountpoint -q /tmp } mount -t tmpfs tmpfs /tmp }
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-cgroups b/os/etc/s6-rc/src/mount/contents.d/mount-cgroups
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-cgroups
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-devfs b/os/etc/s6-rc/src/mount/contents.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-devfs
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-filesystems b/os/etc/s6-rc/src/mount/contents.d/mount-filesystems
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-filesystems
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-procfs b/os/etc/s6-rc/src/mount/contents.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-procfs
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-sysfs b/os/etc/s6-rc/src/mount/contents.d/mount-sysfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-sysfs
diff --git a/os/etc/s6-rc/src/mount/contents.d/mount-tmpfs b/os/etc/s6-rc/src/mount/contents.d/mount-tmpfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/mount-tmpfs
diff --git a/os/etc/s6-rc/src/mount/contents.d/remount-root b/os/etc/s6-rc/src/mount/contents.d/remount-root
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/remount-root
diff --git a/os/etc/s6-rc/src/mount/contents.d/swap b/os/etc/s6-rc/src/mount/contents.d/swap
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/contents.d/swap
diff --git a/os/etc/s6-rc/src/mount/type b/os/etc/s6-rc/src/mount/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/mount/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-log/consumer-for b/os/etc/s6-rc/src/mpris-scrobbler-log/consumer-for
new file mode 100644
index 0000000..63a0417
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-log/consumer-for
@@ -0,0 +1 @@
+mpris-scrobbler-srv
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-log/notification-fd b/os/etc/s6-rc/src/mpris-scrobbler-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-log/pipeline-name b/os/etc/s6-rc/src/mpris-scrobbler-log/pipeline-name
new file mode 100644
index 0000000..c0f6304
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-log/pipeline-name
@@ -0,0 +1 @@
+mpris-scrobbler
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-log/run b/os/etc/s6-rc/src/mpris-scrobbler-log/run
new file mode 100644
index 0000000..1b13fab
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/mpris-scrobbler.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/mpris-scrobbler }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/mpris-scrobbler
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-log/type b/os/etc/s6-rc/src/mpris-scrobbler-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-srv/dbus-session b/os/etc/s6-rc/src/mpris-scrobbler-srv/dbus-session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-srv/dbus-session
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-srv/producer-for b/os/etc/s6-rc/src/mpris-scrobbler-srv/producer-for
new file mode 100644
index 0000000..69636ec
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-srv/producer-for
@@ -0,0 +1 @@
+mpris-scrobbler-log
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-srv/run b/os/etc/s6-rc/src/mpris-scrobbler-srv/run
new file mode 100644
index 0000000..5c3acb4
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+envfile /etc/s6-rc/config/user.conf
+fdmove -c 2 1
+runas /usr/bin/mpris-scrobbler -vvv
diff --git a/os/etc/s6-rc/src/mpris-scrobbler-srv/type b/os/etc/s6-rc/src/mpris-scrobbler-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/mpris-scrobbler-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/net-lo/type b/os/etc/s6-rc/src/net-lo/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/net-lo/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/net-lo/up b/os/etc/s6-rc/src/net-lo/up
new file mode 100644
index 0000000..bf80976
--- /dev/null
+++ b/os/etc/s6-rc/src/net-lo/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec ip link set up dev lo
diff --git a/os/etc/s6-rc/src/net-online/dependencies.d/mount-sysfs b/os/etc/s6-rc/src/net-online/dependencies.d/mount-sysfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/net-online/dependencies.d/mount-sysfs
diff --git a/os/etc/s6-rc/src/net-online/dependencies.d/net-lo b/os/etc/s6-rc/src/net-online/dependencies.d/net-lo
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/net-online/dependencies.d/net-lo
diff --git a/os/etc/s6-rc/src/net-online/shell-up b/os/etc/s6-rc/src/net-online/shell-up
new file mode 100755
index 0000000..b9fa779
--- /dev/null
+++ b/os/etc/s6-rc/src/net-online/shell-up
@@ -0,0 +1,62 @@
+#!/bin/sh
+set -eu
+
+# check if any interface is plugged in and configured
+# then do a ping test to see if we have connectivity
+
+include_ping_test=1
+ping_test_host=gentoo.org
+infinite=false
+timeout=10
+
+get_interfaces()
+{
+	local ifname iftype
+	for ifname in /sys/class/net/*; do
+		[ -h "${ifname}" ] || continue
+		read iftype < ${ifname}/type
+		[ "${iftype}" = "1" ] && printf "%s " ${ifname##*/}
+	done
+	return 0
+}
+
+check_interfaces()
+{
+	local ifcount=0
+	local carriers=0 # plugged in
+	local configured=0
+	for dev in $(get_interfaces); do
+		: $((ifcount += 1))
+		read carrier < /sys/class/net/$dev/carrier 2>/dev/null || carrier=""
+		[ "${carrier}" = 1 ] && : $((carriers += 1))
+		read operstate < /sys/class/net/$dev/operstate 2>/dev/null || operstate=""
+		[ "${operstate}" = up ] && : $((configured += 1))
+	done
+	#[ $configured -eq $ifcount ] && [ $carriers -ge 1 ] && return 0
+	[ $configured -ge 1 ] && [ $carriers -ge 1 ] && return 0
+	return 1
+}
+
+check_online()
+{
+	local timeout=${timeout:-120}
+	while $infinite || [ $timeout -gt 0 ] ; do
+		check_interfaces && break
+		sleep 1
+		: $((timeout -= 1))
+	done
+	#echo 'plugged in'
+
+	if [ "${include_ping_test}" = 1 ] && [ -n "${ping_test_host}" ]; then
+		local timeout=${timeout:-120}
+		while $infinite || [ $timeout -gt 0 ] ; do
+			ping -c 1 $ping_test_host >/dev/null 2>&1
+			[ $? -eq 0 ] && break
+			sleep 1
+			: $((timeout -= 1))
+		done
+	fi
+	#echo 'connected'
+}
+
+check_online
diff --git a/os/etc/s6-rc/src/net-online/type b/os/etc/s6-rc/src/net-online/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/net-online/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/net-online/up b/os/etc/s6-rc/src/net-online/up
new file mode 100644
index 0000000..03f0ef3
--- /dev/null
+++ b/os/etc/s6-rc/src/net-online/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+foreground { sh /etc/s6-rc/src/net-online/shell-up }
diff --git a/os/etc/s6-rc/src/network/contents.d/chronyd b/os/etc/s6-rc/src/network/contents.d/chronyd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/chronyd
diff --git a/os/etc/s6-rc/src/network/contents.d/connman b/os/etc/s6-rc/src/network/contents.d/connman
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/connman
diff --git a/os/etc/s6-rc/src/network/contents.d/iwd b/os/etc/s6-rc/src/network/contents.d/iwd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/iwd
diff --git a/os/etc/s6-rc/src/network/contents.d/net-lo b/os/etc/s6-rc/src/network/contents.d/net-lo
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/net-lo
diff --git a/os/etc/s6-rc/src/network/contents.d/syncthing b/os/etc/s6-rc/src/network/contents.d/syncthing
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/syncthing
diff --git a/os/etc/s6-rc/src/network/contents.d/tailscale b/os/etc/s6-rc/src/network/contents.d/tailscale
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/network/contents.d/tailscale
diff --git a/os/etc/s6-rc/src/network/type b/os/etc/s6-rc/src/network/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/network/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/pipewire-log/consumer-for b/os/etc/s6-rc/src/pipewire-log/consumer-for
new file mode 100644
index 0000000..48ffe11
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-log/consumer-for
@@ -0,0 +1 @@
+pipewire-srv
diff --git a/os/etc/s6-rc/src/pipewire-log/notification-fd b/os/etc/s6-rc/src/pipewire-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/pipewire-log/pipeline-name b/os/etc/s6-rc/src/pipewire-log/pipeline-name
new file mode 100644
index 0000000..3b94baf
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-log/pipeline-name
@@ -0,0 +1 @@
+pipewire
diff --git a/os/etc/s6-rc/src/pipewire-log/run b/os/etc/s6-rc/src/pipewire-log/run
new file mode 100644
index 0000000..8b8a473
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/pipewire.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/pipewire }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/pipewire
diff --git a/os/etc/s6-rc/src/pipewire-log/type b/os/etc/s6-rc/src/pipewire-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/pipewire b/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-pulse/dependencies.d/pipewire
diff --git a/os/etc/s6-rc/src/pipewire-pulse/run b/os/etc/s6-rc/src/pipewire-pulse/run
new file mode 100644
index 0000000..bfe18af
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-pulse/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/user.conf
+importas -iu USER USER
+
+s6-setuidgid ${USER}
+s6-envdir -i /run/session-env
+
+exec /usr/bin/pipewire -c pipewire-pulse.conf
diff --git a/os/etc/s6-rc/src/pipewire-pulse/type b/os/etc/s6-rc/src/pipewire-pulse/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-pulse/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/pipewire-srv/dependencies.d/dbus-session b/os/etc/s6-rc/src/pipewire-srv/dependencies.d/dbus-session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-srv/dependencies.d/dbus-session
diff --git a/os/etc/s6-rc/src/pipewire-srv/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/pipewire-srv/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-srv/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/pipewire-srv/producer-for b/os/etc/s6-rc/src/pipewire-srv/producer-for
new file mode 100644
index 0000000..ea63659
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-srv/producer-for
@@ -0,0 +1 @@
+pipewire-log
diff --git a/os/etc/s6-rc/src/pipewire-srv/run b/os/etc/s6-rc/src/pipewire-srv/run
new file mode 100644
index 0000000..a72c12e
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/bin/pipewire
diff --git a/os/etc/s6-rc/src/pipewire-srv/type b/os/etc/s6-rc/src/pipewire-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/pipewire-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/plymouth-quit/dependencies.d/plymouth-start b/os/etc/s6-rc/src/plymouth-quit/dependencies.d/plymouth-start
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-quit/dependencies.d/plymouth-start
diff --git a/os/etc/s6-rc/src/plymouth-quit/type b/os/etc/s6-rc/src/plymouth-quit/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-quit/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/plymouth-quit/up b/os/etc/s6-rc/src/plymouth-quit/up
new file mode 100644
index 0000000..f921095
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-quit/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec /usr/bin/plymouth quit --retain-splash
diff --git a/os/etc/s6-rc/src/plymouth-splash/dependencies.d/plymouth-start b/os/etc/s6-rc/src/plymouth-splash/dependencies.d/plymouth-start
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-splash/dependencies.d/plymouth-start
diff --git a/os/etc/s6-rc/src/plymouth-splash/type b/os/etc/s6-rc/src/plymouth-splash/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-splash/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/plymouth-splash/up b/os/etc/s6-rc/src/plymouth-splash/up
new file mode 100644
index 0000000..6bf19a2
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-splash/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec /usr/bin/plymouth show-splash
diff --git a/os/etc/s6-rc/src/plymouth-start/dependencies.d/console b/os/etc/s6-rc/src/plymouth-start/dependencies.d/console
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-start/dependencies.d/console
diff --git a/os/etc/s6-rc/src/plymouth-start/run b/os/etc/s6-rc/src/plymouth-start/run
new file mode 100644
index 0000000..b2174d6
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-start/run
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec /usr/sbin/plymouthd --mode=boot --no-daemon --attach-to-session
diff --git a/os/etc/s6-rc/src/plymouth-start/type b/os/etc/s6-rc/src/plymouth-start/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/plymouth-start/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/powertop/dependencies.d/mount b/os/etc/s6-rc/src/powertop/dependencies.d/mount
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/powertop/dependencies.d/mount
diff --git a/os/etc/s6-rc/src/powertop/type b/os/etc/s6-rc/src/powertop/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/powertop/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/powertop/up b/os/etc/s6-rc/src/powertop/up
new file mode 100644
index 0000000..02da72e
--- /dev/null
+++ b/os/etc/s6-rc/src/powertop/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+exec /usr/sbin/powertop --auto-tune
diff --git a/os/etc/s6-rc/src/remount-root/dependencies.d/mount-filesystems b/os/etc/s6-rc/src/remount-root/dependencies.d/mount-filesystems
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/remount-root/dependencies.d/mount-filesystems
diff --git a/os/etc/s6-rc/src/remount-root/type b/os/etc/s6-rc/src/remount-root/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/remount-root/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/remount-root/up b/os/etc/s6-rc/src/remount-root/up
new file mode 100644
index 0000000..7e1f944
--- /dev/null
+++ b/os/etc/s6-rc/src/remount-root/up
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+
+foreground { mount -o remount,rw / }
diff --git a/os/etc/s6-rc/src/seatd-log/consumer-for b/os/etc/s6-rc/src/seatd-log/consumer-for
new file mode 100644
index 0000000..5639fee
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-log/consumer-for
@@ -0,0 +1 @@
+seatd-srv
diff --git a/os/etc/s6-rc/src/seatd-log/notification-fd b/os/etc/s6-rc/src/seatd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/seatd-log/pipeline-name b/os/etc/s6-rc/src/seatd-log/pipeline-name
new file mode 100644
index 0000000..fd6b59e
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-log/pipeline-name
@@ -0,0 +1 @@
+seatd
diff --git a/os/etc/s6-rc/src/seatd-log/run b/os/etc/s6-rc/src/seatd-log/run
new file mode 100644
index 0000000..67d46f7
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/seatd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/seatd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/seatd
diff --git a/os/etc/s6-rc/src/seatd-log/type b/os/etc/s6-rc/src/seatd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/seatd-srv/notification-fd b/os/etc/s6-rc/src/seatd-srv/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-srv/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/seatd-srv/producer-for b/os/etc/s6-rc/src/seatd-srv/producer-for
new file mode 100644
index 0000000..c2c15c5
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-srv/producer-for
@@ -0,0 +1 @@
+seatd-log
diff --git a/os/etc/s6-rc/src/seatd-srv/run b/os/etc/s6-rc/src/seatd-srv/run
new file mode 100644
index 0000000..837cb73
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+exec seatd -g video -n 3
diff --git a/os/etc/s6-rc/src/seatd-srv/type b/os/etc/s6-rc/src/seatd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/seatd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/seedrng/dependencies.d/mount-devfs b/os/etc/s6-rc/src/seedrng/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/seedrng/dependencies.d/mount-procfs b/os/etc/s6-rc/src/seedrng/dependencies.d/mount-procfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/dependencies.d/mount-procfs
diff --git a/os/etc/s6-rc/src/seedrng/dependencies.d/remount-root b/os/etc/s6-rc/src/seedrng/dependencies.d/remount-root
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/dependencies.d/remount-root
diff --git a/os/etc/s6-rc/src/seedrng/dependencies.d/udev-trigger b/os/etc/s6-rc/src/seedrng/dependencies.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/dependencies.d/udev-trigger
diff --git a/os/etc/s6-rc/src/seedrng/type b/os/etc/s6-rc/src/seedrng/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/seedrng/up b/os/etc/s6-rc/src/seedrng/up
new file mode 100644
index 0000000..fa684fa
--- /dev/null
+++ b/os/etc/s6-rc/src/seedrng/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec /lib/rc/sbin/seedrng
diff --git a/os/etc/s6-rc/src/snooze-daily/producer-for b/os/etc/s6-rc/src/snooze-daily/producer-for
new file mode 100644
index 0000000..78f2503
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-daily/producer-for
@@ -0,0 +1 @@
+snooze-log
diff --git a/os/etc/s6-rc/src/snooze-daily/run b/os/etc/s6-rc/src/snooze-daily/run
new file mode 100644
index 0000000..f7e8300
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-daily/run
@@ -0,0 +1,8 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+
+foreground { mkdir -p /run/snooze }
+
+exec snooze -s 1d -t /run/snooze/daily -- execlineb -c \
+	"foreground { pipeline { test -d /etc/cron.daily } run-parts -v /etc/cron.daily } touch /run/snooze/daily"
diff --git a/os/etc/s6-rc/src/snooze-daily/type b/os/etc/s6-rc/src/snooze-daily/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-daily/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/snooze-hourly/producer-for b/os/etc/s6-rc/src/snooze-hourly/producer-for
new file mode 100644
index 0000000..78f2503
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-hourly/producer-for
@@ -0,0 +1 @@
+snooze-log
diff --git a/os/etc/s6-rc/src/snooze-hourly/run b/os/etc/s6-rc/src/snooze-hourly/run
new file mode 100644
index 0000000..af80a9c
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-hourly/run
@@ -0,0 +1,8 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+
+foreground { mkdir -p /run/snooze }
+
+exec snooze -v -H * -s 1h -t /run/snooze/hourly execlineb -c \
+	"foreground { pipeline { test -d /etc/cron.hourly } run-parts -v /etc/cron.hourly } touch /run/snooze/hourly"
diff --git a/os/etc/s6-rc/src/snooze-hourly/type b/os/etc/s6-rc/src/snooze-hourly/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-hourly/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/snooze-log/consumer-for b/os/etc/s6-rc/src/snooze-log/consumer-for
new file mode 100644
index 0000000..26b0e15
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-log/consumer-for
@@ -0,0 +1,2 @@
+snooze-daily
+snooze-hourly
diff --git a/os/etc/s6-rc/src/snooze-log/notification-fd b/os/etc/s6-rc/src/snooze-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/snooze-log/run b/os/etc/s6-rc/src/snooze-log/run
new file mode 100644
index 0000000..b1a8be7
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/snooze.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/snooze }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/snooze
diff --git a/os/etc/s6-rc/src/snooze-log/type b/os/etc/s6-rc/src/snooze-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/snooze/contents.d/snooze-daily b/os/etc/s6-rc/src/snooze/contents.d/snooze-daily
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze/contents.d/snooze-daily
diff --git a/os/etc/s6-rc/src/snooze/contents.d/snooze-hourly b/os/etc/s6-rc/src/snooze/contents.d/snooze-hourly
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze/contents.d/snooze-hourly
diff --git a/os/etc/s6-rc/src/snooze/type b/os/etc/s6-rc/src/snooze/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/snooze/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/sound/contents.d/pipewire b/os/etc/s6-rc/src/sound/contents.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/sound/contents.d/pipewire
diff --git a/os/etc/s6-rc/src/sound/contents.d/pipewire-pulse b/os/etc/s6-rc/src/sound/contents.d/pipewire-pulse
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/sound/contents.d/pipewire-pulse
diff --git a/os/etc/s6-rc/src/sound/contents.d/wireplumber b/os/etc/s6-rc/src/sound/contents.d/wireplumber
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/sound/contents.d/wireplumber
diff --git a/os/etc/s6-rc/src/sound/type b/os/etc/s6-rc/src/sound/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/sound/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/sshd/run b/os/etc/s6-rc/src/sshd/run
new file mode 100644
index 0000000..18ea579
--- /dev/null
+++ b/os/etc/s6-rc/src/sshd/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+foreground { redirfd -w 2 /dev/null ssh-keygen -A }
+exec /usr/sbin/sshd -D
diff --git a/os/etc/s6-rc/src/sshd/type b/os/etc/s6-rc/src/sshd/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/sshd/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/startpage/run b/os/etc/s6-rc/src/startpage/run
new file mode 100644
index 0000000..c300f0b
--- /dev/null
+++ b/os/etc/s6-rc/src/startpage/run
@@ -0,0 +1,8 @@
+#!/bin/execlineb -P
+
+#redirfd -w 1 /dev/null
+#redirfd -w 2 /dev/null
+
+cd /home/robert/src/startpage/
+foreground { /usr/bin/go build . }
+exec /home/robert/src/startpage/startpage
diff --git a/os/etc/s6-rc/src/startpage/type b/os/etc/s6-rc/src/startpage/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/startpage/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/swap/dependencies.d/mount-filesystems b/os/etc/s6-rc/src/swap/dependencies.d/mount-filesystems
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/swap/dependencies.d/mount-filesystems
diff --git a/os/etc/s6-rc/src/swap/type b/os/etc/s6-rc/src/swap/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/swap/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/swap/up b/os/etc/s6-rc/src/swap/up
new file mode 100644
index 0000000..d9d28e4
--- /dev/null
+++ b/os/etc/s6-rc/src/swap/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+exec /sbin/swapon -a
diff --git a/os/etc/s6-rc/src/swayidle/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/swayidle/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/swayidle/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/swayidle/run b/os/etc/s6-rc/src/swayidle/run
new file mode 100644
index 0000000..8617f3a
--- /dev/null
+++ b/os/etc/s6-rc/src/swayidle/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+runas /usr/bin/swayidle -w timeout 300 "lock -daemonize" timeout 900 "suspend-then-hibernate"
diff --git a/os/etc/s6-rc/src/swayidle/type b/os/etc/s6-rc/src/swayidle/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/swayidle/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/swww/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/swww/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/swww/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/swww/dependencies.d/kanshi b/os/etc/s6-rc/src/swww/dependencies.d/kanshi
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/swww/dependencies.d/kanshi
diff --git a/os/etc/s6-rc/src/swww/run b/os/etc/s6-rc/src/swww/run
new file mode 100644
index 0000000..224c269
--- /dev/null
+++ b/os/etc/s6-rc/src/swww/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+runas /usr/bin/swww-daemon
diff --git a/os/etc/s6-rc/src/swww/type b/os/etc/s6-rc/src/swww/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/swww/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/syncthing-log/consumer-for b/os/etc/s6-rc/src/syncthing-log/consumer-for
new file mode 100644
index 0000000..3d9dca2
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-log/consumer-for
@@ -0,0 +1 @@
+syncthing-srv
diff --git a/os/etc/s6-rc/src/syncthing-log/notification-fd b/os/etc/s6-rc/src/syncthing-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/syncthing-log/pipeline-name b/os/etc/s6-rc/src/syncthing-log/pipeline-name
new file mode 100644
index 0000000..e6f7842
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-log/pipeline-name
@@ -0,0 +1 @@
+syncthing
diff --git a/os/etc/s6-rc/src/syncthing-log/run b/os/etc/s6-rc/src/syncthing-log/run
new file mode 100644
index 0000000..35dd33a
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/syncthing.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/syncthing }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/syncthing
diff --git a/os/etc/s6-rc/src/syncthing-log/type b/os/etc/s6-rc/src/syncthing-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/syncthing-srv/dependencies.d/net-online b/os/etc/s6-rc/src/syncthing-srv/dependencies.d/net-online
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-srv/dependencies.d/net-online
diff --git a/os/etc/s6-rc/src/syncthing-srv/producer-for b/os/etc/s6-rc/src/syncthing-srv/producer-for
new file mode 100644
index 0000000..a0ee74b
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-srv/producer-for
@@ -0,0 +1 @@
+syncthing-log
diff --git a/os/etc/s6-rc/src/syncthing-srv/run b/os/etc/s6-rc/src/syncthing-srv/run
new file mode 100644
index 0000000..d1eaf74
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-srv/run
@@ -0,0 +1,12 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/user.conf
+importas -iu USER USER
+
+backtick -E -D /tmp HOME { homeof ${USER} }
+s6-setuidgid ${USER}
+export HOME ${HOME}
+foreground { install -d ${HOME}/.config/syncthing }
+
+fdmove -c 2 1
+exec /usr/bin/syncthing serve --no-browser --home=${HOME}/.config/syncthing --gui-address=http://127.0.0.1:8384 --logfile=/dev/null
diff --git a/os/etc/s6-rc/src/syncthing-srv/type b/os/etc/s6-rc/src/syncthing-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/syncthing-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/sysctl/dependencies.d/mount b/os/etc/s6-rc/src/sysctl/dependencies.d/mount
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/sysctl/dependencies.d/mount
diff --git a/os/etc/s6-rc/src/sysctl/type b/os/etc/s6-rc/src/sysctl/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/sysctl/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/sysctl/up b/os/etc/s6-rc/src/sysctl/up
new file mode 100644
index 0000000..72844aa
--- /dev/null
+++ b/os/etc/s6-rc/src/sysctl/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+foreground { /usr/sbin/sysctl --system --quiet }
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/kmod-static-nodes b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/kmod-static-nodes
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/kmod-static-nodes
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/mount-devfs b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/type b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/up b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/up
new file mode 100644
index 0000000..f33c191
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup-dev/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec systemd-tmpfiles --prefix=/dev --create --boot
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/mount-tmpfs b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/mount-tmpfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/mount-tmpfs
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/remount-root b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/remount-root
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/remount-root
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/udev-trigger b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup/dependencies.d/udev-trigger
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup/type b/os/etc/s6-rc/src/systemd-tmpfiles-setup/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/systemd-tmpfiles-setup/up b/os/etc/s6-rc/src/systemd-tmpfiles-setup/up
new file mode 100644
index 0000000..b2937f3
--- /dev/null
+++ b/os/etc/s6-rc/src/systemd-tmpfiles-setup/up
@@ -0,0 +1,2 @@
+#!/bin/execlineb -P
+exec systemd-tmpfiles --create --remove --boot --exclude-prefix=/dev
diff --git a/os/etc/s6-rc/src/tailscale-log/consumer-for b/os/etc/s6-rc/src/tailscale-log/consumer-for
new file mode 100644
index 0000000..45779c0
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-log/consumer-for
@@ -0,0 +1 @@
+tailscale-srv
diff --git a/os/etc/s6-rc/src/tailscale-log/notification-fd b/os/etc/s6-rc/src/tailscale-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/tailscale-log/pipeline-name b/os/etc/s6-rc/src/tailscale-log/pipeline-name
new file mode 100644
index 0000000..0d52153
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-log/pipeline-name
@@ -0,0 +1 @@
+tailscale
diff --git a/os/etc/s6-rc/src/tailscale-log/run b/os/etc/s6-rc/src/tailscale-log/run
new file mode 100644
index 0000000..92d5525
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/tailscale.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/tailscale }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/tailscale
diff --git a/os/etc/s6-rc/src/tailscale-log/type b/os/etc/s6-rc/src/tailscale-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tailscale-srv/dependencies.d/net-online b/os/etc/s6-rc/src/tailscale-srv/dependencies.d/net-online
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-srv/dependencies.d/net-online
diff --git a/os/etc/s6-rc/src/tailscale-srv/producer-for b/os/etc/s6-rc/src/tailscale-srv/producer-for
new file mode 100644
index 0000000..612edd5
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-srv/producer-for
@@ -0,0 +1 @@
+tailscale-log
diff --git a/os/etc/s6-rc/src/tailscale-srv/run b/os/etc/s6-rc/src/tailscale-srv/run
new file mode 100644
index 0000000..02b9575
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-srv/run
@@ -0,0 +1,12 @@
+#!/bin/execlineb -P
+
+foreground { mkdir -p /var/lib/tailscale }
+foreground { mkdir -p /run/tailscale }
+
+fdmove -c 2 1
+
+importas -iu PATH PATH
+export PATH /sbin:${PATH}
+
+foreground { pipeline { env } grep PATH }
+exec /usr/sbin/tailscaled --no-logs-no-support --state=/var/lib/tailscale/tailscaled.state --socket=/run/tailscale/tailscaled.sock --port 41641
diff --git a/os/etc/s6-rc/src/tailscale-srv/type b/os/etc/s6-rc/src/tailscale-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tailscale-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tinydm-log/consumer-for b/os/etc/s6-rc/src/tinydm-log/consumer-for
new file mode 100644
index 0000000..87d08d7
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-log/consumer-for
@@ -0,0 +1 @@
+tinydm-srv
diff --git a/os/etc/s6-rc/src/tinydm-log/notification-fd b/os/etc/s6-rc/src/tinydm-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/tinydm-log/pipeline-name b/os/etc/s6-rc/src/tinydm-log/pipeline-name
new file mode 100644
index 0000000..9f7f9dc
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-log/pipeline-name
@@ -0,0 +1 @@
+tinydm
diff --git a/os/etc/s6-rc/src/tinydm-log/run b/os/etc/s6-rc/src/tinydm-log/run
new file mode 100644
index 0000000..00e269d
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/tinydm.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/tinydm }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/tinydm
diff --git a/os/etc/s6-rc/src/tinydm-log/type b/os/etc/s6-rc/src/tinydm-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tinydm-srv/dependencies.d/seatd b/os/etc/s6-rc/src/tinydm-srv/dependencies.d/seatd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/dependencies.d/seatd
diff --git a/os/etc/s6-rc/src/tinydm-srv/dependencies.d/systemd-tmpfiles-setup b/os/etc/s6-rc/src/tinydm-srv/dependencies.d/systemd-tmpfiles-setup
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/dependencies.d/systemd-tmpfiles-setup
diff --git a/os/etc/s6-rc/src/tinydm-srv/finish b/os/etc/s6-rc/src/tinydm-srv/finish
new file mode 100644
index 0000000..ae658da
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/finish
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+exec sh /etc/s6-rc/src/tinydm-srv/finish-sh
diff --git a/os/etc/s6-rc/src/tinydm-srv/finish-sh b/os/etc/s6-rc/src/tinydm-srv/finish-sh
new file mode 100644
index 0000000..674de28
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/finish-sh
@@ -0,0 +1,10 @@
+#!/bin/sh
+set -u
+
+pkill -f autologin
+
+for pid in $(pgrep -f marker); do
+	session=$(ps -o session= -p ${pid} | xargs)
+	[ -z "$session" ] && break
+	pkill -s ${session}
+done
diff --git a/os/etc/s6-rc/src/tinydm-srv/producer-for b/os/etc/s6-rc/src/tinydm-srv/producer-for
new file mode 100644
index 0000000..3930647
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/producer-for
@@ -0,0 +1 @@
+tinydm-log
diff --git a/os/etc/s6-rc/src/tinydm-srv/run b/os/etc/s6-rc/src/tinydm-srv/run
new file mode 100644
index 0000000..9a3f2e8
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+redirfd -w 1 /dev/null
+redirfd -w 2 /dev/null
+
+envfile /etc/s6-rc/config/user.conf
+importas -ui USER USER
+
+exec /usr/bin/autologin ${USER} /usr/bin/tinydm-run-session
diff --git a/os/etc/s6-rc/src/tinydm-srv/type b/os/etc/s6-rc/src/tinydm-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tinydm-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty1/dependencies.d/hostname b/os/etc/s6-rc/src/tty1/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty1/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty1/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty1/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty1/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty1/run b/os/etc/s6-rc/src/tty1/run
new file mode 100644
index 0000000..a4a9834
--- /dev/null
+++ b/os/etc/s6-rc/src/tty1/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty1 }
+exec /sbin/agetty -L -8 tty1 115200 linux
diff --git a/os/etc/s6-rc/src/tty1/type b/os/etc/s6-rc/src/tty1/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty1/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty2/dependencies.d/hostname b/os/etc/s6-rc/src/tty2/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty2/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty2/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty2/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty2/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty2/run b/os/etc/s6-rc/src/tty2/run
new file mode 100644
index 0000000..f705448
--- /dev/null
+++ b/os/etc/s6-rc/src/tty2/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty2 }
+exec /sbin/agetty -L -8 tty2 115200 linux
diff --git a/os/etc/s6-rc/src/tty2/type b/os/etc/s6-rc/src/tty2/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty2/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty3/dependencies.d/hostname b/os/etc/s6-rc/src/tty3/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty3/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty3/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty3/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty3/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty3/run b/os/etc/s6-rc/src/tty3/run
new file mode 100644
index 0000000..e17493a
--- /dev/null
+++ b/os/etc/s6-rc/src/tty3/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty3 }
+exec /sbin/agetty -L -8 tty3 115200 linux
diff --git a/os/etc/s6-rc/src/tty3/type b/os/etc/s6-rc/src/tty3/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty3/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty4/dependencies.d/hostname b/os/etc/s6-rc/src/tty4/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty4/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty4/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty4/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty4/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty4/run b/os/etc/s6-rc/src/tty4/run
new file mode 100644
index 0000000..b690f62
--- /dev/null
+++ b/os/etc/s6-rc/src/tty4/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty4 }
+exec /sbin/agetty -L -8 tty4 115200 linux
diff --git a/os/etc/s6-rc/src/tty4/type b/os/etc/s6-rc/src/tty4/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty4/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty5/dependencies.d/hostname b/os/etc/s6-rc/src/tty5/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty5/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty5/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty5/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty5/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty5/run b/os/etc/s6-rc/src/tty5/run
new file mode 100644
index 0000000..2d42a4e
--- /dev/null
+++ b/os/etc/s6-rc/src/tty5/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty5 }
+exec /sbin/agetty -L -8 tty5 115200 linux
diff --git a/os/etc/s6-rc/src/tty5/type b/os/etc/s6-rc/src/tty5/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty5/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/tty6/dependencies.d/hostname b/os/etc/s6-rc/src/tty6/dependencies.d/hostname
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty6/dependencies.d/hostname
diff --git a/os/etc/s6-rc/src/tty6/dependencies.d/mount-devfs b/os/etc/s6-rc/src/tty6/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/tty6/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/tty6/run b/os/etc/s6-rc/src/tty6/run
new file mode 100644
index 0000000..31bd0c1
--- /dev/null
+++ b/os/etc/s6-rc/src/tty6/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+if { pipeline { s6-rc -ba list } grep -qFx mount-filesystems }
+if -t { test -e /dev/tty6 }
+exec /sbin/agetty -L -8 tty6 115200 linux
diff --git a/os/etc/s6-rc/src/tty6/type b/os/etc/s6-rc/src/tty6/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/tty6/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/udev-settle/dependencies.d/udev-trigger b/os/etc/s6-rc/src/udev-settle/dependencies.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-settle/dependencies.d/udev-trigger
diff --git a/os/etc/s6-rc/src/udev-settle/dependencies.d/udevd b/os/etc/s6-rc/src/udev-settle/dependencies.d/udevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-settle/dependencies.d/udevd
diff --git a/os/etc/s6-rc/src/udev-settle/type b/os/etc/s6-rc/src/udev-settle/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-settle/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/udev-settle/up b/os/etc/s6-rc/src/udev-settle/up
new file mode 100644
index 0000000..135dff1
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-settle/up
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+
+foreground { redirfd -w 1 /dev/null udevadm settle }
diff --git a/os/etc/s6-rc/src/udev-trigger/dependencies.d/udevd b/os/etc/s6-rc/src/udev-trigger/dependencies.d/udevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-trigger/dependencies.d/udevd
diff --git a/os/etc/s6-rc/src/udev-trigger/type b/os/etc/s6-rc/src/udev-trigger/type
new file mode 100644
index 0000000..bdd22a1
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-trigger/type
@@ -0,0 +1 @@
+oneshot
diff --git a/os/etc/s6-rc/src/udev-trigger/up b/os/etc/s6-rc/src/udev-trigger/up
new file mode 100644
index 0000000..f094e3d
--- /dev/null
+++ b/os/etc/s6-rc/src/udev-trigger/up
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+foreground { redirfd -w 1 /dev/null udevadm trigger --type=subsystems --action=add }
+foreground { redirfd -w 1 /dev/null udevadm trigger --type=devices --action=add }
diff --git a/os/etc/s6-rc/src/udev/contents.d/udev-trigger b/os/etc/s6-rc/src/udev/contents.d/udev-trigger
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udev/contents.d/udev-trigger
diff --git a/os/etc/s6-rc/src/udev/contents.d/udevd b/os/etc/s6-rc/src/udev/contents.d/udevd
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udev/contents.d/udevd
diff --git a/os/etc/s6-rc/src/udev/type b/os/etc/s6-rc/src/udev/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/udev/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/udevd-log/consumer-for b/os/etc/s6-rc/src/udevd-log/consumer-for
new file mode 100644
index 0000000..867667b
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-log/consumer-for
@@ -0,0 +1 @@
+udevd-srv
diff --git a/os/etc/s6-rc/src/udevd-log/notification-fd b/os/etc/s6-rc/src/udevd-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/udevd-log/pipeline-name b/os/etc/s6-rc/src/udevd-log/pipeline-name
new file mode 100644
index 0000000..45bd63d
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-log/pipeline-name
@@ -0,0 +1 @@
+udevd
diff --git a/os/etc/s6-rc/src/udevd-log/run b/os/etc/s6-rc/src/udevd-log/run
new file mode 100644
index 0000000..abbe467
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/udevd.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/udevd }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/udevd
diff --git a/os/etc/s6-rc/src/udevd-log/type b/os/etc/s6-rc/src/udevd-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-cgroups b/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-cgroups
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-cgroups
diff --git a/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-devfs b/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-devfs
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/dependencies.d/mount-devfs
diff --git a/os/etc/s6-rc/src/udevd-srv/dependencies.d/systemd-tmpfiles-setup-dev b/os/etc/s6-rc/src/udevd-srv/dependencies.d/systemd-tmpfiles-setup-dev
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/dependencies.d/systemd-tmpfiles-setup-dev
diff --git a/os/etc/s6-rc/src/udevd-srv/producer-for b/os/etc/s6-rc/src/udevd-srv/producer-for
new file mode 100644
index 0000000..5a7694f
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/producer-for
@@ -0,0 +1 @@
+udevd-log
diff --git a/os/etc/s6-rc/src/udevd-srv/run b/os/etc/s6-rc/src/udevd-srv/run
new file mode 100644
index 0000000..652f618
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/run
@@ -0,0 +1,4 @@
+#!/bin/execlineb -P
+
+fdmove -c 2 1
+exec /lib/systemd/systemd-udevd -D
diff --git a/os/etc/s6-rc/src/udevd-srv/type b/os/etc/s6-rc/src/udevd-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/udevd-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/user/contents.d/mpris-scrobbler b/os/etc/s6-rc/src/user/contents.d/mpris-scrobbler
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/user/contents.d/mpris-scrobbler
diff --git a/os/etc/s6-rc/src/user/contents.d/plymouth-quit b/os/etc/s6-rc/src/user/contents.d/plymouth-quit
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/user/contents.d/plymouth-quit
diff --git a/os/etc/s6-rc/src/user/contents.d/startpage b/os/etc/s6-rc/src/user/contents.d/startpage
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/user/contents.d/startpage
diff --git a/os/etc/s6-rc/src/user/type b/os/etc/s6-rc/src/user/type
new file mode 100644
index 0000000..757b422
--- /dev/null
+++ b/os/etc/s6-rc/src/user/type
@@ -0,0 +1 @@
+bundle
diff --git a/os/etc/s6-rc/src/waybar-log/consumer-for b/os/etc/s6-rc/src/waybar-log/consumer-for
new file mode 100644
index 0000000..386c88f
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-log/consumer-for
@@ -0,0 +1 @@
+waybar-srv
diff --git a/os/etc/s6-rc/src/waybar-log/notification-fd b/os/etc/s6-rc/src/waybar-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/waybar-log/pipeline-name b/os/etc/s6-rc/src/waybar-log/pipeline-name
new file mode 100644
index 0000000..677a91e
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-log/pipeline-name
@@ -0,0 +1 @@
+waybar
diff --git a/os/etc/s6-rc/src/waybar-log/run b/os/etc/s6-rc/src/waybar-log/run
new file mode 100644
index 0000000..b9a03e1
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/waybar.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/waybar }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/waybar
diff --git a/os/etc/s6-rc/src/waybar-log/type b/os/etc/s6-rc/src/waybar-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/waybar-srv/dependencies.d/dbus-session b/os/etc/s6-rc/src/waybar-srv/dependencies.d/dbus-session
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/dependencies.d/dbus-session
diff --git a/os/etc/s6-rc/src/waybar-srv/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/waybar-srv/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/waybar-srv/dependencies.d/sound b/os/etc/s6-rc/src/waybar-srv/dependencies.d/sound
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/dependencies.d/sound
diff --git a/os/etc/s6-rc/src/waybar-srv/producer-for b/os/etc/s6-rc/src/waybar-srv/producer-for
new file mode 100644
index 0000000..24b4d63
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/producer-for
@@ -0,0 +1 @@
+waybar-log
diff --git a/os/etc/s6-rc/src/waybar-srv/run b/os/etc/s6-rc/src/waybar-srv/run
new file mode 100644
index 0000000..8d6cdf2
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/local/bin/waybar --log-level=info
diff --git a/os/etc/s6-rc/src/waybar-srv/type b/os/etc/s6-rc/src/waybar-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/waybar-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/wireplumber-log/consumer-for b/os/etc/s6-rc/src/wireplumber-log/consumer-for
new file mode 100644
index 0000000..dcea740
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-log/consumer-for
@@ -0,0 +1 @@
+wireplumber-srv
diff --git a/os/etc/s6-rc/src/wireplumber-log/notification-fd b/os/etc/s6-rc/src/wireplumber-log/notification-fd
new file mode 100644
index 0000000..00750ed
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-log/notification-fd
@@ -0,0 +1 @@
+3
diff --git a/os/etc/s6-rc/src/wireplumber-log/pipeline-name b/os/etc/s6-rc/src/wireplumber-log/pipeline-name
new file mode 100644
index 0000000..ec8e30f
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-log/pipeline-name
@@ -0,0 +1 @@
+wireplumber
diff --git a/os/etc/s6-rc/src/wireplumber-log/run b/os/etc/s6-rc/src/wireplumber-log/run
new file mode 100644
index 0000000..0bcbe5d
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-log/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/log.conf
+envfile -I /etc/s6-rc/config/wireplumber.conf
+importas -sCuD "n2 s2000000 T" LOG_DIRECTIVES LOG_DIRECTIVES
+importas -sCuD "/run/log" LOG_DIR LOG_DIR
+
+foreground { install -d ${LOG_DIR}/wireplumber }
+s6-log -d3 -b -- ${LOG_DIRECTIVES} ${LOG_DIR}/wireplumber
diff --git a/os/etc/s6-rc/src/wireplumber-log/type b/os/etc/s6-rc/src/wireplumber-log/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-log/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire
diff --git a/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire-pulse b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire-pulse
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/dependencies.d/pipewire-pulse
diff --git a/os/etc/s6-rc/src/wireplumber-srv/producer-for b/os/etc/s6-rc/src/wireplumber-srv/producer-for
new file mode 100644
index 0000000..e9cd359
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/producer-for
@@ -0,0 +1 @@
+wireplumber-log
diff --git a/os/etc/s6-rc/src/wireplumber-srv/run b/os/etc/s6-rc/src/wireplumber-srv/run
new file mode 100644
index 0000000..c5034d3
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/run
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+fdmove -c 2 1
+runas /usr/bin/wireplumber
diff --git a/os/etc/s6-rc/src/wireplumber-srv/type b/os/etc/s6-rc/src/wireplumber-srv/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/wireplumber-srv/type
@@ -0,0 +1 @@
+longrun
diff --git a/os/etc/s6-rc/src/wlsunset/dependencies.d/desktop-session-running b/os/etc/s6-rc/src/wlsunset/dependencies.d/desktop-session-running
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/os/etc/s6-rc/src/wlsunset/dependencies.d/desktop-session-running
diff --git a/os/etc/s6-rc/src/wlsunset/run b/os/etc/s6-rc/src/wlsunset/run
new file mode 100644
index 0000000..f3b2be4
--- /dev/null
+++ b/os/etc/s6-rc/src/wlsunset/run
@@ -0,0 +1,9 @@
+#!/bin/execlineb -P
+
+envfile /etc/s6-rc/config/user.conf
+importas -iu lat LAT
+importas -iu lon LON
+
+#redirfd -w 1 /dev/null
+#redirfd -w 2 /dev/null
+runas /usr/bin/wlsunset -l ${lat} -L ${lon}
diff --git a/os/etc/s6-rc/src/wlsunset/type b/os/etc/s6-rc/src/wlsunset/type
new file mode 100644
index 0000000..5883cff
--- /dev/null
+++ b/os/etc/s6-rc/src/wlsunset/type
@@ -0,0 +1 @@
+longrun