LINUX.ORG.RU

Десктоп на Steam Deck

 


0

1

Если Steam Deck установить на док-станцию (лучше родную, так как с двумя купленными сторонними док-станциями были проблемы разного рода), подключить монитор, клавиатуру, мышку и колонки (USB-портов как раз хватает впритык), то его можно использовать как вполне себе адекватный настольный компьютер, на котором можно и браузер запустить, и в игру поиграть. Для переключения в режим десктопа нужно явно вручную указать это после запуска собственно Steam Deck в режиме Big Picture.

Пример готовой системы из 2023 года: вид спереди, вид сзади.

В основе Steam OS находится Arch Linux, поэтому подключив стандартный репозиторий можно ставить софт общего применения прямо из него. К сожалению при использовании официальной SteamOS с официальными же обновлениями от Valve есть проблема: обновления у неё атомарные и, соответственно, при их установке вся ваша деятельность при установке системного софта идёт лесом. Поэтому приходится выполнять операции перечисленные ниже. Я не гарантирую, что я всё делаю правильно и оптимально. Мне на самом деле было лень разбираться досконально, поэтому когда всё заработало как мне нужно, то я зафиксировал все последовательности в виде скриптов в ~/local/bin и перестал изучать вопрос. Если будут комментарии/советы по делу, то приму их с благодарностью!

Для запуска скриптов вы должны установить пароль пользователя и, соответственно, знать его.

Установка принтера Да, каждое обновление у меня слетает сетевой принтер, поэтому запускается следующий скрипт (возможно придётся запустить дважды):

#!/usr/bin/bash
sudo steamos-readonly disable

# Delete old files if persistent because you had cups prev. installed before
sudo rm /etc/cups/cups-files.conf.default
sudo rm /etc/cups/cupsd.conf.default
sudo rm /etc/cups/snmp.conf.default
sudo rm /etc/xdg/autostart/print-applet.desktop
sudo rm /etc/cupshelpers/preferreddrivers.xml

# initialize and populate pacman PGP keys
sudo pacman-key --init
sudo pacman-key --populate archlinux

# CUPS + KDE printer manager GUI
PACKAGES="cups print-manager system-config-printer"

# Auto-discovery via DNS
# https://wiki.archlinux.org/title/Avahi#Hostname_resolution
PACKAGES="$PACKAGES nss-mdns"

# Optionals (helpful)
# foomatic pre-built ppd drivers
PACKAGES="$PACKAGES foomatic-db-engine foomatic-db-ppds foomatic-db-nonfree-ppds"

# ghostscript for non-pdf printers
PACKAGES="$PACKAGES ghostscript"

# cups-filters for driverless printers
PACKAGES="$PACKAGES cups-filters"

sudo pacman -Sy $PACKAGES

sudo systemctl enable --now avahi-daemon
sudo systemctl enable --now cups

# re-lock the filesystem
sudo steamos-readonly enable
После этого в настройках принтеров можно поискать сетевой принтер, и он там, о чудо, появляется.

Установка софта Скрипт install_soft.sh запускается (возможно придётся запустить дважды — не выяснял, почему сначала нужно удалить старые ключи и только потом скрипт срабатывает) после каждого системного обновления SteamOS (не софта установленного через flatpak, а именно SteamOS):

sudo steamos-readonly disable

# initialize and populate pacman PGP keys
sudo pacman-key --init
sudo pacman-key --populate archlinux

#возможно нужно сказать что-то вроде (если будет ошибка PGP)
sudo pacman-key --lsign-key ci-package-builder-1@steamos.cloud

# soft
# возможно потребуется предварительно удалить /etc/mc/
PACKAGES="mc fbreader coolreader emacs geeqie okular gimp firefox openh264 maxima vlc qbittorrent"
sudo pacman -Sy   $PACKAGES

PACKAGES="mplayer"
sudo pacman -Sy   $PACKAGES \
     --overwrite /var/lib/lirc/images/atwf83.jpg \
     --overwrite /var/lib/lirc/images/diode.gif \
     --overwrite  /var/lib/lirc/images/lirc.gif \
     --overwrite  /var/lib/lirc/images/marb18.jpg \
     --overwrite  /var/lib/lirc/plugins/index.html \
     --overwrite  /var/lib/lirc/plugins/lirc.css

# re-lock the filesystem
sudo steamos-readonly enable

Почему всё это я не ставлю через flatpak? Есть три причины:

  • Программа, установленная через flatpak, живёт в специальной песочнице, где ей всё запрещается. В частности, запрещено взаимодействовать с другими программами. Например: вы хотите запустить из emacs компилятор latex, и у вас ничего не выходит. Вы хотите из okular при просмотре pdf попасть в нужную стоку tex-файла, из которого сделан этот pdf, и у вас опять ничего не выходит… Как поменять это поведение, я не нашёл. Все советы на подобные вопросы оканчивались ответом: «ф топку flatpak» (наиболее близкий перевод с английского).
  • Для mc отсутствует готовый flatpak. Почему mc? — тяжёлое детство испорченное DOSом и соответственно DOS navigatorом. В качестве основной оболочки настроил fish — в принципе ничем не хуже bash.
  • Компания Cisco для пользователей из России заблочила свои сервера, а один из важных компонентов всей этой дурной экосистемы (OpenH264) как раз там и лежал и менять своё расположение не планирует. Можно использовать приложение из трёх букв, а можно firefox устанавливать прямо из репов.

