Awesome WM - полноэкранный режим приложения без использования всего экрана

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

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

Любые идеи? Спасибо !


person mewTl8    schedule 15.06.2017    source источник
comment
Как вы можете иметь полноэкранное приложение, но при этом видеть другие приложения?   -  person Camusensei    schedule 16.06.2017
comment
Это не настоящий полноэкранный режим, я ищу способ скрыть интерфейс, например, когда вы используете полноэкранную кнопку на видео на YouTube, она скрывает все окна Firefox, кроме видео, и устанавливает окна в полноэкранном режиме. Я стараюсь игнорировать вторую часть.   -  person mewTl8    schedule 16.06.2017


Ответы (1)


Я не проверял следующее, но это может сработать. Идея правила заключается в том, что оно используется для определения того, какие окна не должны быть полноэкранными. Это обычное awful.rules-правило. Все клиенты, которые не соответствуют правилу, обычно обрабатываются awful.ewmh.geometry.

local rule = { class = "Firefox" }
client.disconnect_signal("request::geometry", awful.ewmh.geometry)
client.connect_signal("request::geometry", function(c, context, ...)
    if context ~= "fullscreen" or not awful.rules.match(c, rule) then
        awful.ewmh.geometry(c, context, ...)
    end
end)

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

local no_fullscreen = true
local rule = { class = "Firefox" }
client.disconnect_signal("request::geometry", awful.ewmh.geometry)
client.connect_signal("request::geometry", function(c, context, ...)
    if not no_fullscreen or context ~= "fullscreen" or not awful.rules.match(c, rule) then
        awful.ewmh.geometry(c, context, ...)
    end
end)

Затем добавьте привязку клавиш с функцией обратного вызова function() no_fullscreen = not no_fullscreen end.

person Uli Schlachter    schedule 16.06.2017
comment
Он работает нормально, но я больше не могу изменять размер/перемещать полноэкранный клиент. Какие-нибудь мысли? - person mewTl8; 16.06.2017
comment
Вы имеете в виду, что также нельзя изменить размер полноэкранного клиента, когда он не полноэкранный, верно? Смотрите мое редактирование, теперь код должен игнорировать запросы только в полноэкранном контексте. Если вы имеете в виду, что нельзя изменить размер в полноэкранном режиме, то это предположение заложено так глубоко в коде, что его нельзя легко отключить. - person Uli Schlachter; 18.06.2017
comment
Прохладный! Мне действительно это нравится. Последующий вопрос: как я могу переключить это поведение? Иногда мне все же хотелось бы, чтобы Firefox работал в полноэкранном режиме. - person Andreas; 19.06.2017
comment
Конечно, просто добавьте еще одно условие в if. Смотрите мою правку. - person Uli Schlachter; 19.06.2017
comment
Ясно спасибо. Мой вопрос был бы излишним, если бы Firefox уважал макет max.fullscreen. Отсюда мой (не по теме) следующий вопрос: как я могу заставить Firefox уважать макет max.fullscreen или это только я? - person Andreas; 20.06.2017
comment
Хм... Запустите xprop _NET_WM_STATE в терминале и нажмите Firefox. Говорит ли это что-нибудь полезное? Возможно, Firefox сделан плавающим? Не знаю. - person Uli Schlachter; 09.09.2018
comment
Это то, что я ищу, но окно больше не выложено плиткой, есть предложения? - person kronolynx; 21.10.2020