我可以通过启用hide_edge_borders both
来禁用不浮动窗口的hide_edge_borders both
。 但是当我打开像lxterminal一样的浮动窗口时,我得到了这个边框来改变窗口大小 。 我能做些什么来禁用这个边界,但不禁用窗口的标题?
hide_edge_borders
只隐藏与屏幕边缘相邻的边界,并仅在平铺图层上隐藏。 这与受影响的窗口的边框设置无关。
您可以使用new_window
和new_float
设置为窗口设置初始边框样式:
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
因为我无法在我的系统上获得带有bindsym
Super + Control + Space组合。 当然这只是一个例子,反正你的系统可能不需要它。