如何在键盘上用Left Alt交换Left Ctrl?


Answers:


47

要手动执行此操作,您需要在主目录中创建一个名为.Xmodmap的文件。您可以使用终端上的命令执行此操作

~$ gedit ~/.Xmodmap

这将创建文件并在gedit中打开它。将以下行添加到文件中:

clear control
clear mod1
keycode 37 = Alt_L Meta_L
keycode 64 = Control_L
add control = Control_L Control_R
add mod1 = Alt_L Meta_L

保存文件并退出gedit。下次登录时,新的键盘映射将处于活动状态。要使设置立即生效,请运行以下命令:

~$ xmodmap ~/.Xmodmap

您的计算机上的上述键码可能会有所不同。如果上述方法不起作用,请尝试从命令行运行xev程序。Xev将在屏幕角落生成一个新的小窗口。如果您开始按键盘上的键,则将获得该键的所有键映射信息。

~$ xev

例如,如果在运行xev时按“ q”,将得到以下输出:

KeyRelease event, serial 33, synthetic NO, window 0x4c00001,
root 0xb6, subw 0x0, time 9127480, (21,-17), root:(22,36),
state 0x0, keycode 24 (keysym 0x71, q), same_screen YES,
XLookupString gives 1 bytes: (71) "q"
XFilterEvent returns: False

键码24是我们需要的信息。在运行xev的同时按左Ctrl键和左Alt键,以获取自己的键码,以确认它们与上面使用的键码相同。

希望能有所帮助。


文件在Ubuntu 16.04中不存在。
MERose

1
这曾经在16.04上可用,但在17.10上不再可用。
尼克拉斯·

2
xmodmap ~/.Xmodmap每次重新启动时,我都必须重新运行。我该如何自动化?
姆维拉布阿(Mwirabua)蒂姆,

askubuntu.com/a/749662/894748 @MwirabuaTim检查这
VNC

16

如果您不想陷入的痛苦xmodmap,也可以通过gnome设置来完成。

sudo apt-get install gnome-tweak-tool,打开它,转到Typing,然后将Ctrl键位置选项更改为Swap left Alt和Ctrl

在此处输入图片说明

您可能也可以通过进行此操作gsettings,但是不确定确切的配置条目名称。


我正在尝试在ubuntu gnome 15.10中使用调整工具,但它忽略了“用左控件交换左赢键”。有任何想法吗?我正在尝试交换L-SUPER,但假定它们是相同的密钥。
Dori

抓着稻草,但是也许您需要重新启动,或者注销并重新登录到窗口管理器?
hwjp

尝试了这个,没有区别...
Dori

4
似乎在Ubuntu 17.10中删除了“打字”。现在位于“键盘和鼠标”->“其他布局选项”中
Wurstsalat

现在位于“其他布局选项”下
ZiglioUK

10

只需使用简单的文本编辑器创建〜/ .Xmodmap并重新启动Xserver。


!
! based on: http://www.emacswiki.org/emacs/SwapControlAltAndCapsLock#toc8
!

!----------------------------------------------------------
! Swap Control and Alt keys, both sides
!----------------------------------------------------------

! First clear all modifiers & control
clear control
clear mod1
clear mod4

! Swap Control_L and Alt_L
keycode  64 = Control_L
keycode  37 = Alt_L Meta_L

! Menu becomes Alt_R Meta_R (AltGr)
keycode 135 = Alt_R Meta_R

! Define Control_R and Alt_R similar to Control_L and Alt_L
keycode 108 = Control_L
keycode 105 = Alt_L Meta_L

! We need to set keycodes first, as some programs (emacs!) read
! the key names and seem to ignore what's below.
add mod1    = Alt_L Alt_R Meta_L Meta_R
add mod4    = Super_L Super_R
add control = Control_L Control_R


!------------------------------------------
! Caps_Lock becomes an additional BackSpace
!------------------------------------------
remove lock = Caps_Lock
keysym Caps_Lock = BackSpace

在Chromebook的Crouton Ubuntu Unity上,这就像冠军。我确实需要运行xmodmap ~/.Xmodmap才能加载它。我不确定是否每次重启都必须这样做。
swt83

@ swt83:您可能对此感兴趣:github.com/frgomes/carpalx演示了如何根据需要重新定义整个键盘。
理查德·戈麦斯

0

如果要在使用终端应用程序与GUI应用程序时将Ctrl键保持在正常位置,则可以查看Kinto。

https://github.com/rbreaves/kinto

这是它本质上的工作要点,实际上是相对简单的,但是我创建了一个使用systemd的安装程序Kinto,并在基于x11的系统上工作,该系统将使用xprop创建服务/脚本来侦听您的活动应用程序名称。

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

我想用一个解决方案来支持Wayland和x11,但是xprop并不适合那个世界。

这是KDE Plasma 5 Wayland的概念证明。 https://github.com/rbreaves/applet-window-title/commit/ff17e694579a52a9848d6bea87b2d11f22033718

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.