Awesome WM: автоматическое отображение клиента на двух мониторах

У меня два монитора, и AwesomeWM работает именно так, как мне нравится. Однако я хотел бы запустить одно конкретное приложение (avidemux) очень широко, чтобы оно простиралось горизонтально на оба экрана.

желательно: приложение на обоих экранах

Я пытался добиться этого с помощью:

 { rule = { class = "avidemux" }, properties = { floating = true },
    callback = function(c)
        c:geometry( { x = 0, y = 0, width = 5120, height = 1440 } )
    end
}

С этим изменением окна avidemux действительно стали широкими, но верхний левый угол окна расположен далеко за пределами экрана, а правая граница окна находится на одном уровне с правой стороной моего левого монитора.

фактическое: приложение на одном экране

Я использую awesomewm 3.5.6 (Ubuntu 16.04), используйте драйвер nvidia. Мой rc.lua довольно стандартный, но вызывает xrandr на ранней стадии, чтобы настроить экраны так, как мне нравится:

xrandr --output DP-3 --mode 2560x1440 --pos 2560x0 --rotate normal --output DP-2 --mode 2560x1440 --pos 0x0 --rotate normal --output DP-1 --off --output DP -0 --выкл.

Любые предложения приветствуются. Спасибо!


person Jeff Turner    schedule 30.11.2016    source источник
comment
Pastebin rc.lua   -  person Jeff Turner    schedule 05.12.2016


Ответы (2)


Попробуйте отправить окно на правый монитор перед применением геометрии, что-то вроде

callback = function(c)
    c.screen = 2
    c:geometry( { x = 0, y = 0, width = 5120, height = 1440 } )
end
person Worron    schedule 30.11.2016
comment
Спасибо, но не повезло. Помещение c.screen перед c:geometry не дает никакого эффекта. Помещение его после приводит к тому, что новые окна появляются на экране 2, но ограничены размерами окна 2. - person Jeff Turner; 05.12.2016

После дальнейших экспериментов это работает:

c:geometry( { x = SCREEN1_WIDTH, y = 0, width = SCREEN1_WIDTH + SCREEN2_WIDTH, height = SCREEN1_HEIGHT } )

В моем случае с двумя экранами 2560x1440:

c:geometry( { x = 2560, y = 0, width = 5120, height = 1440 } )

Решение не обобщается каким-либо разумным образом, например. Я не могу получить перекрытие правого экрана на 100 пикселей с этим:

c:geometry( { x = 100, y = 0, width = 2660, height = 1440 } )

кроме того, отрицательные x и y не работают.

person Jeff Turner    schedule 05.12.2016