Как развернуть окно на несколько мониторов в awesome wm?

У меня есть три монитора в горизонтальной линии. Иногда хочется развернуть окно сразу на три монитора, нажав комбинацию клавиш (а потом вернуть все обратно, если нужно). Как я могу это сделать?


person Sheridan    schedule 11.02.2018    source источник


Ответы (1)


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

function(c)
    c.floating = true
    local geo = screen[1].geometry
    geo.x2 = geo.x + geo.width
    geo.y2 = geo.y + geo.height
    for s in screen do
        local geo2 = s.geometry
        geo.x = math.min(geo.x, geo2.x)
        geo.y = math.min(geo.y, geo2.y)
        geo.x2 = math.max(geo.x2, geo2.x + geo2.width)
        geo.y2 = math.max(geo.y2, geo2.y + geo2.height)
    end
    c:geometry{
        x = geo.x,
        y = geo.y,
        width = geo.x2 - geo.x,
        height = geo.y2 - geo.y
    }
end

Чтобы отменить вышесказанное, сделайте клиент больше не плавающим, т.е. c.floating = false.

Подключение вышеприведенного к привязке клавиш оставлено читателю в качестве упражнения.

person Uli Schlachter    schedule 14.02.2018
comment
Работающий. Но screen.geometry вместо screen:geometry(). Спасибо! - person Sheridan; 16.02.2018
comment
Ой, извините. Обновлено. - person Uli Schlachter; 17.02.2018