Compare commits

18 Commits

Author SHA1 Message Date
a214ff761b Start system DBus inside container session.
Launch dbus-daemon before Xorg so libinput/seat integration has a system bus, reducing input routing issues in headless Sunshine sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 03:02:36 +03:00
93bc4bae05 Add missing Boost runtime libraries for Sunshine.
Install the Boost 1.74 runtime packages required by the pinned Sunshine build to prevent startup crashes from unresolved shared objects.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 02:58:01 +03:00
42aae93970 Pin Sunshine to v0.20.0 for container input stability.
Use the Ubuntu 22.04 package from v0.20.0 to avoid input routing regressions seen with newer builds in headless containerized X11 sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 02:53:50 +03:00
88b48e1796 Switch headless display stack to Xorg dummy.
Replace Xvfb with Xorg dummy and mount /run/udev so Sunshine virtual input devices target the streamed X session instead of the host console.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 02:48:28 +03:00
10ee14233b Use dbus tenfoot fallback for Steam startup.
Switch Sunshine app launch from gamepadui to a dbus-run-session tenfoot command and stop auto-killing Steam on disconnect to keep Big Picture stable across reconnects.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 02:44:03 +03:00
f4996bd0b0 Harden Steam Big Picture launch configuration.
Run Steam from its installation root with UTF-8 locale and temporary directory setup, and remove Desktop fallback entries to keep Sunshine launching a single stable app profile.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 02:35:18 +03:00
cd931c13cf Add optional apt-cacher proxy configuration.
Support APT_PROXY build arg in Docker/Compose, document setup, and include a safe .env.example template for local cache usage.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 01:25:20 +03:00
7e14ebb644 Add remaining Steam shared-library dependencies.
Install libbz2 and libibus for 64/32-bit runtime to resolve steamui/webhelper missing library errors.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 01:15:35 +03:00
925366d5b1 Add VDPAU runtime libraries for Steam UI.
Install libvdpau1 in 64/32-bit variants to satisfy steamui.so shared library requirements.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 01:04:11 +03:00
d465caad02 Add libvpx runtime compatibility for Steam UI.
Install libvpx7 (64/32-bit) and provide libvpx.so.6 compatibility symlinks expected by steamui.so.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 01:00:04 +03:00
9788ca9db2 Add libxcb-res runtime dependency for Steam UI.
Install libxcb-res (64/32-bit) required by steamui.so in container runtime.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:55:42 +03:00
5b59aea5c8 Add PipeWire runtime libraries for Steam UI.
Install libpipewire 0.3 (64/32-bit) required by steamui.so in headless container sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:51:49 +03:00
98c12c0f00 Add missing GTK runtime libraries for Steam UI.
Install GTK2 and GLib 64/32-bit deps required by steamui.so in containerized headless sessions.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:47:57 +03:00
1729fbf497 Add missing Steam UI runtime libraries.
Install libXtst and related 64/32-bit dependencies required for steamui/webhelper startup inside containers.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-19 00:42:38 +03:00
7510bf2ee8 Prevent Steam startup hangups and persist profile path.
Launch Steam via nohup under steam user and enforce stable ~/.steam symlink for reboot-safe startup.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 20:09:10 +03:00
16eb5ab230 Stabilize Steam startup and persistent user data in containers.
Run Steam Big Picture as dedicated steam user with persistent home-backed storage and document first-run bootstrap behavior.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 19:59:01 +03:00
6642cecf20 Merge pull request 'Fix Docker dependency and align Moonlight port-family mapping.' (#1) from cursor/fix-moonlight-port-mapping into main
Reviewed-on: #1
2026-06-18 15:39:05 +03:00
cc39c8b766 Fix Docker dependency and align Moonlight port-family mapping.
Update Sunshine container ports/docs for single base-port client setup and correct missing Ubuntu package.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-18 15:36:30 +03:00
9 changed files with 171 additions and 85 deletions

1
.env.example Normal file
View File

@@ -0,0 +1 @@
APT_PROXY=http://192.168.1.60:3142

2
.gitignore vendored
View File

@@ -5,6 +5,8 @@ nvidia-smi*
# local runtime data # local runtime data
players/*_steam/ players/*_steam/
players/*_config/sunshine.conf players/*_config/sunshine.conf
.env
!.env.example
# do not publish private Sunshine TLS keys # do not publish private Sunshine TLS keys
players/*_config/credentials/ players/*_config/credentials/

View File

@@ -3,36 +3,102 @@ FROM ubuntu:22.04
# Отключаем интерактивные вопросы во время установки # Отключаем интерактивные вопросы во время установки
ENV DEBIAN_FRONTEND=noninteractive ENV DEBIAN_FRONTEND=noninteractive
# Опциональный прокси для apt (например apt-cacher-ng: http://192.168.1.60:3142)
ARG APT_PROXY
RUN if [ -n "$APT_PROXY" ]; then \
printf 'Acquire::http::Proxy "%s";\nAcquire::https::Proxy "%s";\n' "$APT_PROXY" "$APT_PROXY" > /etc/apt/apt.conf.d/01proxy; \
fi
# 1. Добавляем 32-битную архитектуру для Steam и базовые графические зависимости # 1. Добавляем 32-битную архитектуру для Steam и базовые графические зависимости
RUN dpkg --add-architecture i386 && \ RUN dpkg --add-architecture i386 && \
apt-get update && apt-get install -y \ apt-get update && apt-get install -y \
xvfb fluxbox dbus-x11 xauth xfonts-base x11-xserver-utils \ xserver-xorg-core xserver-xorg-video-dummy xserver-xorg-input-libinput \
software-properties-common wget curl ca-certificates \ fluxbox dbus-x11 xauth xfonts-base x11-xserver-utils \
software-properties-common wget curl ca-certificates locales pciutils \
libboost-chrono1.74.0 libboost-filesystem1.74.0 libboost-locale1.74.0 \
libboost-program-options1.74.0 libboost-thread1.74.0 \
libcap2-bin libgomp1 mesa-utils \ libcap2-bin libgomp1 mesa-utils \
libxcb-cursor0 libxcb-xinerama0 libxcb-xfixes0 libxcb-shape0 libxcb-randr0 libxcb-xtest0 \ libxcb-cursor0 libxcb-xinerama0 libxcb-xfixes0 libxcb-shape0 libxcb-randr0 libxcb-xtest0 \
libxcb-x11-0 libxcb-render0 libxcb-render-util0 libxcb-util1 libxcb-keysyms1 \ libxcb1 libxcb-render0 libxcb-render-util0 libxcb-util1 libxcb-keysyms1 \
&& add-apt-repository multiverse \ && add-apt-repository multiverse \
&& apt-get update && apt-get update
# 2. Скачиваем оригинальный рабочий пакет Sunshine по вашей ссылке # 2. Скачиваем оригинальный рабочий пакет Sunshine по вашей ссылке
# ВНИМАНИЕ: Замените маркер ниже на вашу ссылку из браузера, сохранив кавычки! # ВНИМАНИЕ: Замените маркер ниже на вашу ссылку из браузера, сохранив кавычки!
RUN wget "https://github.com/LizardByte/Sunshine/releases/download/v0.21.0/sunshine-ubuntu-22.04-amd64.deb" -O /tmp/sunshine.deb \ RUN wget "https://github.com/LizardByte/Sunshine/releases/download/v0.20.0/sunshine-ubuntu-22.04-amd64.deb" -O /tmp/sunshine.deb \
&& chmod +x /tmp/sunshine.deb && chmod +x /tmp/sunshine.deb
# 3. Устанавливаем скачанный пакет и Steam со всеми зависимостями # 3. Устанавливаем скачанный пакет и Steam со всеми зависимостями
RUN apt-get update && \ RUN apt-get update && \
echo "debconf steam/question select I AGREE" | debconf-set-selections \ echo "debconf steam/question select I AGREE" | debconf-set-selections \
&& apt-get install -y /tmp/sunshine.deb steam:i386 steam-devices \ && apt-get install -y /tmp/sunshine.deb steam:i386 steam-devices \
libxtst6 libxtst6:i386 \
libxss1 libxss1:i386 \
libnss3 libnss3:i386 \
libxi6 libxi6:i386 \
libgtk2.0-0 libgtk2.0-0:i386 \
libglib2.0-0 libglib2.0-0:i386 \
libpipewire-0.3-0 libpipewire-0.3-0:i386 \
libxcb-res0 libxcb-res0:i386 \
libvpx7 libvpx7:i386 \
libvdpau1 libvdpau1:i386 \
libbz2-1.0 libbz2-1.0:i386 \
libibus-1.0-5 libibus-1.0-5:i386 \
&& ln -sf /lib/x86_64-linux-gnu/libvpx.so.7 /lib/x86_64-linux-gnu/libvpx.so.6 \
&& ln -sf /lib/i386-linux-gnu/libvpx.so.7 /lib/i386-linux-gnu/libvpx.so.6 \
&& locale-gen en_US.UTF-8 \
&& rm -f /tmp/sunshine.deb \ && rm -f /tmp/sunshine.deb \
&& apt-get clean \ && apt-get clean \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# 4. Скрипт очищает сессию, поднимает виртуальный экран, fluxbox и запускает Sunshine # 4. Конфиг Xorg dummy: нужен для корректной работы ввода Moonlight в контейнере
RUN mkdir -p /etc/X11 \
&& echo 'Section "ServerLayout"\n\
Identifier "Layout0"\n\
Screen 0 "Screen0"\n\
EndSection\n\
\n\
Section "Device"\n\
Identifier "Device0"\n\
Driver "dummy"\n\
VideoRam 256000\n\
EndSection\n\
\n\
Section "Monitor"\n\
Identifier "Monitor0"\n\
HorizSync 28.0-80.0\n\
VertRefresh 48.0-75.0\n\
Modeline "1920x1080" 172.80 1920 2040 2248 2576 1080 1081 1084 1118\n\
EndSection\n\
\n\
Section "Screen"\n\
Identifier "Screen0"\n\
Device "Device0"\n\
Monitor "Monitor0"\n\
DefaultDepth 24\n\
SubSection "Display"\n\
Depth 24\n\
Modes "1920x1080"\n\
EndSubSection\n\
EndSection\n\
' > /etc/X11/xorg-dummy.conf
# 5. Поднимаем Xorg dummy, fluxbox и Sunshine
RUN echo '#!/bin/bash\n\ RUN echo '#!/bin/bash\n\
set -e\n\
rm -f /tmp/.X99-lock /tmp/.X11-unix/X99\n\ rm -f /tmp/.X99-lock /tmp/.X11-unix/X99\n\
Xvfb :99 -ac -screen 0 1920x1080x24 &\n\ id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam\n\
mkdir -p /home/steam/.local/share/Steam /tmp/xdg-steam\n\
ln -sfn /home/steam/.local/share/Steam /home/steam/.steam\n\
chown -R steam:steam /home/steam /tmp/xdg-steam\n\
modprobe uinput >/dev/null 2>&1 || true\n\
mkdir -p /run/dbus\n\
dbus-daemon --system --fork || true\n\
Xorg :99 -config /etc/X11/xorg-dummy.conf -nolisten tcp -noreset +extension GLX +extension RANDR +extension RENDER &\n\
export DISPLAY=:99\n\ export DISPLAY=:99\n\
export HOME=/root\n\ export HOME=/root\n\
export LANG=en_US.UTF-8\n\
export LC_ALL=en_US.UTF-8\n\
sleep 3\n\ sleep 3\n\
fluxbox &\n\ fluxbox &\n\
sleep 2\n\ sleep 2\n\

View File

@@ -43,6 +43,21 @@
docker-compose up -d docker-compose up -d
``` ```
### APT кэширующий прокси (опционально)
Если у вас есть `apt-cacher-ng` (например `http://192.168.1.60:3142`), можно ускорить сборку образов:
1. Создайте `.env` рядом с `docker-compose.yml`:
```bash
echo 'APT_PROXY=http://192.168.1.60:3142' > .env
```
2. Пересоберите контейнеры:
```bash
docker compose up -d --build
```
Прокси передается в `Dockerfile` через build-arg `APT_PROXY` и автоматически записывается в `/etc/apt/apt.conf.d/01proxy` при сборке.
## Настройка ## Настройка
### Конфигурация Sunshine ### Конфигурация Sunshine
@@ -53,13 +68,56 @@
`sunshine.conf` не хранится в репозитории и генерируется Sunshine автоматически при первом запуске контейнера. `sunshine.conf` не хранится в репозитории и генерируется Sunshine автоматически при первом запуске контейнера.
`Steam Big Picture` запускается от отдельного пользователя `steam` внутри контейнера. Данные Steam сохраняются в `players/pX_steam` и не теряются после перезапуска контейнеров/сервера.
Важно: для корректной обработки ввода из Moonlight в контейнерах используется `Xorg dummy` (вместо `Xvfb`) и проброс `/run/udev` в контейнер. Это нужно, чтобы виртуальные устройства ввода Sunshine попадали в тот же X-сеанс, который стримится.
### Порты ### Порты
Каждый клиент использует следующие порты: В Moonlight при ручном добавлении указывается один адрес в формате `IP:base_port`.
- TCP: 47984-47990
- UDP: 47998-48000
Порты для каждого клиента отличаются для избежания конфликтов. `base_port` для каждого клиента:
- `player1` -> `47989` (можно просто `IP`, это дефолт)
- `player2` -> `48019`
- `player3` -> `48049`
- `player4` -> `48079`
Порты проброшены для каждого клиента отдельно (формат: `host:container`):
- `player1`
- TCP: `47984-47990:47984-47990`
- TCP/UDP: `48010:48010`
- UDP: `47998-48000:47998-48000`
- `player2`
- TCP: `48014-48020:47984-47990`
- TCP/UDP: `48040:48010`
- UDP: `48028-48030:47998-48000`
- `player3`
- TCP: `48044-48050:47984-47990`
- TCP/UDP: `48070:48010`
- UDP: `48058-48060:47998-48000`
- `player4`
- TCP: `48074-48080:47984-47990`
- TCP/UDP: `48100:48010`
- UDP: `48088-48090:47998-48000`
Moonlight использует `base_port` и вычисляет остальные порты автоматически.
### Первый запуск Steam
При первом запуске Steam скачивает и распаковывает клиент (может занять 10-20 минут, в зависимости от канала). В это время в Moonlight может отображаться пустой/черный рабочий стол.
Проверка прогресса для `player1`:
```bash
docker exec -it game-player-1 bash -lc 'tail -f /home/steam/.local/share/Steam/debian-installation/logs/bootstrap_log.txt'
```
После завершения первичной загрузки повторно откройте сессию Moonlight и запустите `Steam Big Picture`.
Если запуск Steam прерывается после выхода из терминала (`Hangup`), используйте лог:
```bash
docker exec -it game-player-1 bash -lc 'tail -f /home/steam/steam-app.log'
```
## Отладка ## Отладка

View File

@@ -1,5 +1,8 @@
x-game-template: &game-template x-game-template: &game-template
build: . build:
context: .
args:
APT_PROXY: ${APT_PROXY:-}
user: "root" user: "root"
restart: unless-stopped restart: unless-stopped
privileged: true privileged: true
@@ -35,10 +38,13 @@ services:
RENDER_DEVICE_INDEX: "0" RENDER_DEVICE_INDEX: "0"
ports: ports:
- "47984-47990:47984-47990/tcp" - "47984-47990:47984-47990/tcp"
- "48010:48010/tcp"
- "48010:48010/udp"
- "47998-48000:47998-48000/udp" - "47998-48000:47998-48000/udp"
volumes: volumes:
- /DATA/AppData/game-server/players/p1_steam:/root/.local/share/Steam - /DATA/AppData/game-server/players/p1_steam:/home/steam/.local/share/Steam
- /DATA/AppData/game-server/players/p1_config:/root/.config/sunshine - /DATA/AppData/game-server/players/p1_config:/root/.config/sunshine
- /run/udev:/run/udev:ro
# Добавляем логирование для отладки # Добавляем логирование для отладки
logging: logging:
driver: "json-file" driver: "json-file"
@@ -56,10 +62,13 @@ services:
RENDER_DEVICE_INDEX: "0" RENDER_DEVICE_INDEX: "0"
ports: ports:
- "48014-48020:47984-47990/tcp" - "48014-48020:47984-47990/tcp"
- "48040:48010/tcp"
- "48040:48010/udp"
- "48028-48030:47998-48000/udp" - "48028-48030:47998-48000/udp"
volumes: volumes:
- /DATA/AppData/game-server/players/p2_steam:/root/.local/share/Steam - /DATA/AppData/game-server/players/p2_steam:/home/steam/.local/share/Steam
- /DATA/AppData/game-server/players/p2_config:/root/.config/sunshine - /DATA/AppData/game-server/players/p2_config:/root/.config/sunshine
- /run/udev:/run/udev:ro
logging: logging:
driver: "json-file" driver: "json-file"
options: options:
@@ -76,10 +85,13 @@ services:
RENDER_DEVICE_INDEX: "0" RENDER_DEVICE_INDEX: "0"
ports: ports:
- "48044-48050:47984-47990/tcp" - "48044-48050:47984-47990/tcp"
- "48070:48010/tcp"
- "48070:48010/udp"
- "48058-48060:47998-48000/udp" - "48058-48060:47998-48000/udp"
volumes: volumes:
- /DATA/AppData/game-server/players/p3_steam:/root/.local/share/Steam - /DATA/AppData/game-server/players/p3_steam:/home/steam/.local/share/Steam
- /DATA/AppData/game-server/players/p3_config:/root/.config/sunshine - /DATA/AppData/game-server/players/p3_config:/root/.config/sunshine
- /run/udev:/run/udev:ro
logging: logging:
driver: "json-file" driver: "json-file"
options: options:
@@ -95,11 +107,14 @@ services:
NVIDIA_VISIBLE_DEVICES: "4" NVIDIA_VISIBLE_DEVICES: "4"
RENDER_DEVICE_INDEX: "0" RENDER_DEVICE_INDEX: "0"
ports: ports:
- "47974-47980:47984-47990/tcp" - "48074-48080:47984-47990/tcp"
- "47968-47970:47998-48000/udp" - "48100:48010/tcp"
- "48100:48010/udp"
- "48088-48090:47998-48000/udp"
volumes: volumes:
- /DATA/AppData/game-server/players/p4_steam:/root/.local/share/Steam - /DATA/AppData/game-server/players/p4_steam:/home/steam/.local/share/Steam
- /DATA/AppData/game-server/players/p4_config:/root/.config/sunshine - /DATA/AppData/game-server/players/p4_config:/root/.config/sunshine
- /run/udev:/run/udev:ro
logging: logging:
driver: "json-file" driver: "json-file"
options: options:

View File

@@ -1,31 +1,17 @@
{ {
"env": { "env": {
"PATH": "$(PATH):$(HOME)/.local/bin" "PATH": "$(PATH):$(HOME)/.local/bin:/usr/games"
}, },
"apps": [ "apps": [
{
"name": "Desktop",
"image-path": "desktop.png"
},
{
"name": "Low Res Desktop",
"image-path": "desktop.png",
"prep-cmd": [
{
"do": "xrandr --output HDMI-1 --mode 1920x1080",
"undo": "xrandr --output HDMI-1 --mode 1920x1200"
}
]
},
{ {
"name": "Steam Big Picture", "name": "Steam Big Picture",
"detached": [ "detached": [
"setsid steam steam://open/bigpicture" "bash -lc 'id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam; ROOT=/home/steam/.local/share/Steam/debian-installation; mkdir -p ${ROOT} /tmp/xdg-steam /home/steam/tmp; ln -sfn /home/steam/.local/share/Steam /home/steam/.steam; chown -R steam:steam /home/steam /tmp/xdg-steam; runuser -u steam -- nohup env DISPLAY=:99 HOME=/home/steam XDG_RUNTIME_DIR=/tmp/xdg-steam TMPDIR=/home/steam/tmp LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 bash -lc \"cd ${ROOT} && exec dbus-run-session -- /usr/games/steam -tenfoot -fullscreen -no-cef-sandbox\" >/home/steam/steam-app.log 2>&1 < /dev/null &'"
], ],
"prep-cmd": [ "prep-cmd": [
{ {
"do": "", "do": "",
"undo": "setsid steam steam://close/bigpicture" "undo": ""
} }
], ],
"image-path": "steam.png" "image-path": "steam.png"

View File

@@ -1,31 +1,17 @@
{ {
"env": { "env": {
"PATH": "$(PATH):$(HOME)/.local/bin" "PATH": "$(PATH):$(HOME)/.local/bin:/usr/games"
}, },
"apps": [ "apps": [
{
"name": "Desktop",
"image-path": "desktop.png"
},
{
"name": "Low Res Desktop",
"image-path": "desktop.png",
"prep-cmd": [
{
"do": "xrandr --output HDMI-1 --mode 1920x1080",
"undo": "xrandr --output HDMI-1 --mode 1920x1200"
}
]
},
{ {
"name": "Steam Big Picture", "name": "Steam Big Picture",
"detached": [ "detached": [
"setsid steam steam://open/bigpicture" "bash -lc 'id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam; ROOT=/home/steam/.local/share/Steam/debian-installation; mkdir -p ${ROOT} /tmp/xdg-steam /home/steam/tmp; ln -sfn /home/steam/.local/share/Steam /home/steam/.steam; chown -R steam:steam /home/steam /tmp/xdg-steam; runuser -u steam -- nohup env DISPLAY=:99 HOME=/home/steam XDG_RUNTIME_DIR=/tmp/xdg-steam TMPDIR=/home/steam/tmp LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 bash -lc \"cd ${ROOT} && exec dbus-run-session -- /usr/games/steam -tenfoot -fullscreen -no-cef-sandbox\" >/home/steam/steam-app.log 2>&1 < /dev/null &'"
], ],
"prep-cmd": [ "prep-cmd": [
{ {
"do": "", "do": "",
"undo": "setsid steam steam://close/bigpicture" "undo": ""
} }
], ],
"image-path": "steam.png" "image-path": "steam.png"

View File

@@ -1,31 +1,17 @@
{ {
"env": { "env": {
"PATH": "$(PATH):$(HOME)/.local/bin" "PATH": "$(PATH):$(HOME)/.local/bin:/usr/games"
}, },
"apps": [ "apps": [
{
"name": "Desktop",
"image-path": "desktop.png"
},
{
"name": "Low Res Desktop",
"image-path": "desktop.png",
"prep-cmd": [
{
"do": "xrandr --output HDMI-1 --mode 1920x1080",
"undo": "xrandr --output HDMI-1 --mode 1920x1200"
}
]
},
{ {
"name": "Steam Big Picture", "name": "Steam Big Picture",
"detached": [ "detached": [
"setsid steam steam://open/bigpicture" "bash -lc 'id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam; ROOT=/home/steam/.local/share/Steam/debian-installation; mkdir -p ${ROOT} /tmp/xdg-steam /home/steam/tmp; ln -sfn /home/steam/.local/share/Steam /home/steam/.steam; chown -R steam:steam /home/steam /tmp/xdg-steam; runuser -u steam -- nohup env DISPLAY=:99 HOME=/home/steam XDG_RUNTIME_DIR=/tmp/xdg-steam TMPDIR=/home/steam/tmp LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 bash -lc \"cd ${ROOT} && exec dbus-run-session -- /usr/games/steam -tenfoot -fullscreen -no-cef-sandbox\" >/home/steam/steam-app.log 2>&1 < /dev/null &'"
], ],
"prep-cmd": [ "prep-cmd": [
{ {
"do": "", "do": "",
"undo": "setsid steam steam://close/bigpicture" "undo": ""
} }
], ],
"image-path": "steam.png" "image-path": "steam.png"

View File

@@ -1,31 +1,17 @@
{ {
"env": { "env": {
"PATH": "$(PATH):$(HOME)/.local/bin" "PATH": "$(PATH):$(HOME)/.local/bin:/usr/games"
}, },
"apps": [ "apps": [
{
"name": "Desktop",
"image-path": "desktop.png"
},
{
"name": "Low Res Desktop",
"image-path": "desktop.png",
"prep-cmd": [
{
"do": "xrandr --output HDMI-1 --mode 1920x1080",
"undo": "xrandr --output HDMI-1 --mode 1920x1200"
}
]
},
{ {
"name": "Steam Big Picture", "name": "Steam Big Picture",
"detached": [ "detached": [
"setsid steam steam://open/bigpicture" "bash -lc 'id steam >/dev/null 2>&1 || useradd -m -s /bin/bash steam; ROOT=/home/steam/.local/share/Steam/debian-installation; mkdir -p ${ROOT} /tmp/xdg-steam /home/steam/tmp; ln -sfn /home/steam/.local/share/Steam /home/steam/.steam; chown -R steam:steam /home/steam /tmp/xdg-steam; runuser -u steam -- nohup env DISPLAY=:99 HOME=/home/steam XDG_RUNTIME_DIR=/tmp/xdg-steam TMPDIR=/home/steam/tmp LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 bash -lc \"cd ${ROOT} && exec dbus-run-session -- /usr/games/steam -tenfoot -fullscreen -no-cef-sandbox\" >/home/steam/steam-app.log 2>&1 < /dev/null &'"
], ],
"prep-cmd": [ "prep-cmd": [
{ {
"do": "", "do": "",
"undo": "setsid steam steam://close/bigpicture" "undo": ""
} }
], ],
"image-path": "steam.png" "image-path": "steam.png"