Project Icon

glazewm

Windows平铺式窗口管理器提升工作效率

GlazeWM是一款Windows平铺式窗口管理器,灵感来自i3wm。通过键盘命令,用户可以轻松组织和调整窗口布局。其主要功能包括YAML配置、多显示器支持、自定义窗口规则和一键安装。GlazeWM还集成了Zebar状态栏,为Windows用户提供了高效的窗口管理解决方案,有助于提升工作效率。

V3 终于发布了 - 点击这里查看更新日志 🔥


GlazeWM 标志

GlazeWM

一个受 i3wm 启发的 Windows 平铺窗口管理器。

Discord 邀请 下载量 适合新手的问题

GlazeWM 让您可以轻松组织窗口并通过键盘驱动的命令随时调整布局。

安装默认快捷键配置文档常见问题贡献 ↗

演示视频

🌟 主要特性

  • 简单的 YAML 配置
  • 多显示器支持
  • 可自定义特定窗口的规则
  • 一键式简易安装
  • Zebar 状态栏集成

安装

可以通过发布页面下载 GlazeWM 的最新版本。 安装过程中可以选择性地安装 Zebar。

目前不支持 Scoop 和 Winget。如果您想从源码构建,请参阅贡献指南

默认快捷键

首次启动 GlazeWM 时,可以选择生成默认配置。

以下是所有可用命令及其默认快捷键的速查表。

信息图

配置文档

默认配置文件生成在 %userprofile%\.glzr\glazewm\config.yaml

要使用不同的配置文件位置,您可以使用 CLI 参数 --config="..." 启动 GlazeWM 可执行文件,如下所示:

./glazewm.exe --config="C:\<配置路径>\config.yaml"

配置:常规

general:
  # 窗口管理器启动时要运行的命令(例如运行脚本或启动其他应用程序)。
  startup_commands: []

  # 是否自动聚焦光标下的窗口。
  focus_follows_cursor: false

  # 聚焦当前工作区时是否在之前聚焦的工作区之间来回切换。
  toggle_workspace_on_refocus: false

  cursor_jump:
    # 是否在指定触发器上自动移动光标。
    enabled: true

    # 光标跳转的触发器:
    # - 'monitor_focus':在显示器之间切换焦点时跳转。
    # - 'window_focus':在窗口之间切换焦点时跳转。
    trigger: "monitor_focus"

配置:快捷键

可以通过 keybindings 选项自定义可用的键盘快捷键。快捷键由一个或多个按键组合和按下时要运行的一个或多个命令组成。

建议使用 Alt 键作为快捷键。Windows 键不幸很难重新映射,因为操作系统保留了某些快捷键(例如 lwin+l)。

keybindings:
  # 要运行的命令。
  - commands: ["focus --workspace 1"]

    # 触发快捷键的按键组合。
    bindings: ["alt+1"]

  # 可以按顺序运行多个命令(例如将窗口移动到工作区 + 聚焦工作区)。
  - commands: ["move --workspace 1", "focus --workspace 1"]
    bindings: ["alt+shift+1"]

可用于快捷键的完整按键列表:

按键列表 | 按键 | 描述 | | --------------------- | -------------------------------------------------------------- | | `a` - `z` | 字母键 | | `0` - `9` | 数字键 | | `numpad0` - `numpad9` | 数字小键盘键 | | `f1` - `f24` | 功能键 | | `shift` | 左或右SHIFT键 | | `lshift` | 左SHIFT键 | | `rshift` | 右SHIFT键 | | `control` | 左或右CTRL键 | | `lctrl` | 左CTRL键 | | `rctrl` | 右CTRL键 | | `alt` | 左或右ALT键 | | `lalt` | 左ALT键 | | `ralt` | 右ALT键 | | `lwin` | 左⊞Windows徽标键 | | `rwin` | 右⊞Windows徽标键 | | `space` | 空格键 | | `escape` | ESC键 | | `back` | 退格键 | | `tab` | TAB键 | | `enter` | 回车键 | | `left` | ←方向键 | | `right` | →方向键 | | `up` | ↑方向键 | | `down` | ↓方向键 | | `num_lock` | 数字锁定键 | | `scroll_lock` | 滚动锁定键 | | `caps_lock` | 大写锁定键 | | `page_up` | 上翻页键 | | `page_down` | 下翻页键 | | `insert` | 插入键 | | `delete` | 删除键 | | `end` | 结束键 | | `home` | 开始键 | | `print_screen` | 打印屏幕键 | | `multiply` | `*`键(仅在数字小键盘上) | | `add` | `+`键(仅在数字小键盘上) | | `subtract` | `-`键(仅在数字小键盘上) | | `decimal` | DEL键(仅在数字小键盘上) | | `divide` | `/`键(仅在数字小键盘上) | | `volume_up` | 音量增大键 | | `volume_down` | 音量减小键 | | `volume_mute` | 静音键 | | `media_next_track` | 媒体下一曲键 | | `media_prev_track` | 媒体上一曲键 | | `media_stop` | 媒体停止键 | | `media_play_pause` | 媒体播放/暂停键 | | `oem_semicolon` | 美式标准键盘上的`;`/`:`键(因键盘而异) | | `oem_question` | 美式标准键盘上的`/`/`?`键(因键盘而异) | | `oem_tilde` | 美式标准键盘上的`` ` ``/`~`键(因键盘而异) | | `oem_open_brackets` | 美式标准键盘上的`[`/`{`键(因键盘而异) | | `oem_pipe` | 美式标准键盘上的`\`/`\|`键(因键盘而异) | | `oem_close_brackets` | 美式标准键盘上的`]`/`}`键(因键盘而异) | | `oem_quotes` | 美式标准键盘上的`'`/`"`键(因键盘而异) | | `oem_plus` | 美式标准键盘上的`=`/`+`键(因键盘而异) | | `oem_comma` | 美式标准键盘上的`,`/`<`键(因键盘而异) | | `oem_minus` | 美式标准键盘上的`-`/`_`键(因键盘而异) | | `oem_period` | 美式标准键盘上的`.`/`>`键(因键盘而异) |