Всякая всячина Для использования набора символов с помощью клавиши Compose таскаю с собой файл с комбинациями ".XCompose". В основном это нужно для набора смайликов ☹ ☺, дефиса «—», «ёлочек», неравенств ≠ ≥ ≤, копирайта ©, греческих букв αβγδ и т.д. Поищите в интернетах на свой вкус.

Конфиг для fish находится в ~/.config/fish/config.fish

# сокращения 
alias ed="emacs -nw"
alias df='df -x"squashfs" -x"tmpfs"'

# Уточнение локали для конкретных программ (если нужно)
#alias mc="LANG=ru_RU.UTF-8 LC_NUMERIC=POSIX mc"

# Дополнительный путь (для интерактива)
# Мне нужно для локальных скриптов
if status is-interactive
    # Commands to run in interactive sessions can go here
    fish_add_path --path /home/username/local/bin/
end

Мне, как это не странно, нужна ещё локаль ru_RU.KOI8-R, так как нужно заходить туда, где оная до сих пор обретается. Чтобы всё было прозрачно перекодировано в Unicode, можно использовать команду luit, например так:

TERM=xterm LC_ALL=ru_RU.KOI8-R luit ssh -C "ваш сервер с локалью KOI8-R" 

Системные апдейты сносят и локаль тоже, поэтому запускаем скрипт install_locale.sh:

#!/bin/bash
sudo steamos-readonly disable
sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman -S glibc
sudo sed -i "s%#ru_RU.KOI8-R KOI8-R%ru_RU.KOI8-R KOI8-R%" /etc/locale.gen
# ru_RU.UTF-8 сейчас есть из коробки
#sudo sed -i "s%#ru_RU.UTF-8 UTF-8%ru_RU.UTF-8 UTF-8%" /etc/locale.gen
sudo locale-gen
sudo steamos-readonly enable

nix (локальная установка ПО)

Посоветовали поразбираться с NixOS. Инструментарий позволяет установить некоторые из пакетов локально так, что не будет интерферировать с атомарными апдейтами SteamOS. К сожалению не является быстрым и исчерпывающим решением. Как минимум придётся покопаться в документации, но TeX Live, emacs, mc, maxima и okular устанавливаются сразу без особых проблем.

Начальная установка (делается один раз):

# Готовим директорию для установки
# Пусть вы залогинены под пользователем "username" (по умолчанию deck)
sudo chown -R "username" /nix
# Скачиваем установочный скрипт
curl -L https://nixos.org/nix/install -o install-nix
sh ./install-nix --no-daemon
# Проверка
nix --version
# Переключение на стабильную ветку (по умолчанию предлагается ветка unstable)
nix-channel --remove nixpkgs
# Стабильные версии выпускаются дважды в год в апреле (4) и в ноябре (11)
nix-channel --add https://nixos.org/channels/nixos-25.11 nixpkgs
nix-channel --update
# Установка переменных окружения для fish 
cp /home/deck/.nix-profile/etc/profile.d/nix.fish ~/.config/fish/conf.d/nix.fish 
. ~/.config/fish/conf.d/nix.fish

ПО можно поискать здесь.

Установка нужного мне софта (комментарии если что-то не так):

nix-env -iA nixpkgs.texliveFull
# geeqie падает при запуске
# nix-env -iA nixpkgs.geeqie
# удаление geeqie, если уже установили
# nix-env --uninstall  geeqie
nix-env -iA nixpkgs.mc
# FBreader отсутствует в пакетной базе
# coolreader выдаёт ошибку при установке 
# более ранняя версия 25.04 лучше бы тоже выдавала ошибку (не могу это развидеть)
# nix-env -iA nixpkgs.coolreader
nix-env -iA nixpkgs.emacs
nix-env -iA nixpkgs.kdePackages.okular
nix-env -iA nixpkgs.gimp
# боязно пробовать
#nix-env -iA nixpkgs.firefox
# не нужно ?
#nix-env -iA nixpkgs.openh264
nix-env -iA nixpkgs.maxima
nix-env -iA nixpkgs.vlc
nix-env -iA nixpkgs.qbittorrent
nix-env -iA nixpkgs.mplayer

Список установленного ПО:

nix-env -q

Обновление ПО (регулярно):

# update
nix-channel --update
# upgrade
nix-env -u '*'

Удаление всего, что связано с nix (делается один раз):

sudo rm -rf /nix/
rm -rf  ~/.nix-channels ~/.nix-defexpr ~/.nix-profile 

★★★★★

