卷起/阴影漂浮windows太棒了?
Roll up / shade floating windows in awesome?
我现在从 KDE/MATE 开始尝试很棒的东西,我真的很喜欢它。在我之前的工作流程中,我真的只遗漏了一件事。
有时我会使用具有大量浮动的应用程序 windows。我发现在浮动 WM 中非常有用的是卷起或遮蔽 window 的能力,基本上只保留应用程序的标题栏但隐藏其 window 内容。
这有可能吗?或者还有其他选项,比如 Tab 键 windows(就像在 i3 中一样)或者您有其他建议吗?
提前致谢!
Is this possible in awesome?
理论上是的,但实际上我不知道有谁实施了必要的魔法来使它正常工作。 semi-good 的第一个近似值可能是将 window 的大小调整为高度 1。
未经测试的草图:
function toggle_roll_up_or_shade(c)
if c.shade then
c:geometry{ height = c.shade }
c.shade = nil
c.size_hints_honor = c.size_hints_honor_before_shade
elseif c.floating then
c.shade = c.height
c.size_hints_honor_before_shade = c.size_hints_honor
c.size_hints_honor = false
c:geometry{ height = 1 }
end
end
然后上面的函数将绑定到一些键,类似于 Mod+Ctrl+Space 在默认配置中绑定到 awful.client.floating.toggle
。
这是一个可能适用于 AwesomeWM v3.5 的变体:
function toggle_roll_up_or_shade(c)
if awful.client.property.get(c, "shade") then
c:geometry{ height = c.shade }
awful.client.property.set(c, "shade", nil)
c.size_hints_honor = c.size_hints_honor_before_shade
elseif c.floating then
client.property.set(c, "shade", c.height)
client.property.set(c, "size_hints_honor_before_shade", c.size_hints_honor)
c.size_hints_honor = false
c:geometry{ height = 1 }
end
end
另外,如果你想获得标题栏的高度,你应该可以使用local _, height = c:titlebar_top()
。我不确定这是否也适用于 AwesomeWM v3.5。
我现在从 KDE/MATE 开始尝试很棒的东西,我真的很喜欢它。在我之前的工作流程中,我真的只遗漏了一件事。
有时我会使用具有大量浮动的应用程序 windows。我发现在浮动 WM 中非常有用的是卷起或遮蔽 window 的能力,基本上只保留应用程序的标题栏但隐藏其 window 内容。
这有可能吗?或者还有其他选项,比如 Tab 键 windows(就像在 i3 中一样)或者您有其他建议吗?
提前致谢!
Is this possible in awesome?
理论上是的,但实际上我不知道有谁实施了必要的魔法来使它正常工作。 semi-good 的第一个近似值可能是将 window 的大小调整为高度 1。
未经测试的草图:
function toggle_roll_up_or_shade(c)
if c.shade then
c:geometry{ height = c.shade }
c.shade = nil
c.size_hints_honor = c.size_hints_honor_before_shade
elseif c.floating then
c.shade = c.height
c.size_hints_honor_before_shade = c.size_hints_honor
c.size_hints_honor = false
c:geometry{ height = 1 }
end
end
然后上面的函数将绑定到一些键,类似于 Mod+Ctrl+Space 在默认配置中绑定到 awful.client.floating.toggle
。
这是一个可能适用于 AwesomeWM v3.5 的变体:
function toggle_roll_up_or_shade(c)
if awful.client.property.get(c, "shade") then
c:geometry{ height = c.shade }
awful.client.property.set(c, "shade", nil)
c.size_hints_honor = c.size_hints_honor_before_shade
elseif c.floating then
client.property.set(c, "shade", c.height)
client.property.set(c, "size_hints_honor_before_shade", c.size_hints_honor)
c.size_hints_honor = false
c:geometry{ height = 1 }
end
end
另外,如果你想获得标题栏的高度,你应该可以使用local _, height = c:titlebar_top()
。我不确定这是否也适用于 AwesomeWM v3.5。