用麒麟OS的朋友都知道,默认情况下,右键一点,菜单就弹出来了。但如果你想让它像Windows那样,一点就直接选中文件或图标,那就得动点“小手术”了。说白了,就是要绕过系统默认的右键菜单机制,把右键这个物理按键的语义,改造成和左键一样。下面这几种方法,从简单到深入,可以按需选择。

方法一:用xinput临时“调换”左右键
这招最适合临时测试,因为它只在当前X会话里生效,一重启系统就恢复原样了。好处是,完全不碰系统配置文件。
打开终端(Ctrl+Alt+T),先看看你的输入设备:
xinput list
在输出里找“mouse”或“Mouse”字样的行,记住它的ID,比如ID=9。
然后,查看当前按钮映射:
xinput get-button-map 9
正常会看到一串数字 1 2 3 4 5 6 7,这代表左、中、右三键加滚轮。
关键一步来了,把右键(按钮3)映射成左键(按钮1):
xinput set-button-map 9 1 2 1 4 5 6 7
【必须警惕的是:这个操作不可逆,执行后原右键将永久失去调出菜单的能力,只能手动恢复】
验证一下:在桌面空白处点击右侧物理按键,应该能选中图标;而点击左侧物理按键,反而会弹出右键菜单。效果有点“反直觉”,但确实达到了目的。
方法二:通过gsettings“拦截”右键事件
这个方案更优雅,它利用UKUI桌面环境的特性,在不改动硬件映射的前提下,让右键点击触发选中动作。核心思路是:先关闭右键菜单的全局响应,再用一个监听脚本把右键点击事件“翻译”成左键点击。
第一步,关闭右键菜单:
gsettings set org.ukui.peripherals.mouse secondary-button-enabled false
然后,创建一个轻量级监听脚本。比如:
nano ~/.local/bin/right-click-select.sh
内容只有一行:
#!/bin/bash
xdotool click 1
别忘了给它执行权限:
chmod +x ~/.local/bin/right-click-select.sh
接下来,我们需要一个工具来捕获鼠标事件——xbindkeys:
sudo apt install xbindkeys
生成默认配置:
xbindkeys --defaults > ~/.xbindkeysrc
然后,把右键绑定规则追加进去:
echo -e '"~/.local/bin/right-click-select.sh"\n b:3' >> ~/.xbindkeysrc
最后,重启xbindkeys服务让它生效:
pkill xbindkeys && xbindkeys
现在,再点右键,它就会执行我们写的脚本,模拟一次左键点击,从而实现“选中”效果。
方法三:修改Peony源码(硬核玩家专属)
如果你需要在文件管理器里实现更精准的右键选中,比如多选、框选联动,那前两种方法就有点力不从心了。这时候,就得直接介入Peony文件管理器的源码,改它的事件分发逻辑。这当然只适合开发者环境,而且需要重新编译。
第一步,克隆源码:
git clone https://github.com/ukui/peony.git ~/peony-src
定位到鼠标事件处理的关键文件:
cd ~/peony-src/src/peony-desktop-icon-view.c
在这个文件里,搜索 button_press_event 回调函数。找到 if (event->button == 3) 这个分支,注释掉调出菜单的代码,然后插入一行:
peony_icon_container_select_all (container, FALSE);
接下来就是标准的编译安装流程了:
mkdir build && cd build && cmake .. && make -j$(nproc) && sudo make install
最后,重启Peony让改动生效:
killall peony && peony &
这才是真正的“硬核操作”,一劳永逸地解决了问题。
