Если 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






