Kubuntu 16.04下xinput触控笔按钮映射设置随机恢复默认求助
解决Kubuntu 16.04中DELL触控笔按键映射随机重置的问题
我之前也碰到过类似的触控笔按键映射在Kubuntu 16.04里莫名重置的情况,折腾了好一阵才找到靠谱的解决办法,给你几个可行的方案试试:
为什么~/.xsessionrc可能没效果?
Kubuntu用的是Plasma桌面环境,~/.xsessionrc的执行时机可能赶不上触控笔驱动的加载顺序,或者Plasma自身的某些服务会在登录后重置输入设备配置,导致你的映射命令被覆盖。
方案1:用Plasma自动启动项替代.xsessionrc
这是最直接的修复方式,让映射命令在桌面完全加载后执行:
- 先找到你的触控笔设备ID或名称:
执行命令xinput list,在输出里找到标注为DELL 750-AAHC主动式触控笔(或类似名称,比如"ELAN Touchscreen Pen")的条目,记下它的ID(比如12),或者直接用设备名称(更稳妥,避免ID变动)。 - 验证映射命令:
执行xinput set-button-map <设备ID/名称> 1 3 2 4 5 6 7,这里把原来的物理按键2(中键)替换成了3(右键),后面的数字保留默认即可。执行后测试触控笔按键,确认右键功能生效。 - 添加到自动启动:
- 打开系统设置 → 启动和关机 → 自动启动
- 点击「添加」,选择「添加脚本」
- 把刚才的映射命令填进去,给脚本起个名字比如「触控笔按键重映射」
- 启动类型选择「登录时」,保存即可。
方案2:用udev规则做底层持久化
如果自动启动还是会被驱动重置,可以用udev规则在设备被系统识别时就应用映射:
- 获取触控笔的硬件标识:
先找到触控笔对应的事件设备(比如/dev/input/event8),可以通过xinput list-props <设备ID>里的Device Node字段找到。然后执行:
记下输出里的udevadm info --name=/dev/input/eventXATTRS{idVendor}和ATTRS{idProduct}的值(比如0483:5750)。 - 创建udev规则文件:
写入以下内容(替换成你自己的硬件标识和设备信息):sudo nano /etc/udev/rules.d/99-touchpen-remap.rulesACTION=="add", SUBSYSTEM=="input", ATTRS{idVendor}=="你的vendor ID", ATTRS{idProduct}=="你的product ID", RUN+="/usr/bin/xinput set-button-map 'DELL 750-AAHC Pen' 1 3 2 4 5 6 7" - 重载udev规则并生效:
sudo udevadm control --reload-rules && sudo udevadm trigger
方案3:延迟执行映射命令(应对唤醒重置)
如果你的映射在电脑从休眠/睡眠唤醒后失效,可以给自动启动的命令加个延迟,让驱动服务完全加载后再执行:
sleep 5 && xinput set-button-map <设备ID/名称> 1 3 2 4 5 6 7
把这个命令放到Plasma自动启动里,5秒足够让大部分输入设备服务完成初始化。
内容的提问来源于stack exchange,提问作者Ratler
相关产品推荐
相关产品推荐

