WEBVTT 00:00:00.000 --> 00:00:12.239 All right, you're good to go. Are people here? 00:00:12.240 --> 00:00:15.639 Let me read the first question to you since I'm here. 00:00:15.640 --> 00:00:17.639 The first question here is, 00:00:17.640 --> 00:00:20.599 I'm excited to know opinion and current state 00:00:20.600 --> 00:00:23.799 of using NCP and AI for PKMs and PIEs. 00:00:23.800 --> 00:00:28.639 Since they do carry a lot of burden out of us, it means a lot of process. 00:00:28.640 --> 00:00:33.439 How does our pipeline stand with the coming days? 00:00:33.440 --> 00:00:35.119 Thanks for the question. 00:00:35.120 --> 00:00:40.239 AI is obviously on everybody's mind. 00:00:40.240 --> 00:00:43.719 We haven't done a lot of integration 00:00:43.720 --> 00:00:47.199 with any of the popular AI engines, 00:00:47.200 --> 00:00:50.519 but I think as you'll see through this Q&A session, 00:00:50.520 --> 00:00:54.559 Hyperbole's function is really to interlink 00:00:54.560 --> 00:00:57.959 your information everywhere throughout Emacs. 00:00:57.960 --> 00:01:02.279 And so, whether you're using a chatbot 00:01:02.280 --> 00:01:04.919 in a specific buffer, 00:01:04.920 --> 00:01:11.359 you can use hyperbole implicit links, implicit buttons 00:01:11.360 --> 00:01:17.039 to activate different actions there as well. 00:01:17.040 --> 00:01:20.399 So sometimes it takes a bit of customization, 00:01:20.400 --> 00:01:25.999 a small amount of two to seven lines of code to do that. 00:01:26.000 --> 00:01:30.839 As we get to working with more of these engines, 00:01:30.840 --> 00:01:34.119 we'll build that into the core part of Hyperbole. 00:01:34.120 --> 00:01:40.039 But right now, that's left as an extension 00:01:40.040 --> 00:01:43.359 for users who are heavily using MCP 00:01:43.360 --> 00:01:45.879 or other protocols right now. 00:01:45.880 --> 00:01:50.239 We have, for example, integrated 00:01:50.240 --> 00:01:57.559 with LSPs, you know, for coding and have that interface through xref 00:01:57.560 --> 00:02:01.199 and basically using the single key, the action key, 00:02:01.200 --> 00:02:02.719 which is made a return. 00:02:02.720 --> 00:02:08.919 You can jump around to any of your source definitions 00:02:08.920 --> 00:02:10.999 from any reference in almost any language 00:02:11.000 --> 00:02:14.599 that anybody uses today. So you can extrapolate from that 00:02:14.600 --> 00:02:17.119 how that might work with AI as well. 00:02:17.120 --> 00:02:22.999 And I think you'll see later when we talk about HiWiki 00:02:23.000 --> 00:02:26.719 that we're now enabling just just wiki words 00:02:26.720 --> 00:02:30.079 to be buttons in hyperbole. 00:02:30.080 --> 00:02:33.999 So those could be part of your chat with an AI 00:02:34.000 --> 00:02:37.519 and you just click on it and you jump right to all your references 00:02:37.520 --> 00:02:49.119 associated with that terminology. Thanks for the question. 00:02:49.120 --> 00:02:51.839 Should I just go through the second question? 00:02:51.840 --> 00:02:54.199 I thought people would be glad. 00:02:54.200 --> 00:02:56.559 As a normal user who codes and takes notes, 00:02:56.560 --> 00:02:58.759 I really want to deep dive and learn Hyperbole, 00:02:58.760 --> 00:03:02.079 but always end up winding back up to Embark 00:03:02.080 --> 00:03:04.399 and Org Mode being the better system. 00:03:04.400 --> 00:03:06.479 For me, Hyperbole looks over engineering 00:03:06.480 --> 00:03:08.079 or over the peer system, 00:03:08.080 --> 00:03:10.119 which other individual packages do well. 00:03:10.120 --> 00:03:15.399 And outside DMAC, there's no system supporting Hyperbole or any usability. 00:03:15.400 --> 00:03:17.519 And I think you've cited answering 00:03:17.520 --> 00:03:21.159 that already, so go ahead. 00:03:21.160 --> 00:03:26.919 Right, hyperbole is large, but there's reasons behind that. 00:03:26.920 --> 00:03:30.599 We're just trying to link all your information in Emacs. 00:03:30.600 --> 00:03:38.079 So I think you can see my screen here in Emacs. 00:03:38.080 --> 00:03:45.439 So for example, you can take any Lisp expression, 00:03:45.440 --> 00:03:49.239 even a variable like here we have in hyperbole 00:03:49.240 --> 00:03:50.959 Hyperbdur variable 00:03:50.960 --> 00:03:53.519 and I just hit the action key made a return 00:03:53.520 --> 00:03:57.759 and in my mini buffer I see the value of that variable, 00:03:57.760 --> 00:04:01.599 but I could just as well take any other expression 00:04:01.600 --> 00:04:03.919 and take the outer parens off 00:04:03.920 --> 00:04:05.679 and change them to angle brackets 00:04:05.680 --> 00:04:08.239 and now that's a live Hyper button 00:04:08.240 --> 00:04:12.079 could be in a comment in a programming buffer in this case. 00:04:12.080 --> 00:04:15.679 It's in K outliner buffer, 00:04:15.680 --> 00:04:19.159 which is a an auto-numbered outliner part of hyperbole. 00:04:19.160 --> 00:04:23.599 So let's just try this and say made a return. 00:04:23.600 --> 00:04:28.719 I pressed and it ran occur and found all the occurrences of buttons. 00:04:28.720 --> 00:04:31.919 And similarly in here, I could just jump and go 00:04:31.920 --> 00:04:35.519 to any of these lines directly 00:04:35.520 --> 00:04:37.919 by hitting made a return in that buffer as well. 00:04:37.920 --> 00:04:39.799 So all your text, all your sort 00:04:39.800 --> 00:04:44.879 of what we call implicit links become live and hyperbole. 00:04:44.880 --> 00:04:46.519 And you didn't have to learn much. 00:04:46.520 --> 00:04:48.559 You just learn, you know, if you know a little Lisp 00:04:48.560 --> 00:04:50.279 or how to type any expression, 00:04:50.280 --> 00:04:52.879 then you just change the outer brackets. 00:04:52.880 --> 00:04:55.079 And all of a sudden, you have hyperbuttons. 00:04:55.080 --> 00:05:01.079 So hyperbole, you can learn a little bit at a time. 00:05:01.080 --> 00:05:04.479 And although it seems daunting at first 00:05:04.480 --> 00:05:06.879 because it has so much functionality, 00:05:06.880 --> 00:05:09.679 very large and rich architecture. 00:05:09.680 --> 00:05:13.639 But what we do is teach people one piece at a time. 00:05:13.640 --> 00:05:17.919 So just to continue on that a little bit, 00:05:17.920 --> 00:05:19.639 implicit buttons are buttons 00:05:19.640 --> 00:05:23.359 that exist just from the text pattern in the buffer. 00:05:23.360 --> 00:05:28.279 So you saw an example of changing Lisp into implicit buttons right there. 00:05:28.280 --> 00:05:30.959 I could do keystrokes. 00:05:30.960 --> 00:05:33.119 I can just type them out in my buffer 00:05:33.120 --> 00:05:34.879 and surround them with braces. 00:05:34.880 --> 00:05:37.439 So here's something, let's see, 00:05:37.440 --> 00:05:41.079 this is actually a command in the K Outliner 00:05:41.080 --> 00:05:45.799 to jump to the cell numbered four. So let's just do that. 00:05:45.800 --> 00:05:47.599 And it took me right there, right? 00:05:47.600 --> 00:05:51.759 So I'm just pressing made a return to activate these buttons. 00:05:51.760 --> 00:05:56.279 Similarly, any sort of, this is a complex example, 00:05:56.280 --> 00:05:59.479 but any path name I can surround with double quotes, 00:05:59.480 --> 00:06:01.079 and it's a live hyper button. 00:06:01.080 --> 00:06:05.479 In this case, I want to jump to a path name called readme.md, 00:06:05.480 --> 00:06:08.359 but it's in a directory that's specified 00:06:08.360 --> 00:06:13.519 by an actual list variable. And then I want to go directly 00:06:13.520 --> 00:06:17.479 to a headline within that file called hyperbole manual. 00:06:17.480 --> 00:06:19.759 And within that headline, I wanna go 00:06:19.760 --> 00:06:22.719 to the eighth line relative to that. 00:06:22.720 --> 00:06:24.879 So all I have to do, made a return again, 00:06:24.880 --> 00:06:28.959 and boom, I'm in that, I'm directly linked to that. 00:06:28.960 --> 00:06:33.799 And Hyperbole has ways that you can just split your windows like this 00:06:33.800 --> 00:06:38.079 and create that reference in the source buffer right there. 00:06:38.080 --> 00:06:41.999 You just press a few keys and it'll embed that link. 00:06:42.000 --> 00:06:43.839 We'll see that a little later. 00:06:43.840 --> 00:06:47.319 Another example, so all of these buttons, 00:06:47.320 --> 00:06:49.599 if I just show you here, 00:06:49.600 --> 00:06:52.279 you can press Control-H, Capital-A anytime. 00:06:52.280 --> 00:06:54.319 and it will show you exactly 00:06:54.320 --> 00:06:56.559 what made a return will do in that context. 00:06:56.560 --> 00:06:59.479 In this case, it's an implicit button, 00:06:59.480 --> 00:07:03.119 and it shows you even where the button starts and ends, 00:07:03.120 --> 00:07:06.679 what type of action it will run, 00:07:06.680 --> 00:07:08.039 it's a link to a file line, 00:07:08.040 --> 00:07:09.999 and then what arguments it takes. 00:07:10.000 --> 00:07:13.999 So Hyperbole extracts all this meta information 00:07:14.000 --> 00:07:16.679 just from the text in your buffer 00:07:16.680 --> 00:07:19.119 and displays it to you conveniently 00:07:19.120 --> 00:07:22.319 so you can know before you ever touch a hyper button 00:07:22.320 --> 00:07:24.479 if it will do something that you want it to do. 00:07:24.480 --> 00:07:28.559 Here we have a fairly advanced button 00:07:28.560 --> 00:07:31.519 that's very simple to do. You just specify a bug in Emacs 00:07:31.520 --> 00:07:34.279 that you want to reference to. 00:07:34.280 --> 00:07:40.039 Notice no delimiters, just bug pound, whatever, made a return. 00:07:40.040 --> 00:07:45.479 And I'm in GNU's reading the conversation for that bug. 00:07:45.480 --> 00:07:48.719 And I can just, you know, move 00:07:48.720 --> 00:07:50.919 through all the conversation. 00:07:50.920 --> 00:07:56.039 I can quit out of there and go back to where I was. 00:07:56.040 --> 00:07:59.599 So very, very easy to use these implicit buttons 00:07:59.600 --> 00:08:00.879 because they're already there 00:08:00.880 --> 00:08:03.679 throughout your Emacs buffers. 00:08:03.680 --> 00:08:06.119 I described the control HA, what that does. 00:08:06.120 --> 00:08:09.359 And there's other types of buttons 00:08:09.360 --> 00:08:11.559 that we can get into as questions go on, 00:08:11.560 --> 00:08:14.719 but you can create your own explicit buttons 00:08:14.720 --> 00:08:18.719 that have a little slightly different delimiter than you see 00:08:18.720 --> 00:08:19.799 in the implicit buttons. 00:08:19.800 --> 00:08:24.759 And this one I just put in here to show you that 00:08:24.760 --> 00:08:30.439 If you use it and you go, this is the hyperbole to do list, 00:08:30.440 --> 00:08:31.879 which is an org buffer. 00:08:31.880 --> 00:08:35.079 But I wanted to show in here that similarly, 00:08:35.080 --> 00:08:37.799 we have implicit buttons for to do's in the work. 00:08:37.800 --> 00:08:39.679 And when we hit made a return, 00:08:39.680 --> 00:08:42.679 it just changes the state of that to do. 00:08:42.680 --> 00:08:44.919 And I can cycle through those 00:08:44.920 --> 00:08:47.399 but even better with the prefix argument 00:08:47.400 --> 00:08:50.399 if I have multiple sequences of to do's 00:08:50.400 --> 00:08:53.519 because there's Bob and Matt's that maintain hyperbole 00:08:53.520 --> 00:08:55.999 so I can shift to Bob's to do's 00:08:56.000 --> 00:08:57.759 with control you made a return 00:08:57.760 --> 00:09:00.079 and then cycle through the states for me 00:09:00.080 --> 00:09:05.039 So very very easy to use, 00:09:05.040 --> 00:09:08.319 you know something that's a little bit more difficult to do 00:09:08.320 --> 00:09:16.239 I think in org without it and So that's an explicit button 00:09:16.240 --> 00:09:19.479 where I had to actually say I want to create this button, 00:09:19.480 --> 00:09:21.599 and I had to specify what type it is. 00:09:21.600 --> 00:09:23.759 If I show you the information there again, 00:09:23.760 --> 00:09:25.879 you see it has a little different type 00:09:25.880 --> 00:09:29.679 called a keyboard key, which runs just the key sequence. 00:09:29.680 --> 00:09:34.759 So you're starting to see already 00:09:34.760 --> 00:09:36.839 that explicit buttons have a type 00:09:36.840 --> 00:09:38.159 that's connected to an action 00:09:38.160 --> 00:09:41.199 that an implicit button can do as well. 00:09:41.200 --> 00:09:42.959 So all of this ties back together. 00:09:42.960 --> 00:09:47.079 And finally, there's a homepage that Hyperbole has, 00:09:47.080 --> 00:09:49.159 a personal homepage that you have. 00:09:49.160 --> 00:09:52.999 You hit Control-H-H, which is our mini-buffer menu, 00:09:53.000 --> 00:09:58.319 and then you hit what is it, B for button file 00:09:58.320 --> 00:10:01.439 and then P for personal file. 00:10:01.440 --> 00:10:05.239 And that just brings you to basically a set of links 00:10:05.240 --> 00:10:10.199 that you can create buttons in any format you want. 00:10:10.200 --> 00:10:12.479 There's no structure that you see here. 00:10:12.480 --> 00:10:18.759 But the nice thing is that all of these buttons that have these names, as we call them, 00:10:18.760 --> 00:10:20.279 with the delimiters here, 00:10:20.280 --> 00:10:23.799 can be referenced now as what we call global buttons 00:10:23.800 --> 00:10:28.239 wherever you are in Emacs. So I'm in a separate buffer here 00:10:28.240 --> 00:10:30.719 and say I want to jump to that to-do button 00:10:30.720 --> 00:10:33.279 that's labeled TD on line 10 down there. 00:10:33.280 --> 00:10:35.519 No matter what I have on screen, 00:10:35.520 --> 00:10:39.199 I can hit control H, H, G for global button, 00:10:39.200 --> 00:10:43.719 A for activate, and then it gives me a list of those. 00:10:43.720 --> 00:10:47.119 So I know it's TD, I just put TD in. 00:10:47.120 --> 00:10:52.159 Okay, that's a path link problem I have, 00:10:52.160 --> 00:10:56.359 but when I fix the link, it would go to it. 00:10:56.360 --> 00:10:58.239 So you can create buttons 00:10:58.240 --> 00:11:01.639 that you can access in any mode, anywhere, 00:11:01.640 --> 00:11:05.799 and just give them quick names, and it's very easy. 00:11:05.800 --> 00:11:08.559 So that kind of gives you an idea 00:11:08.560 --> 00:11:11.719 of how you can get very productive 00:11:11.720 --> 00:11:14.999 with hyperbole with just a few simple techniques. 00:11:15.000 --> 00:11:30.439 You still there Sacha? Yep, I'm still here. 00:11:30.440 --> 00:11:37.079 I have too many tabs. 00:11:37.080 --> 00:11:46.199 So the question is, I've been using activities.el 00:11:46.200 --> 00:11:48.879 and bufferload to save dedicated workplaces, 00:11:48.880 --> 00:11:52.159 open buffers, and decisions in tabs and frames 00:11:52.160 --> 00:11:54.599 for tasks and projects across the next sessions. 00:11:54.600 --> 00:12:00.119 Can I do something similar with Hyper-V? Yes, you can. 00:12:00.120 --> 00:12:03.719 And activities is a nice package from alphapapa. 00:12:03.720 --> 00:12:07.399 We've actually been working with it lately. 00:12:07.400 --> 00:12:11.159 So we're probably in the next month or so 00:12:11.160 --> 00:12:13.479 we'll have a specific integration 00:12:13.480 --> 00:12:15.999 to activities built into Hyperbole. 00:12:16.000 --> 00:12:21.519 But right now, we don't. But of course, you can call 00:12:21.520 --> 00:12:23.279 any of its functions or key bindings 00:12:23.280 --> 00:12:26.079 using the techniques that I just showed you earlier. 00:12:26.080 --> 00:12:33.599 But what we do have built in if you go to the menu again. 00:12:33.600 --> 00:12:35.959 and you see control HH, 00:12:35.960 --> 00:12:43.039 and then there's a W, Windows, WinConfig menu, 00:12:43.040 --> 00:12:48.399 and there's two types of window configurations that you can save here. 00:12:48.400 --> 00:12:52.599 They are, right now, they're per Emacs session. 00:12:52.600 --> 00:12:55.759 They're not stored beyond that, 00:12:55.760 --> 00:12:58.519 but we'll probably add that in as well, 00:12:58.520 --> 00:12:59.879 or we'll use activities for that. 00:12:59.880 --> 00:13:07.199 so the two types are you can either just save a window configuration in a frame 00:13:07.200 --> 00:13:10.319 to actually it stores the frame configuration 00:13:10.320 --> 00:13:13.359 to a ring just like the kill ring 00:13:13.360 --> 00:13:16.119 so you have the three commands at the right 00:13:16.120 --> 00:13:21.239 you can save with an s you can pop one off the ring with p 00:13:21.240 --> 00:13:25.959 or you can just yank and keep cycling through with a y 00:13:25.960 --> 00:13:31.119 and it will restore the frame configuration that you saved. 00:13:31.120 --> 00:13:35.079 Similarly you can just do it by name 00:13:35.080 --> 00:13:36.839 and you can say I want to add a name 00:13:36.840 --> 00:13:45.799 and then you know just give it a name again win win C and store it and it stores it there 00:13:45.800 --> 00:13:48.559 and then you can get back to it by name as well. 00:13:48.560 --> 00:13:51.319 So fairly fairly easy to use as well 00:13:51.320 --> 00:13:54.999 and again integrated in the same simple menu system. 00:13:55.000 --> 00:13:57.079 So thanks for that question. 00:13:57.080 --> 00:14:07.119 Should I just go to the next question? 00:14:07.120 --> 00:14:10.079 How well do hyperbole and org mode work together? 00:14:10.080 --> 00:14:12.759 Is there any kind of integration? 00:14:12.760 --> 00:14:18.079 Yes, in fact, that's really good. 00:14:18.080 --> 00:14:22.359 I'll just mention something. Let me go back to my homepage. 00:14:22.360 --> 00:14:26.679 I just stored that here. So we gave a talk at an earlier 00:14:26.680 --> 00:14:31.559 Emacs conference right here on org 00:14:31.560 --> 00:14:33.199 and hyperbole integration. 00:14:33.200 --> 00:14:35.919 So that's a good one to go back to. 00:14:35.920 --> 00:14:39.479 And I believe it's in this files 00:14:39.480 --> 00:14:41.599 included with hyperbole as well. 00:14:41.600 --> 00:14:45.079 So you can learn various techniques 00:14:45.080 --> 00:14:48.199 of how the action key helps you in org. 00:14:48.200 --> 00:14:51.679 It does special things in tables. 00:14:51.680 --> 00:15:00.239 And there's some nice support for, for example, working with code blocks. 00:15:00.240 --> 00:15:02.639 Let me see where that is. Okay, so right back here. 00:15:02.640 --> 00:15:09.759 So you can run them with the action key. 00:15:09.760 --> 00:15:15.039 You can refresh the output and do things like that. 00:15:15.040 --> 00:15:17.559 So again, if I just hit Control-H-A, 00:15:17.560 --> 00:15:20.439 it'll tell me that it's in SmartOrg, 00:15:20.440 --> 00:15:24.359 and it'll give me all the different contexts that that operates within. 00:15:24.360 --> 00:15:26.559 So there's a lot that it does in here. 00:15:26.560 --> 00:15:30.479 And you can see it would point on the dir value of a code block definition 00:15:30.480 --> 00:15:33.559 that will actually display a summary 00:15:33.560 --> 00:15:35.199 and all sorts of functionality. 00:15:35.200 --> 00:15:37.439 So the integration is quite tight. 00:15:37.440 --> 00:15:39.679 And one of the things we do 00:15:39.680 --> 00:15:41.799 since made return is used in org, 00:15:41.800 --> 00:15:44.719 we have a customization setting, C even O. 00:15:44.720 --> 00:15:48.239 And you have these three settings where you can say, 00:15:48.240 --> 00:15:53.359 I want me to return to, I want hyperbole to control that 00:15:53.360 --> 00:15:57.279 and everything that the action key does I want to happen. 00:15:57.280 --> 00:16:00.479 Or I only want hyperbole to control 00:16:00.480 --> 00:16:03.239 when I'm over a hyperbole implicit explicit button. 00:16:03.240 --> 00:16:09.159 Or I want org to control that key and never use hyperbole. 00:16:09.160 --> 00:16:10.799 So you just set that once, 00:16:10.800 --> 00:16:13.919 it's persistent across sessions and you're good to go. 00:16:13.920 --> 00:16:16.399 And again, it's built right into the menus. 00:16:16.400 --> 00:16:23.919 So but even following that we've the latest addition to hyperbole is Something 00:16:23.920 --> 00:16:25.799 and this is the first time 00:16:25.800 --> 00:16:29.799 we're really showing it publicly is the high wiki 00:16:29.800 --> 00:16:33.559 Which is a new subsystem as we call it 00:16:33.560 --> 00:16:44.719 and this is I think the best wiki capability in Emacs now what it does is it automatically highlights 00:16:44.720 --> 00:16:48.119 let me turn it on I have to turn on high wiki mode 00:16:48.120 --> 00:16:54.679 and you see those wiki words now got highlighted so any any wiki word 00:16:54.680 --> 00:16:58.839 which is the capitalized alpha word you know 00:16:58.840 --> 00:17:01.439 so you can have multiple capitals in there 00:17:01.440 --> 00:17:06.039 and I'll get recognized can be used as a wiki word 00:17:06.040 --> 00:17:09.519 so for example when I just type hi wiki here 00:17:09.520 --> 00:17:11.559 it automatically recognizes it, 00:17:11.560 --> 00:17:14.239 and you see it turned it into a hyperlink button, 00:17:14.240 --> 00:17:18.159 which again, Control-H-A will tell me exactly what it does there. 00:17:18.160 --> 00:17:23.119 But I can just hit the action key, made a return, 00:17:23.120 --> 00:17:26.879 and it'll display my hiwiki.org file. 00:17:26.880 --> 00:17:30.559 All wiki pages are org files. 00:17:30.560 --> 00:17:35.679 So we're using that for the wikis, and you have 00:17:35.680 --> 00:17:40.359 You can export an entire wiki 00:17:40.360 --> 00:17:43.159 using essentially the org export capability 00:17:43.160 --> 00:17:48.599 With a little extra set of features that we've added in 00:17:48.600 --> 00:17:51.199 but let's say even better you see 00:17:51.200 --> 00:17:54.119 I have this heading here so let me just change this 00:17:54.120 --> 00:17:59.239 you go back here and I'll say go to heading 00:17:59.240 --> 00:18:01.039 so you just put a pound on it 00:18:01.040 --> 00:18:05.679 and now that whole thing is a reference to a specific org section. 00:18:05.680 --> 00:18:08.439 Notice there's no org IDs here. 00:18:08.440 --> 00:18:11.639 There's nothing other than the text that you're seeing. 00:18:11.640 --> 00:18:13.439 There's not even a delimiter. 00:18:13.440 --> 00:18:17.839 So we have automatic implicit hyper buttons 00:18:17.840 --> 00:18:20.679 being added in any buffer. 00:18:20.680 --> 00:18:23.959 Could be a comment in a programming buffer with all you 00:18:23.960 --> 00:18:26.599 You don't have to add anything. 00:18:26.600 --> 00:18:31.999 I'll show you how to create a new page in a minute. 00:18:32.000 --> 00:18:35.959 But you see I can link to any org section without any IDs. 00:18:35.960 --> 00:18:38.799 And then I can also do like org-roam does, 00:18:38.800 --> 00:18:42.039 but without the indexing or database that it requires. 00:18:42.040 --> 00:18:46.839 I can scan over all of my wiki files and headings. 00:18:46.840 --> 00:18:48.759 find a match really quickly. 00:18:48.760 --> 00:18:53.279 So we can get into some of that a little later as well. 00:18:53.280 --> 00:18:55.759 But, you know, very convenient. 00:18:55.760 --> 00:18:58.439 There's nothing that you change on org to do this. 00:18:58.440 --> 00:19:00.879 So how do I create a wiki word? 00:19:00.880 --> 00:19:07.359 Well, let's say I wanted, you know, wiki word for me. 00:19:07.360 --> 00:19:09.999 So that's already, that was a wiki word, 00:19:10.000 --> 00:19:12.959 but now this is a new one. So you see it doesn't highlight 00:19:12.960 --> 00:19:16.559 because I haven't created a wiki page yet. 00:19:16.560 --> 00:19:20.319 So all I hit is the action key, and boom. 00:19:20.320 --> 00:19:23.519 Now it created it as a new wiki word. 00:19:23.520 --> 00:19:24.879 It created the .org file. 00:19:24.880 --> 00:19:28.279 If I don't edit this file, it won't save it, 00:19:28.280 --> 00:19:32.359 and it'll not become a word in case you made an accident. 00:19:32.360 --> 00:19:34.319 But let's just say I want to say it. 00:19:34.320 --> 00:19:39.159 So, you know, heading. That's it. I'm just in org mode. 00:19:39.160 --> 00:19:42.879 Now anytime that high wiki mode is active, 00:19:42.880 --> 00:19:46.239 in any buffer essentially, 00:19:46.240 --> 00:19:50.279 I can type that out and it'll recognize it. 00:19:50.280 --> 00:19:53.039 Notice so that's not a wiki word. 00:19:53.040 --> 00:19:55.279 So it's highlighting and it's unhighlighting 00:19:55.280 --> 00:19:56.599 right as I type. 00:19:56.600 --> 00:20:03.199 So, again, you can embed these as org links in org. 00:20:03.200 --> 00:20:09.439 There's a special format like this, HiWiki word 00:20:09.440 --> 00:20:11.239 that you can make an org link 00:20:11.240 --> 00:20:13.479 if I was in org mode, just like that. 00:20:13.480 --> 00:20:16.599 So there's all sorts of compatibility, 00:20:16.600 --> 00:20:18.319 but basically it's just words, 00:20:18.320 --> 00:20:21.119 and HiWiki takes care of the rest for you. 00:20:21.120 --> 00:20:26.679 So there's a directory where all these, it's HiWiki, 00:20:26.680 --> 00:20:28.879 hi wiki tilde slash 00:20:28.880 --> 00:20:32.719 hi wiki is the default place where all these would be found 00:20:32.720 --> 00:20:36.359 and there's a menu now in hyperbole for hi wiki h 00:20:36.360 --> 00:20:40.639 and you can see it has a lot of capabilities 00:20:40.640 --> 00:20:44.359 but i can say b go into the directory of all the files 00:20:44.360 --> 00:20:47.799 just pull them up and any of these you'll see 00:20:47.800 --> 00:20:59.959 let me give you one like this me okay so you can see the other wiki words being highlighted in here 00:20:59.960 --> 00:21:04.039 so it's very fast to this there's almost no delay for anything 00:21:04.040 --> 00:21:14.679 and yet very flexible and you have this ability you know where you could type emacs section dash 1 dash 2 00:21:14.680 --> 00:21:16.759 and If you didn't have delimiters around it, 00:21:16.760 --> 00:21:18.479 but you can put any delimiters 00:21:18.480 --> 00:21:20.839 like double quotes or parentheses, 00:21:20.840 --> 00:21:25.159 and then it'll match without you having to change the header at all 00:21:25.160 --> 00:21:28.439 with the spaces included and all of those. 00:21:28.440 --> 00:21:31.919 know will get recognized. 00:21:31.920 --> 00:21:35.599 I don't know if this if the section exists right there. 00:21:35.600 --> 00:21:41.959 So anyway a lot of capability you can see that here where I did the high 00:21:41.960 --> 00:21:45.519 it actually highlights as an org link 00:21:45.520 --> 00:21:46.839 because it is an org link 00:21:46.840 --> 00:21:50.319 and it'll operate just like any other org link 00:21:50.320 --> 00:21:54.279 even though it's a high wiki word link as well. 00:21:54.280 --> 00:21:55.759 So very powerful stuff 00:21:55.760 --> 00:22:00.959 and totally integrated with Org Mode throughout. 00:22:00.960 --> 00:22:06.439 Great. There's another question. 00:22:06.440 --> 00:22:09.039 Are there any talks from this year's Emacs Conf 00:22:09.040 --> 00:22:12.599 that discuss things that would work well with Hyperbole? 00:22:12.600 --> 00:22:19.279 No. Unfortunately, I had to work yesterday, so I haven't... 00:22:19.280 --> 00:22:22.639 been following the conference as much as I do. 00:22:22.640 --> 00:22:25.559 Maybe somebody else could comment on that. 00:22:25.560 --> 00:22:29.519 But I think, you know, again, 00:22:29.520 --> 00:22:31.879 it's like pick your favorite mode, 00:22:31.880 --> 00:22:34.719 pick your favorite type of information. 00:22:34.720 --> 00:22:36.839 Can I hyperbole work with that? 00:22:36.840 --> 00:22:39.999 You know, the answer is almost always yes. 00:22:40.000 --> 00:22:44.959 So, you know, if I show you just a little bit, 00:22:44.960 --> 00:22:48.679 if I show you some of these implicit button types, 00:22:48.680 --> 00:22:53.359 just so you know the amount of code 00:22:53.360 --> 00:22:56.279 involved to create a type. 00:22:56.280 --> 00:22:59.679 So here's like a male, recognizing 00:22:59.680 --> 00:23:01.639 an email address as a button. 00:23:01.640 --> 00:23:05.519 It's a little long so that it creates a lot of things 00:23:05.520 --> 00:23:09.199 but you know it's less than 15 lines of code for that. 00:23:09.200 --> 00:23:12.199 Path names are complicated so that's a longer one 00:23:12.200 --> 00:23:18.799 but let's look at so here's one recognizing a bibliography entry. 00:23:18.800 --> 00:23:24.879 So it can be between two and 20 lines of code 00:23:24.880 --> 00:23:27.519 to create an entirely new button type. 00:23:27.520 --> 00:23:32.159 And you create it once, and you just add it to the set of types, 00:23:32.160 --> 00:23:35.479 just like at the fun, except it's done with this macro 00:23:35.480 --> 00:23:39.479 called def, implicit button type, and defib. 00:23:39.480 --> 00:23:45.559 And it's part of your hyperlinking system forever then. 00:23:45.560 --> 00:23:49.799 So say you got dumped with 5,000 documents 00:23:49.800 --> 00:23:51.519 that were in this weird text format, 00:23:51.520 --> 00:23:54.119 and they all had cross-references among them, 00:23:54.120 --> 00:23:56.792 but it was, again, using a weird format. 00:23:56.760 --> 00:23:59.919 You could just write your own little type for that, 00:23:59.920 --> 00:24:04.319 and then those 5,000 documents are hyperlinked for you 00:24:04.320 --> 00:24:08.759 every time you're browsing them in Emacs automatically. 00:24:08.760 --> 00:24:11.959 So we do that all the time, create small things, 00:24:11.960 --> 00:24:15.159 but all of these are built into Hyperbole. 00:24:15.160 --> 00:24:20.199 Markdown links, tech info links, all of that's automatic. 00:24:20.200 --> 00:24:26.199 I could even be in a shell mode, and I just say ls, 00:24:26.200 --> 00:24:30.519 and these are hyperlinks that Hyperbole understands, right? 00:24:30.520 --> 00:24:31.759 It just jumps right to the file. 00:24:31.760 --> 00:24:36.999 So grep-n, You know, looking at any line numbers, 00:24:37.000 --> 00:24:39.839 you don't have to remember 00:24:39.840 --> 00:24:41.959 all these different commands anymore. 00:24:41.960 --> 00:24:44.319 You just hit made a return, 00:24:44.320 --> 00:24:46.599 and Hyperbole does the right thing 00:24:46.600 --> 00:24:48.359 in all these different contexts, 00:24:48.360 --> 00:24:52.639 including following cross-references in code. 00:24:52.640 --> 00:24:56.079 So I would say that's your answer. 00:24:56.080 --> 00:24:58.399 Most things that people are talking about, 00:24:58.400 --> 00:25:02.199 we've already probably integrated with Hyperbole 00:25:02.200 --> 00:25:04.639 or with a little bit of custom coding. 00:25:04.640 --> 00:25:11.199 You can do it. I think that's the end of the etherpad questions for now, 00:25:11.200 --> 00:25:12.919 but I see a number of people in the room, 00:25:12.920 --> 00:25:15.439 so you can continue the conversation. 00:25:15.440 --> 00:25:18.719 We'll be on the stream for another five minutes or so, 00:25:18.720 --> 00:25:22.319 but yes, please go ahead. Great. Yeah. 00:25:22.320 --> 00:25:27.639 I mean, people, does everybody have, can talk on the conference? 00:25:27.640 --> 00:25:31.439 I was expecting to just talk with people here. 00:25:31.440 --> 00:25:40.799 Let's see. Yeah. Can anybody say anything here? 00:25:40.800 --> 00:25:52.039 Hi, Bob. I can say something. Hey, Matt. Hi. Yeah. 00:25:52.040 --> 00:25:55.199 Maybe you want to bring up a topic. 00:25:55.200 --> 00:25:56.839 I think I... Yes. Sorry, Bob. 00:25:56.840 --> 00:26:05.839 I think I saw a question here on IOC. It was like this. 00:26:05.840 --> 00:26:08.599 Interesting, but the many different link formats 00:26:08.600 --> 00:26:11.279 makes reading and analyzing my notes 00:26:11.280 --> 00:26:14.959 much harder and less usable outside Emacs. 00:26:14.960 --> 00:26:18.759 I don't know if you have some comment on that. 00:26:18.760 --> 00:26:22.319 Well, I mean, the different formats that you're saying, 00:26:22.320 --> 00:26:24.839 like angle brackets or curly braces, 00:26:24.840 --> 00:26:31.319 are just so that you can utilize many different types. 00:26:31.320 --> 00:26:35.599 of buttons, but if you just want to use key sequences, 00:26:35.600 --> 00:26:37.759 there's only one markup format. 00:26:37.760 --> 00:26:41.599 With org, you've got the square brackets, 00:26:41.600 --> 00:26:44.919 which are consistent, but in order to have different types, 00:26:44.920 --> 00:26:47.279 you have to type a prefix name, 00:26:47.280 --> 00:26:53.279 like you see the HY for the High Wiki buttons in org mode. 00:26:53.280 --> 00:26:56.999 So I think the trade-off is pretty much the same, 00:26:57.000 --> 00:27:02.239 but Hyperbole always, always works 00:27:02.240 --> 00:27:04.559 to minimize the amount of markup. 00:27:04.560 --> 00:27:07.439 Markdown is pretty simple. A lot of people like that. 00:27:07.440 --> 00:27:10.759 But I think you'll find in hyperbole texts, 00:27:10.760 --> 00:27:15.479 they read just like regular language. 00:27:15.480 --> 00:27:19.599 I mean, the delimiters are fairly invisible. 00:27:19.600 --> 00:27:23.039 So I'm not sure what the issue is there. 00:27:23.040 --> 00:27:24.919 And again, you can choose your own. 00:27:24.920 --> 00:27:27.639 You can make your own types with your own delimiters. 00:27:27.640 --> 00:27:31.359 There's even a custom macro 00:27:31.360 --> 00:27:33.399 that instead of using that defib 00:27:33.400 --> 00:27:35.559 where you have to type out list code, 00:27:35.560 --> 00:27:37.519 you can use regular expressions. 00:27:37.520 --> 00:27:41.239 And in one line, you can define your own type of button 00:27:41.240 --> 00:27:42.919 with its own delimiters. 00:27:42.920 --> 00:27:47.879 So, you know, depending on what works well for your eyes, 00:27:47.880 --> 00:27:51.359 you can make Hyperbole adapt quite well to that. 00:27:51.360 --> 00:27:54.319 And again, if you start using the HiWiki, 00:27:54.320 --> 00:27:57.479 there's literally zero markup on that. 00:27:57.480 --> 00:27:59.599 So you're just reading text, 00:27:59.600 --> 00:28:01.759 and when you want something hyperlinked, 00:28:01.760 --> 00:28:04.599 it's like a glossary or a dictionary entry. 00:28:04.600 --> 00:28:09.599 It's just there, and it's just highlighted in the text. 00:28:09.600 --> 00:28:17.479 So I don't see much barrier to using it with many different types of documents. 00:28:17.480 --> 00:28:23.319 Let me go back to the Emacs here. 00:28:23.320 --> 00:28:27.039 If there are any other questions. 00:28:27.040 --> 00:28:36.639 Let me see. Let me go back to that. This K outline here. 00:28:36.640 --> 00:28:38.719 So we covered HiWiki. 00:28:38.720 --> 00:28:42.999 We're in the, I'll just show you some things 00:28:43.000 --> 00:28:44.039 that we wanted to highlight 00:28:44.040 --> 00:28:46.279 if people didn't have specific questions. 00:28:46.280 --> 00:28:48.879 But feel free to jump in anytime 00:28:48.880 --> 00:28:51.399 if you want to ask something. 00:28:51.400 --> 00:28:57.039 So what we're looking at here is a K Outliner document. 00:28:57.040 --> 00:29:00.399 There's, you know, hyperbole is pretty well documented. 00:29:00.400 --> 00:29:04.719 There's a large manual. There's interactive. 00:29:04.720 --> 00:29:09.319 demos of it and there are videos as well 00:29:09.320 --> 00:29:12.079 but the K Outliner is unique in Emacs 00:29:12.080 --> 00:29:17.439 because it it can do like full legal auto numbering you 00:29:17.440 --> 00:29:21.399 just say I want to create a new headline 00:29:21.400 --> 00:29:23.919 and you can see or I could create four 00:29:23.920 --> 00:29:26.679 I could say I want to create three more of these 00:29:26.680 --> 00:29:29.239 and I can do it all at once with one key 00:29:29.240 --> 00:29:33.679 I can then just tab to make sublevels here 00:29:33.680 --> 00:29:40.319 and you see this is using a specific outline format that we have 00:29:40.320 --> 00:29:43.919 but if we do dot in the view specs here 00:29:43.920 --> 00:29:48.239 it changes to legal outlining so it's really that simple 00:29:48.240 --> 00:29:51.399 and all of these numbers are automatically maintained 00:29:51.400 --> 00:29:56.639 as I move stuff around I can use like org mode alt arrow keys 00:29:56.640 --> 00:30:00.119 to like move things up and down, right? 00:30:00.120 --> 00:30:00.839 And just move them around. 00:30:00.840 --> 00:30:04.719 And when I run out, you know, when it can't go any higher, 00:30:04.720 --> 00:30:06.039 it gives me an error. 00:30:06.040 --> 00:30:11.079 And then it's just free form typing here with auto-wrapping. 00:30:11.080 --> 00:30:13.759 The nice thing is that there's, 00:30:13.760 --> 00:30:17.359 there's actually these hidden, 00:30:17.360 --> 00:30:22.519 let's get, hidden what are called ID stamps. 00:30:22.520 --> 00:30:24.919 So these are permanent hyperlink anchors 00:30:24.920 --> 00:30:26.719 that are assigned to each cell. 00:30:26.720 --> 00:30:29.679 So as this cell moves in the outline, 00:30:29.680 --> 00:30:32.679 you notice that this 29 didn't change. 00:30:32.680 --> 00:30:37.439 So you can move and all those other auto numbers shift 00:30:37.440 --> 00:30:40.359 to represent the actual outline structure. 00:30:40.360 --> 00:30:44.079 But this ID stamp of 29 stays the same. 00:30:44.080 --> 00:30:47.679 So you can embed that in links and say, 00:30:47.680 --> 00:30:51.719 I want to link to cell 29. 00:30:51.720 --> 00:30:55.999 If I go, let me just go to the K Outliner example. 00:30:56.000 --> 00:30:59.039 And I'll show you one of those, which is really cool. 00:30:59.040 --> 00:31:02.599 Because what you can do is say, I want to link 00:31:02.600 --> 00:31:06.999 Let me find that. It's down here somewhere. 00:31:07.000 --> 00:31:12.199 I think there's 3A. Where was it? Yeah, okay. 00:31:12.200 --> 00:31:16.479 So see right here, this is an internal link 00:31:16.480 --> 00:31:21.200 with just the pound and then the relative ID, as we call it, 3B. 00:31:21.200 --> 00:31:25.719 But of course, somebody may have moved 3B in the outline. 00:31:25.720 --> 00:31:27.919 So when Hyperbole inserts a link, 00:31:27.920 --> 00:31:32.039 it puts this equal with the ID stamp in it automatically. 00:31:32.040 --> 00:31:35.839 So if what'll happen is when I reference this, 00:31:35.840 --> 00:31:37.639 okay, it's still the same. 00:31:37.640 --> 00:31:40.959 But if it had changed, it would update this link 00:31:40.960 --> 00:31:44.759 and would change the 3B to say it was 3D now 00:31:44.760 --> 00:31:50.519 based on this permalink, the 08 that's hidden away in here. 00:31:50.520 --> 00:31:52.439 So you don't have to do anything. 00:31:52.440 --> 00:31:56.599 It's just that you have these automatic hyperlink anchors 00:31:56.600 --> 00:31:58.959 that are embedded in your outlines again. 00:31:58.960 --> 00:32:04.519 sort of like org IDs, but you have to manually place those in org. 00:32:04.520 --> 00:32:09.039 And it just makes linking much simpler. 00:32:09.040 --> 00:32:10.359 And you can reference this. 00:32:10.360 --> 00:32:13.799 You can reference the file and the cell number. 00:32:13.800 --> 00:32:15.999 And again, you don't put this hyperbole. 00:32:16.000 --> 00:32:17.679 You don't put this in. 00:32:17.680 --> 00:32:20.719 And then you can even have these view specs, which say, 00:32:20.720 --> 00:32:25.919 I want to clip the display to one line, 00:32:25.920 --> 00:32:27.399 and I want to delete. ellipses. 00:32:27.400 --> 00:32:31.079 So here we see a view over the same outline 00:32:31.080 --> 00:32:37.319 that's all in one mode. So it's just incredibly capable. 00:32:37.320 --> 00:32:40.079 So here we've said, you know, 00:32:40.080 --> 00:32:42.879 there's no blank lines between cells. 00:32:42.880 --> 00:32:46.719 now I change the view spec and put a blank line in there 00:32:46.720 --> 00:32:51.879 and it's all changed so lots of consistency that you get 00:32:51.880 --> 00:32:55.599 when you when you change a node in the outline 00:32:55.600 --> 00:32:58.799 the whole tree shifts and all of this is maintained 00:32:58.800 --> 00:33:02.839 all of the structure is maintained automatically by hyperbole 00:33:02.840 --> 00:33:09.479 and you can embed or Tables in here as well. 00:33:09.480 --> 00:33:17.079 So if I just press made a return action key again on this or Disabled. 00:33:17.080 --> 00:33:21.799 Okay. So now I enabled org mode here 00:33:21.800 --> 00:33:31.719 and where you see like tab here shifts a cell when I'm inside a The table tab just operates like normal org tables. 00:33:31.720 --> 00:33:33.519 So I can do all of the things 00:33:33.520 --> 00:33:40.839 that I can do in org table mode as well within this k-outline. 00:33:40.840 --> 00:33:43.399 So it seems pretty useful to me, 00:33:43.400 --> 00:33:48.519 but of course, I helped write it. 00:33:48.520 --> 00:33:51.279 But I think you see some of the benefits 00:33:51.280 --> 00:33:53.959 that can accrue by using that format. 00:33:53.960 --> 00:33:57.839 But this is just this is just one piece of hyperbole, 00:33:57.840 --> 00:34:01.559 a major mode that you can choose to use or ignore entirely, 00:34:01.560 --> 00:34:04.039 you know, dependent on your needs. 00:34:04.040 --> 00:34:06.399 If you're writing requirements, documents, 00:34:06.400 --> 00:34:08.879 or anything that needs structure, 00:34:08.880 --> 00:34:12.079 I think that's where this is really ideal. 00:34:12.080 --> 00:34:14.279 You can write a legal document, 00:34:14.280 --> 00:34:16.159 and you've got auto-numbering, 00:34:16.160 --> 00:34:18.679 which is always, if you've ever used Word 00:34:18.680 --> 00:34:21.039 or any of those word processors, 00:34:21.040 --> 00:34:26.479 it's really a pain to maintain those hierarchies in those compared to here. 00:34:26.480 --> 00:34:32.239 Okay, so that was just showing you the KL liner. 00:34:32.240 --> 00:34:35.279 Does anybody have any questions 00:34:35.280 --> 00:34:43.279 or I'll just continue down a bit? 00:34:43.280 --> 00:34:47.999 Okay, so some other capabilities 00:34:48.000 --> 00:34:49.959 that we've fairly recently put in. 00:34:49.960 --> 00:34:52.799 Well, this has been here for a long time. 00:34:52.800 --> 00:34:58.719 You can, I think the binding I use is Control-C-M. 00:34:58.720 --> 00:35:00.159 I forget what it is. 00:35:00.160 --> 00:35:07.159 No, sorry, that's Control-C, Control-M. 00:35:07.160 --> 00:35:14.319 Now let's CTRL C, forward slash. 00:35:14.320 --> 00:35:21.719 Okay, so what I wanted to show you here is that the action key 00:35:21.720 --> 00:35:26.679 on any double quote, single quote, usually, 00:35:26.680 --> 00:35:30.079 or paired delimiters will select that whole thing. 00:35:30.080 --> 00:35:33.239 There is this capability, and I probably just select bigger 00:35:33.240 --> 00:35:35.119 and bigger chunks of text, 00:35:35.120 --> 00:35:39.319 but this is really nice that you can just go anywhere 00:35:39.320 --> 00:35:42.479 in pretty much any mode and hit made a return. 00:35:42.480 --> 00:35:46.559 And so in Lisp, you can be on the trailing paren 00:35:46.560 --> 00:35:50.599 and it will select the whole expression or the opening 00:35:50.600 --> 00:35:52.879 and it'll select just that piece 00:35:52.880 --> 00:35:56.159 but even better when you're copying pasting 00:35:56.160 --> 00:36:02.039 I can now if there's no region selected control W made a W 00:36:02.040 --> 00:36:05.679 will act on the structured entity 00:36:05.680 --> 00:36:09.359 that you're at the beginning or ending delimiter for 00:36:09.360 --> 00:36:12.199 without you having to highlight the region 00:36:12.200 --> 00:36:14.719 So if I hit made a return, it would highlight it, 00:36:14.720 --> 00:36:19.839 but let's just do made a W to cut that and then I'll yank it here. 00:36:19.840 --> 00:36:23.599 And you see it grabbed the whole expression 00:36:23.600 --> 00:36:25.599 and just let you yank it. 00:36:25.600 --> 00:36:29.679 So it's a nice add on to the basic Emacs commands 00:36:29.680 --> 00:36:33.159 that just let you operate a lot more efficiently. 00:36:33.160 --> 00:36:35.359 You can do something similar in C mode. 00:36:35.360 --> 00:36:39.439 You know, on the braces, you can select the whole function 00:36:39.440 --> 00:36:40.439 with one key press, 00:36:40.440 --> 00:36:43.079 made a return, and then copy it somewhere. 00:36:43.080 --> 00:36:50.559 And Hyperbole integrates with Ace Window if you use that. 00:36:50.560 --> 00:36:56.799 So let me split this a few ways. And let's do it over here. 00:36:56.800 --> 00:37:06.799 We'll just go to scratch. Okay. And then I can go, 00:37:06.800 --> 00:37:08.119 it's sort of interesting, 00:37:08.120 --> 00:37:11.120 it works with the, with Dired as well. 00:37:11.120 --> 00:37:16.519 So I can go here and say, I want to So if I do Meta O, 00:37:16.520 --> 00:37:22.159 ACE window will show me the labels to use, A, D, or S, to do something. 00:37:22.160 --> 00:37:24.559 Like I can move to any of those windows. 00:37:24.560 --> 00:37:27.959 But what Hyperbole lets you do 00:37:27.960 --> 00:37:30.759 is say I want to throw with T, 00:37:30.760 --> 00:37:36.399 like this glass.org file over to the bottom window. 00:37:36.400 --> 00:37:42.479 So I go MetaO to invoke it. I say I want a T to throw it. 00:37:42.480 --> 00:37:46.399 then where do I want to throw it to s the window and 00:37:46.400 --> 00:37:49.879 Then you see it's now displaying glass org 00:37:49.880 --> 00:37:56.679 so I can do that with files I can do it with regions of text you can 00:37:56.680 --> 00:37:58.719 Replace things in a buffer 00:37:58.720 --> 00:38:01.199 or throw the whole thing to the window 00:38:01.200 --> 00:38:02.759 so a couple extra commands 00:38:02.760 --> 00:38:06.519 that it extends ace window with you 00:38:06.520 --> 00:38:12.159 can even I think, well, we also have this command, 00:38:12.160 --> 00:38:16.799 I think it's Control-C, yeah. 00:38:16.800 --> 00:38:21.719 So what it did there was it just selected the files 00:38:21.720 --> 00:38:22.799 that I had marked in Dura, 00:38:22.800 --> 00:38:26.839 it selected and created a window grid out of all of them. 00:38:26.840 --> 00:38:29.559 you know, so I hit like three keystrokes. 00:38:29.560 --> 00:38:35.159 That's kind of convenient if you want to see 00:38:35.160 --> 00:38:38.159 a lot of information all at once. 00:38:38.160 --> 00:38:42.239 And so we covered all that. I won't go into it too much, 00:38:42.240 --> 00:38:46.639 but there's a whole nother window and frame control system 00:38:46.640 --> 00:38:50.799 under the screen menu here if you type control HHS. 00:38:50.800 --> 00:38:54.479 then you can select either controlling windows or frames. 00:38:54.480 --> 00:38:56.119 Let's do windows. 00:38:56.120 --> 00:39:00.479 And it has this menu where it's just sort of showing you. 00:39:00.480 --> 00:39:07.839 I can like split my windows vertically or horizontally. 00:39:07.840 --> 00:39:13.759 I can widen by a pixel or I can say, or character. 00:39:13.760 --> 00:39:18.319 I can say, use my prefix argument to change that to 10. 00:39:18.320 --> 00:39:22.479 And then when I shrink it, shrinks it up by 10 00:39:22.480 --> 00:39:27.319 or it narrows it width by 10 or it widens it by 10. 00:39:27.320 --> 00:39:33.679 So it has this concept of prefix arguments that persist 00:39:33.680 --> 00:39:35.719 and you just type in the number 00:39:35.720 --> 00:39:38.359 and then you can issue any number of the commands. 00:39:38.360 --> 00:39:41.679 So you could move windows or frames 00:39:41.680 --> 00:39:44.919 or create them, delete them, cycle through them, 00:39:44.920 --> 00:39:48.279 all sorts of things, including relative to movement, 00:39:48.280 --> 00:39:50.719 relative to the edges of your screens. 00:39:50.720 --> 00:39:52.559 So if you have multiple screens 00:39:52.560 --> 00:39:54.479 and many frames that you use, 00:39:54.480 --> 00:39:59.639 it just makes management very convenient. 00:39:59.640 --> 00:40:02.439 And then you just cue to quit out of there 00:40:02.440 --> 00:40:04.959 and you're back wherever you were. 00:40:04.960 --> 00:40:10.439 So, Finally, we have a lot of documentation. 00:40:10.440 --> 00:40:12.599 This is just a link to the videos, 00:40:12.600 --> 00:40:16.239 which is in the readme and in the manuals. 00:40:16.240 --> 00:40:21.399 There's two demos or tutorials. One to get you started. 00:40:21.400 --> 00:40:24.719 Notice I'm using these implicit buttons, so keystrokes, 00:40:24.720 --> 00:40:26.879 and I can just made a return on that. 00:40:26.880 --> 00:40:30.519 And that takes me to, here's all the videos. 00:40:30.520 --> 00:40:34.239 And you can get started with that 00:40:34.240 --> 00:40:38.279 or just interact with this demo that we have. 00:40:38.280 --> 00:40:41.519 And there's one for the K Outliner as well. 00:40:41.520 --> 00:40:45.399 One of the things that If you're into videos 00:40:45.400 --> 00:40:46.919 and you need to link to them, 00:40:46.920 --> 00:40:50.519 notice what you're seeing here. This is a hyperbole feature 00:40:50.520 --> 00:40:54.919 which is very difficult to achieve any other way that I've seen 00:40:54.920 --> 00:40:59.279 where you want a specific start and stop time 00:40:59.280 --> 00:41:01.039 in a video that you want to play. 00:41:01.040 --> 00:41:05.639 Hyperbole has a built-in link type for that. 00:41:05.640 --> 00:41:08.760 as you see here. So this is the name of the link 00:41:08.760 --> 00:41:10.919 that you can reference it by, 00:41:10.920 --> 00:41:14.279 and then this is the actual link expression. 00:41:14.280 --> 00:41:17.479 So I could just go and play a video right here, 00:41:17.480 --> 00:41:22.079 and this is from one long intro to hyperbole that we did. 00:41:22.080 --> 00:41:25.759 So it's just linking to the specific sections. 00:41:25.760 --> 00:41:27.439 But that's something, again, 00:41:27.440 --> 00:41:29.519 this could be embedded anywhere. 00:41:29.520 --> 00:41:33.759 in any file and it would start to play. 00:41:33.760 --> 00:41:36.559 Uh, I guess I could try YouTube. 00:41:36.560 --> 00:41:43.239 Well, I don't want to. Yeah. Okay. It's on my other screen. 00:41:43.240 --> 00:41:48.199 So, but it did, it did, uh, link to it. 00:41:48.200 --> 00:41:53.319 So, um, yeah, just, you know, tremendous capability 00:41:53.320 --> 00:41:56.919 to interlink your information that way. 00:41:56.920 --> 00:42:00.359 And, uh, You know, again, you learn it bit by bit. 00:42:00.360 --> 00:42:04.279 You can study one particular section right here. 00:42:04.280 --> 00:42:09.039 Just jump directly to that if you want to know about it. 00:42:09.040 --> 00:42:13.319 The manual is interlinked, has an extensive glossary, 00:42:13.320 --> 00:42:16.119 cross-references of sections. 00:42:16.120 --> 00:42:23.119 And if you go in there, this is the hyperlinked manual. 00:42:23.120 --> 00:42:25.119 So this is the structure of it 00:42:25.120 --> 00:42:27.799 with all the subsystems documented. 00:42:27.800 --> 00:42:31.519 But one of the sections we've added 00:42:31.520 --> 00:42:33.559 is developing with hyperbole. 00:42:33.560 --> 00:42:37.319 So if you are or you want to create your own button types, 00:42:37.320 --> 00:42:38.919 this explains how to do it. 00:42:38.920 --> 00:42:42.959 Creating types, you can create your own action 00:42:42.960 --> 00:42:44.999 and implicit button types. 00:42:45.000 --> 00:42:48.359 And if you look in here, there are three ways 00:42:48.360 --> 00:42:55.039 to create implicit button types from simpler to harder. 00:42:55.040 --> 00:42:59.079 So like, here's an example 00:42:59.080 --> 00:43:03.679 where the do pressing control X after this expression 00:43:03.680 --> 00:43:07.199 defines a new action button link type called pilot. 00:43:07.200 --> 00:43:13.359 So let's say, I don't know if I have this set up, but we can try it. 00:43:13.360 --> 00:43:21.999 Yeah, I don't have the variable setup, 00:43:22.000 --> 00:43:25.759 but basically, you know, it can get you. 00:43:25.760 --> 00:43:31.359 This is a one line definition of a new action type. 00:43:31.360 --> 00:43:36.399 that can get you to a Python file 00:43:36.400 --> 00:43:39.639 based on whatever your Python path is set to 00:43:39.640 --> 00:43:42.919 with this simple syntax right here. 00:43:42.920 --> 00:43:45.199 And here we're going to the file. 00:43:45.200 --> 00:43:48.399 So we have no idea where this is on the file system. 00:43:48.400 --> 00:43:54.959 And the same way like if you use man path, Python path, 00:43:54.960 --> 00:44:08.599 you can embed buttons. Let's just go to scratch buffer. 00:44:08.600 --> 00:44:17.919 My first read-only. It doesn't want me to go. 00:44:17.920 --> 00:44:24.999 It must be kind of strange. 00:44:25.000 --> 00:44:34.799 Something with this key window that I have over here. 00:44:34.800 --> 00:44:41.039 Let me just move off there. Look at that. 00:44:41.040 --> 00:44:46.519 Maybe it's just activating that. 00:44:46.520 --> 00:44:53.319 Yeah, it keeps jumping back there. 00:44:53.320 --> 00:44:55.919 I don't know. I have to get this straight. 00:44:55.920 --> 00:45:02.199 Yeah, it's not letting me type the buttons. 00:45:02.200 --> 00:45:15.839 Let me see if I can turn off the key casting. 00:45:15.840 --> 00:45:23.519 Yeah, maybe that'll help. just gonna exit out of here. 00:45:23.520 --> 00:45:32.960 Does anybody have any questions they want to cover? 00:45:33.000 --> 00:45:39.079 I was just gonna show you yeah a little more on type definitions 00:45:39.080 --> 00:45:53.119 if there was any interest OK, there's nobody piping up. 00:45:53.120 --> 00:45:56.999 Let me see if there's any other questions. 00:45:57.000 --> 00:46:04.439 Hi, Bob. I haven't seen any more questions. 00:46:04.440 --> 00:46:10.839 Yeah, so maybe it's you, me, and someone called Max is here in the channel. 00:46:10.840 --> 00:46:19.479 OK. Okay, so if Max doesn't have any questions 00:46:19.480 --> 00:46:24.839 and there aren't other people, we can just end it there. 00:46:24.840 --> 00:46:34.479 I don't want to have an audience of zero or talk to that. 00:46:34.480 --> 00:46:37.919 So, but I think that was a good overview, Max, right? 00:46:37.920 --> 00:46:45.479 Yes, definitely covered a lot in a short time. 00:46:45.480 --> 00:46:48.639 And hopefully, you know, just try it out. 00:46:48.640 --> 00:46:52.399 At the top here, it shows you how to install it. 00:46:52.400 --> 00:46:56.559 It's pretty simple, basic package and installation. 00:46:56.560 --> 00:47:02.719 And we're happy to help anybody get started if they need to. 00:47:02.720 --> 00:47:05.199 So thanks, everyone. 00:47:05.200 --> 00:47:09.279 And we'll answer any further questions on the Etherpad after this.