View difference between Paste ID: 2hg4g3C6 and ULs6gHsR
SHOW: | | - or go back to the newest paste.
1
Emacs's default keybinds are of some infamy, and RSI memes abound aplenty.
2
The simple fact is that they are not very ergonomic, at least not for modern keyboard layouts.
3
4
Luckily there's a few ways to remedy this situation.
5
6
------------------------------------------------------------
7
8
1. Ignore the issue entirely and pretend everything is okay
9
10
Alternatively, get yourself some foot pedals...
11
https://www.emacswiki.org/emacs/FootSwitches
12
13
------------------------------------------------------------
14
15
2. Remap Ctrl to another button
16
17
There were keyboards designed for writing lisp: https://upload.wikimedia.org/wikipedia/commons/4/47/Space-cadet.jpg
18
You'll notice that Ctrl, the most commonly used modifier key is also the closest to the spacebar.
19
This means you can easily hit Ctrl with your thumb, instead of modern keyboards where you'll be straining to stretch your pinky to hit it.
20
21
Swapping Alt and Ctrl is common.
22
As is swapping Ctrl and Caps Lock (though it has some issues http://ergoemacs.org/emacs/swap_CapsLock_Ctrl.html).
23
You can do this at the OS level with xmodmap, or internally in emacs if you don't want to fuck up your other keybinds.
24
25
--------------------
26
27-
Globally via setxkbmap:
27+
Globally via your desktop environment settings:
28
Most desktop environments use the setxkbmap utility to configure the keyboard. I'll write the instruction for the most popular ones.
29
For GNOME (also works for Budgie, because it's basically GNOME), install gnome-tweaks package (on Ubuntu it's called gnome-tweak-tool) and run "Tweaks" program. Click on the "Mouse and keyboard" tab. From there, click the "Additional keyboard settings". You'll see all sorts of categories. You need "Ctrl key position". Click it.
30
For KDE, open the start menu, type "keyboard". Click on "keyboard". From there, click on the "Advanced" tab. Tick the "configure keyboard options", then "Ctrl key position".
31
For Cinnamon, open the start menu, open "Control center". Click on "Layouts" tab. Click "Options", then "Ctrl key position".
32
For other desktop environments, you better use the CLI utility or the X.Org config file (as explained below), because their GUI applications don't support setxkbmap for all things and/or have a very unintuitive GUI. For example, in Xfce you can't choose two layout change methods or two options, etocetora. However, if you prefer, you can find the keyboard configurator in the settings.
33
34
--------------------
35
36
Globally via setxkbmap if you don't have a DE:
37
setxkbmap -option ctrl:swapcaps
38
or
39
setxkbmap -option ctrl:swap_lalt_lctl
40
41
You may also want to have Caps Lock as Ctrl and Ctrl as Hyper key (Hyper key can be used for shortcuts, "H-n" means "Hyper+n"):
42
setxkbmap -option ctrl:swapcaps_hyper
43
44
More information: man setxkbmap and man xkeyboard-config
45
Note: you probably want to auto-execute this when your X session starts
46
47
--------------------
48
49
Globally via X.Org configuration file:
50
1. Create and edit /etc/X11/xorg.conf.d/00-keyboard.conf
51
2. Paste the following:
52
53
Section "InputClass"
54
        Identifier "system-keyboard"
55-
Globally via an xmodmap file:
55+
56
        Option "XkbOptions" "swapcaps"
57
EndSection
58
59
2.1 Put your own setxkbmap option instead of "swapcaps" on line 4 if you need it.
60
3. Restart X.Org or reboot.
61
62
--------------------
63
64
Globally via an xmodmap file (old method for boomers):
65
Save as ~/.Xmodmap
66
 
67
! Swap Ctrl and Alt
68
clear control
69
clear mod1
70
keycode 37 = Alt_L Meta_L
71
keycode 105 = Alt_R Meta_R
72
keycode 64 = Control_L
73
keycode 108 = Control_R
74
add control = Control_L Control_R
75
add mod1 = Alt_L Meta_L
76
 
77
or
78
 
79
! Swap Ctrl and Capslock
80
remove Lock = Caps_Lock
81
remove Control = Control_L
82
keysym Control_L = Caps_Lock
83
keysym Caps_Lock = Control_L
84
add Lock = Caps_Lock
85
add Control = Control_L
86
 
87
Then run `xmodmap ~/.Xmodmap`
88
Note: you probably want to auto-execute this when your X session starts.
89
90
--------------------
91
92
In Emacs only:
93
;; Swap Ctrl and Alt
94
;; V26+, X11 only
95
(setq x-ctrl-keysym 'meta)
96
(setq x-meta-keysym 'ctrl)
97
98
Note that many terminal binds are the same as emacs, so doing it only in emacs  as opposed to globally would lead to inconsistency.
99
For more info see https://www.gnu.org/software/emacs/manual/html_node/elisp/X11-Keysyms.html
100
101
------------------------------------------------------------
102
103
3. Use an external package
104
105
evil-mode: Probably the most common, as vim keys are pretty widespread and many migrants to emacs are already used to them.
106
evil-collection and evil-escape are also nice mentions, as they make the vim experience a lot more consistent.
107
The downside of course is that you're removing the "emacs"ness of keybinds, many prefer to stay more vanilla.
108
109
--------------------
110
111
god-mode: Unlike evil, this keeps all of emacs's keys intact, you simple map a GOD-KEY to type commands more easily.
112
You simply hit your configured key, then every key you hit afterwards has C- prefixed to it.
113
SPC- lets you remove C-.
114
So  <C-x> <C-f> becomes GOD-KEY x f
115
And <C-x> b     becomes GOD-KEY x SPC b
116
117
--------------------
118
119
xah-fly-keys: For the more adventurous, following neither emacs defaults nor vim, it maps keys on a usage based scheme.
120
see for more info: http://ergoemacs.org/misc/ergoemacs_vi_mode.html
121
122
--------------------
123
124
Different typing technique: press Ctrl key with your palm, next to the base of your finger. Use modifiers on both sides of the keyboard (one hand shouldn't type a key and hold down a modifier at the same time) if it feels awkward.
125
Note: this is not possible on low profile, flat keyboards that you'll find on laptops and some rubber dome keyboards such as Logitech K810.
126
127
OR
128
129
Use both Ctrl keys and use your ring/middle/index fingers instead of the pinky.
130
131
--------------------
132
133
Sticky keys via xkbset. The advantage to this is that you don't have to hold down a key.
134
xkbset sticky -twokey latchlock ## set sticky keys, don't disable via twokey
135
136
More info in the man pages.
137
--------------------
138
139
Other links:
140
141
https://www.emacswiki.org/emacs/MovingTheCtrlKey
142
https://www.emacswiki.org/emacs/RepeatedStrainInjury