
Комментарии 9
Проделана немалая работа, но почему тогда и контейнер не собрали сами, а взяли готовый на основе fedora? Так то steam deck основан на арче, может с ним было бы проще реализовать какие-то моменты?
Спасибо! Пара моментов. «Собрать свой контейнер» — это забутстрапить тот же rootfs руками вместо готового шаблона, а сверху всё равно ставить тот же KDE, драйвер и Sunshine. Выигрыша ноль, поэтому вопрос не в самосборе, а в дистро-базе.
А насчёт Arch/SteamOS — тут важный нюанс: проект изначально задумывался как обычный десктоп Plasma, и всё крутилось вокруг него. Steam через Gamescope прикрутился уже потом, по остаточному принципу.
И главное: всё, что пришлось решать, — архитектурное, а не дистрибутивное. DRM master в LXC, захват в headless Wayland, нехватка протоколов у KWin, refresh=0 от headless-бэкенда, GTK-трей Sunshine, вешающий композитор. Сменой Fedora на Arch это не лечится. Arch сэкономил бы пару шагов с пакетами в начале, но Sunshine, gamescope и wlroots у меня всё равно собираются из исходников, так что на финал это не влияет.
Если у вас X11, следовательно нет HDR, если нет HDR для чего исследовательской работой заниматься, когда есть - wolf (https://github.com/games-on-whales/wolf), накатывайте столы пачками, потребляет 50мб ОЗУ, живет в LXC-Alpine-Podman (без Debian, NVIDIA драйвера, NVIDIA toolkit), размер LXC 96мб заместо 2гб. Драйвер нужно с pve папку /usr/nvidia до wolf докинуть, не требует обновления драйверов в контейнерах. Может в композиторах что поменялось и есть HDR, но ранее не заводилось.
Я уже частично ответил в предыдущем комментарии. Gamescope был прикручен отдельно, после достижения основной задачи: Wayland Plasma.
Kwin и Gamescope запускаются в Wayland режиме.
Внутри уже некоторым приложениям необходимы x11 поверхности.
wolf - поднимать много изолированных контейнеров-сессий под приложения на лету. Мне же нужен был один полноценный десктоп KDE Plasma.
По HDR отдельная тема. На первый взгляд Sunshine wlr - несовместимы с HDR.
А если не секрет, при помощи чего такие красивые слайды рисовали?
Отличный вопрос! Нет не секрет, открыл для себя, что создавать несложные слайды, по типу таких можно через обычный чат GPT одним промтом. Сам я GPT не уважаю, делать с codex проекты это сущий ад, это сплошные заплатки а не код. Мой опыт был такой. Но вот их модель генерации изображений сильнее google в плане такого рода задач.
Я конечно экспериментировал с промтами, чтобы держать одинаковый стиль. Могу дать промт ели нужно.
Но тут важные уточнение:
1. бесплатный план делает хуже, это проверено.
2. При лбом раскладе картинка после генерации имеет шумы и заметные неоднородности в цвете.
Тут Фотошоп в помощь, я правлю это фильтром, размытия по поверхности.
Могу дать промт ели нужно.
поделитесь, пожалуйста, если не жалко...
Вот пример конкретного случая "Схема проблемы вложенной subsurface"
A clean, modern flat-design technical infographic explaining a nesting bug: KWin6 sends its real desktop frame inside a child subsurface, while the parent window it commits is just a 1×1 black dummy — so the compositor that looks only at the parent gets a black screen. Off-white background. Neutral, formal, professional wording throughout.
Top — title strip: A thin full-width neutral-gray strip, bold label "Папка внутри папки: почему рабочий стол не доходил до бэкенда".
Body — two columns side by side, comparing expectation vs reality:
LEFT column — header "Что коммитит Gamescope" (red accent):
a red-bordered card "XDG toplevel" containing a small solid-black square with a label "1×1 пиксель · чёрный · технический контейнер".
a downward arrow to a neutral card "SunshineBackend (бэкенд)".
a terminal solid-black result card with white text "Чёрный экран".
RIGHT column — header "Что на самом деле прислал KWin6" (green accent):
a large parent card "XDG toplevel (родитель)" — itself shown as a tiny 1×1 black dummy badge in its corner — that visually CONTAINS a nested child card.
the nested child card is green-bordered, "wl_subsurface (дочерняя поверхность)", and inside it a realistic thumbnail of a Plasma desktop (panel, icons, wallpaper) with a label "реальный кадр 1920×1080 · DMA-BUF".
from the child card, a red dashed arrow points to a gray "limbo" box labeled "очередь необработанных коммитов", interrupted by a red ✗ with a pill "не X11- и не XDG-окно → тихо отбрасывается".
Between the two columns, a bold callout linking them: a magnifier icon over the parent with a red pill "Gamescope смотрит только на родителя 1×1".
Bottom — the fix (three numbered patch cards in wlserver.cpp, green): A full-width row of three green-bordered cards, each with a number badge:
"Forwarding подповерхностей — коммит дочерней поверхности перенаправляется на родительское XDG-окно, которое Gamescope знает".
"Игнор пустого родителя — если у окна есть дочерние подповерхности, его собственный буфер 1×1 пропускается и не затирает реальный контент".
"Передача размера — при первом подключении KWin явно получает нужное разрешение (иначе дефолтные 1024×768)". Below the three cards, a slim green result banner with a checkmark: "После трёх патчей в кадре появляется рабочий стол Plasma".
Style: clean Stripe/Notion documentation aesthetic, off-white background, vibrant accent colors, generous padding, modern sans-serif typography (Cyrillic-capable), soft drop shadows on every card. Red = the misleading 1×1 dummy, the dropped child and the black-screen result; green = the real desktop content and the three fixes; neutral gray = the backend and the unhandled-commits limbo; solid black = the literal 1×1 dummy and the black-screen card. The nested parent-containing-child structure in the right column is the visual focal point. Aspect ratio 16:9 (landscape). No 3D, no skeuomorphism, purely flat with subtle shadows. Tone of all text is dry, formal and technical — no slang, no colloquialisms, no emotional or conversational phrasing. All descriptive labels in Russian; keep technical tokens exactly as written and in monospace (XDG toplevel, wl_subsurface, DMA-BUF, SunshineBackend, wlserver.cpp, 1×1, 1920×1080, 1024×768) — do not translate or alter them.
Что то вроде шаблона
A clean, modern flat-design technical infographic {{explaining / illustrating / showing / presenting}} {{одно предложение: суть слайда — какую мысль он передаёт за один взгляд}}. {{визуальная метафора / структурная основа — выбери одну: “two vertical lanes side by side” | “a left-to-right journey of N cards” | “one large container with a nested element” | “a vertical stack (spine) read top to bottom” | “two columns comparing X vs Y”}}. Off-white background. Neutral, formal, professional wording throughout.
Top — title strip: A thin full-width neutral-gray strip, bold label “{{заголовок слайда на русском}}”.
[ОПЦ. если есть главный тезис:] Top — principle banner: A full-width amber-tinted banner with a lightbulb icon, bold label “{{ключевой тезис одной строкой}}”.
{{Название блока}} — {{его роль}}: {{Карточки блока. Для каждой укажи: цвет рамки (из палитры), иконку, label, при необходимости sub-label. Связи — стрелками с подписью-pill; статус — бейджем ✓ / ✗ / ~ . Группируй по смыслу в колонки / дорожки / вложенные контейнеры.}}
{{… повтори блок столько раз, сколько нужно …}}
[ОПЦ. терминал/код/диагностика:] Side callout — {{диагностика / код}}: A dark terminal-style card with monospace text and a {{иконка}} icon: first line (command, light text) “{{…}}”, second line (output, green text) “{{…}}”.
Bottom — {{conclusion / payoff}} banner (full width): A wide {{amber-tinted / neutral-gray}} banner with a {{checkmark / warning-triangle}} icon, bold label “{{вывод одной строкой}}”, smaller second line “{{уточнение}}”.
Style: clean Stripe/Notion documentation aesthetic, off-white background, vibrant accent colors, generous padding, modern sans-serif typography (Cyrillic-capable), soft drop shadows on every card and container. {{Перечисли назначение цветов ИМЕННО для этого слайда, опираясь на фиксированную палитру}}. {{Одно предложение: какой элемент — визуальный фокус}}. Aspect ratio 16:9 (landscape). No 3D, no skeuomorphism, purely flat with subtle shadows. Tone of all text is dry, formal and technical — no slang, no colloquialisms, no emotional or conversational phrasing. All descriptive labels in Russian; keep technical tokens exactly as written and in monospace ({{список токенов: пути, имена протоколов/API, флаги, имена файлов, разрешения-числа}}) — do not translate or alter them.
Рабочий стол в LXC-контейнере: детективная история о протоколах, тупиках и самописном Wayland-композиторе