arch-wiki-md-repo
Version:
All arch-wiki articles in markdown format, updated every two days.
83 lines (49 loc) • 7.07 kB
Markdown
## Contents
* [1 Преамбула](#.D0.9F.D1.80.D0.B5.D0.B0.D0.BC.D0.B1.D1.83.D0.BB.D0.B0)
* [2 Требования](#.D0.A2.D1.80.D0.B5.D0.B1.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D1.8F)
* [3 Подготовка](#.D0.9F.D0.BE.D0.B4.D0.B3.D0.BE.D1.82.D0.BE.D0.B2.D0.BA.D0.B0)
* [4 Использование утилиты xlaunch](#.D0.98.D1.81.D0.BF.D0.BE.D0.BB.D1.8C.D0.B7.D0.BE.D0.B2.D0.B0.D0.BD.D0.B8.D0.B5_.D1.83.D1.82.D0.B8.D0.BB.D0.B8.D1.82.D1.8B_xlaunch)
* [5 Как это выглядит](#.D0.9A.D0.B0.D0.BA_.D1.8D.D1.82.D0.BE_.D0.B2.D1.8B.D0.B3.D0.BB.D1.8F.D0.B4.D0.B8.D1.82)
* [6 Профит](#.D0.9F.D1.80.D0.BE.D1.84.D0.B8.D1.82)
### Преамбула
Описываемый ниже метод подойдет в принципе для любого приложения, но наибольшую пользу он приносит для полноэкранных игр (как нативных, так и запускаемых под wine'ом).
Как известно, в большинстве своём свернуть полноэкранную игру в линуксе нереально — можно, конечно, попробовать переключиться на другой виртуальный рабстол, только большинство игр этого не любят и начинают глючить или вовсе вылетают. Кроме того, многие оконные менеджеры тоже вносят свою лепту в несовместимость (в основном оное касается игр, запускаемых под wine), особенно в этом деле отличается compiz.
В принципе, под офтопиком тоже не все в порядке — далеко не все игры спокойно переносят вмешательство в свои дела, но процент удачных случаев там несоизмеримо выше.
### Требования
Для данного метода вам не потребуется ничего дополнительного сверх того, что нужно для классического способа запуска игры.
### Подготовка
Для начала создайте файл шелл-скрипта для запуска игры. У меня все такие скрипты хранятся в `~/.config/bin`, но дело ваше, где они будут, это не принципиально совершенно. Вот пример для скрипта запуска игры nexuiz:
```
%>cat ~/.config/bin/nexuiz.sh
/usr/bin/nexuiz-glx-svn
```
т.е. просто указание бинарника. Вот пример для запуска Civilization 4 под wine:
```
%>cat ~/.config/bin/civ4.sh
cd ~/.wine/drive_c/games/Civilization\ 4/Beyond\ the\ Sword
WINEDEBUG=-all wine Civ4BeyondSword.exe
```
— для некоторых приложений лучше менять текущий каталог на тот, где лежит бинарник.
Y Команда запуска предельно проста:
```
startx /foo/bar/script -- :1
```
т.е. для nexuiz из примера выше она будет такой:
```
startx ~/.config/bin/nexuiz.sh -- :1
```
Почему я записываю путь к бинарнику в промежуточный шелл-скрипт, вместо того чтобы сразу скормить его startx? По неведомым для меня (пока?) причинам, это работает не со всеми играми.
Параметр ":1" указывает на номер виртуального дисплея для создаваемого X-сервера (первый по умолчанию запускается на дисплее ":0").
Теперь можете вешать эту команду на любую кнопку, иконку, алиас в шелле или что вы там предпочитаете и использовать.
### Использование утилиты xlaunch
Незадолго после написания статьи в обновлениях [AUR](/index.php/Arch_User_Repository_(%D0%A0%D1%83%D1%81%D1%81%D0%BA%D0%B8%D0%B9) "Arch User Repository (Русский)")'а обнаружил утилитку [xlaunch](https://aur.archlinux.org/packages/xlaunch/). Она удобнее описанного мной способа ручной настройки запуска, так как для её использования после установки достаточно команды `xlaunch app`.
Она сама выберет свободный дисплей для запуска приложения. Кроме способа запуска механизм использования от вышеприведённого способа ничем не отличается.
### Как это выглядит
При запуске экран почернеет, создастся новый X-сервер и в нем запустится указанное приложение. Завершение работы приложения будет означать автоматическую остановку этого дополнительного X-сервера. Переключаться между старым и новым можно с помощью хоткеев Ctrl+Alt+F7 для старого, Ctrl+Alt+F8 для нового.
### Профит
Что это нам в итоге дает?
* Большую совместимость — оконный менеджер больше не может помешать работе игры, т.к. на новом X-сервере оконного менеджера нет как такового — игра сама себе оконный менеджер. Другие приложения тоже не будут мешать (скажем попапами), т.к. исполняются на другом дисплее.
* Большую производительность — во многих ненативных играх прирост заметен безоружным глазом (например в цив4).
* Возможность переключиться на другие приложения — этот плюс трудно переоценить. Можно, например, вернуться в jabber-клиент для координации действий, скажем — на каком сервере вы с друзьями будете играть. При том безглючность переключения 100% (по крайней мере я не видел проблем ни разу), что оставляет офтопик далеко позади по результативности.
Наслаждайтесь.
*Strafer*