#hyprland #window #switching #switch #wayland #applications #sorting

bin+lib window_switcher

一个允许在 Hyprland 之间切换窗口的 CLI(重命名为 hyprswitch [https://crates.io/crates/hyprswitch])

8 个版本

0.3.0 2024年2月3日
0.2.1 2023年12月18日
0.1.6 2023年10月25日
0.1.3 2023年9月8日
0.1.2 2023年8月27日

命令行工具 中排名第 1548

Download history 30/week @ 2024-03-30 1/week @ 2024-04-06 12/week @ 2024-04-20 83/week @ 2024-04-27

每月下载量 67

MITGPL-3.0-or-later

25KB
383

hyprswitch

crates.io Docs Tests

一个小的 Rust CLI 工具,用于在 Hyperland 之间切换窗口。

它可以按顺序或逆序切换所有窗口,或仅切换相同类(=应用程序)的窗口。

安装

cargo安装 hyprswitch

用法

一旦安装了二进制文件,您可以修改您的 ~/.config/hypr/hyprland.conf

以下是一些示例

  • 简单配置
# switches to next window
bind = ALT, TAB, exec, $HOME/.cargo/bin/hyprswitch

# switches to next window of same class
bind = ALT CTRL, TAB, exec, $HOME/.cargo/bin/hyprswitch --same-class

# switches to next window in workspace
bind = SUPER, TAB, exec, $HOME/.cargo/bin/hyprswitch --stay-workspace
  • 带有反向绑定
# switches to next window
bind = ALT, TAB, exec, $HOME/.cargo/bin/hyprswitch

# switches to next window in reverse order
bind = ALT SHIFT, TAB, exec, $HOME/.cargo/bin/hyprswitch --reverse


# switches to next window in workspace
bind = SUPER, TAB, exec, $HOME/.cargo/bin/hyprswitch --stay-workspace

# switches to next window in workspace in reverse order
bind = SUPER, TAB, exec, $HOME/.cargo/bin/hyprswitch --stay-workspace --reverse


# switches to next window of same class
bind = ALT CTRL, TAB, exec, $HOME/.cargo/bin/hyprswitch --same-class

# switches to next window of same class in reverse order
bind = ALT CTRL SHIFT, TAB, exec, $HOME/.cargo/bin/hyprswitch --reverse --same-class

该脚本接受 5 个参数:

  • --same-class 在同一类(类型)的窗口之间切换
  • --reverse 逆序窗口的顺序
  • --stay-workspace 限制窗口循环到当前工作区
  • --ignore-workspace 忽略工作区,按每个监视器一个大工作区进行排序
  • --ignore-monitor 忽略监视器,按一个大监视器进行排序,工作区必须对每个监视器有 10 的偏移量
  • --vertical-workspaces 将工作区视为垂直对齐(与 --ignore-workspace 一起使用)
  • --sort-recent 将窗口按最近访问的顺序排序而不是按位置排序

窗口排序

有关窗口如何排序的更多详细信息,请参阅 测试

   1      2  3      4
1  +------+  +------+
2  |  1   |  |  2   |
3  |      |  +------+
4  +------+  +------+
5  +------+  |  3   |
6  |  4   |  |      |
7  +------+  +------+
   1      2  3      4
                  Monitor 1
      Workspace 1           Workspace 2
1  +------+  +------+ | +------+  +------+
2  |  1   |  |  2   |   |  5   |  |  6   |
3  |      |  |      | | |      |  +------+
4  +------+  +------+   +------+  +------+
5  +------+  +------+ | +------+  |  7   |
6  |  3   |  |  4   |   |  8   |  |      |
7  +------+  +------+ | +------+  +------+
   1      2  3      4   1      2  3      4
      1       3    5   6     8   10  11  12
   +----------------------------------------+
1  |  +-------+                      +---+  |
2  |  |   1   |              +---+   | 5 |  |
3  |  |       |    +---+     | 3 |   |   |  |
4  |  +-------+    | 2 |     +---+   |   |  |
5  |               +---+     +---+   |   |  |
6  |                         | 4 |   |   |  |
7  |    +-------+            +---+   +---+  |
8  |    |   6   |         +----+            |
9  |    |       |         | 7  |            |
10 |    +-------+         +----+            |
   +----------------------------------------+
        2       4         7    9

忽略监视器标志

此标志要求工作区对每个监视器有 10 的偏移量。(待办事项,使其可配置)

这意味着如果您有两个监视器,第二监视器上的工作区必须从 11 开始,如果第一监视器上的第一个工作区是 1。

这可以在 ~/.config/hypr/hyprland.conf 中配置(https://wiki.hyprland.org/Configuring/Workspace-Rules/

依赖关系

~7-15MB
~181K SLoC