如果某个键不在上述列表中,在快捷键绑定中使用其字符时可能仍然受支持(例如,挪威语Å字符可以使用alt+å)。

德语和美式国际键盘对右侧alt键的处理不同。对于这些键盘布局,请使用ralt+ctrl而不是ralt来绑定右侧alt键。

配置:间隔

可以通过配置文件中的gaps属性更改窗口之间的间隔。内部和外部间隔分开设置。

gaps:
  # 相邻窗口之间的间隔
  inner_gap: "20px"

  # 窗口与屏幕边缘之间的间隔
  outer_gap:
    top: "20px"
    right: "20px"
    bottom: "20px"
    left: "20px"

配置:工作区

需要通过配置文件中的workspaces属性预定义工作区。每个显示器在启动时会自动分配一个工作区。

workspaces:
  # 这是工作区的唯一ID。它用于快捷键命令,如果未提供`display_name`,
  # 也会作为第三方应用程序(如Zebar)中显示的标签。
  - name: "1"

    # 可选项,用于覆盖第三方应用程序中使用的工作区标签。
    # 不需要是唯一的。
    display_name: "工作"

    # 可选项,强制将工作区绑定到特定显示器(如果存在)。
    # 0是最左边的屏幕,1是右边的下一个屏幕,依此类推。
    bind_to_monitor: 0

    # 可选项,防止工作区在为空时被停用。
    keep_alive: false

配置:窗口规则

可以在窗口首次启动时运行命令。这对于添加特定窗口的行为很有用,比如始终以全屏模式启动窗口或分配到特定工作区。 Windows 可以通过进程、类和标题来定位。可以同时使用多个匹配条件来更精确地定位窗口。

window_rules:
  - commands: ["move --workspace 1"]
    match:
      # 将浏览器移动到工作区 1。
      - window_process: { regex: "msedge|brave|chrome" }

  - commands: ["ignore"]
    match:
      # 忽略任何 Zebar 窗口。
      - window_process: { equals: "zebar" }

      # 忽略浏览器的画中画窗口。
      # 注意,标题和类必须同时匹配才能执行规则。
      - window_title: { regex: "[Pp]icture.in.[Pp]icture" }
        window_class: { regex: "Chrome_WidgetWin_1|MozillaDialogClass" }

配置:窗口效果

可以通过 window_effects 选项为窗口应用视觉效果。目前,只有彩色边框效果可用,未来会添加更多效果。

注意:窗口效果仅适用于 Windows 11。

window_effects:
  # 应用于焦点窗口的视觉效果。
  focused_window:
    # 用彩色边框突出显示窗口。
    border:
      enabled: true
      color: "#0000ff"

  # 应用于非焦点窗口的视觉效果。
  other_windows:
    border:
      enabled: false
      color: "#d3d3d3"

配置:窗口行为

window_behavior 配置选项用于自定义窗口可处于的状态(tilingfloatingminimizedfullscreen)。

window_behavior:
  # 尽可能以此状态创建新窗口。
  # 允许的值:'tiling'、'floating'。
  initial_state: "tiling"

  # 设置创建新窗口时的默认选项。这也会
  # 更改状态改变命令(如 `set-floating`)在
  # 没有任何标志的情况下使用时的默认值。
  state_defaults:
    floating:
      # 是否默认将浮动窗口居中。
      centered: true

      # 是否将浮动窗口显示在最顶层。
      shown_on_top: false

    fullscreen:
      # 尽可能最大化窗口。如果窗口没有
      # 最大化按钮,则会正常全屏显示。
      maximized: false

配置:绑定模式

