我最近在笔记本电脑上切换到Ubuntu,几乎让我切换回Windows的一件事是,我无法使Ctrl+ Alt像Alt gr那样工作。
我已经编程了几年了,例如,我习惯按ctrl+ alt+ 来制作符号“ $” 4。在Ubuntu中,我不得不使用“ Alt gr + 4”巫婆,这简直让我发疯……
有解决办法吗?
xmodmap
命令来执行此操作。检查此askubuntu.com/questions/5095/typing-using-key-combinations
我最近在笔记本电脑上切换到Ubuntu,几乎让我切换回Windows的一件事是,我无法使Ctrl+ Alt像Alt gr那样工作。
我已经编程了几年了,例如,我习惯按ctrl+ alt+ 来制作符号“ $” 4。在Ubuntu中,我不得不使用“ Alt gr + 4”巫婆,这简直让我发疯……
有解决办法吗?
xmodmap
命令来执行此操作。检查此askubuntu.com/questions/5095/typing-using-key-combinations
Answers:
您可以添加全局快捷方式来编写特殊字符。我经常将它用于Ubuntu的德语键盘布局(在Windows上是开箱即用的)。
我添加了以下快捷方式:
Shift+ Enter+ 7写信{
Shift+ Enter+ 0写信}
Shift+ Enter+ 8写信[
Shift+ Enter+ 9写信]
要添加这些快捷方式,您将需要xbindkeys
和xvkbd
:
sudo apt-get install xbindkeys xvkbd
然后编辑配置文件:
vim ~/.xbindkeysrc
并添加以下行(根据需要编辑它们):
"xvkbd -xsendevent -text '{'"
m:0xc + c:16
Control+Alt + 7
"xvkbd -xsendevent -text '['"
m:0xc + c:17
Control+Alt + 8
"xvkbd -xsendevent -text ']'"
m:0xc + c:18
Control+Alt + 9
"xvkbd -xsendevent -text '}'"
m:0xc + c:19
Control+Alt + 0
"xvkbd -xsendevent -text '\[backslash]'"
m:0xc + c:20
Control+Alt + ssharp
"xvkbd -xsendevent -text '\[asciitilde]'"
m:0xc + c:35
Control+Alt + plus
然后重新加载xbindkeys:
xbindkeys -f ~/.xbindkeysrc
感谢Whiz共享此内容(http://forum.ubuntuusers.de/topic/strg-%2B-alt-alt-gr-wie-in-windows/)。
c:XX
据我所知,所用的关键代码不是通用的,因此您不会碰到这个。但是,您可以通过在命令行中安装并执行“ xev”来在本地找到关键代码。它会打印您所有的键盘和鼠标操作,因此您必须稍微滚动一下才能找到“您的”字符。
KeyRelease event, serial 40, synthetic NO, window 0x4c00001, root 0x7e, subw 0x0, time 35363548, (135,60), root:(903,472), state 0x0, keycode 94 (keysym 0x3c, less), same_screen YES, XLookupString gives 1 bytes: (3c) "<" XFilterEvent returns: False
的数字始终在“键码”之后的第三行。所以在这种情况下,94
在尝试使它无法与xbindkeys和xvkbd / xte结合使用后(我永远无法使某些字符{,[,],},\等正常工作,也许是因为我使用了斯堪的纳维亚的键盘布局),我终于找到了一个简单实用的解决方案:Autokey。这是使其正常工作的确切说明:
keyboard.send_keys("<alt_gr>+7")
并将热键设置为Ctrl + Alt + 7(首先将热键设置为7,然后添加Ctrl和Alt作为修饰符)。这至少对最重要的代码编写键有效:{[]}。此解决方案适用于当前X会话中运行的任何内容(我认为),但是如果您使用Ctrl + Alt +(F2-F6)启动新的终端会话,则该解决方案将不起作用。
这是我所做的使L-Alt键动作与键完全相同的操作Altgr。我没有尝试CtrlAlt钥匙
它包含修改level3文件
在终端中,更改目录:
cd /usr/share/X11/xkb/symbols
制作一个level3文件的副本:
sudo cp level3 level3.old
使用任何文本编辑器编辑level3:
sudo gedit level3
您应该找到一个像这样的块:
key <RALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
modifier_map Mod5 { ISO_Level3_Shift };
使用LALT(左alt)而不是RALT(altgr)添加块的副本:
key <LALT> {
type[Group1]="ONE_LEVEL",
symbols[Group1] = [ ISO_Level3_Shift ]
};
modifier_map Mod5 { ISO_Level3_Shift };
现在,应该有另外3个以 key <RALT>
对他们做同样的事情。
保存并退出。
我在编写代码时仅使用特殊符号,因此设法解决了这一问题,即Sublime Text。
在首选项->键绑定-用户中
插入以下内容:
[
{ "keys": ["ctrl+alt+2"], "command": "insert", "args": {"characters": "@"} },
{ "keys": ["ctrl+alt+3"], "command": "insert", "args": {"characters": "£"} },
{ "keys": ["ctrl+alt+4"], "command": "insert", "args": {"characters": "$"} },
{ "keys": ["ctrl+alt+5"], "command": "insert", "args": {"characters": "€"} },
{ "keys": ["ctrl+alt+7"], "command": "insert", "args": {"characters": "{"} },
{ "keys": ["ctrl+alt+8"], "command": "insert", "args": {"characters": "["} },
{ "keys": ["ctrl+alt+9"], "command": "insert", "args": {"characters": "]"} },
{ "keys": ["ctrl+alt+0"], "command": "insert", "args": {"characters": "}"} },
{ "keys": ["ctrl+alt++"], "command": "insert", "args": {"characters": "\\"} },
{ "keys": ["ctrl+alt+<"], "command": "insert", "args": {"characters": "|"} }
]