用于平铺窗口管理器的语法和配置生成器
tile的Python项目详细描述
平铺
用于平铺窗口管理器的语法和配置生成器。在
TL;DR
安装
pip install tile
使用
- 使用下面的Concepts创建input_文件。在
- 尝试使用
tile input_file
- 使用
tile --write input_file
将其写入i3配置 - 使用
tile --write --sway input_file
将其写入Sway config
查看tile --help
以获取更多选项。在
概念
映射类型
tile支持两种类型的映射:
- WM内置命令的命令绑定:
INPUT: $mod+f -> fullscreen toggle OUTPUT: bindsym $mod+f fullscreen toggle
- Exec绑定,这是不言而喻的
替代品
Alternatives表达了同一个操作应该绑定到多个键绑定的思想。在
例如:
INPUT: $mod+h/Left -> focus left OUTPUT: bindsym $mod+h focus left bindsym $mod+Left focus left
变量
Variables是编写具有类似结构的绑定的较短方法。在
例如:
INPUT: $mod+{f,s} -> {fullscreen,split} toggle OUTPUT: bindsym $mod+f fullscreen toggle bindsym $mod+s split toggle
范围扩展
在变量内部可以写1-10
,它将被扩展为1,2,3...
。在
INPUT: $mod+{1-4} -> workspace {100-103} OUTPUT: bindsym $mod+1 workspace 100 bindsym $mod+2 workspace 101 bindsym $mod+3 workspace 102 bindsym $mod+4 workspace 103
变量引用
您可以使用@n
语法引用变量的当前值,其中n
是变量索引。
每个变量从左到右编号(从0开始)。E、 g.:
foo {bar,{foo,bar}} {0-1} ...
^ ^ ^
0 1 2
这样使用:
INPUT: $mod+Control+Shift {8-9,0} -> move container to workspace {8-10}; workspace @1 OUTPUT: bindsym $mod+Control+Shift 8 move container to workspace 8; workspace 8 bindsym $mod+Control+Shift 9 move container to workspace 9; workspace 9 bindsym $mod+Control+Shift 0 move container to workspace 10; workspace 10
或者为了避免重复长序列:
INPUT: $mod+x -> {[instance="calculator"]} scratchpad show; @0 move position center OUTPUT: bindsym $mod+x [instance="calculator"] scratchpad show;[instance="calculator"] move position center
空值
您可以在Variable内使用空值,用_
表示。E、 g
INPUT: $mod+{_,Shift+}h/Left -> {focus,move} left OUTPUT: bindsym $mod+h focus left bindsym $mod+Left focus left bindsym $mod+Shift+h move left bindsym $mod+Shift+Left move left
嵌套
您可以在Variable中使用Alternatives和Variables同时创建多个绑定。在
INPUT: the {{quick,brown},{fox,dog/beast}}=> {xterm,kitty} -e echo{jumps,over} OUTPUT: bindsym the quick exec --no-startup-id xterm -e echo jumps bindsym the brown exec --no-startup-id xterm -e echo over bindsym the fox exec --no-startup-id kitty -e echo jumps bindsym the dog exec --no-startup-id kitty -e echo over bindsym the beast exec --no-startup-id kitty -e echo over
附加语法
括号
{emm、加号等特殊字符。在
INPUT: $mod+p/Print => scrot OUTPUT: bindsym $mod+p exec --no-startup-id scrot bindsym $mod+Print exec --no-startup-id scrot
可以使用括号修改行为:
INPUT: ($mod+p/Print)=> scrot OUTPUT: bindsym $mod+p exec --no-startup-id scrot bindsym Print exec --no-startup-id scrot
评论
将忽略空行或以#
开头的行。在
INPUT:
# This is a comment
OUTPUT:
示例
INPUT: $mod+{_,Shift+}{h/Left,j/Down,k/Up,l/Right} -> {focus,move}{left,down,up,right}$mod+Control+Shift+{{h/Left,k/Up},{l/Right,j/Down}} -> resize {shrink,grow}{width,height} 5px or 5ppt $mod+{_,Shift+}{1-9,0} -> {_,move container to }workspace {1-10}$mod+Control+Shift {1-9,0} -> move container to workspace {1-10}; workspace @1 OUTPUT: bindsym $mod+h focus left bindsym $mod+Left focus left bindsym $mod+j focus down bindsym $mod+Down focus down bindsym $mod+k focus up bindsym $mod+Up focus up bindsym $mod+l focus right bindsym $mod+Right focus right bindsym $mod+Shift+h move left bindsym $mod+Shift+Left move left bindsym $mod+Shift+j move down bindsym $mod+Shift+Down move down bindsym $mod+Shift+k move up bindsym $mod+Shift+Up move up bindsym $mod+Shift+l move right bindsym $mod+Shift+Right move right bindsym $mod+Control+Shift+h resize shrink width 5px or 5ppt bindsym $mod+Control+Shift+Left resize shrink width 5px or 5ppt bindsym $mod+Control+Shift+k resize shrink height 5px or 5ppt bindsym $mod+Control+Shift+Up resize shrink height 5px or 5ppt bindsym $mod+Control+Shift+l resize grow width 5px or 5ppt bindsym $mod+Control+Shift+Right resize grow width 5px or 5ppt bindsym $mod+Control+Shift+j resize grow height 5px or 5ppt bindsym $mod+Control+Shift+Down resize grow height 5px or 5ppt bindsym $mod+1 workspace 1 bindsym $mod+2 workspace 2 bindsym $mod+3 workspace 3 bindsym $mod+4 workspace 4 bindsym $mod+5 workspace 5 bindsym $mod+6 workspace 6 bindsym $mod+7 workspace 7 bindsym $mod+8 workspace 8 bindsym $mod+9 workspace 9 bindsym $mod+0 workspace 10 bindsym $mod+Shift+1 move container to workspace 1 bindsym $mod+Shift+2 move container to workspace 2 bindsym $mod+Shift+3 move container to workspace 3 bindsym $mod+Shift+4 move container to workspace 4 bindsym $mod+Shift+5 move container to workspace 5 bindsym $mod+Shift+6 move container to workspace 6 bindsym $mod+Shift+7 move container to workspace 7 bindsym $mod+Shift+8 move container to workspace 8 bindsym $mod+Shift+9 move container to workspace 9 bindsym $mod+Shift+0 move container to workspace 10 bindsym $mod+Control+Shift 1 move container to workspace 1; workspace 1 bindsym $mod+Control+Shift 2 move container to workspace 2; workspace 2 bindsym $mod+Control+Shift 3 move container to workspace 3; workspace 3 bindsym $mod+Control+Shift 4 move container to workspace 4; workspace 4 bindsym $mod+Control+Shift 5 move container to workspace 5; workspace 5 bindsym $mod+Control+Shift 6 move container to workspace 6; workspace 6 bindsym $mod+Control+Shift 7 move container to workspace 7; workspace 7 bindsym $mod+Control+Shift 8 move container to workspace 8; workspace 8 bindsym $mod+Control+Shift 9 move container to workspace 9; workspace 9 bindsym $mod+Control+Shift 0 move container to workspace 10; workspace 10
背景
i3是一个很棒的windows管理器,但是它的配置非常冗长。 我尝试了bspwm及其热键守护程序sxhkd,我更喜欢这种语法。 所以我写了tile。在
- 项目
标签: