Запуск игр в отдельном X-сервере

Материал из Mageia Russian Community Wiki
Перейти к: навигация, поиск

Описание

В этой статье речь пойдет о запуске игр в отдельных "иксах".

Прежде всего стоит ответить на вопрос - зачем это нужно. В отдельных случаях, это помогает повысить производительность, избавиться от графических артефактов и решить прочие мелкие проблемы. Наконец, это просто удобно, когда между экранами с игрой и рабочим окружением можно переключаться по Ctrl + Alt + Fn.

Есть разные способы решить обозначенную в описании задачу, в данной статье будет использоваться xinit.

Добавляем пользователя в группу audio

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

Сделать это можно или в Центре управления Mageia, или через терминал от root

Через Центр Управления Mageia

  • Центр Управления Mageia - Система - Управление пользователями
Ошибка создания миниатюры: Файл не найден
  • Двойной клик левой кнопкой мыши на пользователе
Ошибка создания миниатюры: Файл не найден
  • На вкладке Группы выставьте галочку у audio и нажмите ОК
Ошибка создания миниатюры: Файл не найден

Через терминал

Выполните от root

Сonsole.png
[root@mageialinux.ru ~]# usermod -a -G audio <имя_пользователя>


Запуск игр

Примитивный и неудобный способ

В базовом виде, запуск конкретного приложения будет происходить так

Сonsole.png
[user@mageialinux.ru ~]$ xinit `which xterm` -- :1

В данном случае, будет запущен xterm. Переключаться между ним и обратно в рабочее окружение можно будет по клавишам Ctrl + Alt + Fn, где n - номер. В моем случае, Ctrl + Alt + F1 - рабочее окружение, Ctrl + Alt + F2 - xterm.

Если в xterm ввести exit, терминал закроется, а вас перебросит обратно в рабочее окружение.

По аналогии, допустим, я хочу запустить игру Urban Terror. Она лежит у меня в каталоге ~/Games/UrbanTerror42. Команда для запуска принимает вид

Сonsole.png
[user@mageialinux.ru ~]$ xinit `which ~/Games/UrbanTerror42/Quake3-UrT.i386` -- :1

После ввода команды запустится Urban Terror. Переключиться в рабочее окружение я смогу, нажав Ctrl + Alt + F1, а обратно в игру, нажав, Ctrl + Alt + F2. По выходу из игры, меня автоматически перекинет обратно в рабочее окружение.

Стоит заметить, это простой и примитивный способ. Во многих случаях будет неудобен в использовании. Например, когда игра/приложение потенциально подразумевает несколько окон, скажем, у игры есть лаунчер, либо игра запускается через сервис цифровой дистрибуции игры Steam или Desura, это же касается эмуляторов игровых консолей и т.д. и т.п.

Использование дополнительного оконного менеджера (функционально и удобно)

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

Что дает такой подход. Во-первых, это проще и удобней. Нет нужды вводить отдельные команды для игр или писать кучу скриптов (пусть и примитивных). Во-вторых, это избавляет от проблем с приложениями и играми, использующими несколько окон (игры с лаунчером, игры, запущенные через сервисы цифровой дистрибуции игры - Steam или Desura, эмуляторы игровых консолей и т.д.). В-третьих, в этом случае прекрасно работают игры и приложения, запущенные через wine.

Я использую PekWM. И вам его же советую.

Установите пакет pekwm через Rpmdrake: меню - Установка и удаление программ (оно же: Центр Управления Mageia - Управление программами - Установка и удаление программ); либо через терминал

Сonsole.png
[root@mageialinux.ru ~]# urpmi pekwm


И для PekWM в "отдельных иксах" теперь можно использовать команду

Сonsole.png
[user@mageialinux.ru ~]$ xinit `which pekwm` -- :1

После загрузки PekWM вы увидите черный экран, левый клик мыши в произвольном месте вызовет меню. Пока что запускать ничего не надо, так что просто выберите в меню PekWM - Exit.

Я не буду углубляться в тонкости настройки PekWM, перейду сразу к делу. Меню в PekWM автоматически не дополняется как в полноценных граф. окружениях по факту установки новых приложений, меню нужно редактировать вручную. Хранится оно в файле ~/.pekwm/menu. Подробно прочитать о редактировании меню в PekWM можно в вики Arch Linux, я же здесь поясню только основной момент.

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

Добавлять новые пункты нужно после строки

 RootMenu = "Pekwm" {

Выглядят пункты меню PekWM так:

 Entry = "Название" { Actions = "Exec команда" }

Вместо команда, указываем исполняемый файл игры/приложения. Естественно, если исполняемый файл находит в /usr/bin, то можно не писать полный путь до него.

Например, пункт для запуска Steam выглядеть может так:

 Entry = "Steam" { Actions = "Exec /usr/bin/steam" }

Steam - название пункта меню, /usr/bin/steam - файл который будет запущен. А может и так

 Entry = "Steam" { Actions = "Exec steam" }

Если Steam установлен в систему из репозитория, его исполняемый файл лежит в /usr/bin.

Для запуска, скажем, PlayOnLinux, пункт меню будет выглядеть так:

 Entry = "PlayOnLinux" { Actions = "Exec playonlinux" }

Если игра находится в домашнем каталоге, либо используйте $HOME, либо указывайте абсолютный путь. Старайтесь не использовать ~/ в данном конфиге. Не могу сказать наверняка, но, по-моему, у меня однажды были проблемы с запуском пункта меню PekWM из-за такого оформления.

Правильно: $HOME/Games/SuperGame/start_game

Правильно: /home/xxblx/SuperGame/start_game

Неправильно: ~/SuperGame/start_game

В общем-то, все достаточно просто. Нужно лишь один раз разобраться. Чтобы вам было проще, выкладываю свой ~/.pekwm/menu на pastebin.com.