From b98df6fbe2a5c48013cfca81a95a5af41e202d07 Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Sun, 13 Dec 2020 00:06:32 -0500 Subject: Actually post subtitles, I think --- ...applications-with-eaf--matthew-zeng-autogen.vtt | 1714 ++++++++++++++++++++ 1 file changed, 1714 insertions(+) create mode 100644 2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt (limited to '2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt') diff --git a/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt new file mode 100644 index 00000000..d9a406f9 --- /dev/null +++ b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.vtt @@ -0,0 +1,1714 @@ +WEBVTT + +00:00:03.600 --> 00:00:04.560 +hello + +00:00:04.560 --> 00:00:06.720 +hopefully everyone is staying safe and + +00:00:06.720 --> 00:00:08.000 +staying home + +00:00:08.000 --> 00:00:10.000 +I feel very grateful to live in a world + +00:00:10.000 --> 00:00:12.000 +today that technology and free software + +00:00:12.000 --> 00:00:13.759 +can be leveraged to connect people in + +00:00:13.759 --> 00:00:16.080 +such disconnected and difficult times + +00:00:16.080 --> 00:00:17.840 +and to have an online conference like + +00:00:17.840 --> 00:00:19.920 +this hopefully you've all + +00:00:19.920 --> 00:00:22.960 +enjoyed this year's Emacs con so far + +00:00:22.960 --> 00:00:24.720 +many thanks to all the people that made + +00:00:24.720 --> 00:00:26.880 +this possible + +00:00:26.880 --> 00:00:30.000 +anyways welcome to my talk extend Emacs + +00:00:30.000 --> 00:00:30.960 +to modern gui + +00:00:30.960 --> 00:00:34.079 +applications with eaf the imax + +00:00:34.079 --> 00:00:35.920 +application framework + +00:00:35.920 --> 00:00:38.320 +this will be my first ever talk so + +00:00:38.320 --> 00:00:39.840 +apologies for my + +00:00:39.840 --> 00:00:43.280 +inexperience let us begin + +00:00:43.280 --> 00:00:46.559 +about me my name is matthew zing you can + +00:00:46.559 --> 00:00:47.840 +also call me mt + +00:00:47.840 --> 00:00:50.640 +or mindu I'm a chinese canadian living + +00:00:50.640 --> 00:00:51.440 +in toronto + +00:00:51.440 --> 00:00:54.239 +ontario offline I'm an undergrad + +00:00:54.239 --> 00:00:56.079 +studying mathematics at the university + +00:00:56.079 --> 00:00:57.760 +of urudu + +00:00:57.760 --> 00:01:00.480 +online I mean one of the admins of the + +00:01:00.480 --> 00:01:03.039 +Emacs china + +00:01:03.039 --> 00:01:06.320 +the largest Emacs forum in china so + +00:01:06.320 --> 00:01:08.080 +to all chinese listen to my talk right + +00:01:08.080 --> 00:01:10.960 +now feel free to check it out + +00:01:10.960 --> 00:01:14.320 +and this is a link to my github profile + +00:01:14.320 --> 00:01:17.280 +to my projects I'm involving one's me + +00:01:17.280 --> 00:01:18.240 +max which is + +00:01:18.240 --> 00:01:20.159 +I'm the author of a user-friendly + +00:01:20.159 --> 00:01:21.840 +full-featured image configuration + +00:01:21.840 --> 00:01:22.799 +distribution + +00:01:22.799 --> 00:01:25.040 +it is what I'm using right now as well + +00:01:25.040 --> 00:01:26.880 +as the imax application filter + +00:01:26.880 --> 00:01:29.119 +which I help to maintain along with the + +00:01:29.119 --> 00:01:30.400 +other other + +00:01:30.400 --> 00:01:33.040 +lazy cat which of course is today's + +00:01:33.040 --> 00:01:35.759 +topic + +00:01:35.759 --> 00:01:38.720 +so as you might all might have already + +00:01:38.720 --> 00:01:40.960 +noticed I'm currently using Emacs + +00:01:40.960 --> 00:01:43.600 +and oh and opening navigating closing + +00:01:43.600 --> 00:01:45.360 +all these websites that are rendered + +00:01:45.360 --> 00:01:46.159 +properly + +00:01:46.159 --> 00:01:49.200 +or within Emacs it's all thanks to the + +00:01:49.200 --> 00:01:51.840 +ef project + +00:01:51.840 --> 00:01:54.000 +so we're living in a society that's + +00:01:54.000 --> 00:01:55.920 +heavily dependent on the internet + +00:01:55.920 --> 00:01:59.520 +and multimedia it is unavoidable to run + +00:01:59.520 --> 00:02:01.200 +to some occasion that you need to + +00:02:01.200 --> 00:02:02.880 +open a fancy website that uses + +00:02:02.880 --> 00:02:04.799 +javascript and css + +00:02:04.799 --> 00:02:08.239 +or you need to watch some videos however + +00:02:08.239 --> 00:02:11.120 +due to the nature and history of Emacs + +00:02:11.120 --> 00:02:11.840 +it cannot + +00:02:11.840 --> 00:02:13.840 +render all these modern graphics + +00:02:13.840 --> 00:02:16.400 +effectively and efficiently + +00:02:16.400 --> 00:02:19.360 +Emacs is solely a text-based editing + +00:02:19.360 --> 00:02:20.400 +environment + +00:02:20.400 --> 00:02:23.520 +and I argue that this is not a bad thing + +00:02:23.520 --> 00:02:25.680 +in fact it is one of the reasons that me + +00:02:25.680 --> 00:02:27.760 +and I believe many of you as well + +00:02:27.760 --> 00:02:29.760 +are attracted to Emacs in the first + +00:02:29.760 --> 00:02:30.879 +place + +00:02:30.879 --> 00:02:33.760 +unfortunately this results in us having + +00:02:33.760 --> 00:02:35.680 +to open a dedicated web browser to + +00:02:35.680 --> 00:02:37.040 +browse the internet + +00:02:37.040 --> 00:02:38.879 +open a dedicated video player to watch + +00:02:38.879 --> 00:02:41.440 +some videos or a pdf render to read some + +00:02:41.440 --> 00:02:42.640 +documents + +00:02:42.640 --> 00:02:45.200 +so far ems cannot do all these tasks on + +00:02:45.200 --> 00:02:46.000 +its own + +00:02:46.000 --> 00:02:48.080 +but can only be achieved using other + +00:02:48.080 --> 00:02:51.519 +external applications + +00:02:51.519 --> 00:02:55.840 +so the other the author manatee lazy cat + +00:02:55.840 --> 00:02:58.640 +or lazy cat in short didn't want to use + +00:02:58.640 --> 00:03:00.560 +all these external applications + +00:03:00.560 --> 00:03:03.120 +he wanted to have an uninterrupted e-max + +00:03:03.120 --> 00:03:04.159 +experience + +00:03:04.159 --> 00:03:07.280 +he wanted to truly live in e-max + +00:03:07.280 --> 00:03:10.080 +however it would be a lot of work to + +00:03:10.080 --> 00:03:11.040 +build this + +00:03:11.040 --> 00:03:13.519 +modern application from scratch there's + +00:03:13.519 --> 00:03:16.239 +simply no time or research to do that + +00:03:16.239 --> 00:03:18.800 +so lazy car without utilizing existing + +00:03:18.800 --> 00:03:20.400 +applications + +00:03:20.400 --> 00:03:22.319 +and to try to make it collaborate with + +00:03:22.319 --> 00:03:24.959 +Emacs there are many solutions available + +00:03:24.959 --> 00:03:26.000 +one of it + +00:03:26.000 --> 00:03:28.560 +is the e-max x windows manager and I'm + +00:03:28.560 --> 00:03:30.159 +sure a lot of you already know that + +00:03:30.159 --> 00:03:33.360 +the exwm however it didn't work for him + +00:03:33.360 --> 00:03:35.200 +because although ux doubling opens the + +00:03:35.200 --> 00:03:37.440 +door to use other applications within + +00:03:37.440 --> 00:03:38.239 +Emacs + +00:03:38.239 --> 00:03:40.879 +it as a fine window manager cannot + +00:03:40.879 --> 00:03:41.519 +modify + +00:03:41.519 --> 00:03:43.920 +customize or extend other software from + +00:03:43.920 --> 00:03:45.040 +Emacs + +00:03:45.040 --> 00:03:46.799 +for example it cannot modify the + +00:03:46.799 --> 00:03:48.480 +behavior when you press a key in + +00:03:48.480 --> 00:03:49.599 +chromium or + +00:03:49.599 --> 00:03:52.159 +pdf viewer therefore it cannot utilize + +00:03:52.159 --> 00:03:54.000 +the rich emax ecosystem that's been + +00:03:54.000 --> 00:03:57.360 +growing for almost 40 years + +00:03:57.360 --> 00:04:00.720 +on the other hand in the ef browser so + +00:04:00.720 --> 00:04:03.760 +if you mx ef open + +00:04:03.760 --> 00:04:07.200 +browser with history you can see + +00:04:07.200 --> 00:04:09.840 +on the lower half of my screen a list of + +00:04:09.840 --> 00:04:11.920 +histories sorted by my personal + +00:04:11.920 --> 00:04:14.560 +most visited sites and you can search + +00:04:14.560 --> 00:04:16.560 +for a site that you've been + +00:04:16.560 --> 00:04:19.440 +into or search for some keyword and in a + +00:04:19.440 --> 00:04:21.840 +search engine + +00:04:21.840 --> 00:04:24.240 +so this is all achieved by utilizing the + +00:04:24.240 --> 00:04:25.919 +popular completion framework in the + +00:04:25.919 --> 00:04:29.280 +Emacs ecosystem + +00:04:29.280 --> 00:04:31.120 +so this car decided to develop a + +00:04:31.120 --> 00:04:33.680 +solution of its own in 2018 + +00:04:33.680 --> 00:04:36.960 +namely the eaf project so I joined the + +00:04:36.960 --> 00:04:40.840 +development last year + +00:04:40.840 --> 00:04:44.000 +2019 ef is + +00:04:44.000 --> 00:04:47.880 +a highly customizable and extensible + +00:04:47.880 --> 00:04:49.759 +reapplication framework that extends + +00:04:49.759 --> 00:04:52.160 +imax to graphical capabilities using pi + +00:04:52.160 --> 00:04:57.840 +qd5 and it is not a window manager + +00:04:57.840 --> 00:05:02.479 +alright so in the readme you can see a + +00:05:02.479 --> 00:05:03.440 +list of gifs + +00:05:03.440 --> 00:05:05.600 +showcasing all the available ef + +00:05:05.600 --> 00:05:06.720 +applications + +00:05:06.720 --> 00:05:09.520 +a browser a markdown premier a video + +00:05:09.520 --> 00:05:10.960 +player + +00:05:10.960 --> 00:05:14.240 +a pdf viewer and more today I don't have + +00:05:14.240 --> 00:05:16.160 +enough time to demonstrate each one of + +00:05:16.160 --> 00:05:16.560 +them + +00:05:16.560 --> 00:05:18.720 +but I will select a couple applications + +00:05:18.720 --> 00:05:21.120 +to show you + +00:05:21.120 --> 00:05:24.240 +so since we are already using ef browser + +00:05:24.240 --> 00:05:27.840 +we'll start with this besides using the + +00:05:27.840 --> 00:05:29.600 +classic control n control p + +00:05:29.600 --> 00:05:32.000 +you can also use the vim style xjkl to + +00:05:32.000 --> 00:05:33.840 +move up or down + +00:05:33.840 --> 00:05:36.320 +also meta shift comma or g to the + +00:05:36.320 --> 00:05:37.280 +beginning of page + +00:05:37.280 --> 00:05:39.120 +when that shift period or capital g to + +00:05:39.120 --> 00:05:41.199 +the end of page + +00:05:41.199 --> 00:05:44.320 +limiting and surfing keys linear and + +00:05:44.320 --> 00:05:46.479 +surfing keys are popular keyboard-based + +00:05:46.479 --> 00:05:48.400 +browsing techniques in chrome + +00:05:48.400 --> 00:05:50.479 +and they've imported here as well you + +00:05:50.479 --> 00:05:52.720 +can press f to toggle markers pointing + +00:05:52.720 --> 00:05:53.039 +to + +00:05:53.039 --> 00:05:55.280 +all the links in the current page say I + +00:05:55.280 --> 00:05:56.960 +want to visit the wiki + +00:05:56.960 --> 00:05:59.680 +which comes very very handy when you + +00:05:59.680 --> 00:06:02.400 +want to configure ef to your liking + +00:06:02.400 --> 00:06:04.720 +so you see the marker on top of wiki is + +00:06:04.720 --> 00:06:05.440 +dd + +00:06:05.440 --> 00:06:08.479 +press dd and you enter and now + +00:06:08.479 --> 00:06:10.240 +you will navigate it to this link so you + +00:06:10.240 --> 00:06:13.840 +don't need to use your mouse at all + +00:06:13.840 --> 00:06:16.560 +so a full list of key bindings can be + +00:06:16.560 --> 00:06:17.680 +found when you + +00:06:17.680 --> 00:06:20.560 +control hm just as any other max major + +00:06:20.560 --> 00:06:21.199 +mode + +00:06:21.199 --> 00:06:22.960 +so you don't have to remember everything + +00:06:22.960 --> 00:06:25.600 +all the key bindings I said to you + +00:06:25.600 --> 00:06:28.560 +so this is a global binding application + +00:06:28.560 --> 00:06:30.960 +to every other ef application as well + +00:06:30.960 --> 00:06:34.319 +so you can find it under the week or or + +00:06:34.319 --> 00:06:36.720 +you can find it under the wiki in the + +00:06:36.720 --> 00:06:37.600 +key binding + +00:06:37.600 --> 00:06:40.639 +section so press f again and use + +00:06:40.639 --> 00:06:44.240 +ns press enter now you're in the key + +00:06:44.240 --> 00:06:45.600 +binding web page + +00:06:45.600 --> 00:06:47.520 +you can see all of the key buttons + +00:06:47.520 --> 00:06:49.280 +available in every + +00:06:49.280 --> 00:06:53.919 +es application and you can try them out + +00:06:53.919 --> 00:06:56.479 +and you can customize your key bindings + +00:06:56.479 --> 00:06:57.360 +using ef + +00:06:57.360 --> 00:07:00.240 +bank key you can customize control n as + +00:07:00.240 --> 00:07:02.960 +in the web page to + +00:07:02.960 --> 00:07:05.759 +to scroll up in the ef pdf viewer or you + +00:07:05.759 --> 00:07:06.639 +can unbind + +00:07:06.639 --> 00:07:09.599 +an existing binding using using yet bank + +00:07:09.599 --> 00:07:10.000 +key + +00:07:10.000 --> 00:07:14.840 +binder to new so it doesn't bind to + +00:07:14.840 --> 00:07:16.160 +anything + +00:07:16.160 --> 00:07:20.319 +okay so here comes the important part + +00:07:20.319 --> 00:07:22.479 +if you want to customize ef you should + +00:07:22.479 --> 00:07:25.440 +visit the customization page in the wiki + +00:07:25.440 --> 00:07:28.840 +so now I press meta b to go back in + +00:07:28.840 --> 00:07:30.240 +history and + +00:07:30.240 --> 00:07:32.960 +go to the customization package press f + +00:07:32.960 --> 00:07:34.080 +press a d + +00:07:34.080 --> 00:07:36.639 +enter and now we're in the customization + +00:07:36.639 --> 00:07:37.360 +page + +00:07:37.360 --> 00:07:39.280 +so the first customization option you + +00:07:39.280 --> 00:07:42.639 +see is dark mode + +00:07:42.639 --> 00:07:44.479 +let's say if you want to turn on the doc + +00:07:44.479 --> 00:07:46.720 +mode for ef browser + +00:07:46.720 --> 00:07:48.479 +and you don't want to use your mouse to + +00:07:48.479 --> 00:07:49.919 +do all this stuff + +00:07:49.919 --> 00:07:53.360 +you press c and you can select + +00:07:53.360 --> 00:07:55.840 +c to toggle the correct browsing you can + +00:07:55.840 --> 00:07:58.240 +see a lot of markers available + +00:07:58.240 --> 00:08:01.280 +pop um again but they're not they're not + +00:08:01.280 --> 00:08:02.720 +on top of links but instead of + +00:08:02.720 --> 00:08:03.599 +paragraphs + +00:08:03.599 --> 00:08:05.360 +you select the paragraph or your choice + +00:08:05.360 --> 00:08:06.639 +in this case you want + +00:08:06.639 --> 00:08:10.240 +ls which comes here + +00:08:10.240 --> 00:08:12.720 +and then you just you just move the + +00:08:12.720 --> 00:08:15.120 +cursor like what you always do + +00:08:15.120 --> 00:08:18.800 +in Emacs and now you select everything + +00:08:18.800 --> 00:08:23.280 +and use meta w to + +00:08:23.280 --> 00:08:25.680 +excuse me metadata to copy the taste the + +00:08:25.680 --> 00:08:26.479 +text + +00:08:26.479 --> 00:08:29.199 +now we made a shift column to evaluate + +00:08:29.199 --> 00:08:30.960 +what we just copied + +00:08:30.960 --> 00:08:35.120 +and set that to true and + +00:08:35.120 --> 00:08:38.320 +press r or f5 to refresh the page + +00:08:38.320 --> 00:08:42.159 +voila we have the dark mode enabled + +00:08:42.159 --> 00:08:44.880 +so there are well let's take a toggle + +00:08:44.880 --> 00:08:46.160 +back off for now + +00:08:46.160 --> 00:08:49.360 +now we made our shift column again + +00:08:49.360 --> 00:08:51.600 +and we find the the one we just used and + +00:08:51.600 --> 00:08:53.519 +change it back to false + +00:08:53.519 --> 00:08:56.880 +and refresh the page back in the light + +00:08:56.880 --> 00:08:59.360 +mode + +00:08:59.360 --> 00:09:02.160 +so there are many other customization + +00:09:02.160 --> 00:09:03.680 +options available you can either + +00:09:03.680 --> 00:09:05.920 +evaluate like what we just did or add it + +00:09:05.920 --> 00:09:08.000 +to your Emacs configuration file + +00:09:08.000 --> 00:09:11.680 +so in this wiki you can have you can + +00:09:11.680 --> 00:09:14.399 +you can make the ef browser to to + +00:09:14.399 --> 00:09:16.320 +continue where you left off + +00:09:16.320 --> 00:09:20.160 +similar to the chromium setting + +00:09:20.160 --> 00:09:22.800 +and you can make yes the default browser + +00:09:22.800 --> 00:09:23.839 +Emacs by + +00:09:23.839 --> 00:09:26.720 +aliasing aliasing browse web to your + +00:09:26.720 --> 00:09:27.680 +open browser + +00:09:27.680 --> 00:09:30.399 +or or set the browse url browser + +00:09:30.399 --> 00:09:31.200 +function to + +00:09:31.200 --> 00:09:33.519 +open browser there's just some tricks + +00:09:33.519 --> 00:09:34.480 +and there are also + +00:09:34.480 --> 00:09:37.920 +uh an experimental app blocker currently + +00:09:37.920 --> 00:09:41.680 +take in place and so therefore it can + +00:09:41.680 --> 00:09:44.720 +block some elements but not all so + +00:09:44.720 --> 00:09:47.279 +we we really encourage people to help us + +00:09:47.279 --> 00:09:48.240 +test out and + +00:09:48.240 --> 00:09:51.440 +add more conditions in + +00:09:51.440 --> 00:09:54.560 +so you can so the ef browser is able to + +00:09:54.560 --> 00:09:55.760 +download + +00:09:55.760 --> 00:09:57.680 +any files from the internet and it will + +00:09:57.680 --> 00:09:59.920 +be downloaded using + +00:09:59.920 --> 00:10:04.000 +a area too and + +00:10:04.000 --> 00:10:06.079 +you can also customize the ef browser + +00:10:06.079 --> 00:10:07.200 +download path + +00:10:07.200 --> 00:10:11.120 +using ef set so it's a function that we + +00:10:11.120 --> 00:10:14.399 +defined similar to set the normal set we + +00:10:14.399 --> 00:10:15.040 +know + +00:10:15.040 --> 00:10:16.480 +so by default the download file is + +00:10:16.480 --> 00:10:18.160 +stored in your home directory slash + +00:10:18.160 --> 00:10:19.600 +downloads + +00:10:19.600 --> 00:10:20.800 +and you can change that whenever you + +00:10:20.800 --> 00:10:22.720 +want you can also disable + +00:10:22.720 --> 00:10:26.079 +saving browsing history so remember + +00:10:26.079 --> 00:10:28.959 +when I press when I use mx you have open + +00:10:28.959 --> 00:10:30.480 +browser's history I see all the + +00:10:30.480 --> 00:10:32.079 +histories here but if you want more + +00:10:32.079 --> 00:10:33.680 +privacy you don't want that to be + +00:10:33.680 --> 00:10:35.360 +available at all you can turn it off + +00:10:35.360 --> 00:10:36.560 +easily with ef + +00:10:36.560 --> 00:10:38.720 +set queue and set that remember history + +00:10:38.720 --> 00:10:40.640 +to false + +00:10:40.640 --> 00:10:42.399 +you can also say your default search + +00:10:42.399 --> 00:10:43.839 +engine so + +00:10:43.839 --> 00:10:47.200 +so right now we have google although + +00:10:47.200 --> 00:10:50.480 +not not really good but google and also + +00:10:50.480 --> 00:10:53.600 +go which is a better search engine + +00:10:53.600 --> 00:10:57.360 +well uh yeah ethically better search + +00:10:57.360 --> 00:10:59.360 +engine + +00:10:59.360 --> 00:11:02.560 +so you can also configure + +00:11:02.560 --> 00:11:05.040 +the zoom so the default zoom of your + +00:11:05.040 --> 00:11:07.600 +browser is 1.0 so you can convert + +00:11:07.600 --> 00:11:10.000 +convert 3000 to 1.25 so you can so when + +00:11:10.000 --> 00:11:11.920 +you open any web page about it will be + +00:11:11.920 --> 00:11:14.079 +zoomed + +00:11:14.079 --> 00:11:17.360 +by default uh you can + +00:11:17.360 --> 00:11:20.399 +also disable javascript although I + +00:11:20.399 --> 00:11:22.240 +personally don't really suggest you to + +00:11:22.240 --> 00:11:23.440 +do because it will + +00:11:23.440 --> 00:11:26.240 +basically break a lot of our features + +00:11:26.240 --> 00:11:28.480 +because a lot of the browser browser + +00:11:28.480 --> 00:11:29.519 +related features + +00:11:29.519 --> 00:11:33.760 +must be implemented using javascript + +00:11:33.760 --> 00:11:35.440 +but yeah you can do it if you really + +00:11:35.440 --> 00:11:37.920 +want to and there also some + +00:11:37.920 --> 00:11:41.519 +customization on ef camera + +00:11:41.519 --> 00:11:47.760 +you can do as well yeah + +00:11:47.760 --> 00:11:52.399 +so uh let's move on to efpd viewer + +00:11:52.399 --> 00:11:56.079 +so now now let's open + +00:11:56.079 --> 00:11:59.440 +the pdf file using af + +00:11:59.440 --> 00:12:01.519 +so that's one something already here but + +00:12:01.519 --> 00:12:02.720 +let's open it here + +00:12:02.720 --> 00:12:06.079 +so yes open and + +00:12:06.079 --> 00:12:08.160 +select introduction to programming in + +00:12:08.160 --> 00:12:11.440 +e-max list + +00:12:11.440 --> 00:12:13.760 +uh I have it already open but it's okay + +00:12:13.760 --> 00:12:17.040 +so you have the file + +00:12:17.040 --> 00:12:20.160 +you have other files displayed + +00:12:20.160 --> 00:12:22.800 +you have all the pages display story yes + +00:12:22.800 --> 00:12:23.200 +and + +00:12:23.200 --> 00:12:27.040 +there are 273 pages in total but notice + +00:12:27.040 --> 00:12:29.279 +like how fast it is to browse + +00:12:29.279 --> 00:12:31.440 +all the pages it is blazingly fast + +00:12:31.440 --> 00:12:33.519 +that's all thanks to python and + +00:12:33.519 --> 00:12:37.040 +mupdf which you don't really get from + +00:12:37.040 --> 00:12:40.880 +Emacs list + +00:12:40.880 --> 00:12:43.600 +so let's say if I want to jump to page + +00:12:43.600 --> 00:12:44.079 +50 + +00:12:44.079 --> 00:12:48.639 +we press p and enter 50. + +00:12:48.639 --> 00:12:53.279 +50 and here we are we are at page 50. + +00:12:53.279 --> 00:12:55.440 +you can look at the lower right to + +00:12:55.440 --> 00:12:58.880 +verify the page you're on + +00:12:58.880 --> 00:13:02.079 +and you can you can + +00:13:02.079 --> 00:13:05.120 +use I to toggle dark mode + +00:13:05.120 --> 00:13:07.839 +as expected and let's say you want to + +00:13:07.839 --> 00:13:08.240 +find + +00:13:08.240 --> 00:13:11.519 +table of contents so use ctrl s + +00:13:11.519 --> 00:13:15.680 +the image default binding for I search + +00:13:15.680 --> 00:13:19.360 +and search for a table of contents + +00:13:19.360 --> 00:13:21.680 +here we are it is highlighted for you + +00:13:21.680 --> 00:13:23.120 +and you can control s for more but + +00:13:23.120 --> 00:13:24.240 +there's only one or + +00:13:24.240 --> 00:13:27.200 +one match one other one you ctrl g to + +00:13:27.200 --> 00:13:28.800 +disable the highlight + +00:13:28.800 --> 00:13:30.880 +and you see a lot of options for you to + +00:13:30.880 --> 00:13:32.320 +go + +00:13:32.320 --> 00:13:35.040 +okay let's say if you want to go to the + +00:13:35.040 --> 00:13:36.240 +preface + +00:13:36.240 --> 00:13:39.519 +so that is you press f which which is + +00:13:39.519 --> 00:13:40.639 +also similar to + +00:13:40.639 --> 00:13:44.240 +eef browser you press f for vimeo + +00:13:44.240 --> 00:13:47.760 +and you see the marker now change to w + +00:13:47.760 --> 00:13:50.160 +press wn and then you can go to the + +00:13:50.160 --> 00:13:51.279 +prefix + +00:13:51.279 --> 00:13:54.320 +now we'll add a prefix + +00:13:54.320 --> 00:13:56.480 +so now you finish reading you want to + +00:13:56.480 --> 00:13:57.600 +save your progress + +00:13:57.600 --> 00:13:59.440 +no worries it is already saved for you + +00:13:59.440 --> 00:14:01.199 +by ef you can safely + +00:14:01.199 --> 00:14:04.240 +close the document using x + +00:14:04.240 --> 00:14:07.519 +and opening again af + +00:14:07.519 --> 00:14:10.560 +open and the file see your I + +00:14:10.560 --> 00:14:14.000 +preface again so you're right at where + +00:14:14.000 --> 00:14:16.560 +you let up left up + +00:14:16.560 --> 00:14:19.440 +you can also use mx org store link or + +00:14:19.440 --> 00:14:20.480 +ctrl cl + +00:14:20.480 --> 00:14:23.279 +which I prefer to if you want to save a + +00:14:23.279 --> 00:14:24.480 +particular page in + +00:14:24.480 --> 00:14:28.240 +a orgmo file so now + +00:14:28.240 --> 00:14:30.320 +I go back to my presentation now I don't + +00:14:30.320 --> 00:14:31.760 +need this anymore + +00:14:31.760 --> 00:14:35.600 +uh so you just control c control l + +00:14:35.600 --> 00:14:39.120 +or I think mx or insert link + +00:14:39.120 --> 00:14:41.040 +so you can find the file right here and + +00:14:41.040 --> 00:14:42.399 +you press enter + +00:14:42.399 --> 00:14:44.320 +and you press enter for the description + +00:14:44.320 --> 00:14:46.480 +again and now it's right here + +00:14:46.480 --> 00:14:50.720 +and ctrl c ctrl o to open it voila + +00:14:50.720 --> 00:14:54.000 +you're back right so + +00:14:54.000 --> 00:14:57.120 +let's now demonstrate the ef video + +00:14:57.120 --> 00:14:58.880 +player + +00:14:58.880 --> 00:15:02.639 +so mxef open if you use ef open whenever + +00:15:02.639 --> 00:15:03.279 +you want to + +00:15:03.279 --> 00:15:06.079 +open some file you use yet open browser + +00:15:06.079 --> 00:15:07.279 +if you want to use some + +00:15:07.279 --> 00:15:09.920 +actual application that's not really + +00:15:09.920 --> 00:15:11.199 +related to a file + +00:15:11.199 --> 00:15:14.800 +so you have open and select the video + +00:15:14.800 --> 00:15:15.600 +you want so + +00:15:15.600 --> 00:15:18.320 +video demo so I already have a video + +00:15:18.320 --> 00:15:19.040 +demo + +00:15:19.040 --> 00:15:21.839 +ready so because I recorded a video of + +00:15:21.839 --> 00:15:22.720 +the demo + +00:15:22.720 --> 00:15:26.000 +of the ef camera have a look so + +00:15:26.000 --> 00:15:28.079 +let's move to the beginning hello people + +00:15:28.079 --> 00:15:29.279 +from the future + +00:15:29.279 --> 00:15:32.399 +this is a demo of the ef video player + +00:15:32.399 --> 00:15:35.199 +that demos the ef camera feature + +00:15:35.199 --> 00:15:37.440 +so as you can see on the screen of me + +00:15:37.440 --> 00:15:38.639 +inside my camera + +00:15:38.639 --> 00:15:40.959 +and the screen is actually with all + +00:15:40.959 --> 00:15:42.880 +within Emacs + +00:15:42.880 --> 00:15:46.079 +right so and you can open this + +00:15:46.079 --> 00:15:49.839 +using here open camera + +00:15:49.839 --> 00:15:53.040 +and which I'm already into and you can + +00:15:53.040 --> 00:15:53.600 +press + +00:15:53.600 --> 00:15:56.720 +p to capture a photo + +00:15:56.720 --> 00:15:59.680 +so the photo is by default stored at + +00:15:59.680 --> 00:16:00.880 +your home slash + +00:16:00.880 --> 00:16:03.920 +downloads directory and you can modify + +00:16:03.920 --> 00:16:04.320 +it + +00:16:04.320 --> 00:16:07.839 +freely so if you go here and you can see + +00:16:07.839 --> 00:16:09.519 +the camera stored + +00:16:09.519 --> 00:16:13.759 +right here so why what I used here + +00:16:13.759 --> 00:16:16.240 +so you press space to pause what I used + +00:16:16.240 --> 00:16:17.120 +here is + +00:16:17.120 --> 00:16:20.320 +the year so ef open this entire so + +00:16:20.320 --> 00:16:22.959 +basically so in direct you you go to you + +00:16:22.959 --> 00:16:23.839 +you select + +00:16:23.839 --> 00:16:26.959 +the file that should be opened by + +00:16:26.959 --> 00:16:30.320 +eaf and I use that so it it detects that + +00:16:30.320 --> 00:16:32.720 +it wants to use the ef image viewer so + +00:16:32.720 --> 00:16:35.839 +I accidentally tested if image viewer + +00:16:35.839 --> 00:16:39.759 +before I noticed so that that that gives + +00:16:39.759 --> 00:16:40.240 +the + +00:16:40.240 --> 00:16:43.680 +image of the photo I just took + +00:16:43.680 --> 00:16:47.040 +using ef camera and as you can see you + +00:16:47.040 --> 00:16:47.360 +can + +00:16:47.360 --> 00:16:50.720 +I can use hl the bim button to navigate + +00:16:50.720 --> 00:16:51.600 +in the time + +00:16:51.600 --> 00:16:55.920 +timestamp in the video and I can use + +00:16:55.920 --> 00:17:02.320 +jk to to change the volumes of the video + +00:17:02.320 --> 00:17:05.520 +alright so now you've seen all the basic + +00:17:05.520 --> 00:17:06.160 +usages + +00:17:06.160 --> 00:17:08.720 +of the ef project it comes the question + +00:17:08.720 --> 00:17:11.600 +of what is the magic behind it + +00:17:11.600 --> 00:17:14.559 +all right let's open the hacking page in + +00:17:14.559 --> 00:17:15.919 +the wiki + +00:17:15.919 --> 00:17:20.400 +the design is laid out in a diagram here + +00:17:20.400 --> 00:17:25.120 +so and let's put it + +00:17:25.120 --> 00:17:27.839 +side by side along with my text so you + +00:17:27.839 --> 00:17:28.160 +can + +00:17:28.160 --> 00:17:32.320 +go we can follow through + +00:17:32.320 --> 00:17:36.080 +right okay let me + +00:17:36.080 --> 00:17:42.320 +sorry let me drink some water + +00:17:42.320 --> 00:17:46.000 +so this page in the wiki went into a lot + +00:17:46.000 --> 00:17:48.160 +of detail + +00:17:48.160 --> 00:17:49.520 +due to the time constraint I will just + +00:17:49.520 --> 00:17:51.679 +rephrase some of the ideas here so for + +00:17:51.679 --> 00:17:53.520 +anyone interested please have a look at + +00:17:53.520 --> 00:17:55.600 +the wiki yourself + +00:17:55.600 --> 00:17:58.160 +the easiest way to think about eaf is + +00:17:58.160 --> 00:17:58.720 +that + +00:17:58.720 --> 00:18:01.679 +the actual gui application is started in + +00:18:01.679 --> 00:18:02.960 +the background + +00:18:02.960 --> 00:18:04.960 +then the frame of the application is + +00:18:04.960 --> 00:18:07.120 +attached to the appropriate location on + +00:18:07.120 --> 00:18:07.679 +the + +00:18:07.679 --> 00:18:10.720 +Emacs window so + +00:18:10.720 --> 00:18:13.440 +you have linked qt5 with Emacs using + +00:18:13.440 --> 00:18:14.960 +list and python + +00:18:14.960 --> 00:18:17.120 +of the python site which is colored + +00:18:17.120 --> 00:18:18.640 +yellow in the image + +00:18:18.640 --> 00:18:20.559 +you have two graphics view and queue + +00:18:20.559 --> 00:18:22.960 +graphics scene objects + +00:18:22.960 --> 00:18:25.039 +these are used to simulate the e-max + +00:18:25.039 --> 00:18:26.640 +window buffer design + +00:18:26.640 --> 00:18:28.640 +where q graphics scene is similar to + +00:18:28.640 --> 00:18:29.840 +buffers in Emacs + +00:18:29.840 --> 00:18:31.840 +it controls the state and the content + +00:18:31.840 --> 00:18:34.240 +details of the application + +00:18:34.240 --> 00:18:39.039 +well q graphics view is similar to + +00:18:39.039 --> 00:18:41.200 +geographic view is similar to imax + +00:18:41.200 --> 00:18:43.200 +window it populates the buffer + +00:18:43.200 --> 00:18:45.919 +to graphics scene to the full program at + +00:18:45.919 --> 00:18:46.960 +the appropriate + +00:18:46.960 --> 00:18:50.320 +position whenever an ef mode buffer + +00:18:50.320 --> 00:18:57.679 +brings to a background + +00:18:57.679 --> 00:18:59.679 +whenever an ef mode buffer brings to the + +00:18:59.679 --> 00:19:00.880 +foreground sorry + +00:19:00.880 --> 00:19:02.559 +a queue graphics view instance is + +00:19:02.559 --> 00:19:05.120 +created and whenever the buffer goes to + +00:19:05.120 --> 00:19:06.080 +the background + +00:19:06.080 --> 00:19:08.000 +the q graphics view instance is then + +00:19:08.000 --> 00:19:09.120 +deleted + +00:19:09.120 --> 00:19:10.960 +while q graphics scene the actual + +00:19:10.960 --> 00:19:12.480 +process remains running in the + +00:19:12.480 --> 00:19:14.480 +background until the ef mode buffer is + +00:19:14.480 --> 00:19:16.000 +killed + +00:19:16.000 --> 00:19:18.320 +gpa compositing is used to ensure that q + +00:19:18.320 --> 00:19:19.440 +graphics view and + +00:19:19.440 --> 00:19:21.840 +graphics sync is synchronized real time + +00:19:21.840 --> 00:19:24.000 +using q windows set parent function + +00:19:24.000 --> 00:19:25.679 +the queue graphics view is attached to + +00:19:25.679 --> 00:19:27.840 +appropriate location on the e-max frame + +00:19:27.840 --> 00:19:30.640 +so that although great applications are + +00:19:30.640 --> 00:19:32.400 +not running within e-max + +00:19:32.400 --> 00:19:36.160 +they look as if they were + +00:19:36.160 --> 00:19:39.039 +so when user types on the keyboard it is + +00:19:39.039 --> 00:19:41.039 +first received by the Emacs ef + +00:19:41.039 --> 00:19:43.520 +ef mode buffer and then it lifts sends + +00:19:43.520 --> 00:19:45.360 +the event to google graphics sync using + +00:19:45.360 --> 00:19:46.240 +dbus + +00:19:46.240 --> 00:19:48.720 +when user clicks on the gui application + +00:19:48.720 --> 00:19:50.400 +it is received by the queue graphics + +00:19:50.400 --> 00:19:50.799 +view + +00:19:50.799 --> 00:19:53.280 +and process in python ellipse can + +00:19:53.280 --> 00:19:55.200 +communicate with python through dbus + +00:19:55.200 --> 00:19:59.200 +in other words in other words you can + +00:19:59.200 --> 00:20:01.360 +customize and extend Emacs not just + +00:20:01.360 --> 00:20:01.760 +using + +00:20:01.760 --> 00:20:04.480 +lisp and now you can use python this way + +00:20:04.480 --> 00:20:05.360 +one can leverage + +00:20:05.360 --> 00:20:07.039 +all the python properties like + +00:20:07.039 --> 00:20:09.600 +multi-threading or some other stuff + +00:20:09.600 --> 00:20:11.679 +the entire python ecosystem can be + +00:20:11.679 --> 00:20:13.520 +utilized as well + +00:20:13.520 --> 00:20:16.159 +such as the qt web engine that is the + +00:20:16.159 --> 00:20:16.960 +basis for + +00:20:16.960 --> 00:20:20.640 +our eef browser and pi mu pdf is the + +00:20:20.640 --> 00:20:23.360 +basis for the ef pdf viewer + +00:20:23.360 --> 00:20:25.840 +so this really opens the window to many + +00:20:25.840 --> 00:20:28.240 +many new possibilities to extend Emacs + +00:20:28.240 --> 00:20:32.720 +using eaf + +00:20:32.720 --> 00:20:36.080 +all right back here we are always + +00:20:36.080 --> 00:20:37.760 +looking for people to join the + +00:20:37.760 --> 00:20:39.679 +development there are many many + +00:20:39.679 --> 00:20:42.720 +more work that needs to be done like + +00:20:42.720 --> 00:20:44.640 +such as testing and debug if there are + +00:20:44.640 --> 00:20:46.640 +more linux distros and window managers + +00:20:46.640 --> 00:20:47.760 +such as i3 + +00:20:47.760 --> 00:20:51.200 +and stuff I mean you can also add new ef + +00:20:51.200 --> 00:20:52.080 +applications + +00:20:52.080 --> 00:20:54.240 +or debug and enhance existing af + +00:20:54.240 --> 00:20:55.440 +applications + +00:20:55.440 --> 00:20:58.000 +or you can port ef to native wayland + +00:20:58.000 --> 00:21:00.240 +which I just discussed with the + +00:21:00.240 --> 00:21:03.840 +the ems whip kit author uh a kill + +00:21:03.840 --> 00:21:07.919 +akira tile and she he told me that like + +00:21:07.919 --> 00:21:10.159 +really like it must really yeah it + +00:21:10.159 --> 00:21:11.200 +doesn't really work + +00:21:11.200 --> 00:21:14.320 +um native villain because it uses + +00:21:14.320 --> 00:21:16.799 +x valence so it doesn't work on the pgdk + +00:21:16.799 --> 00:21:18.159 +port of Emacs + +00:21:18.159 --> 00:21:20.559 +so and we also need people to pour ef to + +00:21:20.559 --> 00:21:22.080 +non-free operating systems + +00:21:22.080 --> 00:21:25.600 +including windows and mac os + +00:21:25.600 --> 00:21:28.480 +and that's because like debug is a linux + +00:21:28.480 --> 00:21:30.080 +specific feature so it doesn't really + +00:21:30.080 --> 00:21:31.360 +work on other platform + +00:21:31.360 --> 00:21:33.039 +we need to change replace it with some + +00:21:33.039 --> 00:21:34.640 +alternative and + +00:21:34.640 --> 00:21:36.720 +geographic scene somehow doesn't really + +00:21:36.720 --> 00:21:38.640 +work on mac os + +00:21:38.640 --> 00:21:40.320 +and there are many other to-do lists + +00:21:40.320 --> 00:21:42.880 +available so please have a look + +00:21:42.880 --> 00:21:45.039 +if and see it's anything you want to + +00:21:45.039 --> 00:21:46.640 +work on + +00:21:46.640 --> 00:21:49.039 +all right so since this is a + +00:21:49.039 --> 00:21:51.120 +pre-recorded talk I won't be able to do + +00:21:51.120 --> 00:21:53.520 +the q a real time in the video + +00:21:53.520 --> 00:21:56.080 +however I will be around on the + +00:21:56.080 --> 00:21:57.200 +collaborate pad + +00:21:57.200 --> 00:22:00.559 +and the irc imax con you must come + +00:22:00.559 --> 00:22:01.360 +questions + +00:22:01.360 --> 00:22:04.240 +to answer any questions it pops up and + +00:22:04.240 --> 00:22:05.760 +you can also submit an issue + +00:22:05.760 --> 00:22:09.120 +on the repo and you can check the wiki + +00:22:09.120 --> 00:22:12.640 +for some other guides and tricks + +00:22:12.640 --> 00:22:15.039 +all right thank you guys and hopefully + +00:22:15.039 --> 00:22:16.000 +you find the + +00:22:16.000 --> 00:22:18.320 +this year project very interesting and + +00:22:18.320 --> 00:22:24.320 +enjoy the rest of Emacs com 2020 -- cgit v1.2.3