您尚未登录。

#1 2016-10-21 19:58:49

lujun9972
会员
注册时间: 2016-10-21
帖子: 73

[已解决] xmodmap -e 在.xinitrc中貌似无效

我用的是awesomeWM,由于键盘没有Win键,因此想用xmodmap将Caps_Lock换成Win来用.

我的.xinitrc内容如下:

export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS="@im=fcitx"
export LANG=zh_CN.UTF-8
fcitx &
xmodmap -e "remove lock = Caps_Lock" 2>> /tmp/errors
xmodmap -e "add mod4 = Caps_Lock" 2>> /tmp/errors
exec awesome

但是很奇怪的,这两句xmodmap好像没有生效一样,Lock_Caps依然是原来的功能,并没有换成Win键.
我在terminal下运行xmodmap -pm 结果依然是

/usr/bin/xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock        Caps_Lock (0x42)
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3     
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

但是我看过 /tmp/errors的内容是空的,说明这两句xmodmap语句应该是没有出错的.

求高手指点一下为什么会这样呢?我的设置有什么不对的地方吗?


UPDATE: 我禁用了 fcitx-kbd里的“覆盖系统XKB设置”后,在terminal下运行xmodmap -pm的结果是

shift       Shift_L (0x32),  Shift_R (0x3e)
lock     
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3     
mod4        Caps_Lock (0x42),  Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

但是好奇怪,Caps_Lock 的作用还是lock的作用,快捷键也不起作用

最近编辑记录 lujun9972 (2016-10-22 06:01:37)

离线

#2 2016-10-21 22:11:29

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,461
个人网站

Re: [已解决] xmodmap -e 在.xinitrc中貌似无效

remove Lock = Caps_Lock
keysym Caps_Lock = Super_R

离线

#3 2016-10-22 06:00:51

lujun9972
会员
注册时间: 2016-10-21
帖子: 73

Re: [已解决] xmodmap -e 在.xinitrc中貌似无效

太棒了,真的可以了!
能问问我之前的设置有什么问题吗?

离线

#4 2016-10-22 10:24:48

依云
会员
所在地: a.k.a. 百合仙子
注册时间: 2011-08-21
帖子: 8,461
个人网站

Re: [已解决] xmodmap -e 在.xinitrc中貌似无效

lujun9972 说:

太棒了,真的可以了!
能问问我之前的设置有什么问题吗?

我也不懂,猜的……

离线

页脚