Проверено: hobbit ()
Последнее исправление: Evgueni (всего исправлений: 13)
Ответ на: комментарий от Aceler

А что это? Много ли нужно потратить времени, чтобы освоить эту технологию? Будет ли она интерферировать со SteamOS?

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Вроде работает. TeX Live на пробу вытягивается.

Но опять же хотелось бы пользоваться пакетной базой Arch, коль уж Arch и так стоит. Ну и ещё с десяток команд нужно изучить для апдейтов и прочее.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Aceler

Вроде весь пока нужный мне дополнительный софт установился, за исключением fbreader (отсутствует в пакетной базе) и coolreader (ошибка какая-то связанная с cmake при установке). Посмотрю как там с взаимодействием между программами.

Вопрос: как локализовать установленные приложения? Локаль, скажем на gimp не оказывает никакого влияния. Надо что-то доставлять?

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Aceler

Не факт, в смысле что интерференции гарантированно не будет. Нужно смотреть. Слишком сложны эти десктоп-среды, будь они не ладны, а nix предлагает какой-то «блидинг эйдж» в отличии от того, что стоит по умолчанию. С TeX Live скажем проблем не будет, но что там вытащил с собой geeqie и okular — не понятно.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Ответ на: комментарий от Aceler

nix похоже не окончательное решение, ну или поковыряться не один час придётся. Конкретно: geeqie падает. Пришлось удалить. Продолжаю наблюдение.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

Исследовал проблему с coolreader в nixos: программа не ставится и ветки unstable и 25.11, но ставится из ветки 25.05 и при этом лучше бы тоже не ставилась, так как шрифты превращаются в мазню. Давненько такого не видел.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от Evgueni

В общем nix — те же яйца, только сбоку. Попробовал установить calibre только для того, чтобы выяснить что читалка ради которой это было поставлено не работает (хочет GLX, но не суть).

TeX Live, emacs, mc, maxima, okular кажутся стабильными в случае использования портов из nix.

Evgueni ★★★★★
() автор топика

К сожалению при использовании официальной SteamOS с официальными же обновлениями от Valve есть проблема: обновления у неё атомарные и, соответственно, при их установке вся ваша деятельность при установке системного софта идёт лесом.

Очень жаль, что так. Я как раз очень надеялся на Steam Machine, как на замену десктопа, но судя по всему не стоит ждать.

another ★★★★★
()
Ответ на: комментарий от another

Любой другой дистрибутив поставит, в чём проблема-то?

Aceler ★★★★★
()

Зачем извращаться с атомарным дистрибутивом, если можно заменить на арч или другой дистр.

xDShot ★★★★★
()

Есть ещё такая тема, distrobox, в SteamOS на деке из коробки. Туда почти любой дистрибутив в контейнер можно засунуть, в том числе Арч. Неясно, работают ли графика и окна, но допустим поставить убунту с gcc и собрать софт можно.

xDShot ★★★★★
()

Зачем всё это? Почему нормально не пользоваться нормальным дистрибтивом? Или хотя бы перевести Арч в режим дистрибутива а не прошивки.

kirill_rrr ★★★★★
()
Ответ на: комментарий от xDShot

Затем, что это игровой компьютер от Valve и Valve по идее гарантирует его работоспособность именно для этого дела. Заменять на что-то другое не такое оптимальное — это гарантированно напрашиваться на потенциальные сложности с выполнением его основной обязанности.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от xDShot

И сколько это будет отъедать памяти? Её и так не сказал бы что много, так как видеокарта часть отъедает для своих нужд и запущен firefox.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от xDShot

Надо будет клепать детище Франкенштейна уже в обратную сторону. Потому что на Деке его прошивка работает быстрей ванильных, дистров. Там планировщик поменян, драйверы лишние выкинуты из ядра и вообще много всяких мелких оптимизаций. Загрузку в Big Picture тоже терять не стоит.

Alden ★★★★
()
Ответ на: комментарий от another

Что именно будет из себя представлять Steam Machine мы не знаем. Вполне может быть, что из-за кризиса с памятью оный вообще перенесут на момент, когда датацентры превратятся в тыкву. А там и дистрибутив для arm допилят.

Вполне может быть, что десктоп доработают (как минимум разберутся с принтерами). Вон, локаль ru_RU.UTF-8 таки добавили.

Ну и по идее разработчики считали, что flatpak порешит все проблемы со сторонним софтом. Но к сожалению в моём случае не срослось. В начале я просто страдал из-за того, что нет mc, потом выяснил, что с emacs, TeX Live и okular есть проблемы с взаимодействием. Ну а дальше в качестве завершающего комбо пришёл привет от Cisco. С другой стороны в момент как я научился ставить mc — я научился ставить и всё остальное.

Evgueni ★★★★★
() автор топика
Ответ на: комментарий от einhander

Это достаточно мощный компьютер, чтобы запустить не нём Tales of Arise. LaTeX для него — лёгкая задача.

Evgueni ★★★★★
() автор топика
Последнее исправление: Evgueni (всего исправлений: 1)
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.