Использование Linux на ежедневной основе

Для гейминга и не только

Сподвигло написать после нейропростыни, в которой, я думаю, мало что реально происходило и которая не очень похожа на реальный опыт.

Дистрибутив

Дистрибутивов Линукса огромное количество, здесь я про них расписывать не буду. Меня интересовало, что есть именно для гейминга и что уже во вторую очередь можно использовать как основную ОС без большого количества костылей.

На выбор были несколько: Bazzite, CachyOS, Nobara, Garuda и другие. Также можно было взять чистую Ubuntu/Fedora и закастамизировать, но хотелось относительный минимум усилий для установки и больше времени для игр (сидеть смотреть на иконки в Steam).

Выбор пал на Bazzite по нескольким причинам:

  • It just works (almost) - большинство необходимых для гейминга вещей предустановлены
  • Fedora-based - личное предпочтение
  • Должна неплохо работать с Nvidia картами
  • Легкий процесс обновления
  • Большое коммьюнити

Минусов у неё достаточно, про них будет ниже.

Bazzite основан на Fedora Atomic. Самый большой минус\плюс этого, на мой взгляд - immutability - пользователь не может системные файлы изменять и устанавливать новые программы напрямую в систему, приходится использовать другие способы, о которых ниже.

Bazzite предлагает несколько версий для установки в зависимости от нужного Desktop Environment (далее DE) и железа, про варианты можно прочитать на самом сайте.

Мой выбора пал на Desktop версию + KDE Plasma DE + Nvidia.

Desktop Environment

KDE Plasma - это DE с большой возможностью настройки, быстрый, достаточно красивый и его использует Valve на Steam Deck, он у меня был, так что я уже был знаком с тем, как этот DE работает.

Основной монитор выглядит так:

С показанной нижней панелью
С показанной нижней панелью

Второй так:

Виджеты!! и с показанной вкладкой процессов
Виджеты!! и с показанной вкладкой процессов

По умолчанию выглядит всё по-другому, настроек очень много: от виджетов до расположения всего и вся на рабочих столах.

Предустановленных программы

Bazzite имеет большое количество предустановленных программ и зависимостей. Это может быть как плюсом - в случае заранее установленных драйверов, так и минусом - если вам не нужны какие-то программы, они всё равно будут установлены. Меня за исключением нескольких программ всё устроило.

Программы, которые мне были нужны и которые были предустановлены:

  • Steam - смотреть на иконки игр
  • Lutris - для запуска игр из других источников
  • Sunshine - для стриминга с ПК на других устройства
  • Boxes - для виртуальных машин
  • BoxBuddy - для DistroBoxes - о них чуть ниже в Программировании
  • ScopeBuddy - для HDR и переменных окружения, подробнее в HDR секции

Установить дополнительные программы можно с помощью:

  • предустановленного Bazaar
  • встроенного ujust
  • brew
  • Distrobox
  • AppImage

Про все пути подробно написано в документации, я немного напишу про самый простой - Bazaar, и про тот, что мне ещё понадобился - DistroBox.

Software Manager Bazaar

Bazaar - графический интерфейс для установки Flatpak программ - программ в собственном контейнере со своими изолированными зависимостями.

Выглядит вот так
Выглядит вот так

Большинство программ для ежедневного пользования в нём есть, как от официальных источников, так и те, что сделало коммьюнити.

Пара программ, что установил через него:

  • Discord
  • Spotify
  • Jellyfin Server
  • Easy Effects

Программирование

В Bazzite нельзя просто взять и сделать

sudo dnf install code

чтобы у тебя установился VS Code.

Системные файлы неизменяемые, что очень сильно ограничивает возможности программирования. К счастью, это решаемо, в частности, с помощью DistroBox.

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

  • изолированы от системных файлов хост машины (нашего Bazzite)
  • имеют все необходимые пакеты для запуска программ
  • имеют свои системные файлы - их можно изменять
  • могут дополнительно устанавливать программы, которые будут доступны на хост машине

Для работы с этими боксами предустановлена программа DistroShelf:

Интерфейс
Интерфейс

Можно выбрать дистрибутив, зайти в терминал, установить нужную программу и экспортировать её на хост машину - как будто она установлена на ней. Пример выше: Ubuntu 24.04 с установленным внутри VS Code.

Я могу открыть список приложений на хост машине, ввести VS Code и он откроется, как и обычные программы.

Запуск игр

Наконец-то про игры.

Игры в стим

Благодаря Valve и коммьюнити запуск большинства игр проходит безболезненно. Открыть стим, скачать игру, открыть настройки, выбрать Compatibility, выбрать Proton и нажать играть.

Использование Linux на ежедневной основе

Этого хватает для >80% игр. Если вы на AMD, то наверное и для 85%.

Когда этого не хватает, i.e., пердолинг и костылинг

Когда что-то так и не запускается, первый шаг - пойти на protonDB, ввести название игры и посмотреть, какие костыли\переменные окружения\версия Proton нужны. У каждой игры будет статус: от Borked (не работает) до Platinum (всё отлично).

Пример страницы для Jedi: Survivor
Пример страницы для Jedi: Survivor

Возможны несколько вариантов:

  • Кто-то уже с этим столкнулся, нашёл решение, его описал - нужно его применить и играть
  • Кто-то помучился, решение костыльное, игра плохо идёт, но идёт - можно играть
  • Игра вообще не запустится\сильно артефактит\плохо идёт - всё плохо, идём на Windows

