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

如何将切换触控板开关的Bash命令设置为自定义快捷键?

如何将切换触控板开关的Bash命令设置为自定义快捷键?

嗨,我来帮你排查问题并解决这个快捷键设置的困扰~

你的核心问题出在双引号导致的变量提前展开上:当你用sh -c "..."时,当前shell会先解析命令里的$()和变量(比如$param_name、$touchpadoff_value),而不是把这些逻辑交给sh子shell去执行。这就导致你每次触发快捷键时,用的是第一次执行时获取的触控板状态值,而不是实时获取的状态,自然只能单向切换(比如只能打开)。

这里给你两种可行的解决方案,推荐第一种更简洁的:

方案1:用单引号包裹整个命令(推荐)

单引号会阻止当前shell解析内部的变量和命令替换,所有逻辑都会在sh子shell里执行,这样就能实时获取触控板状态了。注意要处理awk脚本里的单引号,用'\''来转义:

sh -c 'param_name=TouchpadOff; touchpadoff_value=$(synclient -l | awk -v param_name="$param_name" '\''$1==param_name {print $(NF)}'\''); (( tmp_value = touchpadoff_value - 1 )); synclient TouchpadOff=${tmp_value#-}'

方案2:转义所有需要延迟解析的符号

如果你坚持用双引号,需要把所有$符号转义(\$),让它们只在子shell里被解析:

sh -c "param_name=TouchpadOff; touchpadoff_value=\$(synclient -l | awk -v param_name=\"\$param_name\" '\$1==param_name {print \$(NF)}'); (( tmp_value =  \$touchpadoff_value - 1 )); synclient TouchpadOff=\${tmp_value#-}"

验证步骤

  1. 先在终端里直接运行上面的命令,确认触控板能正常切换开/关
  2. 再把这个命令复制到自定义快捷键的命令输入框里保存即可

备注:内容来源于stack exchange,提问作者maciejwww

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 12:34:39