Обновить

Естественная нейронка каким-то непонятным образом отличается от искуственной казуальностью озарений. Вот стоило только написать предыдущий шитпост, как она мне шепчет: чё тупишь? Примонтируй wayland-1 в каталог LXC контейнера и не будет тебе замусоривания XDG_RUNTIME_DIR на хосте.

И правда. Но вот только только красивая идея "всё есть файл" разбивается об особенности реализации. Я не знаю об какие, но сделать mount --bind для каталога - можно, для файла - можно, для девайса - можно, а для сокета - опаньки.

Ладно, придётся примонтировать весь XDG_RUNTIME_DIR хоста уж куда-нибудь и воспользоваться ссылками. Итак, на хосте крутим Sway под обычным юзером с id=1000, а в контейнере запускаем Weston (на самом деле без разницы, мне удобнее Weston). В конфиг LXC контейнера добавляем:

lxc.mount.entry = tmpfs run tmpfs noexec,nodev,nosuid,mode=755,size=4M 0 0
lxc.mount.entry = /run/user/1000 run/host-xdg-runtime-dir none bind,create=dir 0 0

Если в контейнере есть что-то похожее на /etc/init.d/mountkernfs.sh который монтирует /run - отключаем.

Для юзера в контейнере надо сделать:

mkdir -p /run/user/1000
chown user:user /run/user/1000
chmod 700 /run/user/1000
ln -s /run/host-xdg-runtime-dir/wayland-1 /run/user/1000/
ln -s /run/host-xdg-runtime-dir/wayland-1.lock /run/user/1000/

У меня это пока в виде примочки /etc/runit/boot-run/20-userdir-hack.sh, потом доделаю.

Ссылка на lock-файл нужна, иначе Weston удалит символическую ссылку wayland-1, думая, что это сокет. В приципе, может это даже и фича.

Теги:
Рейтинг0
Комментарии0

Метод Каллана: я повторял предложения три года

Как курс английского, построенный на повторении, оказался самым полезным, что я изучал, — и почему любой разработчик за пределами англоязычного мира рано или поздно сталкивается с тем же выбором.

Фото: little Gabriel, Unsplash

Мне было четырнадцать, когда я решил, что школа не научит меня английскому.

Шёл 2009 год. Я учил немецкий и не любил его — не сам язык, а тот факт, что его выбрали за меня. К тому времени я уже писал первые строки кода и заметил вещь, которая казалась мне очевидной и, судя по всему, никому вокруг: любой язык программирования, который я хотел выучить, был документирован на английском. Любой ответ на форуме. Любое сообщение об ошибке. Любая книга, которую стоило читать.

Так что я попросил записать меня куда-нибудь всерьёз. Так я оказался в Британский Центр в Тбилиси, в двухэтажном здании на улице Пекини, в комнате с одиннадцатью другими людьми и преподавателем, который говорил быстрее, чем я успевал думать.

Метод Каллана: я повторял предложения три года

Публикации