del*_*ray 7 keyboard xorg xmodmap ubuntu
在使用Ctrl+“箭头键”在 X 窗口中切换虚拟桌面 13 年后,我最近被说服改为使用超级键(Windows 键和上下文菜单键,我已经重新映射)。这在大多数情况下都可以正常工作。但是,某些东西仍在接收这些键发送的键事件,就好像它们是普通的字母数字键一样。
例如,我首先在 Google Docs 电子表格中注意到这一点,如果我在单元格顶部单独按下 windows 键,它就会开始编辑该单元格。它不插入任何内容,它只是发送一个 Firefox 看到并开始编辑单元格的关键事件。这导致我正在处理的协作文档出现问题,因为 Google 文档的工作方式,它导致我在意识到发生了什么之前不小心删除了几个字段中的数据。
我喜欢使用超级键,但我希望它们的行为更像 aCtrl或Alt键,因为它是一个修饰键,并且在按下第二个键之前不会发送任何内容。
我的设置如下:
移除锁 = Caps_Lock
键码 66 = 转义
!下面映射了我的其他 Windows 上下文菜单键。
键码 135 = Super_R
编辑:根据要求,这是 xev 的相关输出,用于我的 Super_L(左 Windows 键)的按键和按键释放
KeyPress event, serial 34, synthetic NO, window 0x8200001,
root 0x15d, subw 0x0, time 2428849342, (177,174), root:(182,228),
state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 34, synthetic NO, window 0x8200001,
root 0x15d, subw 0x0, time 2428849430, (177,174), root:(182,228),
state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Run Code Online (Sandbox Code Playgroud)
它不会完全解决您的问题,抱歉,但至少对某人仍然有用。在 Gnome 中,它在最近的 Ubuntu 中得到了修复。我的意思是Win不将其视为修饰键。在过去,例如在 Ubuntu 9.04 中,您必须进行以下更改:
转到System -> Preferences -> Keyboard,在Layouts选项卡下单击Layout options...按钮并在Alt/Win key behavior列表中选择Meta is mapped to Win keys(或Meta is mapped to Left Win)而不是Default。
它到底有什么作用?更改文件中的altwin选项$HOME/.gconf/desktop/gnome/peripherals/keyboard/kbd/%gconf.xml(如果不存在则创建它):
<?xml version="1.0"?>
<gconf>
<entry name="options" mtime="1298496603" type="list" ltype="string">
<li type="string">
<stringvalue>altwin altwin:meta_win</stringvalue>
</li>
</entry>
</gconf>
Run Code Online (Sandbox Code Playgroud)
如果您选择了Left Win,则将有以下字符串值:
altwin altwin:left_meta_win
Run Code Online (Sandbox Code Playgroud)
在 Ubuntu 10.10 中不需要它,因为Default显然已经改变了。
但是你有 XFCE,而不是 Gnome,所以这对你没有帮助。
我已经下载了 Xubuntu (9.10),玩了一会儿,终于找到了解决方案。
不过,首先,我必须说键盘设置在 XFCE 中真的很糟糕。在选项卡Settings -> Keyboard下,Layout您没有太多选择。您无法XkbOptions在那里更改,即使您在 中手动进行更改~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml,它也会被覆盖。所以我改变/etc/default/console-setup了添加altwin:meta_win到XKBOPTIONS(如果已经有其他选项,请使用逗号作为分隔符)。尽管如此,还是没有运气。
tl;博士
不关心 XFCE 处理键盘的方式,因为它显然坏了。setxkbmap直接使用:
setxkbmap -option altwin:meta_win
Run Code Online (Sandbox Code Playgroud)
(或者left_meta_win,无论你喜欢什么)
现在您必须检查它是否真的解决了您的问题。:)
echo -option altwin:meta_win >>~/.Xkbmap
Run Code Online (Sandbox Code Playgroud)
它也可以通过写入来为所有用户完成/etc/X11/Xkbmap。
altwin:meta_win或altwin:left_meta_win已申请?setxkbmap -print
Run Code Online (Sandbox Code Playgroud)
Line withxkb_symbols应该有类似的东西altwin(meta_win)。
| 归档时间: |
|
| 查看次数: |
15860 次 |
| 最近记录: |