Warning: this is an htmlized version!
The original is here, and the conversion rules are here. |
####### # # E-scripts on eev itself: demos, hints, packing, works in progress, etc. # # Note 1: use the eev command (defined in eev.el) and the # ee alias (in my .zshrc) to execute parts of this file. # Executing this file as a whole makes no sense. # An introduction to eev can be found here: # # (find-eev-quick-intro) # http://angg.twu.net/eev-intros/find-eev-quick-intro.html # # Note 2: be VERY careful and make sure you understand what # you're doing. # # Note 3: If you use a shell other than zsh things like |& # and the for loops may not work. # # Note 4: I always run as root. # # Note 5: some parts are too old and don't work anymore. Some # never worked. # # Note 6: the definitions for the find-xxxfile commands are on my # .emacs. # # Note 7: if you see a strange command check my .zshrc -- it may # be defined there as a function or an alias. # # Note 8: the sections without dates are always older than the # sections with dates. # # This file is at <http://angg.twu.net/e/eev.e> # or at <http://angg.twu.net/e/eev.e.html>. # See also <http://angg.twu.net/emacs.html>, # <http://angg.twu.net/.emacs[.html]>, # <http://angg.twu.net/.zshrc[.html]>, # <http://angg.twu.net/escripts.html>, # and <http://angg.twu.net/>. # ####### # «.mailing-list» (to "mailing-list") # «.byte-compilation-bug» (to "byte-compilation-bug") # «.debian-package» (to "debian-package") # «.cdbs» (to "cdbs") # «.dh-make» (to "dh-make") # «.dh-make-2» (to "dh-make-2") # «.inspect-the-DEBIAN-dir» (to "inspect-the-DEBIAN-dir") # «.eev-deb-unpacked» (to "eev-deb-unpacked") # «.eev-repository.tar» (to "eev-repository.tar") # «.upload-the-deb» (to "upload-the-deb") # «.sources.list» (to "sources.list") # «.dpkg-i» (to "dpkg-i") # «.what-the-deb» (to "what-the-deb") # «.backtick-eev-mode» (to "backtick-eev-mode") # «.code-c-d-docs» (to "code-c-d-docs") # «.README.Debian» (to "README.Debian") # «.vnc2swf» (to "vnc2swf") # «.byzanz» (to "byzanz") # «.isend» (to "isend") # «.dmarc» (to "dmarc") # «.eepitch-indented» (to "eepitch-indented") # «.eev2.tgz» (to "eev2.tgz") # «.eev2-video-1.sh» (to "eev2-video-1.sh") # «.eev2-build-tgz» (to "eev2-build-tgz") # «.eev2-test-unpack» (to "eev2-test-unpack") # «.eev2-test» (to "eev2-test") # «.eev2-hmtlize-intros» (to "eev2-hmtlize-intros") # «.eev2-add-new-intro» (to "eev2-add-new-intro") # «.eev2-add-new-file» (to "eev2-add-new-file") # «.eev2-upload» (to "eev2-upload") # «.eev2-video-2.sh» (to "eev2-video-2.sh") # «.eev2-video3-eepitch» (to "eev2-video3-eepitch") # «.eev2-announcements» (to "eev2-announcements") # «.move-to-eev-mode» (to "move-to-eev-mode") # «.video-eev-quick-0» (to "video-eev-quick-0") # «.video-eev-quick-1» (to "video-eev-quick-1") # «.video-sympy-1» (to "video-sympy-1") # «.video-sympy-1-end» (to "video-sympy-1-end") # «.video-three-keys-pt-1» (to "video-three-keys-pt-1") # «.video-three-keys-2» (to "video-three-keys-2") # «.video-three-keys-index» (to "video-three-keys-index") # «.video-emacsconf-short» (to "video-emacsconf-short") # «.video-emacsconf-short-i» (to "video-emacsconf-short-i") # «.video-emacsconf-short-dt» (to "video-emacsconf-short-dt") # «.punch-and-judy» (to "punch-and-judy") # «.emacsconf2019-captions» (to "emacsconf2019-captions") # «.2020-several-tbfs» (to "2020-several-tbfs") # «.carmen-1» (to "carmen-1") # «.eegchannel-test» (to "eegchannel-test") # «.eexterm-test» (to "eexterm-test") # «.eev-emacs-package» (to "eev-emacs-package") # «.eev-pkg.el-fields» (to "eev-pkg.el-fields") # «.eev-pkg-repo» (to "eev-pkg-repo") # «.eev-pkg-build» (to "eev-pkg-build") # «.eev-pkg-readme» (to "eev-pkg-readme") # «.eev-pkg-test-0» (to "eev-pkg-test-0") # «.eev-pkg-submit-to-ELPA» (to "eev-pkg-submit-to-ELPA") # «.eek-pkg-announcement» (to "eek-pkg-announcement") # «.eev-pkg-signing» (to "eev-pkg-signing") # «.eev-in-elpa» (to "eev-in-elpa") # «.eev-tar-windows» (to "eev-tar-windows") # «.push-master» (to "push-master") # «.git-merge-elpa» (to "git-merge-elpa") # (find-angg "TEXINFO/eev-article.texi") # (find-eevex "") # (find-eevex "lua.e" "quick-presentation") ##### # # Mailing list # 2012apr06 # ##### # «mailing-list» (to ".mailing-list") # http://lists.gnu.org/archive/html/eev/ archives # http://lists.nongnu.org/mailman/listinfo/eev subscription # http://dir.gmane.org/gmane.emacs.eev.devel gmane # http://news.gmane.org/gmane.emacs.eev.devel https://www.gnu.org/software/maintainer-tips.en.html # E-mail to maintainers@gnu, 2019jan22: # https://mail.google.com/mail/ca/u/0/#sent/QgrcJHsHkxCzVrHtZWklGZRhJTxKVNjqwvG I lost admin access to the eev mailing list Hi Maintainers, I lost admin access to the eev mailing list, http://lists.gnu.org/archive/html/eev/ https://lists.nongnu.org/mailman/listinfo/eev even though my main e-mail, eduardoochs@gmail.com, is still one of the administrative e-mails of the list... What do I do? Thanks in advance! Eduardo Ochs http://angg.twu.net/#eev ##### # # Michael Heerdegen's bug # 2008sep04 # ##### # «byte-compilation-bug» (to ".byte-compilation-bug") # https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen # https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen/11ca96503c16e1dc glyphs # https://mail.google.com/mail/ca/u/0/#search/Michael+Heerdegen/11c2996861415ce6 byte-compilation Hi Michael! Thanks a lot for your report - I've been able to reproduce the bug at my machine... here's the e-script that I used, by the way: * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/ rm -v /tmp/test.elc cat > /tmp/test.el <<'%%%' (setq y (+ 1 2)) %%% cat > /tmp/loadeev.el <<'%%%' (progn (add-to-list 'load-path "~/eev-current/") (require 'eev-all) (eev-mode 1)) (eev-mode 0) (byte-compile-file "/tmp/test.el") %%% ~/bigsrc/emacs/src/emacs -Q loadeev.el The "loadeev.el" file gives me an easy way to choose which sexps to execute. I know very little about byte-compilation too (really!), but I have some ideas for what to do to track down this bug... I'll try them over the next days. Anyway: strangely, if I run the sexp (byte-compile-file "/tmp/test.el") with M-5 M-e - this is a way to eval a sexp with debug-on-error temporarily turned on - the byte-compiler does not stop when the "End of file during parsing" error occurs... Cheers, & thanks again, Eduardo Ochs eduardoochs@gmail.com http://angg.twu.net/ P.S.: did you notice that byte-compiling test.el always gives a warning? Compiling file /tmp/test.el at Thu Sep 4 22:48:58 2008 test.el:1:7:Warning: assignment to free variable `y' test.el:1:3:Error: End of file during parsing Assignment to non-defvar'ed variables is frowned upon... ##### # # New ideas for a Debian package for eev # 2009jul26 # ##### # «debian-package» (to ".debian-package") # «cdbs» (to ".cdbs") # (find-angg ".emacs" "debian-devel-docs") # (find-efile "progmodes/ps-mode.el" ":prefix \"ps-run-\"") # (find-fline "/usr/share/doc/emacsen-common/debian-emacs-policy.gz") # (find-fline "/usr/share/emacs/") # (find-fline "/etc/emacs/site-start.d/") # (find-sitelispfile "maxima/") # (find-status "cdbs") # (find-vldifile "cdbs.list") # (find-udfile "cdbs/") # (find-udw3m "cdbs/cdbs-doc.html") # (find-udw3m "cdbs/cdbs-doc.html" "\nSwitching the Package to CDBS\n\n") # (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR") # (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::") # (find-fline "/usr/share/cdbs/1/") # (find-sh "grep -niH -e cdbs ~/usrc/*/*/debian/*") # (find-fline "~/usrc/camlp5/camlp5-5.10/debian/rules") #* # (eev-bounded) rm -Rv ~/usrc/eev/ mkdir ~/usrc/eev/ mkdir ~/usrc/eev/eev-0.1/ mkdir ~/usrc/eev/eev-0.1/debian/ cat > ~/usrc/eev/eev-0.1/debian/rules <<'%%%' #!/usr/bin/make -f include /usr/share/cdbs/1/class/makefile.mk include /usr/share/cdbs/1/rules/debhelper.mk DEB_PACKAGES = eev PKGNAME = eev configure/$(PKGNAME):: debian/configure-stamp debian/configure-stamp: ./configure $(CONFIGURE_FLAGS) touch debian/configure-stamp clean:: rm -f debian/configure-stamp build/$(PKGNAME):: $(MAKE) -C doc/ echo foo > doc/foo %%% # (find-anggfile "mktclapp-3.9/debian/changelog") # (find-fline "~/usrc/eev/eev-0.1/debian/changelog") # (find-maintgtext "dh_make -e your.maintainer@address") # (find-man "8 dh_make") # (find-status "dh-make") # (find-vldifile "dh-make.list") # (find-udfile "dh-make/") cat > ~/usrc/eev/eev-0.1/debian/changelog <<'%%%' %%% # (find- cat > ~/usrc/eev/eev-0.1/debian/control <<'%%%' Source: eev Section: editors Priority: optional Maintainer: Eduardo Ochs <eduardoochs@gmail.com> Uploaders: Eduardo Ochs <eduardoochs@gmail.com> Standards-Version: 3.7.3 Build-Depends: Package: eev Architecture: any Depends: emacsen-common Recommends: maxima Suggests: bash Description: Eev. Long description. %%% cd ~/usrc/eev/eev-0.1/ dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb #* # (find-fline "~/usrc/eev/eev-0.1/") # (find-fline "~/usrc/eev/eev-0.1/debian/") ##### # # dh-make (first attempt, obsolete) # 2009aug03 # ##### # «dh-make» (to ".dh-make") # (find-eev "debian/control.sh") # (find-eev "debian/90eev.el") # (find-maintgtext "dh_make -e your.maintainer@address") # (find-man "8 dh_make") # (find-fline "/var/cache/apt/archives/") # (find-fline "/var/cache/apt/archives/debian-el_29.3-2_all.deb") #* rm -Rv ~/usrc/eev/ mkdir ~/usrc/eev/ mkdir ~/usrc/eev/eev-0.1/ cd ~/usrc/eev/eev-0.1/ mkdir -p etc/emacs/site-start.d/ mkdir -p usr/share/emacs/site-lisp/eev/ cat > etc/emacs/site-start.d/90eev.el <<'%%%' ;; (find-angg ".emacs" "eev-block") ;; (add-to-list 'load-path "/usr/share/emacs/site-lisp/eev") ;; (require 'eev-all) ; (find-eev "eev-all.el") ;; (eev-mode 1) (message "The debianized eev package would be loaded.") %%% cat > usr/share/emacs/site-lisp/eev/foo.el <<'%%%' (message "Foo!") %%% cat > Makefile <<'%%%' clean: %%% # (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR") # (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::") # (find-udw3m "cdbs/cdbs-doc.html" "install/foo::") # (find-maintgtext "") # (find-maintgtext "4.4. `rules' file") # (find-man "8 dh_make") echo | \ DEBFULLNAME="Eduardo Ochs" \ dh_make --email eduardoochs@gmail.com \ --copyright=gpl \ --cdbs \ --native rm -v debian/README.Debian debian/*.EX debian/*.ex cat >> debian/rules <<'%%%' build/eev:: install/eev:: echo "In install: $(DEB_DESTDIR)" cp -Rv etc/ usr/ debian/eev/ %%% mv -iv debian/control debian/control.orig cat > debian/control <<'%%%' Source: eev Section: editors Priority: extra Maintainer: Eduardo Ochs <eduardoochs@gmail.com> Build-Depends: cdbs, debhelper (>= 7) Standards-Version: 3.7.3 Homepage: http://angg.twu.net/ Package: eev Architecture: all Depends: emacs Description: <insert up to 60 chars description> <insert long description, indented with spaces> %%% dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb #* # (find-fline "~/usrc/eev/eev-0.1/") # (find-fline "~/usrc/eev/eev-0.1/odb") # (find-fline "~/usrc/eev/eev-0.1/debian/") # (find-fline "~/usrc/eev/eev-0.1/debian/control") # (find-sh "cd ~/usrc/eev/eev-0.1/debian/eev/ && find") # (find-fline "~/usrc/eev/eev-0.1/debian/dirs") # (find-fline "~/usrc/eev/eev_0.1_i386.deb") # (find-sh "ar t ~/usrc/eev/eev_0.1_i386.deb") # (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb control.tar.gz | tar -tvzf -") # (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb data.tar.gz | tar -tvzf -") # (find-sh "ar p ~/usrc/eev/eev_0.1_i386.deb debian-binary") # (find-fline "~/usrc/eev/eev_0.1_all.deb") # (find-sh "ar t ~/usrc/eev/eev_0.1_all.deb") # (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb control.tar.gz | tar -tvzf -") # (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb data.tar.gz | tar -tvzf -") # (find-sh "ar p ~/usrc/eev/eev_0.1_all.deb debian-binary") # (find-man "1 ar") # (find-maintgtext "5.4. dirs") # cat > debian/dirs <<'%%%' # /usr/share/emacs/site-lisp/eev # etc/emacs/site-start.d # %%% ##### # # Building a Debian package for eev with dh-make (attempt 2) # 2009aug16 / 2009nov25 # ##### # «dh-make-2» (to ".dh-make-2") # (find-angg ".emacs" "eevbuild") # (find-dhmake-links "eev" "eevbuild" "20110612") # (find-eev "debian/README.Debian" nil "How the .deb is built") # (find-eevsh "ls *.el") # (find-eev "debian/") # (find-eev "debian/emacs-eev") # (find-eev "debian/90eev.el") # (find-eev "debian/Makefile") # (find-eev "debian/rules") # (find-eev "debian/control.sh") # (find-eev "debian/README.Debian") # (find-maintgtext "5.1. README.Debian") # (find-es "lenny" "apt-ftparchive") # (find-angg ".emacs" "date") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) #* rm -Rv ~/usrc/eev/ mkdir ~/usrc/eev/ mkdir ~/usrc/eev/eev-0.1.20110612/ ln -s eev-0.1.20110612 ~/usrc/eev/eev-0.1 cd ~/usrc/eev/eev-0.1.20110612/ # Copy the files from (find-eev "debian/") # to their correct positions in the build dir of the deb package. # Create the directories, mkdir -p etc/emacs/site-start.d/ mkdir -p usr/share/emacs/site-lisp/eev/ mkdir -p usr/bin/ mkdir -p usr/share/eev/ # Copy the files. cp -v ~/eev-current/debian/Makefile . cp -v ~/eev-current/debian/emacs-eev usr/bin/ cp -v ~/eev-current/eev-rctool usr/bin/ cp -v ~/eev-current/debian/90eev.el etc/emacs/site-start.d/ cp -av ~/eev-current/eev*.el usr/share/emacs/site-lisp/eev/ cp -v ~/eev-current/debian/eev_16.xpm usr/share/eev/ cp -v ~/eev-current/debian/eev_32.xpm usr/share/eev/ # (find-udw3m "cdbs/cdbs-doc.html" "DEB_DESTDIR") # (find-udw3m "cdbs/cdbs-doc.html" "build/myprog::") # (find-udw3m "cdbs/cdbs-doc.html" "install/foo::") # (find-man "1 dpkg-architecture" "linux-any") # (find-maintgtext "") # (find-maintgtext "4.4. `rules' file") # (find-man "8 dh_make") echo | \ DEBFULLNAME="Eduardo Ochs" \ dh_make --email eduardoochs@gmail.com \ --copyright=gpl \ --cdbs \ --native rm -v debian/README.Debian rm -v debian/*.EX rm -v debian/*.ex mv -iv debian/control debian/control.orig # (find-eevbuilddfile "") # (find-eevbuilddfile "rules") ~/eev-current/debian/control.sh > debian/control cp -v ~/eev-current/debian/README.Debian debian/README.Debian cat ~/eev-current/debian/rules >> debian/rules cp -v ~/eev-current/debian/eev.menu debian/eev.menu cp -v ~/eev-current/debian/eev.desktop debian/eev.desktop # (find-eev "debian/control.sh") # (find-eev "debian/README.Debian") # (find-eev "debian/rules") # (find-eevbuildfile "") # (find-eevbuilddfile "") # (find-eevbuilddfile "control") # (find-man "1 dpkg-buildpackage") # dpkg-buildpackage -us -uc -rfakeroot |& tee odb dpkg-buildpackage -us -uc -b -rfakeroot |& tee odb # (find-eevbuildfile "odb") # «eev-deb-unpacked» (to ".eev-deb-unpacked") rm -Rv ~/usrc/eev/eev-unpacked/ mkdir ~/usrc/eev/eev-unpacked/ mkdir ~/usrc/eev/eev-unpacked/DEBIAN/ cd ~/usrc/eev/ ar p eev_*_all.deb control.tar.gz | tar -C eev-unpacked/DEBIAN/ -xvzf - ar p eev_*_all.deb data.tar.gz | tar -C eev-unpacked/ -xvzf - # (find-eevbuildufile "") # (find-eevbuildufile "DEBIAN/") # (find-eevbuildufile "DEBIAN/control") # «inspect-the-DEBIAN-dir» (to ".inspect-the-DEBIAN-dir") # (find-eevbuildddsh "find * | sort") # (find-eevbuildush "find * | sort") cd ~/usrc/eev/ sudo dpkg -i eev*.deb sudo dselect update # (find-status "eev") # (find-vldifile "eev.list") # (find-udfile "eev/") # (find-eev "debian/README.Debian") # (find-angg "debian/README") #* # «apt-ftparchive» (to ".apt-ftparchive") # (find-es "lenny" "apt-ftparchive") # (find-man "1 apt-ftparchive") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/usrc/eev/ mkdir -p dists/./main/binary-i386/ mkdir -p dists/./main/binary-amd64/ laf apt-ftparchive packages . apt-ftparchive packages . \ | tee dists/./main/binary-i386/Packages \ | gzip -c9 > dists/./main/binary-i386/Packages.gz apt-ftparchive packages . \ | tee dists/./main/binary-amd64/Packages \ | gzip -c9 > dists/./main/binary-amd64/Packages.gz find * | sort # «eev-repository.tar» (to ".eev-repository.tar") # (find-sh "cd ~/usrc/eev/; find eev_* dists") # (find-sh "cd ~/usrc/eev/; find eev_* dists -type f") # eev_0.1_all.deb # eev_0.1_i386.changes # dists/main/binary-i386/Packages.gz # dists/main/binary-i386/Packages # (find-twusfile "debian/dists/main/binary-i386/") # (find-twusfile "debian/dists/main/binary-i386/Packages") # (find-twusfile "debian/dists/main/binary-amd64/Packages") # # Make a tarball of the repository: cd ~/usrc/eev/ tar -cvf eev-repository.tar eev_*_all.deb dists eev-unpacked/ # «upload-the-deb» (to ".upload-the-deb") # Copy it to twu and unpack it there: # (find-fline "~/usrc/eev/") # (find-fline "~/usrc/eev/eev-repository.tar") # (find-twufile "tmp/") # (find-twusfile "debian/") # (find-twusfile "debian/eev-repository.tar") # (ee-cp "~/usrc/eev/eev-repository.tar" (ee-twufile "tmp/eev-repository.tar") 'over) # (find-es "page" "makepagefromtar-at-twu") * (fvwm-sloppy-focus) * (eebgTWU) * (fvwm-click-to-focus) zsh cd ~/slow_html/debian/ rm -Rv ~/slow_html/debian/eev-unpacked/ laf tar -xvf ~/tmp/eev-repository.tar laf laf dists/ find dists/main/ | sort find eev-unpacked/ | sort # cd; tar -xvf edrx.tar; rezshrc {makepagefromtar; makepageindexhtmls} |& tee ~/ompft # «sources.list» (to ".sources.list") # Patch the /etc/apt/sources.list file (by hand): # (find-fline "/etc/apt/sources.list") # (find-man "5 sources.list") # (find-es "eev" "sources.list") # deb file:/home/edrx/usrc/eev . main # deb http://angg.twu.net/debian . main # # * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # Install the eev deb in the clean way: sudo apt-get update sudo dselect update # (find-available "eev") aptrm eev y apti eev y # «dpkg-i» (to ".dpkg-i") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # The dirty way: cd ~/usrc/eev/ sudo dpkg -i *.deb # (find-sh "sudo dselect update") # (find-available "eev") # (find-status "eev") # (find-vldifile "eev.list") # (find-udfile "eev/") # Test: log as aleph, run emacs-eev, type M-h M-e. # (find-man "1 ssh" "-X" "Enables X11 forwarding.") # (eev "ssh -X aleph@localhost xterm") # To do: fix math glyphs, # http://angg.twu.net/debian/ # http://angg.twu.net/debian/README # .dsc package. ##### # # What the debian package should do # 2009aug03 # ##### # «what-the-deb» (to ".what-the-deb") # (find-man "1 readlink") # (find-node "(coreutils)") # (find-node "(coreutils)readlink invocation") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) w emacs laf /usr/bin/emacs laf /etc/alternatives/emacs laf /usr/bin/emacs22-x laf /usr/bin/emacs22 # (find-angg ".zshrc" "ae") cat > usr/bin/emacs-eev <<'%%%' #!/bin/sh exec emacs -fg bisque -bg black $* %%% # (find-enode "Action Arguments" "`--funcall=FUNCTION'") # Mode: add "eev" # (find-eevfile "eev.el" "define-minor-mode eev-mode") # (find-elnode "Index" "* define-minor-mode:") # (find-elnode "Defining Minor Modes" "`:lighter LIGHTER'") Two packages: emacs-eev and emacs-eev-puro emacs-eev should be minimal (sort of) emacs-eev-puro should depend on maxima and such stuff Icon pointing to /usr/bin/emacs-eev: # (find-angg "elisp/myxpm.el") # (find-eevfile "eev-icon.png") ##### # # Backticking the definition of eev-mode # 2009aug18 # ##### # «backtick-eev-mode» (to ".backtick-eev-mode") # (find-es "emacs" "define-minor-mode") # To be done. Big mess at the moment. # (find-elnode "Defining Minor Modes") # (find-elnode "Defining Minor Modes" "hungry-mode") # (find-evardescr 'minor-mode-list) # (find-eapropos "hung") # (find-eapropos "hung") # (find-eapropos "mode-line") # (find-eapropos "mode-line-modes") # (find-evardescr 'mode-line-modes) # (find-evardescr 'minor-mode-alist) # (find-evardescr 'minor-mode-alist "hungry-mode") # (find-efunction 'hungry-mode) # (find-efunctionpp 'hungry-mode) (setq hungry-mode-lighter " Hungry") (setq hungry-mode-lighter " Hung") (setq hungry-mode-lighter nil) (define-minor-mode hungry-mode :init-value 0 :lighter hungry-mode-lighter :group 'hunger) (hungry-mode 1) (hungry-mode 0) # (find-eevfile "eev.el" "define-minor-mode eev-mode") # (find-eevfile "debian/90eev.el") ##### # # Adding documentation to functions generated by code-c-d and friends # 2010jul30 # ##### # «code-c-d-docs» (to ".code-c-d-docs") # (find-efunction 'find-code-c-d-new) # (find-efunction 'code-c-d) Just a vague idea at the moment... ##### # # Old stuff removed from the README.Debian # 2010sep28 # ##### # «README.Debian» (to ".README.Debian") # (find-eev "debian/README.Debian") # «.exploring-the-deb» (to "exploring-the-deb") # «.what-the-deb-does» (to "what-the-deb-does") # «.how-the-deb-is-built» (to "how-the-deb-is-built") # «.upstream» (to "upstream") # «.repository» (to "repository") # «exploring-the-deb» (to ".exploring-the-deb") # «what-the-deb-does» (to ".what-the-deb-does") # «how-the-deb-is-built» (to ".how-the-deb-is-built") Exploring the .deb (without installing it) ========================================== This package is so trivial at this moment that it would be pointless - and misleading - to create a source debian package for it. The best way to inspect the .deb, then, is to unpack it directly: * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rv ~/usrc/eev-deb/ mkdir ~/usrc/eev-deb/ cd ~/usrc/eev-deb/ cp -v ~/usrc/eev/eev_0.1_all.deb . ar t eev_0.1_all.deb ar p eev_0.1_all.deb debian-binary ar p eev_0.1_all.deb control.tar.gz | tar -tvzf - ar p eev_0.1_all.deb data.tar.gz | tar -tvzf - mkdir DEBIAN/ ar p eev_0.1_all.deb control.tar.gz | tar -C DEBIAN/ -xvzf - ar p eev_0.1_all.deb data.tar.gz | tar -xvzf - # # (find-sh "cd ~/usrc/eev-deb/ && find | sort") # (find-fline "~/usrc/eev-deb/") What the .deb does ================== See: In short: nothing! 8-) Well, not exactly, but the .deb is incredibly non-invasive: the "find-sh ... find | sort" above reports these files: There are no installation scripts - no eev.{pre,post}{inst,rm} files in: (find-fline "/var/lib/dpkg/info/" "eev") and the only thing that runs automatically in some sense is this file, (find-eev "debian/90eev.el") /etc/emacs/site-start.d/90eev.el that only contains one definition, for `eev-activate-initial' (see below). If you start Emacs with (find-eev "debian/emacs-eev") /usr/bin/emacs-eev rather than with "emacs", the "--funcall=eev-activate-initial" argument in the emacs-eev script runs the `eev-activate-initial' function in 90eev.el, which is: (defun eev-activate-initial () (interactive) (add-to-list 'load-path "/usr/share/emacs/site-lisp/eev") (setq eev-lighter " eev") (require 'eev-all) ; (find-eev "eev-all.el") (eev-mode 1)) it is that function that adds the /usr/share/emacs/site-lisp/eev/ directory to the load-path, loads the eev modules and turns on eev-mode. So: if you invoke Emacs using the `emacs-eev' script you get an Emacs with eev loaded - from /usr/share/emacs/site-lisp/eev/ - and turned on; if you invoke the standard `emacs' there are no changes at all - not even in the load-path! (find-debemacspoltext) How the .deb is built ===================== Currently, by this script: (find-es "eev" "dh-make-2") # «upstream» (to ".upstream") Upstream ======== The correct way to obtain the *most current* eev source tree is to fetch this tarball: http://angg.twu.net/edrx.tgz It contains the sources that are used to generate the pages at <http://angg.twu.net/>. That tarball is updated about twice a week. The "official" eev-current tarball, at http://angg.twu.net/eev-current.tar.gz is updated less often. The .deb package is very alpha-ish now, and it is changing very often. # «repository» (to ".repository") The repository ============== It should be possible to install the .deb in your machine with apt by adding this line to your /etc/apt/sources.list file, deb http://angg.twu.net/debian . main and then doing the usual "apt-get update; apt-get install eev" sequence. The repository is generated with these commands: (find-es "eev" "eev-repository.tar") actually they generate a tarball that you can install anywhere - e.g., on a local server (this is what I plan to do for the local undergrad lab at my university). See: (find-es "eev" "sources.list") (find-fline "/etc/apt/sources.list") ##### # # vnc2swf # 2010nov14 # ##### # «vnc2swf» (to ".vnc2swf") # (find-es "vnc" "vnc2swf") # (find-eev "anim/") # (find-eev "examples/anim.e" "compile-vnc2swf") ##### # # byzanz # 2010nov14 # ##### # «byzanz» (to ".byzanz") # (find-eev "examples/anim.e" "movie1_A0") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) apti byzanz # (find-status "byzanz") # (find-vldifile "byzanz.list") # (find-udfile "byzanz/") # (find-man "1 byzanz-record") # (find-man "1 byzanz-record" "--display=DISPLAY") # (find-man "1 byzanz-record" " byzanz ") # (find-man "1 byzanz-playback") # (find-sh "byzanz-record --help") # (find-sh "byzanz-record --help-all") ##### # # isend # 2016apr19 # ##### # «isend» (to ".isend") # (find-es "emacs" "isend") # (find-epackage 'isend-mode) (code-c-d "isend" "~/.emacs.d/elpa/isend-mode-20190201.832/") # (find-isendfile "") # https://github.com/ffevotte/isend-mode.el # https://github.com/ffevotte/isend-mode.el.git # (find-git-links "https://github.com/ffevotte/isend-mode.el.git" "isendmode") # (code-c-d "isendmode" "~/usrc/isend-mode.el/") # (find-isendmodefile "") (add-to-list 'load-path "~/usrc/isend-mode.el/") (require 'isend-mode) (require 'isend) ;; (find-efunctiondescr 'isend-mode) # http://lists.gnu.org/archive/html/emacs-orgmode/2016-04/msg00495.html Xor3 # http://lists.gnu.org/archive/html/emacs-orgmode/2016-04/msg00498.html Edrx ##### # # Message about removing the "[eev]" from the eev mailing list (for dmarc) # 2019oct24 # ##### # «dmarc» (to ".dmarc") # https://mail.google.com/mail/ca/u/0/#inbox/FMfcgxwDrtxxhkrDfHmzpZSGQwmFTtMQ # https://lists.gnu.org/archive/html/eev/2019-10/msg00000.html # https://lists.gnu.org/archive/html/savannah-hackers-public/2019-06/msg00018.html # https://lists.gnu.org/archive/html/savannah-hackers-public/2019-09/msg00016.html [1]: https://wiki.list.org/DEV/DMARC [2]: https://lists.debian.org/debian-devel-announce/2015/08/msg00003.html [5]: https://en.wikipedia.org/wiki/DomainKeys_Identified_Mail [6]: https://en.wikipedia.org/wiki/DMARC [7]: https://dmarc.org/wiki/FAQ#senders [8]: https://tools.ietf.org/html/rfc7489 ##### # # Modifying eepitch to make it drop the first two space chars in each line # 2019dec22 # ##### # «eepitch-indented» (to ".eepitch-indented") # (find-anggfile "dednat6/extra-modules.txt") ;; (find-efunction 'eepitch-this-line) ;; (find-evariable 'eepitch-regexp) ;; (find-evardescr 'eepitch-regexp) (setq eepitch-regexp "^*\\(.*\\)") (setq eepitch-regexp "^ **\\(.*\\)") ;; (find-efunction 'eepitch-line) ;; (replace-regexp-in-string "^ " "" " foo") ;; (replace-regexp-in-string "^ " "" "foo") ;; (defun eepitch-line (line) "Modified version - strips two spaces from the beginning" (eepitch-eval-at-target-window '(progn (goto-char (point-max)) (insert (replace-regexp-in-string "^ " "" line)) (call-interactively (key-binding "\r"))))) ##### # # eev2.tgz # 2012nov03 # ##### # «eev2.tgz» (to ".eev2.tgz") # (find-angg ".zshrc" "eev2-files") # (find-angg ".zshrc" "eev2-files" "eev2-test ()") # (find-zsh "eev2-test") # (find-eev "Makefile" "tarball" "VERSION") # (find-eevsh "grep ^.require eev2-all.el") # (find-eevsh "grep ^.require eev2-all.el | awk '{print $2}'") # (find-eevsh "grep ^.require eev2-all.el | awk '{print substr($2, 2, length($2)-2)}'") # (find-eevsh "grep ^.require eev2-all.el | awk '{print substr($2, 2, length($2)-2) \".el\"}'") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/eev-current/ (TZ=GMT date; date) > VERSION A=( eepitch.el eev-wrap.el eev-flash.el eev-eval.el eev-multiwindow.el eev-mode.el eev-blinks.el eev-plinks.el eev-elinks.el eev-tlinks.el eev-code.el eev-env.el eev-brxxx.el eev-pdflike.el eev-audiovideo.el eev-anchors.el eev-intro.el eev-edit.el eejump.el eev-prepared.el eev-bounded.el eev-channels.el eev-rcirc.el ) tar -cvzf /tmp/eev2.tgz VERSION eev-readme.el eev2-all.el $A laf /tmp/eev2.tgz # Test: * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rv /tmp/eev/ mkdir /tmp/eev/ cd /tmp/eev/ tar -xvzf ../eev2.tgz FvwmCommand "CursorMove +0 +100" && emacs -Q -fn 6x13 -fg bisque -bg black eev-readme.el ##### # # eev2 videos: 1.sh # 2012nov03 # ##### # «eev2-video-1.sh» (to ".eev2-video-1.sh") # (find-angg "eev-videos/1.sh") * (find-sh0 "~/eev-videos/1.sh down xterm 80x30+0+0 ffmpeg 530x550+0+0") # (find-fline "/tmp/" "out.mp4") # (find-sh0 "killall ffmpeg") # (find-sh0 "killall -9 ffmpeg") * (find-mplayer0 "/tmp/out.mp4") # (find-zsh "eev2-build-tgz") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) Scp -v /tmp/eev2.tgz edrx@angg.twu.net:slow_html/eev-current/ Scp -v /tmp/eev2.tgz edrx@angg.twu.net:public_html/eev-current/ * (eepitch-shell2) * (eepitch-kill) * (eepitch-shell2) cd ~/eev-videos/ Scp -v 2* edrx@angg.twu.net:slow_html/eev-videos/ rm -Rv /tmp/eev/ mkdir /tmp/eev/ cd /tmp/eev/ wget http://angg.twu.net/eev-current/eev2.tgz && tar -xvzf eev2.tgz # tar -C /tmp/eev/ -xvzf /tmp/eev2.tgz emacs -Q -fn 6x13 -fg bisque -bg black eev-readme.el # (find-fline "/tmp/eev/") # (find-fline "/tmp/eev/eev-readme.el") # (find-fline "/tmp/eev2-current.tar.gz") # (find-eev "eev-readme.el") # (find-eev-intro "\nInstalling eev\n") # (find-efunction 'find-eev-intro "\nInstalling eev\n") # (find-eevgrep "grep -nH -e ee-format *.el") # (find-eevgrep "grep -nH -e find-function-read *.el") # (find-eevgrep "grep -nH -e ee-buffer-name *.el") # (find-eevgrep "grep -nH -e Info-goto-node *.el") # (find-efunctiondescr 'Info-goto-node) # (find-efunction 'Info-goto-node) # (find-efunctiondescr 'info) # (find-efunction 'info) ee-buffer-name (ee-no-properties (format-mode-line mode-line-format)) # (find-angg ".zshrc" "emacs-default") cd /tmp/ cat > eev2-load.el <<'%%%' (progn (menu-bar-mode 0) (tool-bar-mode 0) (scroll-bar-mode -1) (add-to-list 'load-path "~/eev-current/") (require 'eev2-all) (eev-mode 1) ) %%% emacs-default-X -geometry 80x37+10+10 -Q eev2-load.el ##### # # eev2: pack, unpack, test # 2012nov08 # ##### # (find-angg ".zshrc" "eev2-files") # «eev2-build-tgz» (to ".eev2-build-tgz") # «eev2-test-unpack» (to ".eev2-test-unpack") # «eev2-test» (to ".eev2-test") # (find-eev "eev-readme.el") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -v /tmp/eev2.tgz eev2-build-tgz laf /tmp/eev2.tgz eev2-test # (eek "M-h M-k C-x r l ;; bookmark-bmenu-list") ##### # # eev2: htmlize intros # 2012nov03 # ##### # «eev2-hmtlize-intros» (to ".eev2-hmtlize-intros") # (find-angg "eev-intros/README") # (load "~/eev-intros/README") # file:///home/edrx/TH/L/eev-intros/ # file:///home/edrx/TH/L/eev-intros/find-eev-intro.html # http://angg.twu.net/eev-intros/ # http://angg.twu.net/eev-intros/find-eev-intro.html ##### # # eev2: scripts to add a new intro # 2012nov03 # ##### # «eev2-add-new-intro» (to ".eev2-add-new-intro") # (find-eev "eev-intro.el") # (find-eev "eev-intro.el" ".find-eev-intro") # (find-eev "eev-intro.el" "find-eev-intro" "0. (find-eev-intro)") # (find-angg "eev-intros/README") # (find-blogme3 "angglisp.lua" "find_xxx_intros") # (find-blogme3file "anggmake.lua" "eev-intros/find-eev-intro") # (load "~/eev-intros/README") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) makeL # file:///home/edrx/TH/L/eev-intros/ # file:///home/edrx/TH/L/eev-intros/find-eev-intro.html ##### # # eev2: scripts to add a new file # 2012nov03 # ##### # «eev2-add-new-file» (to ".eev2-add-new-file") ##### # # eev2: upload # 2012nov08 # ##### # «eev2-upload» (to ".eev2-upload") # «eev2-video-2.sh» (to ".eev2-video-2.sh") # (find-angg ".zshrc" "eev2-files") * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) eev2-build-tgz ~/eev-videos/2.sh record * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) eev2-build-tgz eev2-upload -v rm -v /tmp/eev2.tgz ~/eev-videos/2.sh record # (find-angg "eev-videos/2.sh") # http://www.emacswiki.org/emacs/EmacsForDebian ##### # # Video 3: eepitch # ##### # «eev2-video3-eepitch» (to ".eev2-video3-eepitch") # (defun eejump-9 () (find-screencast-links "108c 37c")) # (find-eev-video-links "3pt-eepitch-preliminar") # (find-eev "eepitch.el") (defun eep2 (s1 s2) (eval s1) (eepitch-kill) (eval s2) (eepitch-kill) (find-wset "13o2_o_o" `(ee-here ',s1) `(ee-here ',s2))) A short video about eepitch =========================== Eduardo Ochs, 2012nov18 http://angg.twu.net/#eev * (eep2 '(eepitch-shell) '(eepitch-lua51)) * (eepitch-lua51) readfile = function (fname) local f = assert(io.open(fname, "r")) local bigstr = f:read("*a") f:close() return bigstr end * (eepitch-shell) echo Hello... > /tmp/o * (eepitch-lua51) print(readfile("/tmp/o")) * (eepitch-shell) echo ...bye >> /tmp/o * (eepitch-lua51) print(readfile("/tmp/o")) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cat > /tmp/o <<'%%%' Hello hello hello %%% * (eepitch-shell) * (eepitch-kill) * (eepitch-lua51) * (eepitch-kill) * ##### # # eev2: announcements # 2012nov12 # ##### # «eev2-announcements» (to ".eev2-announcements") # http://lists.gnu.org/archive/html/eev/2012-11/msg00000.html # http://www.emacswiki.org/EevMode # http://angg.twu.net/#eev # http://angg.twu.net/eev-videos/README.html # http://www.youtube.com/watch?v=_B_4vhsmRRI Marco Baringer # rfm: ok # #emacs: ok ##### # # Move all keybindings to eev-mode # 2014mar25 # ##### # «move-to-eev-mode» (to ".move-to-eev-mode") # http://article.gmane.org/gmane.emacs.eev.devel/148 # http://lists.gnu.org/archive/html/eev/2014-03/index.html ##### # # video: eev-quick-0 # 2016oct08 # ##### # «video-eev-quick-0» (to ".video-eev-quick-0") # (find-angg ".emacs" "size") # http://angg.twu.net/eev-videos/video-eev-quick-0.mp4 # (find-twusfile "eev-videos/") # (find-angg "eev-videos/") # Use this to reset aleph's home: # (find-adduser-links "aleph" "aleph") ** Shrink this emacs window, ** start the recording, ** open an xterm covering the emacs window, ** and when the xterm finishes stop the recording. ** * (set-frame-size nil 70 20) { avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 & sudo -u aleph -i xterm -geometry +0+0 killall avconv } * (set-frame-size nil 80 35) ** Test the video ** (find-video "/tmp/out.mp4") ** (find-video "~/eev-videos/video-eev-quick-0.mp4") ** (find-fline "~/eev-videos/" "video-eev-quick-0.mp4") ##### # # video: eev-quick-1 # 2016oct08 # ##### # «video-eev-quick-1» (to ".video-eev-quick-1") # (find-twusfile "eev-videos/") # (find-angg "eev-videos/") # Use this to reset aleph's home: # (find-adduser-links "aleph" "aleph") ** Use this to create "~aleph/es" * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd sudo -u aleph -i cat > ~/es <<'%%%' #!/bin/sh cd ~/eev/ && emacs \ -Q -D -fg bisque -bg black -fn fixed \ -T emacs_bare -geometry 167x49+0+0 \ -l eev-readme.el --eval="(find-eev-quick-intro)" %%% chmod 755 ~/es # ~/es exit ** Shrink this emacs window, ** start the recording, ** open an xterm covering the emacs window, ** and when the xterm finishes stop the recording. ** * (set-frame-size nil 70 20) { avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 & # sudo -u aleph -i xterm -geometry +0+0 sudo -u aleph -i ~aleph/es killall avconv } ** Test the video ** (find-video "/tmp/out.mp4") ** (find-video "~/eev-videos/video-eev-quick-0.mp4") ##### # # video: eev-ipython-1 # 2016oct08 # ##### # «video-sympy-1» (to ".video-sympy-1") * (defun end0 () (message (find-sh0 "killall avconv"))) * (defun end () (interactive) (end0) (find-es "eev" "video-sympy-1-end")) * * (eepitch-shell2) * (eepitch-kill) * (eepitch-shell2) * (size 167 59) avconv -f x11grab -s xga -i :1.0 -y /tmp/out.mp4 & * (find-wset "1_" '(find-es "sympy" "tutorial")) ** «video-sympy-1-end» (to ".video-sympy-1-end") * (eek "C-x 1") * (size 80 35) * ;; Test the video * (find-googlechrome "file:///tmp/out.mp4") * (size 210 61) ** (find-video "~/eev-videos/video-eev-quick-0.mp4") ** (find-video "/tmp/out.mp4") * (eepitch-shell2) * (eepitch-kill) * (eepitch-shell2) cd /tmp/ Scp-np -v out.mp4 edrx@angg.twu.net:/home/edrx/public_html/eev-videos/ # http://angg.twu.net/eev-videos/out.mp4 ##### # # video-three-keys-pt-1 # 2019aug10 # ##### # «video-three-keys-pt-1» (to ".video-three-keys-pt-1") # (find-TH "index" "eev") # (find-TH "index" "eev" "some screencasts") # (find-TH "index" "eev" "some screencasts" "three-keys-1-pt") # http://angg.twu.net/eev-videos/three-keys-1-pt.mp4 # http://www.youtube.com/watch?v=GUuCpmLItTs # https://www.facebook.com/eduardo.ochs/posts/10220135271041709 # https://drive.google.com/drive/folders/1xKobEd6YLq31besdSrfSbPwX66QyC3di # http://angg.twu.net/eev-videos/ # (find-twusfile "eev-videos/") # (find-fline "~/eev-videos/") # (find-fline "~/eev-videos/" "three-keys-1-pt") # (find-eev "eev-intro.el" "find-three-main-keys-intro") # (find-three-main-keys-intro) (defun big () (interactive) (set-frame-font "Monospace 22")) (defun med () (interactive) (set-frame-font "Monospace 9")) (big) AINDA NÃO COMEÇOU! (find-three-main-keys-intro) https://youtu.be/GUuCpmLItTs http://www.youtube.com/watch?v=GUuCpmLItTs * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/eev-videos/ Scp-np -v three-keys-1-pt.mp4 \ edrx@angg.twu.net:/home/edrx/slow_html/eev-videos/ # http://angg.twu.net/eev-videos/three-keys-1-pt.mp4 ##### # # video-three-keys-2 # 2019aug14 # ##### # «video-three-keys-2» (to ".video-three-keys-2") (defun big () (interactive) (set-frame-font "Monospace 22")) (defun big () (interactive) (set-frame-font "Monospace 20")) (defun med () (interactive) (set-frame-font "Monospace 9")) (defun yk () (interactive) (find-sh0 "yaxg stop") (eepitch-shell)) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd /tmp/ yaxg stop laf *.webm rm -v *.webm yaxg * (eek "C-x 1") ** (find-sh0 "yaxg stop") * * ** AINDA NÃO COMEÇOU! * * (setq scroll-conservatively 0) * (setq scroll-conservatively 1) * (eek "C-x 1") * (big) * (find-three-main-keys-intro) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) cd ~/eev-videos/ Scp-np -v three-keys-2.mp4 \ edrx@angg.twu.net:/home/edrx/slow_html/eev-videos/ # http://angg.twu.net/eev-videos/three-keys-2.mp4 ##### # # video-three-keys-index # 2019aug15 # ##### # «video-three-keys-index» (to ".video-three-keys-index") # (find-fline "~/eev-videos/") # (find-code-audiovideo-links "~/eev-videos/three-keys-1-pt.mp4" "eevtk1") # (find-code-audiovideo-links "~/eev-videos/three-keys-2.mp4" "eevtk2") ;; (find-video "~/eev-videos/three-keys-1-pt.mp4") (code-video "eevtk1video" "~/eev-videos/three-keys-1-pt.mp4") ;; (find-eevtk1video) ;; (find-eevtk1video "1:34" "Três teclas") ;; (find-eevtk1video "3:08" "Emacs é um ambiente Lisp") ;; (find-eevtk1video "4:22" "São programas pequenininhos") ;; (find-video "~/eev-videos/three-keys-2.mp4") (code-video "eevtk2video" "~/eev-videos/three-keys-2.mp4") ;; (find-eevtk2video) ;; (find-eevtk2video "9:46" "Emacs calls the cursor the point") ;; (find-eevtk2video "9:49" "the sexp before point") ;; (find-eevtk2video "10:03" "C-x C-e") # (eev-avadj-mode) # (eev-avadj-mode 0) ##### # # video-emacsconf-short # 2019oct24 # ##### # «video-emacsconf-short» (to ".video-emacsconf-short") # https://drive.google.com/drive/folders/1rKrtcF873TP3bUjMVRpVb_TiJ9l3PBWy # (find-es "ffmpeg" "webm-to-mp4") # (find-es "emacsconf2019" "short") # (set-frame-font "Monospace 19") # (set-frame-font "Monospace Bold 19") # (find-es "emacs" "blink-cursor-mode") # (setq blink-cursor-blinks 2) * (big) * (find-es "emacsconf2019" "short") * (defun big () (interactive) (set-frame-font "Monospace 19")) * (defun med () (interactive) (set-frame-font "Monospace 11")) * (eek "C-x 1") * (big) # (find-es "emacsconf2019" "short" '(eek "C-u 9 C-l")) * (find-sh0 "killall unclutter") * (find-bgprocess "unclutter -idle 1") * * (find-3EE '(eepitch-shell2) '(eepitch-shell3)) * (eepitch-shell3) cd /tmp/ laf *.webm rm -v *.webm yaxg * (ecop) * (eepitch-shell2) cd /tmp/ yaxg stop yaxg stop laf *.webm * (eepitch-shell2) # (find-fline "~/eev-videos/emacsconf/") cd ~/eev-videos/emacsconf/ time ffmpeg -i ZOOM0035_video.webm ZOOM0035_video.mp4 time ffmpeg -i ZOOM0035end_video.webm ZOOM0035end_video.mp4 ##### # # video-emacsconf-short: an index # 2019nov13 # ##### # «video-emacsconf-short-i» (to ".video-emacsconf-short-i") # http://www.youtube.com/watch?v=86yiRG8YJD0 # (find-video "~/eev-videos/emacsconf/25_35_end0001-69788.mp4") # (code-video "emacsconfshortvideo" "~/eev-videos/emacsconf/25_35_end0001-69788.mp4") # (find-emacsconfshortvideo) # (find-emacsconfshortvideo "0:00") # (eev-avadj-mode 0) # (eev-avadj-mode) Index of the video: 0:00 Title page 0:15 Prehistory 1: eev appeared by accident 1:08 Prehistory 2: my notes started to have lots of elisp hyperlinks 2:35 Prehistory 3: M-x eev 3:04 Prehistory 4: several other kinds of elisp kyperlinks 4:05 Prehistory 5: these elisp hyperlinks could be put in comments 5:34 Prehistory 6: variants of M-x eev 5:41 Prehistory 7: several megabytes of scripts and notes 6:41 Prehistory 8: I was sure that everybody was using Emacs like that 7:52 Prehistory 9: users should not be forced to see Lisp 9:22 Eev as an ELPA package 10:47 Eev as an ELPA package 2: tutorials, beginner setup 11:19 M-j 12:54 A demo 13:10 Demo: patching xpdf 14:01 Demo: the `find-man' links 14:45 Demo: the `find-apt-get-source-links' 15:11 Demo: the eepitch block (in red star lines) 15:48 Demo: eepitch on non-red star lines 15:56 Demo: eepitch in action (two windows, smaller font) 16:40 Demo: I will not run the apt-get source --build 16:47 Demo: the `find-fline's to the source directory 17:07 Demo: `code-c-d' 17:22 Demo: `find-xpdffile' 17:32 Demo: `find-xpdfsh' 17:44 Demo: `find-xpdfgrep' 18:29 Demo: (back to the big font) 18:32 Demo: the second `find-xpdfgrep' 18:46 Demo: the relevant occurrence / direct link to it 19:18 Links ##### # # video-emacsconf-short: transcription of the "demo" part # 2019nov13 # ##### # «video-emacsconf-short-dt» (to ".video-emacsconf-short-dt") 13:11 Let me show you an example of executable notes and how to play them back. 13:18 I will only be able to explain how to _record_ these executable notes in the longer video. 13:25 Anyway: when I was recording this video I realized that xpdf was behaving in a very annoying way - 13:34 it was changing the page in moments that I didn't want it to... 13:39 and the problem was that when my finger was at the right side of the touchpad 13:45 and I moved it up or down this would be interpreted as a _mousewheel scroll_, 13:52 that would be interpreted as PageUp or PageDown, 13:57 and I wanted to disable that - I wanted to disable the support for mousewheel scroll in xpdf. 14:01 So I took a look at the man page for xpdf - here - 14:06 I didn't find a simple way to change that by changing a configuration file 14:11 but I found a section that described all the default mouse bindings - here - 14:18 I found a line that seemed to be relevant - this one - 14:21 I created a hyperlink that pointed directly to that line - this one - 14:30 and I also found an explanation for what this function does 14:35 and the explanation says that this function either scrolls up by some pixels 14:41 or it moves to the previous page - which means PageUp. 14:46 So the _quickest_ way to change xpdf - because I was in a hurry - 14:51 was by downloading and recompiling the Debian source with some changes. 14:56 I used this hyperlink here, that uses a template, to generate several links 15:01 and several shell commands for downloading and recompiling a debian source package. 15:08 I copied these lines to my notes with some small changes, 15:15 and this part - here - uses the alternative to M-x eev... 15:20 remember that I said that my old way of sending lines to the shell was by using M-x eev, 15:27 that was very clumsy: it needed several keystrokes, and it was difficult to install 15:34 because we would need to change an rcfile. 15:38 So, the new alternative to it uses just <f8>, 15:43 that behaves in one way in lines that start with a red star - like these ones - 15:49 and in another way in lines that do not start with a red star. 15:54 Let me change the font to a smaller one to show how it works. 16:00 If I type <f8> in these three lines - here - 16:03 this will set up a target buffer - here - running a shell, 16:08 and if I type <f8> in these lines - here - this will send these commands to the shell. 16:14 This command, in particular, it downloads - sorry, it _makes sure_ that I have 16:20 all the Debian packages that I need to be able to compile the source for xpdf, 16:27 and this command - here - downloads the source package for xpdf 16:34 and unpacks it. It takes a few seconds - here. 16:40 I do not want to execute this thing now - this thing would recompile the source. 16:49 So, this hyperlink - here - opens this temporary directory, 16:54 and it turns out that the source package was unpacked in this subdirectory - here - 17:04 so this hyperlink points to the subdirectory, 17:07 and this s-expression - here - defines several shorter hyperlinks with "find-xpdf" in their names 17:17 that operate in this subdirectory - here. 17:22 So, this hyperlink - here - opens that directory, 17:30 this one - here - runs these shell commands in that directory 17:37 to list all the files - remember that I haven't compiled anything yet, 17:41 so all these files belong to the source package, 17:46 and this one is much more interesting - it runs a grep in that directory. 17:51 Remember that I discovered that the name of the mouse event that was bound to 17:57 PageUp, or to the _bad_ PageUp in the bad PageDown, 18:02 was MousePress4 (and MousePress5)... 18:06 So this grep here searches for all the occurrences of MousePress4 18:12 in the source... and it shows that there are only two occurrences, 18:18 one of them in the source for the man page and the other one 18:22 in the rendered version of that source, which is not good... 18:27 Let me change to the bigger font again. 18:31 So I decided to search for the function that was associated to that mouse event - 18:39 this function here - and I found several occurrences of that string, 18:45 and it turned out that _this_ is a relevant occurrence, 18:49 so I created a direct link to that source file, 18:53 and I discovered that if I commented out these lines by hand 19:03 and recompiled everything and installed the new debian binary package 19:09 then I would get an xpdf that does not have the annoying behavior. But... 19:15 That's it. * (eepitch-blogme3) * (eepitch-kill) * (eepitch-blogme3) bigstr = [[ 18:45 and it turned out that _this_ is a relevant occurrence, 18:49 so I created a direct link to that source file, 18:53 and I discovered that if I commented out these lines by hand ]] ##### # # punch-and-judy # 2019aug18 # ##### # «punch-and-judy» (to ".punch-and-judy") # (find-youtubedl-links "/sda5/videos/" "Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre" "K6LmZ0A1s9U" ".mp4" "punchandjudy") # (find-fline "/sda5/videos/" "K6LmZ0A1s9U") # (find-video "/sda5/videos/Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre-K6LmZ0A1s9U.mp4") # (code-video "punchandjudyvideo" "/sda5/videos/Punch_and_Judy_Show_at_London_Covent_Garden_May_Fayre-K6LmZ0A1s9U.mp4") # (find-twusfile "eev-videos/") # (find-twusfile "eev-videos/" "Punch_and_Judy") # (find-fline "~/eev-videos/" "Punch_and_Judy") # (find-eev "eev-audiovideo.el" "find-mpv-video" "ee-mpv-video-options") # (setq ee-mpv-video-options '("--fs" "--osd-level=2")) # (setq ee-mpv-video-options '("--osd-level=2")) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # http://www.youtube.com/watch?v=K6LmZ0A1s9U # http://angg.twu.net/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4 mkdir ~/eev-videos/ cd ~/eev-videos/ wget -nc http://angg.twu.net/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4 # (find-fline "~/eev-videos/") # (find-video "~/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4") # (code-video "punchandjudyvideo" "~/eev-videos/Punch_and_Judy_Mark_Poulton-K6LmZ0A1s9U.mp4") # (find-punchandjudyvideo) # (find-punchandjudyvideo "0:00") # (find-punchandjudyvideo "0:10" "calls the baby") # (find-punchandjudyvideo "0:40" "where's the baby") # (find-punchandjudyvideo "1:04" "right position") # (find-punchandjudyvideo "1:17" "he will sing the baby to sleep") # (find-punchandjudyvideo "1:33" "1-2-3") # (find-punchandjudyvideo "1:48" "baby downstairs") # (find-punchandjudyvideo "3:12" "slaps") # (find-punchandjudyvideo "3:50" "1-2-3") # (find-punchandjudyvideo "4:34" "you keep an eye on mr Punch") # (find-punchandjudyvideo "4:46" "hat") # (find-punchandjudyvideo "5:03" "hat") # (find-punchandjudyvideo "5:25" "did you see him?") # (find-punchandjudyvideo "5:55" "clown") # (find-punchandjudyvideo "6:14" "slaps") # (find-punchandjudyvideo "6:52" "sausages") # (find-punchandjudyvideo "7:24" "crocodile") # (find-punchandjudyvideo "8:07" "crocodile + sausages") # (find-punchandjudyvideo "8:32" "another scene") # (find-punchandjudyvideo "8:39" "fight") # (find-punchandjudyvideo "9:03" "clown") # (find-punchandjudyvideo "9:45" "mr punch") ##### # # emacsconf2019-captions # 2020oct20 # ##### # «emacsconf2019-captions» (to ".emacsconf2019-captions") [ECS 0:00 Title page] [ECS 0:15 Prehistory 1: eev appeared by accident] [ECS 1:08 Prehistory 2: my notes started to have lots of elisp hyperlinks] [ECS 2:35 Prehistory 3: M-x eev] [ECS 3:04 Prehistory 4: several other kinds of elisp kyperlinks] [ECS 4:05 Prehistory 5: these elisp hyperlinks could be put in comments] [ECS 5:34 Prehistory 6: variants of M-x eev] [ECS 5:41 Prehistory 7: [COLOR RED several megabytes of scripts and notes] ([R http://angg.twu.net/e/ here])] [ECS 6:41 Prehistory 8: I was sure that everybody was using Emacs like that] [ECS 7:52 Prehistory 9: "[COLOR red users should not be forced to see Lisp]"] [ECS 9:22 Eev as an ELPA package] [ECS 10:51 Eev as an ELPA package (2)] [ECS 11:20 M-j - and [R [STOT (find-eev-quick-intro "7.2. The list of eejump targets")] how beginners should use it] ] [ECS 12:54 A demo] [ECS 13:10 Demo: patching xpdf ([R [STOT (find-es "emacsconf2019" "short")] e-script]) ] [ECS 14:01 Demo: the `find-man' links] [ECS 14:45 Demo: the `find-apt-get-source-links'] [ECS 15:11 Demo: the eepitch block (in red star lines) ([R [STOT (find-eev-quick-intro "6. Controlling shell-like programs")] see this]) ] [ECS 15:48 Demo: eepitch on non-red star lines] [ECS 15:56 Demo: [COLOR red eepitch in action]] [ECS 16:47 Demo: the `find-fline's to the source directory] [ECS 17:07 Demo: `code-c-d' ([R [STOT (find-eev-quick-intro "9. Shorter hyperlinks")] see this]) ] [ECS 17:22 Demo: `find-xpdffile'] [ECS 17:32 Demo: `find-xpdfsh'] [ECS 17:44 Demo: `find-xpdfgrep'] [ECS 18:32 Demo: the second `find-xpdfgrep'] [ECS 18:46 Demo: the relevant occurrence / direct link to it] [ECS 19:18 Links] ] [P A transcription of what I say in the final part (i.e., in the demo): [ECSQ 13:11 Let me show you an example of "executable notes and how to play them back".] [ECSQ 13:18 I will only be able to explain how to _record_ these executable notes in the longer video.] [ECSQ 13:25 Anyway: when I was recording this video I realized that xpdf was behaving in a very annoying way -] [ECSQ 13:34 it was changing the page in moments that I didn't want it to...] [ECSQ 13:39 and the problem was that when my finger was at the right side of the touchpad] [ECSQ 13:45 and I moved it up or down this would be interpreted as a _mousewheel scroll_,] [ECSQ 13:52 that would be interpreted as PageUp or PageDown,] [ECSQ 13:57 and I wanted to disable that - I wanted to disable the support for mousewheel scroll in xpdf.] [ECSQ 14:01 So I took a look at the man page for xpdf - here -] [ECSQ 14:06 I didn't find a simple way to change that by changing a configuration file] [ECSQ 14:11 but I found a section that described all the default mouse bindings - here -] [ECSQ 14:18 I found a line that seemed to be relevant - this one -] [ECSQ 14:21 I created a hyperlink that pointed directly to that line - this one -] [ECSQ 14:30 and I also found an explanation for what this function does] [ECSQ 14:35 and the explanation says that this function either scrolls up by some pixels] [ECSQ 14:41 or it moves to the previous page - which means PageUp.] [ECSQ 14:46 So the _quickest_ way to change xpdf - because I was in a hurry -] [ECSQ 14:51 was by downloading and recompiling the Debian source with some changes.] [ECSQ 14:56 I used this hyperlink here, that uses a template, to generate several links] [ECSQ 15:01 and several shell commands for downloading and recompiling a debian source package.] [ECSQ 15:08 I copied these lines to my notes with some small changes,] [ECSQ 15:15 and this part - here - uses the alternative to M-x eev...] [ECSQ 15:20 remember that I said that my old way of sending lines to the shell was by using M-x eev,] [ECSQ 15:27 that was very clumsy: it needed several keystrokes, and it was difficult to install] [ECSQ 15:34 because we would need to change an rcfile.] [ECSQ 15:38 So, the new alternative to it uses just <f8>,] [ECSQ 15:43 that behaves in one way in lines that start with a red star - like these ones -] [ECSQ 15:49 and in another way in lines that do not start with a red star.] [ECSQ 15:54 Let me change the font to a smaller one to show how it works.] [ECSQ 16:00 If I type <f8> in these three lines - here -] [ECSQ 16:03 this will set up a target buffer - here - running a shell,] [ECSQ 16:08 and if I type <f8> in these lines - here - this will send these commands to the shell.] [ECSQ 16:14 This command, in particular, it downloads - sorry, it _makes sure_ that I have] [ECSQ 16:20 all the Debian packages that I need to be able to compile the source for xpdf,] [ECSQ 16:27 and this command - here - downloads the source package for xpdf] [ECSQ 16:34 and unpacks it. It takes a few seconds - here.] [ECSQ 16:40 I do not want to execute this thing now - this thing would recompile the source.] [ECSQ 16:49 So, this hyperlink - here - opens this temporary directory,] [ECSQ 16:54 and it turns out that the source package was unpacked in this subdirectory - here -] [ECSQ 17:04 so this hyperlink points to the subdirectory,] [ECSQ 17:07 and this s-expression - here - defines several shorter hyperlinks with "find-xpdf" in their names] [ECSQ 17:17 that operate in this subdirectory - here.] [ECSQ 17:22 So, this hyperlink - here - opens that directory,] [ECSQ 17:30 this one - here - runs these shell commands in that directory] [ECSQ 17:37 to list all the files - remember that I haven't compiled anything yet,] [ECSQ 17:41 so all these files belong to the source package,] [ECSQ 17:46 and this one is much more interesting - it runs a grep in that directory.] [ECSQ 17:51 Remember that I discovered that the name of the mouse event that was bound to] [ECSQ 17:57 PageUp, or to the _bad_ PageUp in the bad PageDown,] [ECSQ 18:02 was MousePress4 (and MousePress5)...] [ECSQ 18:06 So this grep here searches for all the occurrences of MousePress4] [ECSQ 18:12 in the source... and it shows that there are only two occurrences,] [ECSQ 18:18 one of them in the source for the man page and the other one] [ECSQ 18:22 in the rendered version of that source, which is not good...] [ECSQ 18:27 Let me change to the bigger font again.] [ECSQ 18:31 So I decided to search for the function that was associated to that mouse event -] [ECSQ 18:39 this function here - and I found several occurrences of that string,] [ECSQ 18:45 and it turned out that _this_ is a relevant occurrence,] [ECSQ 18:49 so I created a direct link to that source file,] [ECSQ 18:53 and I discovered that if I commented out these lines by hand] [ECSQ 19:03 and recompiled everything and installed the new debian binary package] [ECSQ 19:09 then I would get an xpdf that does not have the annoying behavior. But...] [ECSQ 19:15 That's it.] ##### # # 2020-several-tbfs # 2020dec25 # ##### # «2020-several-tbfs» (to ".2020-several-tbfs") # (find-TH "2020-some-template-based") # (defun e () (interactive) (find-fline "~/elisp/several-templated-functions-2020.el")) # (find-ssr-links "2020sometbf" "2020_some_template-based_functions") # (code-eevvideo "2020sometbf" "2020_some_template-based_functions" "91-9YfRPsuk") # http://angg.twu.net/eev-videos/2020_some_template-based_functions.mp4 # (code-video "2020sometbfvideo" "$S/http/angg.twu.net/eev-videos/2020_some_template-based_functions.mp4") # (find-2020sometbfvideo "0:00" "Title") # (find-2020sometbfvideo "0:17" "the reason for this title") # (find-2020sometbfvideo "0:18" "1. `find-find-links-links-new'") # (find-2020sometbfvideo "1:29" "generated again with these values") # (find-2020sometbfvideo "1:50" "the implementation is very simple") # (find-2020sometbfvideo "2:00" "in five minutes because ... generates skeletons") # (find-2020sometbfvideo "5:03" "2. `M-x brep'") # (find-2020sometbfvideo "5:43" "a way to download local copies") # (find-2020sometbfvideo "7:11" "The new way: `M-x brep'") # (find-2020sometbfvideo "8:15" "by typing `M-x brep'") # (find-2020sometbfvideo "8:50" "and then we get this buffer here") # (find-2020sometbfvideo "9:17" "3. The function that defines brep") # (find-2020sometbfvideo "9:38" "`code-brurl' is a variant of `code-c-d'") # (find-2020sometbfvideo "10:07" "find-code-url shows the code instead of executing it") # (find-2020sometbfvideo "11:26" "this is explained in the main tutorial") # (find-2020sometbfvideo "12:12" "accept extra arguments") # (find-2020sometbfvideo "12:34" "if we run just this") # (find-2020sometbfvideo "12:40" "one of the reasons for using text: comments") # (find-2020sometbfvideo "13:03" "if we run just this with extra arguments") # (find-2020sometbfvideo "14:10" "code-brurl executes this code here") # (find-2020sometbfvideo "14:20" "4. `find-esetkey-links'") # (find-2020sometbfvideo "15:20" "a big header with lots of help") # (find-2020sometbfvideo "16:28" "I have these keybindings, for toggling") # (find-2020sometbfvideo "17:06" "I realized that I use `M-x wrap' very often") # (find-2020sometbfvideo "18:18" "in the emacs-devel mailing list") # (find-2020sometbfvideo "18:32" "users should not be forced to see lisp") # (find-2020sometbfvideo "19:23" "5. `find-youtubedl-links'") # (find-2020sometbfvideo "19:43" "if we twist the notion user enough") # (find-2020sometbfvideo "20:02" "user-friendly to me") # (find-2020sometbfvideo "20:05" "The documentation is in this tutorial:") # (find-2020sometbfvideo "21:36" "its code is here") # (find-2020sometbfvideo "21:55" "Let me show a demo") # (find-2020sometbfvideo "22:15" "I never type these rm -Rv/mkdir/cd by hand") # (find-2020sometbfvideo "22:48" "let me show how to download ... the hash is here") # (find-2020sometbfvideo "23:25" "they regenerate this buffer in slightly different ways") # (find-2020sometbfvideo "24:03" "a video with this hash. If I visit the directory") # (find-2020sometbfvideo "24:32" "my magic functions have to") # (find-2020sometbfvideo "24:50" "if I run this sexp here with nil") # (find-2020sometbfvideo "25:00" "it tries to guess the title") # (find-2020sometbfvideo "25:28" "and if I change this {stem} here I get short links") # (find-2020sometbfvideo "26:14" "has very long lines, but if I type super-w") # (find-2020sometbfvideo "26:28" "I get a buffer that shows the code for find-preadingvideo") # (find-2020sometbfvideo "26:50" "if I execute this I play the video") # (find-2020sometbfvideo "27:15" "make a copy of this that points to the right position") # (find-2020sometbfvideo "27:53" "summary: this is how I download videos from youtube") # (find-2020sometbfvideo "28:12" "6. `find-here-links' and `find-extra-file-links'") # (find-2020sometbfvideo "28:20" "it deserves another presentation just to itself") # (find-2020sometbfvideo "28:32" "the central idea of eev") # (find-2020sometbfvideo "29:17" "it is bound to `M-h M-h'") # (find-2020sometbfvideo "29:25" "generates a temporary buffer with hyperlinks to here") # (find-2020sometbfvideo "29:30" "help and a link to the tutorial in which I was") # (find-2020sometbfvideo "29:45" "not very well documented yet") # (find-2020sometbfvideo "30:05" "it is explained in this section of the tutorial") # (find-2020sometbfvideo "30:18" "if we type `M-h M-e' this runs `find-extra-file-links'") # (find-2020sometbfvideo "30:42" "here is an example in Lisp") # (find-2020sometbfvideo "31:06" "and I can change this {c}") # (find-2020sometbfvideo "31:22" "Let me show a more realistic example of how to use it") # (find-2020sometbfvideo "31:28" "let's go to the directory with the video file") # (find-2020sometbfvideo "31:45" "this file is a video file") # (find-2020sometbfvideo "32:00" "(a glitch)") # (find-2020sometbfvideo "33:03" "these were the things that I wanted to show") # (find-file "/tmp/o") # (find-sh "cut -b27- /tmp/o | tr -d '\"' | rev | cut -b2- | rev") ##### # # Carmen Astrid # 2014aug10 # ##### # «carmen-1» (to ".carmen-1") { rm -Rv ~/eev/ mkdir ~/eev/ cd ~/eev/ rm -v eev2.tgz wget http://angg.twu.net/eev-current/eev2.tgz tar -xvzf eev2.tgz } { { echo '#!/bin/sh' echo 'cd ~/eev/ && emacs -l ./eev-readme.el --eval="(find-eval-intro)"' } > ~/e chmod 755 ~/e } # (find-man "wget") # (find-man "rm") # (find-man "mkdir") # (find-man "tar") # (find-man "tar" "-x, --extract") # (find-man "tar" "-v, --verbose") # (find-man "tar" "-z, --gzip, --gunzip") # (find-man "tar" "-f, --file ARCHIVE") (Re)generate: (find-eval-intro) ##### # # Low-level tests to see if eegchannel is working # 2019mar10 # ##### # «eegchannel-test» (to ".eegchannel-test") # (find-eev "eegchannel") # (find-eev "eegchannel" "proc pidfile") # (find-eev "eegchannel-test" "proc pidfile") # (find-channels-intro "2.2. Test eegchannel") ##### # # eexterm-test # 2019mar10 # ##### # «eexterm-test» (to ".eexterm-test") # (find-eev "eev-channels.el" "eexterm") # (find-eev "eev-channels.el" "eexterm" "Tests:") * (eexterm "A") echo hello exit * (eexterm "A" "ssh edrx@127.0.0.1") * (eexterm "A" "ssh edrx@127.0.0.1" "-geometry +512+0") edrx exit ##### # # eev as an Emacs package (in ELPA or so) # 2014oct11 # ##### # «eev-emacs-package» (to ".eev-emacs-package") # (find-es "emacs" "packages") # (find-angg ".emacs" "eev-package") ;; (find-elnode "Packaging") ;; (find-elnode "Packaging Basics") ;; (find-elnode "Packaging Basics" "Long description") ;; (find-elnode "Multi-file Packages") ;; (find-elnode "Package Archives") ;; (find-elnode "Package Archives" "package-x") ;; (find-elnode "Library Headers") ;; (find-elnode "Library Headers" "Finder") ;; (find-enode "Packages") ;; (find-enode "Package Installation") ;; (find-es "emacs" "packages") ;; (find-sh "locate package-x") ;; (find-efile "emacs-lisp/package-x.el") ;; (find-ecvsfile "test/automated/package-x-test.el") ;; (find-ecvsfile "Makefile" "check:") ;; (find-epackage 'magit) ;; (find-epackage 'magit "Invoking the magit-status function") ;; (find-magitfile "magit.el" "Invoking the magit-status function") ##### # # eev-pkg.el-fields # 2019mar13 # ##### # «eev-pkg.el-fields» (to ".eev-pkg.el-fields") # (find-epackage 'isend-mode) # (find-isendmodefile "isend-mode-pkg.el") # (find-elpafile "isend-mode-readme.txt") # (find-pdftoolsfile "pdf-tools-pkg.el") # (find-elpafile "pdf-tools-readme.txt") # (find-eevfile "eev-pkg.el") # (find-epackage 'add-hooks) # (find-elnode "Packaging") # (find-elnode "Packaging Basics" "Name") # (find-elnode "Packaging Basics" "Version") # (find-elnode "Packaging Basics" "Brief description") # (find-elnode "Packaging Basics" "Long description") # (find-elnode "Packaging Basics" "Dependencies") # (find-elnode "Packaging Basics" "package-initialize") # (find-elnode "Simple Packages" "Keywords" "optional") # (find-elnode "Multi-file Packages" "README") # (find-elnode "Multi-file Packages" "(file-name-directory load-file-name)") # Long description / readme: # (find-escripts-intro "Eev's central idea") ##### # # eev-pkg-repo # 2019mar13 # ##### # «eev-pkg-repo» (to ".eev-pkg-repo") # (find-elnode "Package Archives" "package-archives") ##### # # eev-pkg: build # 2014oct11 / 2019mar13 # ##### # «eev-pkg-build» (to ".eev-pkg-build") # (find-es "emacs" "package-dummy") # (find-es "emacs" "package-dummy" "package-install-file") # (find-eev "eev-pkg.el") # (find-sh "date +%Y%m%d") # (setenv "DATE" "20190401") # (code-c-d "eevpkg" (format "/tmp/eev-%s/" (getenv "DATE"))) # (setq ee-eevpkgtar (format "/tmp/eev-%s.tar" (getenv "DATE"))) # (code-c-d "elpaeev" (format "~/.emacs.d/elpa/eev-%s/" (getenv "DATE"))) # (find-eevpkgfile "") # (find-elpaeevfile "") # (find-fline ee-eevpkgtar) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) my-git-list-files /tmp/eev-g/ my-git-list-files /tmp/eev-g/ | grep '.el$' | tee /tmp/.files echo README >> /tmp/.files # (find-eev "README-pkg") # (find-es "eev" "eev-pkg.el-fields") rm -Rv /tmp/eev-2019* mkdir /tmp/eev-$DATE/ cd /tmp/eev-$DATE/ # (to "eev-pkg.el") # (find-elnode "Multi-file Packages" "README") cd ~/eev-current/ cp -v $(cat /tmp/.files) /tmp/eev-$DATE/ # cp -v README-pkg /tmp/eev-$DATE/eev-readme.txt # cp -v README-pkg /tmp/eev-$DATE/README cd /tmp/eev-$DATE/ cd /tmp/ tar -cvf /tmp/eev-$DATE.tar eev-$DATE/* rm -Rv ~/.emacs.d/elpa/eev* # (package-install-file ee-eevpkgtar) # (find-elpafile "") # (find-elpaeevfile "") # (find-efunction 'package-install-file) cd /tmp/ Scp-np /tmp/eev-$DATE.tar $TWUP/eev-current/elpa/ Scp-np /tmp/eev-$DATE.tar $TWUS/eev-current/elpa/ # (find-twusfile "eev-current/elpa/") # (find-twupfile "eev-current/elpa/") # http://angg.twu.net/eev-current/elpa/ * (eepitch-shell2) * (eepitch-kill) * (eepitch-shell2) ~/EXPECT/autopasswd ssh edrx@angg.twu.net cd ~/public_html/ && makepageindexhtmls # Old (2014): eev2-build-tgz echo $DATE rm -Rv ~/usrc/eev-* mkdir ~/usrc/eev-$DATE/ cd ~/usrc/eev-$DATE/ tar -C ~/usrc/eev-$DATE/ -xvzf /tmp/eev2.tgz cp -v ~/eev-current/eev-pkg.el ~/usrc/eev-$DATE/ cp -v eev2-all.el eev.el ** Fix this by hand: * (find-eevpkgfile "eev.el" "(provide '") cd ~/usrc/ tar -cvf /tmp/eev-$DATE.tar eev-$DATE/*.el laf /tmp/eev-$DATE.tar Scp-np -v /tmp/eev-$DATE.tar $TWUS/packages-el/ Scp-np -v /tmp/eev-$DATE.tar $TWUP/packages-el/ * (eepitch-Twu) * (eepitch-kill) * (eepitch-Twu) zsh rm -v ~/public_html/packages-el/index.html makepageindexhtmls # http://angg.twu.net/packages-el/ # (find-angg ".zshrc" "makepagefromtar") Scp -v eev-20141011.tar \ edrx@angg.twu.net:/home/edrx/slow_html/ ##### # # eev-pkg-readme # 2019mar14 # ##### # «eev-pkg-readme» (to ".eev-pkg-readme") # http://elpa.gnu.org/packages/auctex-12.1.2.tar # (find-fline "$S/http/elpa.gnu.org/packages/auctex-12.1.2.tar") # (find-fline "$S/http/elpa.gnu.org/packages/auctex-12.1.2.tar" "auctex-12.1.2/README") <edrx> anyone here maintains an ELPA package? If I'm reading the documentation correctly then the long description of the package that I'm building should be put at /tmp/eev-20190313/README before I run tar -cvf /tmp/eev-20190313.tar eev-20190313/*, but when I do this and run <edrx> (package-install-file "/tmp/eev-20190313.tar") then this does not generate a file ~/.emacs.d/elpa/eev-readme.txt... # (find-elpafile "") # (find-elpafile "" "isend-mode") # (find-elpafile "isend-mode-readme.txt") # (find-epackage 'isend-mode) # (find-epackage 'eev) # (find-eev "README") ##### # # First tests on the eev package (before announcing it on emacs-devel) # 2019mar14 # ##### # «eev-pkg-test-0» (to ".eev-pkg-test-0") ##### # # eev-pkg-submit-to-ELPA # 2019mar14 # ##### # «eev-pkg-submit-to-ELPA» (to ".eev-pkg-submit-to-ELPA") # http://git.savannah.gnu.org/cgit/emacs/elpa.git/plain/README ##### # # elpa.git # 2019apr09 # ##### # «elpa.git» (to ".elpa.git") # http://git.savannah.gnu.org/cgit/emacs/elpa.git/ # http://git.savannah.gnu.org/cgit/emacs/elpa.git/commit/?h=externals/eev # http://git.savannah.gnu.org/cgit/emacs/elpa.git/log/?h=externals/eev # http://git.savannah.gnu.org/cgit/emacs/elpa.git/snapshot/elpa-externals/eev.tar.gz # https://mail.google.com/mail/ca/u/0/#search/elpa.git/QgrcJHsBpWZnWNtbdGZtDPlljGRHJsdBTZv * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-fline "/tmp/eev-e/") cd /tmp/ wget -nc http://git.savannah.gnu.org/cgit/emacs/elpa.git/snapshot/elpa-externals/eev.tar.gz rm -Rv /tmp/eev-e mkdir /tmp/eev-e/ cd /tmp/eev-e/ tar --strip-components 2 -xvzf ../eev.tar.gz rm -Rfv /tmp/eev-g mkdir /tmp/eev-g/ cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-g/ git checkout UTF-8 'ls' /tmp/eev-e/ | my-cmp-tkdiff /tmp/eev-e/ /tmp/eev-g/ 'ls' /tmp/eev-e/ | my-cmp-tkdiff /tmp/eev-e/ "~/eev-current/" (find-tkdiff "/tmp/eev-e/ChangeLog" "~/eev-current/ChangeLog") (find-tkdiff "/tmp/eev-e/VERSION" "~/eev-current/VERSION") (find-tkdiff "/tmp/eev-e/eev-anchors.el" "~/eev-current/eev-anchors.el") (find-tkdiff "/tmp/eev-e/eev-intro.el" "~/eev-current/eev-intro.el") (find-tkdiff "/tmp/eev-e/eev-tlinks.el" "~/eev-current/eev-tlinks.el") (find-tkdiff "/tmp/eev-e/eev.el" "~/eev-current/eev.el") (find-fline "~/eev-current/eev-anchors.el") (find-fline "~/eev-current/eev-intro.el") (find-fline "~/eev-current/eev-tlinks.el") (find-fline "~/eev-current/eev.el") (find-fline "~/eev-current/eev-blinks.el") (find-fline "~/eev-current/eev-code.el") (find-fline "~/eev-current/eev-env.el") (find-fline "~/eev-current/eev-eval.el") (find-fline "~/eev-current/eev-mode.el") (find-fline "~/eev-current/eev-plinks.el") (find-fline "~/eev-current/eev-prepared.el") (find-fline "~/eev-current/eev-template0.el") (find-fline "~/eev-current/eev-tlinks.el") (find-tkdiff> "/tmp/eev-e/eejump.el" "~/eev-current/eejump.el") (find-tkdiff> "/tmp/eev-e/eev-audiovideo.el" "~/eev-current/eev-audiovideo.el") (find-tkdiff> "/tmp/eev-e/eev-beginner.el" "~/eev-current/eev-beginner.el") (find-tkdiff> "/tmp/eev-e/eev-blinks.el" "~/eev-current/eev-blinks.el") (find-tkdiff> "/tmp/eev-e/eev-brxxx.el" "~/eev-current/eev-brxxx.el") (find-tkdiff> "/tmp/eev-e/eev-channels.el" "~/eev-current/eev-channels.el") (find-tkdiff> "/tmp/eev-e/eev-code.el" "~/eev-current/eev-code.el") (find-tkdiff> "/tmp/eev-e/eev-codings.el" "~/eev-current/eev-codings.el") (find-tkdiff> "/tmp/eev-e/eev-edit.el" "~/eev-current/eev-edit.el") (find-tkdiff> "/tmp/eev-e/eev-elinks.el" "~/eev-current/eev-elinks.el") (find-tkdiff> "/tmp/eev-e/eev-env.el" "~/eev-current/eev-env.el") (find-tkdiff> "/tmp/eev-e/eev-eval.el" "~/eev-current/eev-eval.el") (find-tkdiff> "/tmp/eev-e/eev-flash.el" "~/eev-current/eev-flash.el") (find-tkdiff> "/tmp/eev-e/eev-load.el" "~/eev-current/eev-load.el") (find-tkdiff> "/tmp/eev-e/eev-mode.el" "~/eev-current/eev-mode.el") (find-tkdiff> "/tmp/eev-e/eev-multiwindow.el" "~/eev-current/eev-multiwindow.el") (find-tkdiff> "/tmp/eev-e/eev-pdflike.el" "~/eev-current/eev-pdflike.el") (find-tkdiff> "/tmp/eev-e/eev-plinks.el" "~/eev-current/eev-plinks.el") (find-tkdiff> "/tmp/eev-e/eev-prepared.el" "~/eev-current/eev-prepared.el") (find-tkdiff> "/tmp/eev-e/eev-rcirc.el" "~/eev-current/eev-rcirc.el") (find-tkdiff> "/tmp/eev-e/eev-readme.el" "~/eev-current/eev-readme.el") (find-tkdiff> "/tmp/eev-e/eev-template0.el" "~/eev-current/eev-template0.el") (find-tkdiff> "/tmp/eev-e/eev2-all.el" "~/eev-current/eev2-all.el") eejump.el, eev-anchors.el, eev-audiovideo.el, eev-beginner.el, eev-blinks.el, eev-brxxx.el, eev-channels.el, eev-code.el, eev-codings.el, eev-edit.el, eev-elinks.el, eev-env.el, eev-eval.el, eev-flash.el, eev-intro.el, eev-load.el, eev-mode.el, eev-multiwindow.el, eev-pdflike.el, eev-plinks.el, eev-prepared.el, eev-rcirc.el, eev-readme.el, eev-template0.el, eev-tlinks.el, eev.el, eev2-all.el ##### # # eek-pkg-announcement # 2019mar15 # ##### # «eek-pkg-announcement» (to ".eek-pkg-announcement") # https://mail.google.com/mail/ca/u/0/#sent/QgrcJHshbMQhlqMWtLSdBzQzdbnhBGwxVnb # http://lists.gnu.org/archive/html/emacs-devel/2019-03/msg00433.html [ELPA] New package: eev Hi list, I would like to submit a package to ELPA. It is called "eev". Let me copy its README here: --snip--snip-- Eev's central idea is that you can keep "executable logs" of what you do, in a format that is reasonably readable and that is easy to "play back" later, step by step and in any order. We call these executable logs "e-scripts". These "steps" are mainly of two kinds: 1) elisp hyperlinks, and 2) lines sent to shell-like programs. To run the tutorial: install this package, then type `M-x eev-beginner'. This will load all the main modules, activate the eev-mode keybindings, and open this tutorial, http://angg.twu.net/eev-intros/find-eev-quick-intro.html (find-eev-quick-intro) in a sandboxed buffer. For a list of the other sandboxed tutorials, run: (find-eev-intro) For a non-technical description of what e-scripts are, see: http://angg.twu.net/escripts.html The home page of eev is: http://angg.twu.net/#eev --snip--snip-- The current version of its ELPA-ish package is here: http://angg.twu.net/eev-current/elpa/ http://angg.twu.net/eev-current/elpa/eev-20190314.tar The home page points to other, more mature, ways to install it: a .tgz that users can install by copying and pasting a script to a shell, and its git repository. Feedback VERY welcome. Thanks in advance! Eduardo Ochs http://angg.twu.net/#eev ==================================== Hi Stefan! Wow, that was quick!!! 1) About the README: I am trying to learn how to use modern tools to record screencasts to create a single video with the main features that will last less than two minutes. Does that help? Note that this page http://angg.twu.net/escripts.html explains the motivation in a non-technical way, but I still need a way to show the "play back" in action to people who only have two or three minutes to spend... any problems if I spend a few weeks more, or a month, to produce that short video? 2) Authorship: I am the author of everything but there is a module - eepitch.el - that is based on the ideas of a 57-line prototype that a user called Rubikitch (he never told me his real name, even though I asked) sent to the eev mailing list in 2006. I just added links to the discussion in the mailing list to the comments in eepitch.el - let me copy them here: ;; NOTE 2: eepitch is based on code that Rubikitch sent to the eev ;; mailing list in 2006, but I rewrote his code completely several ;; times since then. See: ;; ;; http://lists.gnu.org/archive/html/eev/2006-01/msg00000.html ;; http://lists.gnu.org/archive/html/eev/2006-02/msg00000.html ;; http://lists.gnu.org/archive/html/eev/2006-02/msg00001.html 3) About eev-beginner.el. I never found a good way to set up the autoloads in eev until a few days ago - and what I got then was a *first* way to set up autoloads that was good enough to begin with, i.e., until I could discuss that with senior emacsers. Here's how it works. When you install eev from ELPA there is only a single autoload - for `eev-beginner', that loads all main modules and opens the tutorial. When you've grasped the main ideas and you want to install eev in a non-beginner way what you do is to run this, possibly from your .emacs: (require 'eev-load) This loads all the main modules but does not turn on eev-mode and does not open the tutorial. 4) About the Emacs version. I *guess* that eev would run on Emacs 22 either unmodified or with at most two very small changes, but it would take me a while to install an Emacs 22 here. As a temporary solution I've changed the 4th argument to `define-package' in eev-pkg.el from nil to: '((emacs "24.3")) 5) About byte-compilation. There isn't any code in eev that takes more that 1/100 seconds to run, and there are some points in the tutorials in which I encourage people to look at the source code of the functions in two ways: with [the eev variant of] find-function and with `find-efunctionpp', whose docstring is: "Visit a temporary buffer containing the pretty-printed Lisp code for SYMBOL." Roughly, (find-efunctionpp 'foo) puts the result of (pp-to-string (symbol-function 'foo)) into a temporary buffer and switches it to emacs-lisp-mode to fontify the code. If we don't byte-compile the modules of eev then beginners will have a reasonable corpus of functions for which `find-efunctionpp' shows something readable, which is good to help them understand the innards of Emacs. 6) About git. I prefer to keep using my own repository, at least for the next few months. I know less git that I should, and by the way - important caveat! - all the new developments are being pushed to the "UTF-8" branch of the git repository, but the "master" there still points to an obsolete branch and I don't know how to fix that... =( Thanks for the feedback!!! I will upload a new version - including an updated tarball - in a few minutes. Cheers! E. ##### # # eev pkg signing # 2014oct11 # ##### # «eev-pkg-signing» (to ".eev-pkg-signing") gpg --sign --detach -- archive-contents gpg --sign --detach -- eev-0.1.tar # (find-epackage 'eev) # (find-epackages) # (package-install-file "/tmp/eev-20141011.tar") # (find-efunction 'package-install-file) # (find-epackages) # (find-fline "~/.emacs.d/elpa/") # (find-fline "~/.emacs.d/elpa/" "eev") # (find-angg ".emacs" "eev-package") # (find-eevpkgfile "") # (find-eevpkgfile "eev-autoloads.el") # (find-fline "~/.emacs.d/elpa/") # (find-fline "~/.emacs.d/elpa/eev-20141011/") ##### # # eev in ELPA # 2019apr08 # ##### # «eev-in-elpa» (to ".eev-in-elpa") # (to "eev-pkg-submit-to-ELPA") # (find-es "emacs" "elpa") # http://elpa.gnu.org/packages/eev.html # http://elpa.gnu.org/packages/eev-20190401.tar # http://elpa.gnu.org/packages/eev-20190410.tar ##### # # Producing a .tar or the current version (for Windows) # 2019apr27 # ##### # «eev-tar-windows» (to ".eev-tar-windows") # (find-es "emacs" "package-install-file") # (find-eev2-links) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) # (find-man "cut") cat ~/eev-current/eev.el | grep Version: | cut '-d ' -f 3 |& tee /tmp/ov DATE=$(cat /tmp/ov) FNAME=eev-$DATE echo $FNAME echo /tmp/$FNAME.tar rm -Rfv /tmp/$FNAME.tar rm -Rfv /tmp/$FNAME mkdir /tmp/$FNAME cd ~/eev-current/ cp -iv $(cd /tmp/eev-g/ && git ls-files) /tmp/$FNAME/ cd /tmp/ tar -cvf /tmp/$FNAME.tar $FNAME/* tar -tvf /tmp/$FNAME.tar laf /tmp/$FNAME.tar # (package-install-file "/tmp/eev-20190425.tar") # (find-fline "$S/http/elpa.gnu.org/packages/eev-20190410.tar") # (find-fline "/tmp/eev-20190425.tar") cp -v $S/http/elpa.gnu.org/packages/eev-20190410.tar /tmp/ # (find-fline "/tmp/eev-20190410.tar") # (package-install-file "/tmp/eev-20190410.tar") laf /tmp/eev2.tgz ##### # # Changing the "master" to UTF-8 using push # 2019jun14 # ##### # «push-master» (to ".push-master") # (find-fline "/tmp/" " eev-") # /tmp/eev-g(edrx:li)# git checkout UTF-8 # Branch UTF-8 set up to track remote branch UTF-8 from origin. # Switched to a new branch 'UTF-8' # /tmp/eev-g(edrx:li)# * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rfv /tmp/eev-a mkdir /tmp/eev-a/ cd /tmp/eev-a/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-a/ * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rfv /tmp/eev-b cp -av /tmp/eev-a/ /tmp/eev-b rm -Rfv /tmp/eev-c mkdir /tmp/eev-c/ cd /tmp/eev-c/ && git clone /tmp/eev-b . cd /tmp/eev-c/ # (find-gitk "/tmp/eev-c/") git checkout UTF-8 # (find-gitk "/tmp/eev-c/") git branch --list -a git for-each-ref git for-each-ref | sort # (find-fline "/tmp/eev-c/") # (find-fline "/tmp/eev-c/.git/refs/heads/") # (find-fline "/tmp/eev-c/.git/refs/heads/" "master") # (find-es "git" "HEAD") # (find-es "git" "HEAD") ##### # # git-merge-elpa # 2019jun25 # ##### # «git-merge-elpa» (to ".git-merge-elpa") # (find-es "emacs" "elpa-git") # https://mail.google.com/mail/ca/u/0/#inbox/QgrcJHsBpWsJwDdfTnZCpJWHvfbNNgnMLHQ # Another thing you should likely do is: # git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git # git fetch elpa # git merge elpa/externals/eev # (find-eev2-links) * (eepitch-shell) * (eepitch-kill) * (eepitch-shell) rm -Rfv /tmp/eev-g mkdir /tmp/eev-g/ cd /tmp/eev-g/ && git clone https://github.com/edrx/eev.git . cd /tmp/eev-g/ git remote add elpa http://git.sv.gnu.org/r/emacs/elpa.git git fetch elpa git merge elpa/externals/eev git branch --list -a git for-each-ref git for-each-ref | sort git checkout hyperbole git checkout remotes/elpa/externals/eev git checkout remotes/elpa/externals/hyperbole # (find-man "1 git-remote") # (find-man "1 git-fetch") # (find-gitk "/tmp/eev-g/") # (find-fline "/tmp/eev-g/") # (find-sh "locate /elpa/") # Kill the running vncserver vncserver -kill :2 killall -9 Xrealvnc rm -fv /tmp/.X2-lock rm -fv /tmp/.X11-unix/X2 rm -Rv ~/.vnc/ ;# goodbye, old vnc password, goodbye vncserver -geometry 600x400 -depth 16 :2 password password export DISPLAY=:0.0 my_vnc2swf -nostatus /tmp/channels.swf :2 password # Local Variables: # coding: raw-text-unix # modes: (fundamental-mode emacs-lisp-mode) # End: