通过键盘输入动态设置Qtile边距

问题描述

我正在寻找设置键绑定来增加/减少 Qtile 中的间隙和边距,类似于以下在 i3-gaps 中所做的:

bindsym $mod+equal gaps inner current plus 5
bindsym $mod+minus gaps inner current minus 5
bindsym $mod+Shift+equal gaps outer current plus 5
bindsym $mod+Shift+minus gaps outer current minus 5

我可以在某种程度上获得与外部间隙等效的内容来使用以下代码:

def increase_gap(qtile):
    qtile.screens[0].top.size = screens[0].top.size+5
    qtile.screens[0].right.size = screens[0].top.size+5
    qtile.screens[0].left.size = screens[0].top.size+5
    #margs = screens[0].bottom.margin
    screens[0].bottom.margin[0] = screens[0].bottom.margin[0]+5
    screens[0].bottom.size=20
    qtile.screens[0].cmd_resize()


def decrease_gap(qtile):
    qtile.screens[0].top.size = max(screens[0].top.size-5,0)
    qtile.screens[0].right.size = max(screens[0].top.size-5,0)
    qtile.screens[0].left.size = max(screens[0].top.size-5,0)
    #margs = screens[0].bottom.margin
    screens[0].bottom.margin[0] = max(screens[0].bottom.margin[0]-5,0)
    screens[0].bottom.size=20
    qtile.screens[0].cmd_resize()

Key([mod,"shift"],"equal",lazy.function(increase_gap),desc="Increase gap"),Key([mod,"minus",lazy.function(decrease_gap),desc="Decrease gap"),

不过,我不确定这是做事的正确方式。我不确定这是否应该以这种方式操纵。我不确定 cmd_resize() 函数是否是我应该使用的函数,但是通过反复试验,我发现它是有效的。我不知道为什么 screen[0].bottom.size=20 (20 是我的底部栏的大小。我知道我不应该硬编码,但我试图在我清理之前产生一个概念证明代码)是必需的,但是如果我没有那个栏,它就会开始浮动。最后,增加和减少差距会接近,但不太接近原始配置。缝隙看起来与原来的略有不同。所以,我不确定这是实现这一目标的正确方法,我可以使用这些建议。

其次,虽然这已经接近在外部间隙上实现我想要的效果,但我无法在使内部间隙发挥作用方面取得任何进展。我最初尝试更改布局的边距参数,当这不起作用时,我尝试简单地初始化一个新布局并替换下面发布的旧布局,但两种方法都不起作用。

def column_increase_margin(qtile):
    current_margin = current_margin + 5
    layouts[0] = layout.Columns(border_focus_stack='#d75f5f',margin=current_margin,border_width=0)
    screens[0].bottom.size=20
    qtile.screens[0].cmd_resize()

我已经尝试过代码 here,但这是一个大项目,我正在努力从中获得正面或反面。

任何建议将不胜感激。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...