LINUX.ORG.RU

Автоматический запуск приложения на втором мониторе

 , ,


0

2

Игры в стиме.

Автоматически запускается на ноутбучном монике, а я хочу, чтобы запускался на втором (подключенном).

Как быть и можно ли так сделать? Пока обхожусь оконным режимом без рамок и перетаскивании окна с зажатым альтом на второй моник.

★★★★★

Последнее исправление: CYB3R (всего исправлений: 2)

  • devilspie
  • Нормальный оконный менежер.
anonymous
()

Например, можно так: изменить способ запуска игры с

твоя_игра

на

DISPLAY=:0.1 твоя_игра
Zubok ★★★★★
()
Ответ на: комментарий от Amet13

Игру запускаю через steam, а не через значок меню/рабочего стола.

А, понятно. Просто я не спец steam. Тогда, да, либо надо оконный менеджер натравить, либо devilspie использовать, как и посоветовали выше. Хорошо. Запусти игру, рядом в терминале напиши xprop и ткни крестиком в окно игры. Что напишет?

Zubok ★★★★★
()
Ответ на: комментарий от sci-fi

У меня так вообще на постоянке матрица ноутбука выключена, и подобных проблем не было.

sci-fi
()
Ответ на: комментарий от Amet13

Игру запускаю через steam, а не через значок меню/рабочего стола.

Да, а steam - это какое-то приложение? Это просто ланчер? Если, допустим, этот steam запустить на втором дисплее, то где окно игры потом появляется? На первом или на втором?

Zubok ★★★★★
()
Ответ на: комментарий от Amet13

Marco, форк Metacity.

Метасити никогда не умел таких штук. Тогда только для devilspie надо писать правило. А тебе надо, чтобы конкретная игра пускалась на втором дисплее или все вообще игры из steam?

Zubok ★★★★★
()
Ответ на: комментарий от Zubok

Вот это я точно не понял.

Но ярлык (например для запуска доты) выглядит так:

steam steam://rungameid/570

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Zubok

На монике у меня разрешение экрана больше. Хочу играть на более большом экране.

Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Но ярлык (например для запуска доты) выглядит так:

Ну, значит, steam - это пускалка. То есть если ты это в терминале напишешь, то у тебя твоя игра запустится. А если перед этим вписать DISPLAY?

И еще. Окно игры имеет свойство STEAM_GAME типа (CARDINAL) как раз с номером игры 570. Значит, можно смотреть: если окно имеет свойство STEAM_GAME (см. твой pastebin), то его на второй дисплей отправлять. Вот только не помню, может ли это devilspie. Там есть matcher window_property. Возможно, что с его помощью можно написать нужное правило.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 3)
Ответ на: комментарий от Amet13

DISPLAY=:1

А какие ошибки пишет у тебя? А какие дисплеи у тебя есть? А что пишет команда w в терминале?

UPD: Да, и что показывает xrandr -q?

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

С DISPLAY:=0 все нормально, с 1 - ошибки, похоже такого вообще нет.

amet13@mint-16 ~ $ w
 23:08:05 up 4 days,  8:02,  1 user,  load average: 0.34, 0.32, 0.17
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
amet13   tty8     :0               Sun15    4days  3:03m  1.86s x-session-manager
amet13@mint-16 ~ $ DISPLAY:=0
amet13@mint-16 ~ $ xrandr -q
Screen 0: minimum 320 x 200, current 2806 x 900, maximum 32767 x 32767
LVDS1 connected 1366x768+1440+0 (normal left inverted right x axis y axis) 344mm x 193mm
   1366x768       60.0*+
   1360x768       59.8     60.0  
   1024x768       60.0  
   800x600        60.3     56.2  
   640x480        59.9  
VGA1 connected 1440x900+0+0 (normal left inverted right x axis y axis) 408mm x 255mm
   1440x900       59.9*+   75.0  
   1280x1024      75.0     60.0  
   1280x960       60.0  
   1280x800       74.9     59.8  
   1152x864       75.0  
   1024x768       75.1     70.1     60.0  
   832x624        74.6  
   800x600        72.2     75.0     60.3     56.2  
   640x480        75.0     72.8     66.7     60.0  
   720x400        70.1  
HDMI1 disconnected (normal left inverted right x axis y axis)
DP1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
amet13@mint-16 ~ $ DISPLAY=:1
amet13@mint-16 ~ $ xrandr -q
Can't open display :1
Amet13 ★★★★★
() автор топика
Ответ на: комментарий от Amet13

Понятно. Значит, у тебя один виртуальный большой :0. И надо окна отправлять на второй экран по координатам.

Вот у тебя:

LVDS1 connected 1366x768+1440+0
VGA1 connected 1440x900+0+0

У тебя то, что отображается через LVDS1 начинается с координат +1440+0, а то, что VGA1 - +0+0. Тебе надо на VGA1 отправлять.

То есть написать правило для devilspie, чтобы при открытии окно игры попадало в нужное место. Попробуй такое правило в devilspie. Только имей в виду, что пишу его вслепую, поэтому может не заработать. fullscreen нужно делать? Сделаю на всякий случай. Правило кладешь в каталог ~/.devilspie, в текстовый файл steam.ds. Не забудь поставить сам пакет devilspie.

(if (matches (window_property "STEAM_GAME") "[0-9]+")
    (begin
     (geometry "+0+0")
     (fullscreen)))

Идея такая. Как только открывается окно, devilspie проверяет свойство STEAM_GAME. Если оно присуствует и там какое-то число есть, то это окно игры. тогда мы его отфутболиваем на координату +0+0. Отпишись, что получилось.

Can't open display :1

А почему все время пытаешься :1? Я вот в начале написал :0.1, если обратишь внимание. Это значит, что diplay :0 и screen 1 (у display может быть много скринов). Однако у тебя и такого скрина нет, если судить по выводу xrandr, а только screen 0.

Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от Zubok

(if (matches (window_property «STEAM_GAME») «[0-9]+»)

Еще можно попробовать по имени приложения отловить:

(if (contains (application_name) "steam://")
Zubok ★★★★★
()

Клик правой кнопкой по игре в стиме - свойства - настроить параметры запуска. пишешь параметры: DISPLAY=:0.1 %command%

если не проканает, добавь env впереди, так должно рабртать

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Клик правой кнопкой по игре в стиме - свойства - настроить параметры запуска. пишешь параметры: DISPLAY=:0.1 %command%

Я уже советовал. У него нет screen #1. У него один большой виртуальный screen #0.

Screen 0: minimum 320 x 200, current 2806 x 900, maximum 32767 x 32767
                                     ^^^^^^^^^^
Zubok ★★★★★
()
Ответ на: комментарий от Amet13

screen #0:

Да, значит, у тебя один большой screen #0. То есть только :0.0. Можешь потом почитать доки: иксы можно сконфигурировать и на отдельные экраны (screen) и на один общий (XINERAMA или TwinView невидиевская). В случае отдельных экранов ты просто не сможешь таскать мышкой окна из одного в другой. Если захочешь запустить что-то на первом, то просто DISPLAY=:0.1 перед запуском - окно будет на другом мониторе. Тогда как бы devilspie и не нужен будет - ты сам будешь определять, на каком монике что должно появиться. Но чтобы это сконфигурировать надо уже xorg.conf соответсвующий писать.

В общем, расскажи потом, что получается у тебя с devilspie.

Zubok ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.