1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
WEBVTT
00:00:00.080 --> 00:00:01.680
(Amin: ... for the list of questions in whatever
00:00:01.680 --> 00:00:03.520
order you like.)
00:00:03.520 --> 00:00:06.160
Okay, so I see what package is used,
00:00:06.160 --> 00:00:08.000
probably symex-mode...
00:00:08.000 --> 00:00:10.400
Right. So the main package that was
00:00:10.400 --> 00:00:11.360
being demoed,
00:00:11.360 --> 00:00:14.480
that is not yet on MELPA. In fact, I
00:00:14.480 --> 00:00:16.720
haven't even decided on a name for it.
00:00:16.720 --> 00:00:19.359
I've alternately called
00:00:19.359 --> 00:00:22.080
it epistemic-mode, I've called it
00:00:22.080 --> 00:00:26.000
england, I called it
00:00:26.000 --> 00:00:28.560
all kinds of things, but at the moment
00:00:28.560 --> 00:00:31.439
you can find it on my Github. There's a link
00:00:31.439 --> 00:00:32.960
in the presentation itself, if you go to
00:00:32.960 --> 00:00:35.600
https://github.com/countvajhula, you'll see
00:00:35.600 --> 00:00:38.879
the package there. It's currently
00:00:38.879 --> 00:00:39.840
named Indra, but
00:00:39.840 --> 00:00:42.879
I'm not sure. (Organizer: Package is
called rigpa.)
00:00:42.879 --> 00:00:46.800
Actually, yes, the second one is
00:00:46.800 --> 00:00:49.920
correct. That was the name that I selected
00:00:49.920 --> 00:00:53.280
last night. That's because it...
00:00:53.920 --> 00:00:55.760
There's a concept in Tibetan Buddhism
00:00:55.760 --> 00:00:57.520
that seems like it might have something
00:00:57.520 --> 00:00:58.480
to do with
00:00:58.480 --> 00:00:59.840
the kinds of concepts we're talking
00:00:59.840 --> 00:01:01.600
about with this package, so I just
00:01:01.600 --> 00:01:04.000
thought it would be a good name for it.
00:01:04.000 --> 00:01:05.760
You can look up that concept
00:01:05.760 --> 00:01:09.920
and get a sense of it on Wikipedia.
00:01:09.920 --> 00:01:13.119
Next question is "how to deal with Dvorak
00:01:13.119 --> 00:01:15.759
or however that's pronounced.
00:01:15.759 --> 00:01:16.960
This has always bugged me.
00:01:16.960 --> 00:01:20.400
Is there an Xmodmap mode?" So the thing
00:01:20.400 --> 00:01:22.400
with this is it's kind of surprising, but
00:01:22.400 --> 00:01:23.360
although Vim
00:01:23.360 --> 00:01:26.000
was originally developed
00:01:26.000 --> 00:01:27.200
with the idea of
00:01:27.200 --> 00:01:29.520
the key bindings being on the home row,
00:01:29.520 --> 00:01:32.000
it turns out that that is actually not a
00:01:32.000 --> 00:01:33.119
major aspect
00:01:33.119 --> 00:01:36.400
of the Vim editing experience, so
00:01:36.400 --> 00:01:38.560
people who use the Dvorak layout
00:01:38.560 --> 00:01:40.720
actually end up using the same keys as
00:01:40.720 --> 00:01:42.640
they do on the normal QWERTY layout, so
00:01:42.640 --> 00:01:44.720
they don't remap anything,
00:01:44.720 --> 00:01:48.159
because
00:01:48.159 --> 00:01:51.040
the power that Vim--or the
00:01:51.040 --> 00:01:52.240
flexibility, the
00:01:52.240 --> 00:01:55.600
spiral that Vim enables on QWERTY-layout
00:01:55.600 --> 00:01:56.880
keyboards is exactly
00:01:56.880 --> 00:01:58.719
preserved, even on a Dvorak keyboard,
00:01:58.719 --> 00:01:59.920
even though your
00:01:59.920 --> 00:02:01.920
fingers are not in the same positions.
00:02:01.920 --> 00:02:04.399
It's not a big deal, actually.
00:02:04.399 --> 00:02:09.119
"I mostly use default model
00:02:09.119 --> 00:02:10.879
provided by vanilla Emacs and work and
00:02:10.879 --> 00:02:12.319
Org Mode for text editing. Can you give
00:02:12.319 --> 00:02:13.840
me some examples
00:02:13.840 --> 00:02:15.920
of how the user can use the concept of
00:02:15.920 --> 00:02:17.280
"mode of mode"
00:02:17.280 --> 00:02:20.840
to do some interesting editing?
00:02:20.840 --> 00:02:24.640
Probably the main thing would be
00:02:25.120 --> 00:02:27.920
the keystrokes would be less
00:02:27.920 --> 00:02:28.959
contrived.
00:02:28.959 --> 00:02:32.080
The fewer modes you have,
00:02:32.080 --> 00:02:36.560
the more modifiers you need
00:02:36.560 --> 00:02:39.840
in order to do whatever it is that
00:02:39.840 --> 00:02:41.280
you're trying to do, because you've got,
00:02:41.280 --> 00:02:44.800
essentially, with the Emacs model, you've got
00:02:44.800 --> 00:02:48.080
a completely flat
00:02:48.080 --> 00:02:50.959
keyboard structure. So all of the
00:02:50.959 --> 00:02:52.160
different things that you might
00:02:52.160 --> 00:02:55.680
want to express are all mapped to a flat
00:02:55.680 --> 00:02:58.720
keyboard, a set of keys.
00:02:58.720 --> 00:03:02.840
With this kind of
00:03:02.840 --> 00:03:06.400
modal structure, the more modes you have,
00:03:06.400 --> 00:03:09.200
the more the individual keystrokes
00:03:09.200 --> 00:03:10.400
become
00:03:10.400 --> 00:03:13.200
shorter and shorter. That could be one
00:03:13.200 --> 00:03:14.959
benefit that would be provided.
00:03:14.959 --> 00:03:17.519
With many modes, your keystrokes would
00:03:17.519 --> 00:03:18.000
generally
00:03:18.000 --> 00:03:20.080
be a single keystroke long for even
00:03:20.080 --> 00:03:22.080
relatively complex tasks,
00:03:22.080 --> 00:03:24.159
because you're setting the context
00:03:24.159 --> 00:03:25.440
beforehand.
00:03:25.440 --> 00:03:27.200
So you already say, "Oh, I'm going to be
00:03:27.200 --> 00:03:30.840
talking about this Org buffer
00:03:30.840 --> 00:03:33.440
agenda," and then
00:03:33.440 --> 00:03:36.319
all the keystrokes that you do at
00:03:36.319 --> 00:03:39.599
that point would be in relation to that.
00:03:39.599 --> 00:03:42.159
(Amin: I think we have time for like
00:03:42.159 --> 00:03:44.080
one more short question.)
00:03:44.080 --> 00:03:46.879
One more short question... Okay, let's see.
00:03:46.879 --> 00:03:48.879
"How do new modes come into existence?" You
00:03:48.879 --> 00:03:50.400
can make them yourself,
00:03:50.400 --> 00:03:53.040
and you can specify them in Emacs
00:03:53.040 --> 00:03:53.760
Lisp
00:03:53.760 --> 00:03:56.159
if you like, but there's also a simple way.
00:03:56.159 --> 00:03:59.040
You can also do it visually as we did.
00:03:59.040 --> 00:04:02.720
But yeah, defining them
00:04:02.720 --> 00:04:04.799
is essentially built on top of Hydra, but
00:04:04.799 --> 00:04:07.519
it could also be built on top of Evil or
00:04:07.519 --> 00:04:09.120
any other modal interface provider.
00:04:09.120 --> 00:04:12.840
There's an abstraction layer.
00:04:12.840 --> 00:04:15.920
(Amin: Okay. Thank you so much for your talk and
00:04:15.920 --> 00:04:17.919
for the live Q&A.)
00:04:17.919 --> 00:04:21.440
Sure, thank you. (Amin: Feel free to take
00:04:21.440 --> 00:04:22.880
up the rest of the questions either via
00:04:22.880 --> 00:04:23.759
IRC or
00:04:23.759 --> 00:04:25.680
on the pad on on your own time off the
00:04:25.680 --> 00:04:26.960
stream.)
00:04:26.960 --> 00:04:28.639
Perfect. Yeah, I'll go ahead and put in
00:04:28.639 --> 00:04:30.000
some answers there.
00:04:30.000 --> 00:04:32.240
(Amin: Awesome, thank you.) All right, thank you.
00:04:32.240 --> 00:04:33.120
Have a good one.
00:04:33.120 --> 00:04:36.880
(Amin: Thanks you too)
|