blob: d9a406f9f825425b1bf404d2c9e0046cffeab71b (
plain) (
tree)
|
|
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
|