Keep the DMS bar visible for fullscreen programs
Programs that go fullscreen on their own (F11, RDP, video) are shown maximized below the bar while still believing they are fullscreen (window.fullscreen handler + fullscreen_state). Mod+F now maximizes with the bar visible, Mod+Shift+F is real fullscreen without the bar. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
+3
-2
@@ -14,9 +14,10 @@ Mod+Shift+V История буфера обмена
|
|||||||
Mod+H/J/K/L Фокус влево/вниз/вверх/вправо (также стрелки)
|
Mod+H/J/K/L Фокус влево/вниз/вверх/вправо (также стрелки)
|
||||||
Mod+Shift+H/J/K/L Переместить окно (также стрелки)
|
Mod+Shift+H/J/K/L Переместить окно (также стрелки)
|
||||||
Mod+Shift+Q Закрыть окно
|
Mod+Shift+Q Закрыть окно
|
||||||
Mod+F На весь экран
|
Mod+F Развернуть окно на весь экран, панель остаётся (повтор — вернуть)
|
||||||
Mod+Shift+Space Плавающее / тайловое
|
Mod+Shift+Space Плавающее / тайловое
|
||||||
Mod+Shift+F Плавающее / тайловое
|
Mod+Shift+F Настоящий полный экран без панели (повтор — выйти)
|
||||||
|
Программы, которые сами уходят в полный экран (F11, RDP, видео), остаются с панелью
|
||||||
Mod+C Центрировать плавающее окно
|
Mod+C Центрировать плавающее окно
|
||||||
Mod+Shift+T Закрепить плавающее окно поверх всех
|
Mod+Shift+T Закрепить плавающее окно поверх всех
|
||||||
Mod+E Сменить направление разбиения
|
Mod+E Сменить направление разбиения
|
||||||
|
|||||||
+17
-2
@@ -169,9 +169,15 @@ for key, d in pairs(dirs) do
|
|||||||
end
|
end
|
||||||
|
|
||||||
-- layout
|
-- layout
|
||||||
b(mod .. " + F", hl.dsp.window.fullscreen())
|
-- Mod+F maximizes (the DMS bar stays visible); Mod+Shift+F is real fullscreen without the bar.
|
||||||
|
b(mod .. " + F", hl.dsp.window.fullscreen({ mode = "maximized" }))
|
||||||
|
b(mod .. " + SHIFT + F", function()
|
||||||
|
local w = hl.get_active_window()
|
||||||
|
if not w then return end
|
||||||
|
if w.fullscreen ~= 2 then HL_FS_REAL = true end -- let the handler below leave this one alone
|
||||||
|
hl.dispatch(hl.dsp.window.fullscreen({ mode = "fullscreen" }))
|
||||||
|
end)
|
||||||
b(mod .. " + SHIFT + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
b(mod .. " + SHIFT + SPACE", hl.dsp.window.float({ action = "toggle" }))
|
||||||
b(mod .. " + SHIFT + F", hl.dsp.window.float({ action = "toggle" }))
|
|
||||||
b(mod .. " + C", hl.dsp.window.center())
|
b(mod .. " + C", hl.dsp.window.center())
|
||||||
b(mod .. " + E", hl.dsp.layout("togglesplit"))
|
b(mod .. " + E", hl.dsp.layout("togglesplit"))
|
||||||
b(mod .. " + P", hl.dsp.window.pseudo())
|
b(mod .. " + P", hl.dsp.window.pseudo())
|
||||||
@@ -241,6 +247,15 @@ b("XF86AudioPlay", dms("mpris playPause"), { locked = true })
|
|||||||
b("XF86AudioNext", dms("mpris next"), { locked = true })
|
b("XF86AudioNext", dms("mpris next"), { locked = true })
|
||||||
b("XF86AudioPrev", dms("mpris previous"), { locked = true })
|
b("XF86AudioPrev", dms("mpris previous"), { locked = true })
|
||||||
|
|
||||||
|
-- Programs that go fullscreen on their own (F11, RDP, video) keep the DMS bar visible: Hyprland shows them
|
||||||
|
-- maximized (1) while the program still believes it is fullscreen (2).
|
||||||
|
HL_FS_REAL = false
|
||||||
|
hl.on("window.fullscreen", function(w)
|
||||||
|
if not w or w.fullscreen ~= 2 then return end
|
||||||
|
if HL_FS_REAL then HL_FS_REAL = false; return end -- requested with Mod+Shift+F: keep it real
|
||||||
|
hl.dispatch(hl.dsp.window.fullscreen_state({ internal = 1, client = w.fullscreen_client, window = "address:" .. w.address }))
|
||||||
|
end)
|
||||||
|
|
||||||
-----------------
|
-----------------
|
||||||
---- RULES ------
|
---- RULES ------
|
||||||
-----------------
|
-----------------
|
||||||
|
|||||||
Reference in New Issue
Block a user