fix: add KWin dock force-hide workaround

This commit is contained in:
droid
2026-03-23 17:31:06 +08:00
parent f0ced79af7
commit 58cdc7a04f
7 changed files with 317 additions and 2 deletions

View File

@@ -25,6 +25,10 @@
- 一键安装脚本
- `uninstall.sh`
- 卸载自动重算脚本与 systemd 用户服务
- `kwin/manjaro_dock_force_hide`
- 一个 KWin 脚本
- 用来处理「底部 dock 因通知/attention 弹出后不自动缩回」的问题
- 逻辑是dock 弹出后等待 N 秒;如果此时鼠标不在 dock 上,就强制触发一次隐藏
## 这套美化当前依赖
@@ -66,6 +70,7 @@ Layan 主题请通过 KDE Store 安装,或者使用你自己的 Plasma 6 主
- 安装自动重算脚本到 `~/.local/bin/`
- 安装用户级 systemd 服务到 `~/.config/systemd/user/`
- 安装 `LogicDock` 预设到 `~/.config/panel-colorizer/presets/LogicDock`
- 安装并启用 `manjaro_dock_force_hide` KWin 脚本
- 启用并立即运行自动重算服务
### 3. 生效逻辑
@@ -73,6 +78,7 @@ Layan 主题请通过 KDE Store 安装,或者使用你自己的 Plasma 6 主
- 登录后自动执行一次
- 当 KDE 显示器布局配置发生变化时自动执行
- 会自动为每块启用中的屏幕创建/修正底部 dock
- 如果底部 dock 被某些窗口通知/attention 状态顶出来KWin workaround 会在几秒后强制让它重新隐藏
## 当前 dock 行为
@@ -83,6 +89,7 @@ Layan 主题请通过 KDE Store 安装,或者使用你自己的 Plasma 6 主
- 长度按内容动态扩展,不固定留大空白
- 每块屏幕都各自有 dock
- 显示器变化后自动重算
- 底部 dock 弹出后,如果鼠标不在 dock 上,会在几秒后自动强制缩回
## Panel Colorizer 预设说明
@@ -126,6 +133,41 @@ c. 在 KDE 中启用:
- 系统设置 → 应用程序样式 → Qt 程序样式 → 选择 `Kvantum`
## Dock 通知弹出后自动缩回 workaround
这是一个 **KWin 脚本 workaround**,不是 Plasma 当前的原生选项。
默认行为:
- `delaySeconds = 6`
- 当底部 dock 弹出后:
- 如果鼠标正在 dock 上:不强制隐藏
- 如果鼠标不在 dock 上6 秒后强制触发一次隐藏
### 修改等待秒数
例如改成 4 秒:
```bash
kwriteconfig6 --file ~/.config/kwinrc --group Script-manjaro_dock_force_hide --key delaySeconds 4
qdbus6 org.kde.KWin /KWin reconfigure
```
### 打开调试日志
```bash
kwriteconfig6 --file ~/.config/kwinrc --group Script-manjaro_dock_force_hide --key debug true
qdbus6 org.kde.KWin /KWin reconfigure
journalctl --user -f | grep manjaro_dock_force_hide
```
### 关闭调试日志
```bash
kwriteconfig6 --file ~/.config/kwinrc --group Script-manjaro_dock_force_hide --key debug false
qdbus6 org.kde.KWin /KWin reconfigure
```
## 恢复 / 卸载
```bash