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