在i3wm中禁用浮动窗口的边框

LavX64

我可以通过启用从非浮动窗口禁用边框hide_edge_borders both但是当我打开像lxterminal这样的浮动窗口时,我得到了改变窗口大小的边界我该怎么做才能禁用此边框,但不能禁用窗口标题?

阿达芬

hide_edge_borders仅隐藏与屏幕边缘相邻且仅在平铺层上的边框。这与受影响的窗口的边框设置无关。

您可以使用new_windownew_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
    

    笔记:

    • 为float和unfloat命令设置变量有助于提高可读性和可维护性。为边界类型设置变量没有多大意义,因为不会对变量进行递归求值。因此,不可能为边框样式设置变量并在为float / un-float命令设置变量时重复使用该变量。
    • 我用的bindcode,因为我无法得到的组合Super+ Control+Spacebindsym我的系统上。当然,这只是一个示例,无论如何您的系统上可能都不需要它。

  • 如果要保留当前的布局,而且还希望能够仅通过一个快捷键切换窗口的浮动状态,则必须使用i3的 IPC界面利用IPC,您可以检查聚焦窗口的当前状态。然后,您可以浮动/取消浮动窗口并更改其边框样式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章