Sway环境输入时禁止触摸板(DWT, Disable-while-typing)
输入时禁用触摸板
我在使用sway时有一个困扰,就是终端输入文字时,手掌经常触碰到Mabook宽大的TouchPad导致鼠标漂移和窗口失焦。解决的方法是在输入时暂时禁用触控板。
在Sway( wayland显示服务器协议 )环境下,所有的输入设备都是由底层的 libinput 驱动直接管理的,在 libinput 中内置了 输入时禁止出口板 (DWT, Disable-while-typing) 功能。
控制touchpad
input type:touchpad {
# 打字是自动禁用触控板(Disable-While-Typing)
# 当检测到键盘有输入时,触控板会立即停止相应,停止敲键盘后约 500ms 自动恢复
dwt enabled
# 轻触即点击(Tap-to-click)
tap enabled
# 自然滚动(双指向上划,网页向下滑,符合macOS习惯)
natural_scroll enabled
# 双指轻触为右键,三指轻触为中键
tap_button_map lrm
}
上述配置可以完全仿照出macOS触控盘使用习惯,非常推荐。
结合 bt-keyboard-switcher
我现在使用 bt-keyboard-switcher 来实现 MacBook Air 11" Late 2010 能够通过蓝牙来模拟键盘为 iPad mini 5 和 iPhone 12 mini 提供输入,这就产生了一个问题,当键盘切换到作为 iPad mini 5 和 iPhone 12 mini 的蓝牙键盘模拟时,本地的 sway - i3兼容Wayland compositor 系统就接收不到键盘输入,此时会导致光标因为TouchPad误触而漂移。
解决的方法主要有2个:
快捷键禁用TouchPad
最简单是在sway中绑定快捷键,在准备去iPad打字前"一键禁用"触控板,回来以后再一键开启:
修改
~/.config/sway/config加入:
在sway配置中加入切换激活触控板配置
bindsym $mod+Shift+t input "type:touchpad" events toggle enabled disabled
这样通过 $mod+Shift+t 就能切换触摸板激活
自动联动
备注
这段我还没有测试验证,待后续尝试,先记录gemini的建议