Steam (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Steam. Дата последней синхронизации: 8 ноября 2022. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Steam — это популярная платформа для распространения игр, созданная компанией Valve.

Примечание: Steam для Linux официально поддерживает только Ubuntu LTS.[1] Таким образом, не стоит обращаться в Valve за поддержкой при проблемах со Steam на Arch Linux.

Установка

Включите репозиторий multilib и установите пакет steam.

Для запуска Steam на Arch Linux должны быть выполнены следующие требования:

  • Установлена 32-битная версия драйвера OpenGL.
  • Сгенерирована локаль en_US.UTF-8, предотвращающая ошибку недопустимого указателя.
  • Графический интерфейс активно использует шрифт Arial; смотрите статью Шрифты Microsoft. В качестве альтернативы можно использовать ttf-liberation или шрифты, которые предоставляет Steam.
  • Установите wqy-zenhei, чтобы добавить поддержку азиатских языков.
  • Если для управления сетью используется systemd-networkd, установите lib32-systemd, чтобы Steam мог подключаться к своим серверам.
  • Если для DNS используется systemd-resolved, выполните эти шаги для настройки /etc/resolv.conf, чтобы Steam мог выполнять разрешение доменных имён.

SteamCMD

Установите steamcmdAUR для версии Steam для командной строки.

Альтернативная установка Flatpak

Примечание: Установка Steam из Flathub/Flatpak решит многие проблемы клиента, но в долгосрочной перспективе могут потребоваться альтернативные, менее документированные формы устранения неполадок.

Steam также может быть установлен с помощью Flatpak как com.valvesoftware.Steam из Flathub. Самый простой способ установить его для текущего пользователя — использовать репозиторий Flathub:

$ flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
$ flatpak --user install flathub com.valvesoftware.Steam
$ flatpak run com.valvesoftware.Steam

В настоящее время приложение Flatpak не поддерживает темы. Также в настоящее время нельзя запускать игры через optirun/primusrun, подробнее смотрите Issue#869.

Steam, установленный через Flatpak, не может получить доступ к вашему домашнему каталогу, и переопределение этого приведёт к тому, что Steam не запустится, так как это небезопасно. Однако вы можете свободно добавлять каталоги, находящиеся за пределами домашнего каталога. Если вы хотите добавить внешнюю библиотеку, выполните следующую команду для её добавления:

$ flatpak override --user com.valvesoftware.Steam --filesystem=/путь/к/каталогу

Запуск Steam с помощью Flatpak может предупредить вас об установке пакета steam-devices. В настоящее время этот пакет не существует, но вместо него можно установить game-devices-udevAUR; смотрите Gamepad#Device permissions.

Проблемы с азиатскими шрифтами в Flatpak

Если у вас возникли проблемы с отображением азиатских шрифтов в игре, это связано с тем, что org.freedesktop.Platform не содержит их. Сначала попробуйте смонтировать локальный шрифт:

$ flatpak run --filesystem=~/.local/share/fonts --filesystem=~/.config/fontconfig com.valvesoftware.Steam

Если это не сработает, попробуйте этот хак: сделайте шрифты доступными, напрямую скопировав файлы шрифтов в каталоги org.freedesktop.Platform, например:

# замените ? на вашу версию и хэш
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/etc/fonts/conf.avail
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/etc/fonts/conf.d
/var/lib/flatpak/runtime/org.freedesktop.Platform/x86_64/?/?/files/share/fonts

Структура каталогов

По умолчанию Steam устанавливается в каталог ~/.local/share/Steam. Если Steam не может найти его, он предложит вам переустановить его или выбрать новое место. В этой статье используется символическая ссылка ~/.steam/root для обозначения места установки.

Папки библиотеки

Каждое приложение Steam имеет уникальный AppID, который можно найти, посмотрев адрес страницы приложения в магазине Steam или посетив SteamDB.

Steam устанавливает игры в каталог БИБЛИОТЕКА/steamapps/common/. БИБЛИОТЕКА обычно располагается в ~/.steam/root, но можно добавить дополнительные папки (Steam > Настройки > Загрузки > Папки библиотеки Steam).

Чтобы Steam распознал игру, в каталоге БИБЛИОТЕКА/steamapps/ должен быть файл appmanifest_AppId.acf. Файл appmanifest использует формат KeyValues, и его свойство installdir определяет название каталога игры.

Примечание: Чтобы добавить дополнительные диски к установке Steam, сделанной через flathub, пользователь должен сначала дать клиенту Steam разрешение на доступ к точке монтирования дополнительного диска вручную с помощью инструмента вроде flatsealAUR.

Использование

steam [ -options ] [ steam:// URL ]

Доступные опции описаны здесь: Command Line Options article on the Valve Developer Wiki.

Steam также принимает Steam URL; смотрите Steam browser procotol.

Параметры запуска

При запуске игры Steam выполняет её команду запуска в оболочке Bash. Для изменения команды Steam предоставляет параметры запуска, которые можно установить для игры, щёлкнув на ней правой кнопкой мыши в библиотеке, выбрав Свойства и открыв вкладку Общие.

По умолчанию Steam просто добавляет прописанные вами параметры к стандартной команде запуска. Чтобы установить переменные окружения или передать команду запуска в качестве аргумента другой команде, используйте подстановку %command%.

Примеры

  • только аргументы: -foo
  • переменные окружения: FOO=bar BAZ=bar %command% -baz
  • совершенно другая команда: othercommand # %command%

Советы и рекомендации

Запуск в свёрнутом виде

Можно сделать так, чтобы при запуске Steam сворачивался в системный трей, а не перехватывал фокус в своё окно. Просто добавьте -silent в список аргументов при запуске. Чтобы Steam всегда запускался свёрнутым при запуске через ярлык, отредактируйте его, как описано в статье Ярлыки приложений#Изменение ярлыков.

Компактный режим

Можно сократить потребление ОЗУ до 5 раз, отключив Web-составляющую (~1100 МБ → 210 МБ). Уменьшение функциональности может компенсировать Big Picture. Для тех, кто использует Steam Community только через браузер, это изменение будет особенно полезно.

Выберите Вид > Компактный режим. Steam сразу переключится в компактный режим и будет использовать его по умолчанию при следующих запусках. Этот режим отображает список игр без использования веб-компонентов, но браузер всё равно инициализируется.

Чтобы браузер совсем не инициализировался, запустите Steam с аргументом -no-browser. Чтобы этот аргумент всегда использовался при запуске через ярлык, отредактируйте его, как описано в статье Ярлыки приложений#Изменение ярлыков.

Примечание: Интерфейс будет более простым и минималистичным, вы можете не увидеть привычных эффектов на вкладке «Друзья». Также вместо групп отображаются сообщества.

Пользовательский интерфейс Steam Deck

Запустите Steam один раз с параметрами запуска -steamdeck -gamepadui. Это позволит загрузить обновление Steam Deck и выполнить шаги по настройке Steam Deck. Последующие запуски требуют только опции -gamepadui.

Пользовательский интерфейс Steam Deck ожидает, что будет запущен NetworkManager. Если он не запущен, вы можете получить ложные ошибки сети.

Патч fsync

Патчи fsync от Valve улучшают производительность многопоточных приложений, запускаемых через Proton или Wine. Эти патчи есть в ванильном ядре, начиная с Linux 5.16, так что никаких дополнительных действий не требуется, кроме использования свежей версии Proton или пропатченной сборки Wine. Более ранние версии ядра с поддержкой fsync доступны одним из следующих способов:

  • Установите ядро linux-zen, которое содержит патчи fsync с релиза 5.2 [2]

Proton Steam-Play

Компания Valve разработала инструмент совместимости для Steam Play на основе Wine и дополнительных компонентов под названием Proton. Он позволяет запускать многие игры Windows (смотрите список совместимости).

Он имеет открытый исходный код и доступен на GitHub. Steam устанавливает свои собственные версии Proton, когда включен Steam Play.

Proton должен быть включен в клиенте Steam: Steam > Настройки > Steam Play. В этом диалоге вы можете включить Steam Play для игр, которые были и не были внесены в белый список Valve.

Чтобы принудительно включить Proton или определённую версию Proton для отдельной игры, щёлкните правой кнопкой мыши на игре, нажмите Свойства > Совместимость > Принудительно использовать определённый инструмент совместимости Steam Play и выберите нужную версию. Это также можно использовать для того, чтобы заставить игры, имеющие порт для Linux, использовать версию для Windows.

Вы также можете установить Proton из AUR с помощью protonAUR или proton-gitAUR, но для их работы со Steam требуется дополнительная настройка. Подробности о том, как Steam распознает установки Proton, смотрите на Proton GitHub.

Proton поддерживает интеграцию с Easy Anti Cheat, если разработчик игры активирует её, однако для EAC может потребоваться пропатченная версия библиотеки glibc: если другие пользователи сообщают, что игра работает, а у вас она не работает, попробуйте использовать Flatpak-версию Steam, так как с ней поставляется уже пропатченный glibc.

Steam Input

Если контроллер подключен во время работы Steam, поведение Steam по умолчанию заключается в том, чтобы оставить его в покое и позволить играм использовать его как есть. Доступ к устройствам геймпада evdev и joystick предоставляется ядром, и игры могут использовать их с помощью таких API, как SDL2, как если бы Steam не участвовал в процессе.

Подсистема Steam Input предлагает слой абстракции, который позволяет использовать более продвинутые функции, такие как переназначение кнопок и осей, специфичные для игры профили и выполнение более высокоуровневого сопоставления кнопок на основе игровых действий. Steam Input Configurator (SIC) — это часть системы, которая реализует эту функциональность. Чтобы включить Steam Input для контроллера, перейдите в Steam > Настройки > Контроллер > Основные настройки контроллера. [3] Откроется меню настроек Big Picture, где вы можете включить одну из опций Польз. настройки, соответствующую вашему контроллеру.

Steam Input Configurator

Когда SIC включен для контроллера, появляется несколько различных устройств, связанных с этим контроллером:

  • Виртуальный контроллер Steam, используемый играми, которые используют API ввода Steam. Все переназначения и функции, специфичные для Steam, работают.
  • Устройство evdev, представляющее эмулированный контроллер Xbox 360, используется в играх, не поддерживающих Steam Input. Работают базовые переназначения. [4]
  • Оригинальное evdev-устройство контроллера, чей ввод передаётся в SIC. Переназначения не работают, но игры должны по умолчанию использовать контроллер 360.
  • Аналоги джойстиков двух вышеупомянутых устройств.

Поведение SIC зависит от контекста:

  • При запуске игры, которая поддерживает Steam Input API, она использует SIC в родном режиме (native mode). Игра получает «действия», а не сырой ввод.
    • Это работает для игр, запущенных в Proton, которые использовали бы Steam Input в Windows.
    • Хотя теоретически эмулированный контроллер 360 в данном случае не нужен, он всё равно присутствует.
    • Игра может решить обеспечить как поддержку Steam Input, так и традиционные библиотеки API ввода, которые под капотом используют evdev и joystick. Когда игра запускается с помощью Steam и с включенным SIC для контроллера, Steam Input имеет более высокий приоритет.
    • Игра также может поддерживать только Steam Input. Например, в игре Among Us геймпад не будет работать, если у вас не запущен SIC.
  • При запуске игры, которая не поддерживает Steam Input, она (неосознанно) использует SIC в legacy mode. Игра получает ожидаемый ею сырой ввод от того, что выглядит как контроллер 360, но на самом деле SIC подделывает его, чтобы эмулировать желаемое поведение native mode.
    • Это происходит с Linux-играми, использующими evdev или joystick, а также с играми для Windows, запускаемыми через Proton, которые используют DirectInput или XInput.
  • При запуске игры, которая не поддерживает ни Steam Input, ни другие API геймпада, SIC может активировать профиль, эмулирующий поддержку геймпада, как описано ниже.
  • Когда в фокусе находится Big Picture, действует текущий профиль Big Picture, настраиваемый через Steam > Настройки > Контроллер > Настройки для режима Big Picture.
  • Когда в фокусе находится что-либо другое, действует текущий профиль рабочего стола, настраиваемый через Steam > Настройки > Контроллер > Настройки для ПК.
  • Когда что-либо в фокусе, дополнительные глобальные сочетания клавиш можно настроить через Steam > Настройки > Контроллер > Настройки при зажатой кнопке Steam.

Игры оцениваются по тому, насколько полно они поддерживают геймпад. Игра может иметь один из трёх значков в интерфейсе Big Picture: [5]

  • Полностью заполненный значок геймпада, указывающий на то, что игра имеет полную поддержку контроллера. Этого можно добиться, даже если игра не использует Steam Input API; основное внимание уделяется доступности независимо от API.
  • Наполовину заполненный значок геймпада, указывающий на то, что игра имеет частичную поддержку геймпада. Даже если игра использует Steam Input API, есть случаи, как в Team Fortress 2, когда некоторые части игры всё ещё недоступны, что оправдывает эту оценку.
  • Значок клавиатуры, указывающий на то, что игра не имеет встроенной поддержки геймпада.

В случаях, когда игра не имеет полной поддержки геймпада, SIC пытается заполнить пробелы. Например, в Bloons Tower Defense 5, игре, требующей наведения курсора и нажатия, Steam автоматически активирует профиль Клавиатура (WASD) и мышь, позволяя вам использовать геймпад для перемещения и нажатия.

Рекомендации по использованию Steam Input

Подведём итоги, что все это означает для использования:

  • Включение «Польз. настройки» в настройках Big Picture является рекомендуемым для расширенной поддержки геймпада, такой как переназначение по своему вкусу, или автоматические исправления, такие как ремаппинг кнопок в стиле Nintendo или клавиатуры/мыши.
  • Для некоторых игр включение этой опции является обязательным, если они не поддерживают традиционные API геймпада.
  • По умолчанию, если вы включили эту функцию, контроллер не будет работать с играми не из Steam, поскольку контроллер 360 имеет приоритет над оригинальным устройством контроллера, а в профиле Desktop по умолчанию кнопки отключены. Чтобы исправить это, вы можете:
    • Установить профиль рабочего стола на шаблон Геймпад. Это перенаправит ввод в контроллер 360, сделав устройство по умолчанию пригодным для использования в других программах.
    • Заставить другую игру использовать оригинальное устройство, если она это поддерживает. Обратите внимание, что игра не получит никакой пользы от переназначений, настроенных в Steam Input.
    • Полностью отключить функциональность контроллера, чтобы Steam вообще не создавал контроллер 360. Обратите внимание, что тогда игры Steam не получат преимущества от расширенной поддержки геймпада.
    • Закрывать Steam перед запуском игр не из Steam.

Режим Big Picture без оконного менеджера

Чтобы запустить Steam в режиме Big Picture из экранного менеджера, вы можете:

  • Установить steamos-compositorAUR[ссылка недействительна: package not found]
  • Или установить steamos-compositor-plusAUR, который скрывает раздражающее мигание цветов при запуске игр Proton и добавляет исправление для игр, запускающихся в фоновом режиме
  • Вручную добавить запись Steam (но вы потеряете преимущества steam compositor: в основном вы не сможете управлять режимом Big Picture с клавиатуры или геймпада):

создайте файл /usr/share/xsessions/steam-big-picture.desktop со следующим содержимым:

/usr/share/xsessions/steam-big-picture.desktop
[Desktop Entry]
Name=Steam Big Picture Mode
Comment=Start Steam in Big Picture Mode
Exec=/usr/bin/steam -bigpicture
TryExec=/usr/bin/steam
Icon=
Type=Application

Скины Steam

Интерфейс Steam может быть настроен с помощью скинов. Скины могут перезаписывать специфические для интерфейса файлы в ~/.steam/root.

Чтобы установить скин:

  1. Поместите его каталог в ~/.steam/root/skins.
  2. Откройте Steam > Настройки > Интерфейс и выберите его.
  3. Перезапустите Steam.

Обширный список скинов можно найти в этом сообщении на форумах Steam.

Примечание: Использование устаревшего скина может привести к визуальным ошибкам.

Создание скинов

Почти все стили Steam определены в ~/.steam/root/resource/styles/steam.styles (в файле более 3500 строк). Чтобы скин был распознан, ему необходим собственный resource/styles/steam.styles. Когда обновление Steam изменяет официальный steam.styles, ваш скин может стать устаревшим, что может привести к визуальным ошибкам.

Смотрите ~/.steam/root/skins/skins_readme.txt, чтобы узнать, как создавать скины.

Изменение положения уведомлений Steam

По умолчанию уведомление Steam расположено внизу справа.

Вы можете изменить положение уведомлений Steam, изменив Notifications.PanelPosition в

  • resource/styles/steam.styles для уведомлений на рабочем столе, и
  • resource/styles/gameoverlay.styles для внутриигровых уведомлений.

Оба файла перезаписываются Steam при запуске, а steam.styles считывается только при запуске.

Примечание: Некоторые игры не соблюдают настройки в gameoverlay.styles, например, XCOM: Enemy Unknown.

Использование скина

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

$ cd ~/.steam/root/skins
$ mkdir -p Top-Right/resource
$ cp -r ~/.steam/root/resource/styles Top-Right/resource
$ sed -i '/Notifications.PanelPosition/ s/"[A-Za-z]*"/"TopRight"/' Top-Right/resource/styles/*

Изменение на лету

gameoverlay.styles может быть перезаписан во время работы Steam, что позволяет менять положение уведомления для игр по отдельности.

~/.steam/notifpos.sh
sed -i "/Notifications.PanelPosition/ s/\"[A-Za-z]*\"/\"$1\"/" ~/.steam/root/resource/styles/gameoverlay.styles

Теперь в #Параметры запуска можно прописать что-то вроде:

~/.steam/notifpos.sh TopLeft && %command%

Steam Remote Play

Примечание: Steam In-Home Streaming стал Steam Remote Play.

Steam имеет встроенную поддержку удалённой игры.

Смотрите это руководство сообщества Steam о том, как настроить headless-сервер для стриминга на Linux.

Совместное использование игр с Windows при использовании Proton

Если вы используете Proton (Steam Play) для запуска игр, но по каким-то причинам сохраняете установку Windows (например, если у какой-то игры есть проблемы с анти-читом или если вы хотите провести сравнительные тесты с Windows), вы можете захотеть хранить ваши игры в общем разделе вместо того, чтобы держать две копии игры по одной на каждую ОС. Как это настроить, описано в вики проекта на GitHub: https://github.com/ValveSoftware/Proton/wiki/Using-a-NTFS-disk-with-Linux-and-Windows

Чтобы добавить другую папку для библиотеки, нажмите на Steam → Настройки → Загрузки → Папки библиотеки Steam, затем на кнопку ⊕.

Слои совместимости, отличные от Proton

Существуют средства совместимости, отличные от Proton/Wine.

  • Luxtorpeda — Запуск игр с использованием нативных Linux-движков.
https://luxtorpeda-dev.github.io/ || luxtorpeda-gitAUR
  • Boxtron — Запуск DOS игр с помощью нативного DOSBox
https://github.com/dreamer/boxtron || boxtronAUR
  • Roberta — Запуск приключенческих игр с помощью нативного ScummVM.
https://github.com/dreamer/roberta || not packaged? search in AUR

Вы также можете использовать protonup-qtAUR для управления ими:

  1. Закройте Steam
  2. Установите пакет protonup-qtAUR
  3. Откройте protonup-qt и установите необходимые инструменты
  4. Запустите Steam
  5. В окне свойств игры на вкладке «Совместимость» выберите «Принудительно использовать определённый инструмент совместимости Steam Play» и выберите нужный инструмент.

Решение проблем

Смотрите Steam/Решение проблем.

Смотрите также