You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

i3wm如何通过快捷键切换mouse warping行为?

解决i3wm中通过快捷键动态切换mouse_warping的问题

我完全懂你的需求——批量打开浏览器文章时,不想让鼠标自动跳转到新窗口,等读完再恢复这个功能。直接把mouse_warping none绑定到快捷键会报错,是因为mouse_warping是i3的配置项,不是可以直接执行的命令。下面给你两种实用的解决方案:

方案1:绑定两个快捷键分别控制禁用/恢复

直接用i3-msg config命令动态修改配置,这是i3官方支持的动态调整配置项的方法。把以下内容加到你的i3配置文件(通常是~/.config/i3/config)里:

# 按下Mod+Shift+m禁用鼠标自动跳转
bindsym $mod+shift+m exec "i3-msg config mouse_warping none"
# 按下Mod+Shift+M恢复默认的鼠标跳转(默认值是output,如果你用的是container就改成container)
bindsym $mod+shift+M exec "i3-msg config mouse_warping output"

保存配置后按Mod+Shift+c重新加载配置,就能用这两个快捷键分别开关mouse_warping了。

方案2:一键切换状态(更便捷)

如果你不想记两个快捷键,可以写个简单的脚本实现一键切换当前状态:

  1. 在~/.config/i3/目录下创建一个脚本文件,比如toggle_mouse_warping.sh,内容如下:
#!/bin/bash
# 获取当前mouse_warping的设置值
current_setting=$(i3-msg -t get_config | grep -oP 'mouse_warping\s+\K\w+')

# 根据当前值切换状态
if [ "$current_setting" = "none" ]; then
    i3-msg config mouse_warping output
else
    i3-msg config mouse_warping none
fi
  1. 给脚本添加执行权限:
chmod +x ~/.config/i3/toggle_mouse_warping.sh
  1. 在i3配置文件里绑定快捷键:
bindsym $mod+shift+m exec --no-startup-id ~/.config/i3/toggle_mouse_warping.sh

这样每次按下Mod+Shift+m就会自动切换mouse_warping的状态,不用手动区分禁用和恢复,更省心。

小贴士:如果你的i3默认mouse_warping设置是container而不是output,记得把脚本里的output改成container哦。

内容的提问来源于stack exchange,提问作者xji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 07:52:52