运行以下命令:
xmodmap -e "pointer = 1 25 3 4 5 6 7 8 9"
若要保留此行为,请编辑~/.Xmodmap并添加
pointer = 1 25 3 4 5 6 7 8 9
自定义映射表
创建一个键映射表(即文件 ~/.Xmodmap
):
$ xmodmap -pke > ~/.Xmodmap
测试您的更改:
$ xmodmap ~/.Xmodmap
另存为映射表:xmodmap -pke > ~/xmodmap.txt
重置映射表:setxkbmap
查看keycode:xev
激活自定义映射表
对于GDM、XDM或LightDM,不需要特别激活~/.Xmodmap
。对于startx,请使用:
~/.xinitrc
[[ -f ~/.Xmodmap ]] && xmodmap ~/.Xmodmap
也可以编辑全局启动脚本 /etc/X11/xinit/xinitrc
。
待机唤醒后失效问题解决:
在挂起到RAM后,查看这个archlinux论坛线程Xmodmap Reset。线程中有几个示例,可以帮助您入门,并向您展示如何设置一个钩子,该钩子将通过电源管理子系统触发,xmodmap
每次退出挂起时,该子系统都会运行您的设置。
像下面的脚本,保存的东西/etc/pm/sleep.d/11suspend
(改变me
在 /bin/su - me
您的实际用户名):
#!/bin/bash
case $1 in
hibernate)
echo "Hey guy, we are going to suspend to disk!"
;;
suspend)
echo "Oh, this time we're doing a suspend to RAM. Cool!"
;;
thaw|resume)
echo "oh, suspend is over, we are in $1 phase..."
# Set Display #
DISPLAY=:0.0 ; export DISPLAY
/bin/su - me -c "sleep 3; /usr/bin/xmodmap /home/me/.xmodmaprc" &
;;
*) echo "somebody is calling me totally wrong."
;;
esac
切换用户有问题,可以不切换:
---------------------
#!/bin/bash
case $1 in
hibernate)
echo "Hey guy, we are going to suspend to disk!"
;;
suspend)
echo "Oh, this time we're doing a suspend to RAM. Cool!"
;;
thaw|resume)
echo "oh, suspend is over, we are in $1 phase..."
# Set Display #
DISPLAY=:0.0 ; export DISPLAY
/bin/su -c "sleep 3; /usr/bin/xmodmap /home/me/.Xmodmap" &
;;
*) echo "somebody is calling me totally wrong."
;;
esac
---------------------
参考文章: