我可以通过启用hide_edge_borders both
来禁用不浮动窗口的边框。但是当我打开像lxterminal这样的浮动窗口时,我得到了this borders to change window size。
如何禁用此边框,但不能禁用窗口标题?
答案 0 :(得分:4)
hide_edge_borders
仅隐藏屏幕边缘附近的边框,仅隐藏在平铺图层上。这与受影响窗口的边框设置无关。
您可以使用new_window
和new_float
设置为Windows设置初始边框样式:
new_window none
new_window normal|pixel [<px>]
new_float none
new_float normal|pixel [<px>]
设置none
表示没有边框,没有标题栏。 normal
默认提供标题栏和两个像素宽的边框。可以使用可选的<px>
设置更改边框宽度,0
设置会保留标题栏但会删除边框。 pixel
(也可选择宽度)在所有边上生成边框,但没有标题栏。
new_window
设置从平铺图层开始的窗口样式,其中 i3 - 几乎是每个窗口。 new_float
设置以浮动窗口开始的窗口样式,这些窗口主要是对话框窗口。如果稍后更改浮动状态,则这些设置不会影响边框样式。稍后还包括
for_window [class="SOMECLASS"] floating enable
因为它们也是在窗口已经创建之后才完成的。
这为您提供了一些可能的解决方案
如果您不需要任何边框,解决方案非常简单。你可以设置:
new_window normal 0
new_float normal 0
这将删除包括平铺窗口之间的任何边框。然后,您也可以删除hide_edge_borders
设置,因为不再需要它。
如果你想保持现在的平铺层 - 窗口之间的边缘,而不是屏幕边缘 - 它会变得更加棘手。如上所述,new_float
设置仅影响最初浮动的窗口,但不会影响稍后自动或手动设置的窗口。最简单的解决方案可能是使用单独的命令来浮动和取消浮动窗口(而不是仅仅切换)并扩展任何for_window
设置以根据需要移除/添加边框。例如:
# New tiling windows with title bar and borders
new_window normal 2
# New floating windows with title bar and without borders
new_float normal 0
# Hide borders on edges
hide_edge_borders both
# Set variables for floating and un-floating commands
set $FLOAT floating enable, border normal 0
set $UNFLOAT floating disable, border normal 2
# Key bindings
# Switch between tiling and floating layer (Super+Space)
bindcode Mod4+65 focus mode_toggle
# Put windows on floating layer and remove borders (Super+Shift+Space)
bindcode Mod4+Shift+65 $FLOAT
# Make windows on tiling layer and add borders (Super+Control+Space)
bindcode Mod4+Control+65 $UNFLOAT
# Auto-float some windows
for_window [class="SomeClass"] $FLOAT
for_window [title="ThisTitle"] $FLOAT
# Auto-un-float some other windows
for_window [class="SomeOtherClass" window_type="dialog"] $UNFLOAT
for_window [title="ThatTitle"] $UNFLOAT
备注:强>
bindcode
,因为我无法获得{kbd> Super + Control + Space 与bindsym
的组合我的系统。当然这仅仅是一个例子,无论如何你的系统可能都不需要它。