Последнее наиболее вероятно для игр, которым нужен анти-чит, например, Battlefield 6 - для таких случаев у меня стоит Windows на другом диске.

Не стим игры

Если хочется запускать игры из, например, зелёного магазина или из других лаунчеров (EA, Ubisoft, etc.), то есть предустановленная программа Lutris.

Lutris, по сути, тоже лаунчер: синхронизируется со стимом, может добавлять установленные в себя игры обратно в стим, устанавливать лаунчеры EA, Ubi, etc., установливать игры из скачанного установщика

Гайдов много, один из них здесь.

Есть и другие способы для не стим игр, другие лаунчеры, но мне понравился Lutris.

Proton

Compatibility layer для запуска Windows приложений на Линуксе. Существует несколько видов:

  • Valve Proton - идёт со стимом
  • Proton-GE - дополнительные кодеки, должен поддерживать HDR
  • Proton-CachyOS - от создателей CachyOS, со своими оптимизациями
  • и др.

Если не работает от Valve, то попробовать -GE, посмотреть, что используют на ProtonDB.

Версии Proton можно устанавливать\обновлять с помощью ProtonUP-Qt - предустановлена в Bazaar.

HDR

Боль.

Использование HDR на Линуксе для гейминга - одна из самых сильных головных болей.

KDE Plasma поддерживает HDR из коробки - для просмотра контента достаточно включить в настройках монитора:

Использование Linux на ежедневной основе

Для гейминга, в теории, достаточно использовать Proton-GE + переменные окружения:

PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1 ENABLE_HDR_WSI=1

У меня это не заработало: цвета были совсем не правильные, какие-то игры были с приглушёнными цветами, какие-то были с пересветами и т.п.

В итоге пришлось использовать GameScope - штука, которая запускает выставленную программу в своём отдельном окне, в котором будет доступен HDR. Valve использует её для запуска Game Mode на Steam Deck'а

Его настройки можно изменять с помощью предустановленной ScopeBuddy, в стиме в настройках запуска игры нужно добавить:

Использование Linux на ежедневной основе

и HDR заработает. Возможно. Работает не для всех игр, бывают проблемы с мышью\клавиатурой\геймпадом.

Dual boot

Никто не запрещает, а документация и вовсе советует иметь установленную Windows, чтобы можно было играть в неподдерживаемые игры.

Как я написал выше - я такой сетап и использую: Bazzite как основная ОС, а Windows - для игр с анти-читом\тех игр, которые плохо идут на Линуксе.

Performance

Моя система:

  • CPU: AMD Ryzen 7 9800X3D
  • GPU: NVIDIA RTX 5070 TI
  • RAM: 32 GB

Скажу сразу: никаких замеров ФПС я не буду давать здесь, я думаю, что Windows/Linux тяжело сравнивать из-за разницы в подходах и многоуровневости Линукс окружений - обновления выходят едва ли не каждый день + обновления игр + обновления Proton + всё остальное.

Линукс будет, в случае Нвидии, на 0-30% медленнее. Больше разница будет в новинках с рейтрейсингом и DX12, меньше в более старых тайтлах. Нвидия имеет несколько проблем с драйверами на Линуксе, больше можно прочитать уже в довольно старом треде на форуме Нвидии.

Бенчмарки по играм и разным ГПУ можно посмотреть, например, здесь.

Для меня главное, что игра идёт, нет артефактов, просадок фпс, фпс > 60. Если это не удовлетворяется, то поиграю на Windows, а если и там такого нет, то и играть не буду ¯\_(ツ)_/¯.

Один из больших плюсов, которые я заметил, это уменьшение количества просадок из-за компиляции шейдеров (из-за Vulkan). Больше всего заметно было в Jedi: Survivor, шла она с меньшим фпс, но более плавно.

Для отслеживания перформанса можно использовать MangoHUD:

Вверху слева
Вверху слева

Предустановлен в Bazzite. Можно включить с помощью переменной MANGOHUD=1 или в ScopeBuddy.

Плюсы и минусы

Уже и так текста много, так что коротко по плюсам\минусам.

Плюсы

  • Главный плюс - ощущение быстроты системы. Всё открывается быстро, нету миллиарда процессов от майкрософта, которые замедляют взаимодействие с системой
  • Личный плюс - Линукс, мне он нравится больше как система
  • Лучше идут некоторые игры: выше 1% фпс, меньше просадок
  • Кастомизация KDE Plasma
  • Неизменяемость системы - тяжело сломать что-то важное

Минусы

  • Настройка и использование HDR
  • Версии драйверов (Nvidia) чаще всего запаздывают на 1-2 месяца, так что в новинки играть бывает не очень
  • Хуже идут некоторые игры
  • Не работают некоторые игры с анти-читом
  • Иногда костылинг
  • Отсутствуют некоторые нужные программы с Windows (аналоговнет)
  • Неизменяемость системы - тяжело добавить что-то, чего нет в менеджере пакетов

Уверен, что ещё их много, возможно, позже добавлю.

Почему

Нравится, интересно, не нравится Windows.

Во что сейчас играю на Bazzite

  • Helldivers 2 - идёт хорошо, пишут, что даже лучше Windows
  • Path of Exile 2 - идёт отлично
  • No Rest for the Wicked - идёт отлично

Собрание моих скриптов и личной документации

В процессе использования собираю какую-то документацию и скрипты в репозиторий:

Надеюсь, кому-то будет полезно.

Ещё про много что хочется написать, возможно, в отдельных статьях.

Задавайте ответы.

32
16
5
5
1
1
1
228 комментариев