未提供项目说明
i3bindings的Python项目详细描述
I3绑定
i3配置的简洁语法
TL;DR
看看这个example。在
安装
pip install i3bindings
使用
- 使用下面的Concepts创建input_文件。在
- 尝试使用
i3bindings input_file
- 使用
i3bindings --write input_file
将其写入i3配置
查看i3bindings --help
获取更多选项。在
概念
映射类型
i3bindings支持两种类型的映射:
- 密钥绑定,其中
$mod+f -> fullscreen toggle
变成{} - 执行绑定,其中
$mod+Return #> xterm
变成{}
替代品
Alternatives表达了同一个操作应该绑定到多个键绑定的思想。在
例如:
$mod+h/Left -> focus left
将创建两行配置:
bindsym $mod+h focus left
和{
变量
Variables是编写具有类似结构的绑定的较短方法。在
例如:
$mod+{f,s} -> {fullscreen,split} toggle
将创建:
bindsym $mod+f fullscreen toggle
bindsym $mod+s split toggle
范围扩展
在变量内部可以写1-10
,它将被扩展为1,2,3...
。在
变量引用
您可以使用@n
语法引用变量的当前值,其中n
是变量索引。
每个变量从左到右编号(从0开始)。E、 g.:
foo {bar,{foo,bar}} {0-1} ...
^ ^ ^
0 1 2
这样使用:
$mod+Control+Shift {1-9,0} -> move container to workspace {1-10}; workspace @1
或者为了避免重复长序列:
$mod+x -> {[instance=\"calculator\"]} scratchpad show; @0 move position center
空值
{21>{emm>你可以用bindsym $mod+h focus left
和{
嵌套
您可以在Variable中使用Alternatives和Variables同时创建多个绑定。在
附加语法
括号
默认情况下,空格、加号等特殊字符是token分隔符。
$mod+p/Print
因此扩展为$mod+p
和{($mod+p/Print) #> scrot
将创建两行配置:
bindsym $mod+p exec --no-startup-id scrot
和{
评论
将忽略空行或以#
开头的行。在
示例
要演示语法,请查看此输入文件:
^{pr2}$扩展版本创建以下i3配置:
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,我更喜欢这种语法。
这就是为什么我写了i3bindings。
它使用类似于sxhkd
的语法来扩展绑定参数,例如$mod+{1-9,0} -> workspace {1-10}
将变成{bindsym $mod+2 workspace 2
,等等。
此外,它几乎没有更多的功能。在
- 项目
标签: