docs: 添加窗口横向对齐键位的待办备忘

This commit is contained in:
Akina committed 2026-09-20 08:47:20 +09:00
1 parent c893788bbc
commit e124a67c33
1 file changed
+48
+48
View File
@@ -0,0 +1,48 @@
# 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:<https://github.com/niri-wm/niri/pull/4417>