# TODO ## 窗口横向贴左 / 贴右键位 **状态**:搁置(等上游支持后再做) ### 需求 当前 `Super+C`(`Mod+C { center-column; }`)用于将窗口横向居中。 希望能再分别设置横向贴左、贴右,例如: | 键位 | 动作 | |---|---| | `Mod+C` | 居中(现状) | | `Mod+Ctrl+C` | 横向贴左 | | `Mod+Shift+C` | 横向贴右 | ### 卡点 - niri 26.04 **没有** 左/右对齐动作,只有 `center-column` / `center-window` / `center-visible-columns`。 - niri **没有插件 API**:外部工具(含 piri 这类"插件系统")只能监听事件流 + 调用已有 action,无法新增合成器内部动作;而横向对齐需要改内部 view offset,因此纯外部方案无法真正实现。 - 上游 `align-column` / `align-window` 仍是未合并 PR([#3033](https://github.com/niri-wm/niri/pull/3033)、[#4417](https://github.com/niri-wm/niri/pull/4417))。 - 注意:`Mod+Ctrl+C` 目前已被 `center-visible-columns` 占用,届时需处理冲突。 ### 触发条件与届时做法 上游 PR #4417 合并进 niri 后,本需求退化为纯配置问题,在 `dms/binds.kdl` 增加: ```kdl Mod+Ctrl+C { align-column horizontal="left"; } Mod+Shift+C { align-column horizontal="right"; } ``` (如保留 `center-visible-columns`,需为其换一个不冲突的键位) ### 已评估但暂时放弃的替代方案 | 方案 | 放弃原因 | |---|---| | 薄 patch + 自定义 PKGBUILD | 每次上游更新需维护/rebase patch | | AUR `niri-git` | 滚动版,且上游尚未合并该特性 | | `niri_tweaks` 的 `niri_right_align.sh` | dummy 窗口会导致终端闪烁,对窗口操作不可接受;且只能贴右 | | piri 插件系统 | 只有状态驱动的自动对齐,无法手动贴左/贴右 | ### 参考 - niri Action 列表:`niri msg action` - 上游对齐 PR: