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)