#i3 #窗口管理器 #配置文件

app i3-bindings

读取i3配置文件并显示其中定义的绑定的简单工具

2个稳定版本

1.0.1 2020年6月9日

配置 中排名 438

MIT 许可证

32KB
221

i3-bindings

Crates.io

CI_build_and_release

读取i3配置文件并显示其中定义的绑定的简单工具。下面是一个打印的表的示例。

如果您想添加一些新功能或帮助我使代码更符合习惯用法,那么问题和PR都非常欢迎 😄

功能

  • 以表格形式打印键绑定
  • 可选地以csv格式打印到标准输出(这样就可以轻松地通过管道传输到其他软件[例如 BurntSushi/xsv])
  • 按不同标准排序绑定
  • 只显示特定类别的键绑定
  • 打印后可选地等待输入(如果您想做一些类似 alacritty -e i3-bindings -b 的事情以打开一个临时终端显示您的绑定很有用)

安装

目前,您可以通过克隆仓库并运行以下命令在您的PC上安装此软件:

cargo install --path .

或者,您可以去查看 发行版页面,看看是否有适用于您系统的预编译可执行文件可供直接下载并放置在您的路径中。

用法

有关可用选项的帮助信息,请参阅 i3-bindings --help。然而,在大多数情况下,只需运行 i3-bindings 并使用默认值即可。

这是工具打印的 help 消息

Utility that reads your i3 config file and prints a formatted version to the console

USAGE:
    i3-bindings [FLAGS] [OPTIONS]

FLAGS:
    -b, --block
        --csv                 whether to provide the output in csv (if not a table will be displayed)
    -h, --help                Prints help information
        --print-categories
    -V, --version             Prints version information

OPTIONS:
    -c, --config-path <config-path>
            Sets a custom config file. If not specified then the following paths will be checked (in order)
            ~/.config/i3/config, ~/.i3/config, /etc/i3/config
    -e, --exclusive-category <exclusive-category>
    -s, --sort-dim <sort-dim>
             [default: binding]  [possible values: command, type, binding, no-sort]

如何使用格式化配置文件

如果您愿意,可以在您的 config 文件中指定 类别,这样在打印表时,绑定将按逻辑分组。但是这并不是必需的。

类别:要打印如下示例中的类别,您需要在您的i3配置中添加注释以指定一组绑定的类别。以下所有注释下的绑定都将具有指定的类别,直到指定新的类别。默认类别是 default

例如

# Category: Layout

#Split in horizontal orientation
bindsym $mod+Mod1+h split h

#Split in vertical orientation
bindsym $mod+Mod1+v split v

# Category: Some other category
...etc...

请注意,文件中的所有注释都被完全忽略,除了关于 Category: (用于定义类别)的注释以及与绑定在同一行的注释(这些注释作为表中的命令的一部分显示)。

示例

当执行时,该工具将读取您的i3配置文件,默认情况下,将打印如下表格到标准输出。如果您想查看截图示例,可以点击这里,其中展示了在我的终端模拟器(Alacritty)中打印我的"应用程序"类别快捷键时的样子。

