From 839b298776e262a99eec18d23f4e52363fe937bc Mon Sep 17 00:00:00 2001 From: Sacha Chua Date: Wed, 9 Dec 2020 12:17:50 -0500 Subject: Add more autogenerated subtitles --- ...applications-with-eaf--matthew-zeng-autogen.sbv | 1713 ++++++++++++++++++++ 1 file changed, 1713 insertions(+) create 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 new file mode 100644 index 00000000..c90bab3d --- /dev/null +++ b/2020/subtitles/emacsconf-2020--34-extend-emacs-to-modern-gui-applications-with-eaf--matthew-zeng-autogen.sbv @@ -0,0 +1,1713 @@ +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