绑定模式用于在 GlazeWM 运行时修改键绑定。

可以使用 wm-enable-binding-mode --name <NAME> 启用绑定模式,使用 wm-disable-binding-mode --name <NAME> 禁用绑定模式。

binding_modes:
  # 启用时,可以通过方向键或 HJKL 调整焦点窗口的大小。
  - name: "resize"
    keybindings:
      - commands: ["resize --width -2%"]
        bindings: ["h", "left"]
      - commands: ["resize --width +2%"]
        bindings: ["l", "right"]
      - commands: ["resize --height +2%"]
        bindings: ["k", "up"]
      - commands: ["resize --height -2%"]
        bindings: ["j", "down"]
      # 按 Enter/Escape 返回默认键绑定。
      - commands: ["wm-disable-binding-mode --name resize"]
        bindings: ["escape", "enter"]

常见问题

问:如何在启动时运行 GlazeWM?

右键单击 GlazeWM 可执行文件 -> "创建快捷方式"来创建快捷方式。将快捷方式放入启动文件夹中,可以在文件资源管理器的顶部栏输入 shell:startup 访问该文件夹。

问:如何创建"插入布局"?

您可以通过使用 alt+v 更改平铺方向来创建自定义布局。这会改变下一个窗口相对于当前窗口的放置位置。如果当前窗口的方向是水平的,新窗口将被放置在它的右侧。如果是垂直的,新窗口将被放置在它的下方。这也适用于移动窗口;静止窗口的平铺方向将影响移动窗口的放置位置。

可以使用社区制作的脚本,如 ParasiteDelta/GlaAltburgr033/GlazeWM-autotiling-python 来自动更改平铺方向。目前不支持自动布局的原生支持。

问:如何为"插入应用程序"创建规则?

要匹配特定应用程序,您需要一个执行命令和窗口的进程名称、标题或类名。例如,如果您使用 Flow-Launcher 并想让设置窗口浮动,可以这样做:

window_rules:
  - command: "set-floating"
    match:
      - window_process: { equals: "Flow.Launcher" }
        title: { equals: "Settings" }

像 Winlister 或 AutoHotkey 的 Window Spy 这样的程序可以用来获取窗口的信息。

问:当"插入应用程序"获得焦点时,如何忽略 GlazeWM 的键绑定?

目前不支持这个功能,但是在默认配置中,alt+shift+p 键绑定用于禁用所有其他键绑定,直到再次按下 alt+shift+p

项目侧边栏1项目侧边栏2
推荐项目
Project Cover

豆包MarsCode

豆包 MarsCode 是一款革命性的编程助手,通过AI技术提供代码补全、单测生成、代码解释和智能问答等功能,支持100+编程语言,与主流编辑器无缝集成,显著提升开发效率和代码质量。

Project Cover

AI写歌

Suno AI是一个革命性的AI音乐创作平台,能在短短30秒内帮助用户创作出一首完整的歌曲。无论是寻找创作灵感还是需要快速制作音乐,Suno AI都是音乐爱好者和专业人士的理想选择。

Project Cover

有言AI

有言平台提供一站式AIGC视频创作解决方案,通过智能技术简化视频制作流程。无论是企业宣传还是个人分享,有言都能帮助用户快速、轻松地制作出专业级别的视频内容。

Project Cover

Kimi

Kimi AI助手提供多语言对话支持,能够阅读和理解用户上传的文件内容,解析网页信息,并结合搜索结果为用户提供详尽的答案。无论是日常咨询还是专业问题,Kimi都能以友好、专业的方式提供帮助。

Project Cover

阿里绘蛙

绘蛙是阿里巴巴集团推出的革命性AI电商营销平台。利用尖端人工智能技术,为商家提供一键生成商品图和营销文案的服务,显著提升内容创作效率和营销效果。适用于淘宝、天猫等电商平台,让商品第一时间被种草。

Project Cover

吐司

探索Tensor.Art平台的独特AI模型,免费访问各种图像生成与AI训练工具,从Stable Diffusion等基础模型开始,轻松实现创新图像生成。体验前沿的AI技术,推动个人和企业的创新发展。

Project Cover

SubCat字幕猫

SubCat字幕猫APP是一款创新的视频播放器,它将改变您观看视频的方式!SubCat结合了先进的人工智能技术,为您提供即时视频字幕翻译,无论是本地视频还是网络流媒体,让您轻松享受各种语言的内容。

Project Cover

美间AI

美间AI创意设计平台,利用前沿AI技术,为设计师和营销人员提供一站式设计解决方案。从智能海报到3D效果图,再到文案生成,美间让创意设计更简单、更高效。

Project Cover

AIWritePaper论文写作

AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全,同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

投诉举报邮箱: service@vectorlightyear.com
@2024 懂AI·鲁ICP备2024100362号-6·鲁公网安备37021002001498号