╔════════════╦══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╗
║Category    ║Actual Binding                                                                                                    ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Applications║ Symbol  $mod+$alt+b    alacritty -e i3-bindings --block                                                          ║
║            ║ Symbol  $mod+$alt+c    $EDITOR ~/.config/i3/config                                                               ║
║            ║ Symbol  $mod+$alt+d    dolphin                                                                                   ║
║            ║ Symbol  $mod+$alt+e    $EDITOR                                                                                   ║
║            ║ Symbol  $mod+$alt+g    chromium                                                                                  ║
║            ║ Symbol  $mod+$alt+q    fish -c ask-and-run-command-in-new-term                                                   ║
║            ║ Symbol  $mod+$alt+r    alacritty -e ranger                                                                       ║
║            ║ Symbol  $mod+$alt+s    spotify-wrapper                                                                           ║
║            ║ Code    $mod+34        picom   #34 - [                                                                           ║
║            ║ Code    $mod+35        killall picom    #35 - ]                                                                  ║
║            ║ Code    $mod+Shift+35  ~/.config/polybar/launch.sh                                                               ║
║            ║ Symbol  Ctrl+Print     scrot '%Y%m%d_%H%M%S.png' -e 'mv $f ~/Pictures/Screenshots/'                              ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Audio       ║ Symbol  XF86AudioLowerVolume   pactl set-sink-volume 0 -2%                                                       ║
║            ║ Symbol  XF86AudioMicMute       pactl set-source-mute 1 toggle                                                    ║
║            ║ Symbol  XF86AudioMute          pactl set-sink-mute 0 toggle                                                      ║
║            ║ Symbol  XF86AudioNext          playerctl next                                                                    ║
║            ║ Symbol  XF86AudioPlay          playerctl play-pause                                                              ║
║            ║ Symbol  XF86AudioPrev          playerctl previous                                                                ║
║            ║ Symbol  XF86AudioRaiseVolume   pactl set-sink-volume 0 +2%                                                       ║
║            ║ Symbol  XF86KbdBrightnessDown  sudo /home/andrea/.shellscripts/increase-keyboard-backlight.fish -1               ║
║            ║ Symbol  XF86KbdBrightnessUp    sudo /home/andrea/.shellscripts/increase-keyboard-backlight.fish 1                ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Display     ║ Symbol  XF86MonBrightnessDown  fish -c "increase-display-backlight-by -7"                                        ║
║            ║ Symbol  XF86MonBrightnessUp    fish -c "increase-display-backlight-by 7"                                         ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Layout      ║ Symbol  $mod+Mod1+h  split h                                                                                     ║
║            ║ Symbol  $mod+Mod1+v  split v                                                                                     ║
║            ║ Symbol  $mod+e       layout toggle split                                                                         ║
║            ║ Symbol  $mod+equal   gaps inner all plus 5                                                                       ║
║            ║ Symbol  $mod+f       fullscreen toggle                                                                           ║
║            ║ Symbol  $mod+m       focus child                                                                                 ║
║            ║ Symbol  $mod+minus   gaps inner all minus 5                                                                      ║
║            ║ Symbol  $mod+s       layout stacking                                                                             ║
║            ║ Symbol  $mod+space   floating toggle                                                                             ║
║            ║ Symbol  $mod+u       focus parent                                                                                ║
║            ║ Symbol  $mod+w       layout tabbed                                                                               ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Main        ║ Symbol  $mod+Return   alacritty                                                                                  ║
║            ║ Symbol  $mod+d        --no-startup-id rofi -show combi                                                           ║
║            ║ Symbol  $mod+n        --no-startup-id systemsettings5                                                            ║
║            ║ Symbol  Ctrl+Shift+q  kill                                                                                       ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Move Focus  ║ Symbol  $mod+Down         focus down                                                                             ║
║            ║ Symbol  $mod+Left         focus left                                                                             ║
║            ║ Symbol  $mod+Right        focus right                                                                            ║
║            ║ Symbol  $mod+Shift+Down   move down                                                                              ║
║            ║ Symbol  $mod+Shift+Left   move left                                                                              ║
║            ║ Symbol  $mod+Shift+Right  move right                                                                             ║
║            ║ Symbol  $mod+Shift+Up     move up                                                                                ║
║            ║ Symbol  $mod+Shift+h      move left                                                                              ║
║            ║ Symbol  $mod+Shift+j      move down                                                                              ║
║            ║ Symbol  $mod+Shift+k      move up                                                                                ║
║            ║ Symbol  $mod+Shift+l      move right                                                                             ║
║            ║ Symbol  $mod+Up           focus up                                                                               ║
║            ║ Symbol  $mod+h            focus left                                                                             ║
║            ║ Symbol  $mod+j            focus down                                                                             ║
║            ║ Symbol  $mod+k            focus up                                                                               ║
║            ║ Symbol  $mod+l            focus right                                                                            ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Resize      ║ Symbol  $mod+r  mode "default"                                                                                   ║
║            ║ Symbol  $mod+r  mode "resize"                                                                                    ║
║            ║ Symbol  Down    resize grow height 8 px or 2 ppt                                                                 ║
║            ║ Symbol  Escape  mode "default"                                                                                   ║
║            ║ Symbol  Left    resize shrink width 8 px or 2 ppt                                                                ║
║            ║ Symbol  Right   resize grow width 8 px or 2 ppt                                                                  ║
║            ║ Symbol  Up      resize shrink height 8 px or 2 ppt                                                               ║
║            ║ Symbol  h       resize shrink width 8 px or 2 ppt                                                                ║
║            ║ Symbol  j       resize grow height 8 px or 2 ppt                                                                 ║
║            ║ Symbol  k       resize shrink height 8 px or 2 ppt                                                               ║
║            ║ Symbol  l       resize grow width 8 px or 2 ppt                                                                  ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Session     ║ Symbol  $mod+Shift+e  "i3-nagbar -t warning -m 'Do you really want to exit i3?' -b 'Yes, exit i3' 'i3-msg exit'" ║
║            ║ Symbol  $mod+Shift+r  restart                                                                                    ║
║            ║ Symbol  Ctrl+$alt+l   ~/.shellscripts/lock-screen.fish                                                           ║
╟────────────╫──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║Workspaces  ║ Symbol  $mod+0           workspace 10                                                                            ║
║            ║ Symbol  $mod+1           workspace 1                                                                             ║
║            ║ Symbol  $mod+2           workspace 2                                                                             ║
║            ║ Symbol  $mod+3           workspace 3                                                                             ║
║            ║ Symbol  $mod+4           workspace 4                                                                             ║
║            ║ Symbol  $mod+5           workspace 5                                                                             ║
║            ║ Symbol  $mod+6           workspace 6                                                                             ║
║            ║ Symbol  $mod+7           workspace 7                                                                             ║
║            ║ Symbol  $mod+8           workspace 8                                                                             ║
║            ║ Symbol  $mod+9           workspace 9                                                                             ║
║            ║ Symbol  $mod+Shift+0     move container to workspace 10                                                          ║
║            ║ Symbol  $mod+Shift+1     move container to workspace 1                                                           ║
║            ║ Symbol  $mod+Shift+2     move container to workspace 2                                                           ║
║            ║ Symbol  $mod+Shift+3     move container to workspace 3                                                           ║
║            ║ Symbol  $mod+Shift+4     move container to workspace 4                                                           ║
║            ║ Symbol  $mod+Shift+5     move container to workspace 5                                                           ║
║            ║ Symbol  $mod+Shift+6     move container to workspace 6                                                           ║
║            ║ Symbol  $mod+Shift+7     move container to workspace 7                                                           ║
║            ║ Symbol  $mod+Shift+8     move container to workspace 8                                                           ║
║            ║ Symbol  $mod+Shift+9     move container to workspace 9                                                           ║
║            ║ Symbol  $mod+Shift+m     move workspace to output left                                                           ║
║            ║ Symbol  $mod+Shift+n     move workspace to output left                                                           ║
║            ║ Symbol  Ctrl+$mod+Left   workspace prev                                                                          ║
║            ║ Symbol  Ctrl+$mod+Right  workspace next                                                                          ║
╚════════════╩══════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝

类似项目

以下是一些具有相似功能的项目,如果您想了解它们。

依赖项

~6–8.5MB
~127K SLoC