Answers:
要手动执行此操作,您需要在主目录中创建一个名为.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键,以获取自己的键码,以确认它们与上面使用的键码相同。
希望能有所帮助。
xmodmap ~/.Xmodmap
每次重新启动时,我都必须重新运行。我该如何自动化?
如果您不想陷入的痛苦xmodmap
,也可以通过gnome设置来完成。
sudo apt-get install gnome-tweak-tool
,打开它,转到Typing,然后将Ctrl键位置选项更改为Swap left Alt和Ctrl:
您可能也可以通过进行此操作gsettings
,但是不确定确切的配置条目名称。
只需使用简单的文本编辑器创建〜/ .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
xmodmap ~/.Xmodmap
才能加载它。我不确定是否每次重启都必须这样做。
如果要在使用终端应用程序与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