Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
#######
#
# E-scripts on M$ Windows (a.k.a. w32 <- old name).
#
# 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/w32.e>
#           or at <http://angg.twu.net/e/w32.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/>.
#
#######





# See:
# http://angg.twu.net/w32.html
# (find-anggfile "TH/w32.blogme")



# «.system-type»		(to "system-type")
# «.downloads»			(to "downloads")
# «.mkdirs»			(to "mkdirs")
# «.moves»			(to "moves")
# «.eepaste-one-line»		(to "eepaste-one-line")
# «.eshell-mvs»			(to "eshell-mvs")
# «.eshell-7zip»		(to "eshell-7zip")
# «.eshell-unxutils»		(to "eshell-unxutils")
# «.eshell-edrx.tgz»		(to "eshell-edrx.tgz")
# «.putty»			(to "putty")
# «.2008jan18»			(to "2008jan18")
# «.EmacsW32»			(to "EmacsW32")
# «.dns»			(to "dns")
# «.emacs-for-windows-2012»	(to "emacs-for-windows-2012")
# «.filezilla»			(to "filezilla")
# «.mingw»			(to "mingw")
# «.msys2»			(to "msys2")
# «.windows-emacs26»		(to "windows-emacs26")
# «.chocolatey»			(to "chocolatey")
# «.python-on-emacs26-for-windows»	(to "python-on-emacs26-for-windows")
# «.find-windows-eepitch-lua-links»	(to "find-windows-eepitch-lua-links")
# «.wsl»			(to "wsl")
# «.wsl-copy-clip»		(to "wsl-copy-clip")
# «.wsl-emacs-other-window»	(to "wsl-emacs-other-window")
# «.mplsCorwin-dec2020»		(to "mplsCorwin-dec2020")
# «.mplsCorwin-ghostwheel»	(to "mplsCorwin-ghostwheel")
# «.mplsCorwin-mpv»		(to "mplsCorwin-mpv")
# «.mplsCorwin-chrome»		(to "mplsCorwin-chrome")
# «.mplsCorwin-pdf-chrome»	(to "mplsCorwin-pdf-chrome")
# «.mplsCorwin-psne»		(to "mplsCorwin-psne")
# «.mplsCorwin-eevvideos»	(to "mplsCorwin-eevvideos")
# «.wget-2021»			(to "wget-2021")
# «.wget-1.21.2-win64»		(to "wget-1.21.2-win64")
# «.powershell»			(to "powershell")
# «.eepitch-pwsh»		(to "eepitch-pwsh")
# «.windows-terminal»		(to "windows-terminal")
# «.emacs-28»			(to "emacs-28")
# «.emacs-29»			(to "emacs-29")
# «.installation-directory»	(to "installation-directory")
# «.test-mpv»			(to "test-mpv")
# «.eev-tar-2019»		(to "eev-tar-2019")
# «.explorer»			(to "explorer")
# «.terminals-in-windows»	(to "terminals-in-windows")
# «.martin-milan»		(to "martin-milan")
# «.martin-milan-config»	(to "martin-milan-config")
# «.gabriel-lacerda-config»	(to "gabriel-lacerda-config")
# «.caio-palhares-config»	(to "caio-palhares-config")
# «.modo-escuro»		(to "modo-escuro")
# «.folders»			(to "folders")
# «.maxima»			(to "maxima")
# «.libgmp-10.dll»		(to "libgmp-10.dll")
# «.bitmapped-fonts»		(to "bitmapped-fonts")
# «.7z-x-exe»			(to "7z-x-exe")
# «.msi-installer»		(to "msi-installer")
# «.keyboard-layout»		(to "keyboard-layout")
# «.mouse-3-on-acer»		(to "mouse-3-on-acer")
# «.audio-to-text»		(to "audio-to-text")
# «.you-have-an-artifact»	(to "you-have-an-artifact")
# «.screenshot-to-telegram»	(to "screenshot-to-telegram")
# «.display-unavailable»	(to "display-unavailable")
# «.vcxsrv»			(to "vcxsrv")
# «.find-saveurl»		(to "find-saveurl")
# «.kiennq-emacs-build»		(to "kiennq-emacs-build")



;; If edrx.tgz is already unpacked, use this:
;;
(progn
  (setenv "HOME" "c:/home/edrx")
  (add-to-list 'load-path "/home/edrx/")
  (load ".emacs")
  )




#####
#
# system-type
# 2019jun26
#
#####

# «system-type» (to ".system-type")
# (find-eev "eev-pdflike.el" "aliases-windows")

;; (find-elnode "System Environment")
;; (find-evardescr 'system-type)
(if (eq system-type 'windows-nt)
    (code-xxxpdf-alias "pdf-page" "texworkspdf-page"))






#####
#
# Downloads: Emacs, 7-zip, UnxUtils, edrx.tgz
# 2007aug27
#
#####

# «downloads»  (to ".downloads")

# Lennart Borgman's w32 builds:
# http://ourcomments.org/Emacs/EmacsW32.html
# http://ourcomments.org/Emacs/EmacsW32.html#download
# http://ourcomments.org/cgi-bin/emacsw32-dl-latest.pl

# 7-zip:
# http://www.7-zip.org/
# http://ufpr.dl.sourceforge.net/sourceforge/sevenzip/7z442.exe

# UnxUtils:
# http://unxutils.sourceforge.net/
# http://sourceforge.net/projects/unxutils/
# http://sourceforge.net/project/showfiles.php?group_id=9328
# http://ufpr.dl.sourceforge.net/sourceforge/unxutils/UnxUtils.zip

# edrx.tgz:
# http://angg.twu.net/edrx.tgz




#####
#
# Emacs, 7-zip, UnxUtils, edrx.tgz (unpacking)
# 2007aug27
#
#####

# «mkdirs»  (to ".mkdirs")
# Usually I run this by hand on a "cmd" window...
# The "eepitch"es are for testing from inside Emacs.
# (eepitch-kill)
# (eepitch-comint "cmd" "cmd")
#
mkdir \home\
mkdir \home\emacs\
mkdir \home\edrx\
mkdir \home\zip\
mkdir \home\7zip\
mkdir \home\unxutils\

# «moves»  (to ".moves")
# (find-file "c:")
# (find-file "c:/Documents and Settings/")
# (find-file "c:/Documents and Settings/desenvolvedores/Desktop/")
# (eepitch-kill)
# (eepitch-comint "cmd" "cmd")
#
cd "c:\Documents and Settings\desenvolvedores\Desktop"
cd c:\home\edrx
move Emacs-22-CvsP070523-EmacsW32-1.54.exe c:\home\zip
move 7z442.exe    c:\home\zip
move UnxUtils.zip c:\home\zip
move edrx.tgz     c:\home\zip

rem «emacs0»

cd c:\home\zip
rem install Emacs on /home/emacs...
.\Emacs-22-CvsP070523-EmacsW32-1.54.exe

rem -----------------------
rem At this point we should have a running Emacs,
rem and we can run the rest from it...




#####
#
# eepaste-one-line
# 2007aug27
#
#####

;; «eepaste-one-line»  (to ".eepaste-one-line")
;; (find-efunction 'eepaste-one-line)
;; (find-eev "eev-mini-steps.el" "eepaste-one-line")
;; (global-set-key "\M-P" 'eepaste-one-line)
;;
(defun eepaste-one-line ()
 "Paste (yank) the first line of the top of the kill-ring here and do a RET."
 (interactive)
 (let ((bigstr (car kill-ring)))
  (if (equal bigstr "") (error "No more lines"))
  (string-match "^\\([^\n]*\\)\\(\n\\|$\\)" bigstr)
  (let ((line (match-string 1 bigstr))           ; first line from the kill
        (rest (substring bigstr (match-end 0)))) ; rest of the kill
    (if (string-match "^ \\(.*\\)" line)         ; lines with a red star
        (ee-eval-string (match-string 1 line))   ; are eval'ed
      (insert line)                              ; other lines are "typed"
      (call-interactively (key-binding "\r")))   ; and then we do a RET
    (setcar kill-ring rest))))                   ; remove the first line



#####
#
# Installing 7-Zip and UnxUtils from Emacs
# 2007aug29
#
#####

# «eshell-mvs»  (to ".eshell-mvs")
# (eepitch-eshell)
# (execute-kbd-macro (kbd "C-x 1 C-x 2 C-x o <<eshell>> C-x o") 1)

cd "c:/Documents and Settings/desenvolvedores/Desktop/"
mv -iv Emacs-22-CvsP070523-EmacsW32-1.54.exe /home/zip/
mv -iv 7z442.exe    /home/zip/
mv -iv UnxUtils.zip /home/zip/
mv -iv edrx.tgz     /home/zip/

# (find-fline "c:/home/7zip/")
# (find-fline "c:/home/unxutils/")
# (find-fline "c:/home/edrx/")

# «eshell-7zip»  (to ".eshell-7zip")
# (find-file "/home/zip/")
#
mkdir                /home/7zip/
rem install 7-Zip on /home/7zip ...
cd /home/zip/
./7z442.exe

# «eshell-unxutils»  (to ".eshell-unxutils")
# (find-file "/home/unxutils/")
#
mkdir /home/unxutils/
cd    /home/unxutils/
../7zip/7z.exe
../7zip/7z.exe x -y ..\zip\UnxUtils.zip
cd    /home/unxutils/usr/local/wbin/
mv -iv * ../../../




#####
#
# downloading and unpacking edrx.tgz from Emacs
# 2007aug29
#
#####

# «eshell-edrx.tgz»  (to ".eshell-edrx.tgz")
# (eepitch-eshell)
# (execute-kbd-macro (kbd "C-x 1 C-x 2 C-x o <<eshell>> C-x o") 1)

cd /home/zip/
mv -v edrx.tgz edrx-old.tgz
# ../unxutils/wget       http://angg.twu.net/edrx.tgz
  ../unxutils/wget http://192.168.51.40/TH/L/edrx.tgz

cd /home/zip/
mv -v         edrx.tgz edrx-tar.gz
../unxutils/gunzip.exe edrx-tar.gz
mv -v                  edrx-tar    edrx.tar

mkdir /home/edrx/
cd    /home/edrx/
../unxutils/tar.exe -xvf    ../zip/edrx.tar






#####
#
# Notes for a batch to run Emacs with the right settings
# 2007aug29
#
#####

# (find-enode "Windows HOME")
# (find-fline "~/TH/")
# (find-fline "~/TH/w32.blogme")
# (find-fline "~/4NT/")
# (find-fline "~/4NT/4start.btm")
# http://angg.twu.net/w32.html

# (find-fline "~/4NT/4start.btm")
alias ae=c:\edrx\emacs\bin\emacs -fg bisque -bg black %HOME/NOTES

# (find-fline "c:/home/emacs/emacs/bin/emacs.exe")
# (find-fline "c:/home/emacs/emacs/bin/_emacs")

# (find-fline "/home/eemacs.bat")
# (find-fline "c:/home/emacs/emacs/bin/_emacs")

# http://www.jpsoft.com/







#####
#
# 
#
#####

# (getenv "HOME")
# (setenv "HOME" "c:/home/edrx")
# (find-fline "~/")
# (find-file  "c:/Documents and Settings/tatiana/Desktop/")
# (setenv "D" "c:/Documents and Settings/tatiana/Desktop")
# (find-fline "$D/")

(getenv "PATH")
# (find-angg ".emacs.local.w32")
# (find-fline "/home/zip/")
# (find-file  "c:/Documents and Settings/tatiana/Desktop/")
# (setenv "D" "c:/Documents and Settings/tatiana/Desktop")
# (find-fline "$D/")

(progn
  (setenv "HOME" "c:/home/edrx")
  (add-to-list 'load-path "/home/edrx/")
  (load ".emacs")
  )

# (find-fline "c:/home/emacs/EmacsW32/lisp/emacsw32-custom.el")





#####
#
# putty (from the source, on unix, for testing tramp)
# 2008jan18 / 2012may23
#
#####

# «putty»  (to ".putty")
# http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
# http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.62-installer.exe

# (find-node "(tramp)Inline methods" "`plink'")
# (find-efile "net/")
# (find-egrep "grep -nH -e plink net/tramp*")
# http://the.earth.li/~sgtatham/putty/latest/putty-0.60.tar.gz
#*
rm -Rv ~/usrc/putty-0.60/
tar -C ~/usrc/ -xvzf \
  $S/http/the.earth.li/~sgtatham/putty/latest/putty-0.60.tar.gz
cd     ~/usrc/putty-0.60/

cd     ~/usrc/putty-0.60/unix/
./configure |& tee oc
make        |& tee om

#*
# (code-c-d "puttysrc" "~/usrc/putty-0.60/")
# (find-puttysrcfile "")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd      ~/usrc/putty-0.60/unix/
./plink -ssh edrx@caramelo

cd ~/bin/
ln -sf ../usrc/putty-0.60/unix/plink .

plink -ssh edrx@caramelo
exit
plink

http://zumbi/
http://zumbi/software/




#####
#
# Notes, 2008jan18
#
#####

# «2008jan18»  (to ".2008jan18")
# (find-angg "4NT/")
# (find-angg "4NT/4start.btm")

# Lennart Borgman's w32 builds:
# http://ourcomments.org/Emacs/EmacsW32.html
# http://ourcomments.org/Emacs/EmacsW32.html#download
# http://ourcomments.org/cgi-bin/emacsw32-dl-latest.pl

# Official builds (2010jan20):
# http://www.gnu.org/software/emacs/#Obtaining
# http://www.emacswiki.org/emacs/CategoryWThirtyTwo
# http://www.emacswiki.org/emacs/CategoryPorts
#   ftp://ftp.gnu.org/gnu/emacs/windows/README
#   ftp://ftp.gnu.org/gnu/emacs/windows/emacs-23.1-bin-i386.zip
#
# «EmacsW32»  (to ".EmacsW32")
#  (find-es "wine" "EmacsW32")
# http://www.emacswiki.org/emacs/EmacsW32
# http://ourcomments.org/Emacs/EmacsW32.html
# http://ourcomments.org/Emacs/DL/EmacsW32/EmacsCVS/ptch/
# http://ourcomments.org/Emacs/DL/EmacsW32/EmacsCVS/ptch/Emacs-23-CvsP091103-EmacsW32-1.58.exe
# http://ourcomments.org/Emacs/DL/EmacsW32/EmacsCVS/ptch/readme-CvsP091103.txt

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd $S/http/ourcomments.org/Emacs/DL/EmacsW32/EmacsCVS/ptch/
wine Emacs-23-CvsP091103-EmacsW32-1.58.exe
# (find-fline "~/.wine/")
# (find-fline "~/.wine/drive_c/home/emacs/")
# (find-fline "~/.wine/drive_c/home/emacs/EmacsW32/")
# (find-fline "~/.wine/drive_c/home/emacs/emacs/")
#   C:\Program Files\Emacs
#   C:\home\emacs

# (find-sh "cd ~/.wine/ && find | sort")
# (find-sh "rm -Rfv ~/.wine/")



# http://www.emacswiki.org/emacs/PrintWithWebBrowser

# 7-zip:
# http://www.7-zip.org/
# http://ufpr.dl.sourceforge.net/sourceforge/sevenzip/7z442.exe

# UnxUtils:
# http://unxutils.sourceforge.net/
# http://sourceforge.net/projects/unxutils/
# http://sourceforge.net/project/showfiles.php?group_id=9328
# http://ufpr.dl.sourceforge.net/sourceforge/unxutils/UnxUtils.zip

# edrx.tgz:
# http://angg.twu.net/edrx.tgz

# http://www.chiark.greenend.org.uk/~sgtatham/putty/
# http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
# http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe

# start -> program -> cmd
# iniciar -> executar -> cmd

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)

mkdir c:\home
cd      \home
mkdir zip
mkdir emacs
mkdir 7zip
mkdir 4NT
mkdir unxutils
mkdir putty




#####
#
# Getting the DNS IPs on w32
# 2010feb24
#
#####

# «dns»  (to ".dns")
# netsh is useless.

ipconfig /all





#####
#
# Emacs for Windows (2012)
# 2012apr27
#
#####

# «emacs-for-windows-2012»  (to ".emacs-for-windows-2012")
# http://www.gnu.org/software/emacs/emacs.html#Obtaining
# http://www.gnu.org/software/emacs/emacs.html
# http://ftp.gnu.org/pub/gnu/emacs/windows/
# http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-23.4-bin-i386.zip
# http://ftp.gnu.org/pub/gnu/emacs/windows/emacs-24.3-bin-i386.zip
# (find-pen-links)

* (eepitch-shell)
mkdir /tmp/pen/
sudo mount -o uid=$UID         /dev/sdb1 /tmp/pen/
sudo mount -o uid=$UID         /dev/sdc1 /tmp/pen/
# (find-fline "/tmp/pen/")

cd $S/http/ftp.gnu.org/pub/gnu/emacs/windows/
cp -v emacs-23.4-bin-i386.zip /tmp/pen/

cd $S/http/the.earth.li/~sgtatham/putty/latest/x86/
cp -v putty-0.62-installer.exe /tmp/pen/

cd $S/http/luaforwindows.googlecode.com/files/
cp -v LuaForWindows_v5.1.4-45.exe /tmp/pen/
cp -v vcredist_x86.exe            /tmp/pen/

sudo umount /tmp/pen




#####
#
# FileZilla
# 2012may23
#
#####

# «filezilla»  (to ".filezilla")
# http://filezilla-project.org/
# http://wiki.filezilla-project.org/Documentation
# http://wiki.filezilla-project.org/Command-line_arguments_(Client)
# (find-status   "filezilla")
# (find-vldifile "filezilla.list")
# (find-udfile   "filezilla/")
# (find-man "1 fzputtygen")
# (find-man "1 filezilla")
# (find-man "1 fzsftp")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
filezilla




#####
#
# MinGW
# 2012may27
#
#####

# «mingw»  (to ".mingw")
# https://en.wikipedia.org/wiki/MinGW

# (find-zsh "availabledebs | sort | grep mingw")
# (find-available "gcc-mingw32")
# (find-available "mingw-w64")
# (find-available "mingw32-binutils")
# (find-available "mingw32-ocaml")
# (find-available "mingw32-runtime")
# (find-available "mingw32")
# (find-status   "mingw32")
# (find-vldifile "mingw32.list")
# (find-udfile   "mingw32/")
# (find-node "(gcc)Target Options")
# (find-gccnode "Target Options")
# (find-gccnode "i386 and x86-64 Windows Options" "`-mconsole'")


# (find-es "lua5" "install-5.1.4")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
rm -Rv ~/usrc/mingw/
mkdir  ~/usrc/mingw/
tar -C ~/usrc/mingw/ -xvzf $S/http/www.lua.org/ftp/lua-5.1.4.tar.gz
cd     ~/usrc/mingw/lua-5.1.4/
make CC=i586-mingw32msvc-gcc mingw   |& tee om

(code-c-d "mingwlua" "~/usrc/mingw/lua-5.1.4/")
;; (find-mingwluafile "")
# (find-mingwluafile "Makefile")
# (find-mingwluafile "src/Makefile")




#####
#
# msys2
# 2024apr13
#
#####

# «msys2»  (to ".msys2")
# https://www.msys2.org/
# https://www.msys2.org/docs/
# https://www.msys2.org/docs/filesystem-paths/
# https://www.msys2.org/docs/package-management/
# https://stackoverflow.com/questions/45540646/msys2-inferior-shell-in-emacs-on-windows
# (find-angg ".bashrc.local.aspi")
# (find-man "bash")

# Add to path: 7zip
# Add to path: mpv
# Add to path: .exe

Hi list,

is it possible to run the bash that comes with Msys2, i.e.,
c:/msys64/usr/bin/bash.exe, in a comint buffer in Windows? I got a
laptop with Windows for tests and I installed in it the Emacs 29.1.90
from here,

  https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/

and the Msys2 from:

  https://www.msys2.org/

If I run

  (comint-run "cmd.exe")

there then everything works as expected, but if I run this,

  (comint-run "c:/msys64/usr/bin/bash.exe")

then the prompts don't appear, 



# (find-man "bash")





#####
#
# Inspecting Emacs26 for Windows
# 2020jan26
#
#####

# «windows-emacs26» (to ".windows-emacs26")
# (find-THfile "installing-eev-on-windows.blogme" "emacs-26.3-x86_64")
# (find-fline "$S/http/gnu.c3sl.ufpr.br/ftp/emacs/windows/emacs-26/")
# (find-fline "$S/http/gnu.c3sl.ufpr.br/ftp/emacs/windows/emacs-26/emacs-26.3-x86_64.zip")

# (find-man "unzip")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
unzip -l $S/http/gnu.c3sl.ufpr.br/ftp/emacs/windows/emacs-26/emacs-26.3-x86_64.zip

# (find-fline "/tmp/windows-emacs26/")
rm -Rv /tmp/windows-emacs26/
mkdir  /tmp/windows-emacs26/
cd     /tmp/windows-emacs26/
unzip $S/http/gnu.c3sl.ufpr.br/ftp/emacs/windows/emacs-26/emacs-26.3-x86_64.zip

# (find-fline "/tmp/windows-emacs26/bin/" " runemacs.exe")
# (find-fline "/tmp/windows-emacs26/bin/" " python")
# (find-fline "/tmp/windows-emacs26/bin/" " tclsh")
# (find-fline "/tmp/windows-emacs26/bin/" " wish")
# (find-fline "/tmp/windows-emacs26/lib/python2.7/")

cd /tmp/windows-emacs26/
find * | sort | grep flake
find * | sort | grep python






#####
#
# chocolatey
# 2020jan26
#
#####

# «chocolatey» (to ".chocolatey")
# https://chocolatey.org/
# https://en.wikipedia.org/wiki/NuGet#Chocolatey

<Jefe> edrx, my Win install was through chocolatey.  The icon to
       launch emacs is C:/ProgramData/chocolatey/bin/runemacs.exe,
       but the rest is in
       C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/.

<edrx> Jefe: if you this sexp do you see a python.exe there?
       (find-file "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/")
       (find-file "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/bin/")
       (find-fline "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/bin/" "python.exe")

(switch-to-buffer
 (make-comint
  "python.exe"
  "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/bin/python.exe"))


Error:

Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
ImportError: No module named site
 
Process python.exe exited abnormaly with code 1




#####
#
# python-on-emacs26-for-windows
# 2020jan26
#
#####

# «python-on-emacs26-for-windows» (to ".python-on-emacs26-for-windows")
# https://mail.google.com/mail/ca/u/0/#sent/KtbxLwGgGPVFJtmHftwkRcWHrCtxxCHbhg
# https://lists.gnu.org/archive/html/emacs-devel/2020-01/msg00844.html
# Python.exe in Emacs26 for M$ Windows - REPL problem


Hello list,

big message, split in two parts.


1. Introduction
===============
I sometimes use Emacs and eev to present some principles of Free
Software - for example this, but in practice:
https://www.gnu.org/software/emacs/emacs-paper.html#SEC29 - to total
newbies, but I always have to tell them that the nicest feature of
eev, called "eepitch", currently doesn't work well on their Windows
machines...  it is explained here:

  http://angg.twu.net/eev-intros/find-eev-quick-intro.html#6
  http://angg.twu.net/eev-intros/find-eepitch-intro.html

and there's a demo of it here:

  https://www.youtube.com/watch?v=86yiRG8YJD0&t=956s

The problem is that downloading and installing Lua, Python, Bash or
MinGW/MSYS2 on Windows is non-trivial and people have very short
attention spans, so I sort of "don't have the time" to install any of
those things on their machines - I mean, before they lose focus.

Two days ago when I helped another newbie to install Emacs in her
machine from this .zip,

  http://gnu.c3sl.ufpr.br/ftp/emacs/windows/emacs-26/emacs-26.3-x86_64.zip

and I noticed that it comes with a python.exe, a tclsh.exe and a
wish.exe.  I didn't have time to test these .exes on her machine, and
I don't have access to a W$ box, but earlier today I asked for help in
the #emacs channel and a person there - Jeff Carlson - ran some sexps
for me in his W$ laptop.  His Emacs was installed using Chocolatey, so
his paths may be a bit atypical, but this

  (find-file "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/bin/")

opened the directory with python.exe, tclsh.exe, and wish.exe, and I
expected that this

  (switch-to-buffer
   (make-comint
    "python.exe"
    "C:/ProgramData/chocolatey/lib/Emacs/tools/emacs/bin/python.exe"))

would enter a Python REPL in comint... but no, we got these errors:

  Could not find platform independent libraries <prefix>
  Could not find platform dependent libraries <exec_prefix>
  Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
  ImportError: No module named site

  Process python.exe exited abnormaly with code 1



2. Questions
============
1. Where can I find the rationale for why there are a python.exe, a
   tclsh.exe, and a wish.exe in Emacs26 for Windows?

2. This is the variable that points to their directory, right?

     (describe-variable 'exec-directory)

3. How are these .exes meant to be called?  What are the main
   functions and .el files that call them?  Is `exec-directory' a part
   of the default path in Windows?

4. Is (switch-to-buffer (make-comint ... ...)) supposed to work with
   them?  Can someone test that with python.exe, tclsh.exe, and
   wish.exe and check that we get working REPLs?



Many, many thanks in advance =),
  Eduardo Ochs
  http://angg.twu.net/emacsconf2019.html
  http://angg.twu.net/#eev





* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
for y in $(seq 2014 2019); do
  for m in 01 02 03 04 05 06 07 08 09 10 11 12; do
    echo $y-$m
    psne https://lists.gnu.org/archive/html/emacs-devel/$y-$m/
  done
done 

cd $S/https/lists.gnu.org/archive/html/emacs-devel/
grep -i python */index.html

https://lists.gnu.org/archive/html/emacs-devel/2020-01/

2015-11/index.html:<li><a name="02580" href="msg02580.html">Re: [elpa] master baa81b1: * externals-list: Add seq and python as	:core packages</a>, <i>Stefan Monnier</i>, <tt>13:31</tt></li>
2015-11/index.html:<li><a name="02576" href="msg02576.html">Re: [elpa] master baa81b1: * externals-list: Add seq and python as	:core packages</a>, <i>Artur Malabarba</i>, <tt>12:20</tt></li>
2016-03/index.html:<li><a name="01618" href="msg01618.html">Re: redirection of help output to a separate buffer in comint (python)</a>, <i>Sam Steingold</i>, <tt>11:46</tt></li>
2016-03/index.html:<li><a name="01614" href="msg01614.html">Re: redirection of help output to a separate buffer in comint (python)</a>, <i>Vitalie Spinu</i>, <tt>10:59</tt></li>
2016-03/index.html:<li><a name="01610" href="msg01610.html">redirection of help output to a separate buffer in comint (python)</a>, <i>Sam Steingold</i>, <tt>10:03</tt></li>
2017-10/index.html:<li><a name="00635" href="msg00635.html">Re: [PATCH] Implement Python backend for Flymake</a>, <i>Lele Gaifax</i>, <tt>14:06</tt></li>
2017-10/index.html:<li><a name="00460" href="msg00460.html">Re: [PATCH] Implement Python backend for Flymake</a>, <i>Lele Gaifax</i>, <tt>05:52</tt></li>
2017-10/index.html:<li><a name="00459" href="msg00459.html">Re: [PATCH] Implement Python backend for Flymake</a>, <i>Eli Zaretskii</i>, <tt>05:50</tt></li>
2017-10/index.html:<li><a name="00458" href="msg00458.html">Re: [PATCH] Implement Python backend for Flymake</a>, <i>Lele Gaifax</i>, <tt>05:23</tt></li>
2017-10/index.html:<li><a name="00457" href="msg00457.html">Re: [PATCH] Implement Python backend for Flymake</a>, <i>Clément Pit-Claudel</i>, <tt>05:09</tt></li>
2017-10/index.html:<li><a name="00456" href="msg00456.html">[PATCH] Implement Python backend for Flymake</a>, <i>Lele Gaifax</i>, <tt>05:05</tt></li>

# (find-efile "progmodes/python.el" "defgroup python-flymake")






#####
#
# find-windows-eepitch-lua-links
# 2020feb16
#
#####

# «find-windows-eepitch-lua-links» (to ".find-windows-eepitch-lua-links")
# (find-eev "eev-tlinks.el" "find-windows-eepitch-lua-links")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cat > /tmp/lua52.exe <<'%%%'
#!/bin/sh
echo HELLO FROM $0
lua5.2 $*
%%%
chmod 755 /tmp/lua52.exe
mkdir -p /tmp/foo/
cp -v /tmp/lua52.exe /tmp/foo/

/tmp/lua52.exe
os.exit()

/tmp/foo/lua52.exe
os.exit()

(find-windows-eepitch-lua-links "/tmp/")
(find-windows-eepitch-lua-links "/tmp/foo/")





#####
#
# Windows_Subsystem_for_Linux
# 2024may04
#
#####

# «wsl»  (to ".wsl")
# https://learn.microsoft.com/en-us/windows/wsl/install
# https://learn.microsoft.com/en-us/windows/wsl/build-custom-distro
# https://learn.microsoft.com/en-us/windows/wsl/use-custom-distro
# https://learn.microsoft.com/en-us/windows/wsl/compare-versions?source=recommendations
# https://learn.microsoft.com/en-us/windows/wsl/compare-versions?source=recommendations
# https://learn.microsoft.com/en-us/windows/wsl/basic-commands

wsl -l -v
wsl --unregister Debian
wsl --install Debian
edrx
edrx
edrx
sudo bash

edrx@Acer-PC: $ sudo bash
[sudo] password for edrx:
root@Acer-PC:/home/edrx# apt-get install emacs
(...)
Do you want to continue? [Y/n] Y
root@Acer-PC:/home/edrx# exit
edrx@Acer-PC: $ emacs &



# https://en.wikipedia.org/wiki/Windows_Subsystem_for_Linux
# https://docs.microsoft.com/en-us/windows/wsl/install-win10
# https://docs.microsoft.com/pt-br/windows/wsl/install-win10

# (find-fline "~/LOGS/2020dec11.emacs")




#####
#
# WSL's Emacs and windows clipboard
# 2024jun20
#
#####

# «wsl-copy-clip»  (to ".wsl-copy-clip")
# https://www.fredgruber.org/post/wsl_emacs_clipboard/




#####
#
# wsl-emacs-other-window
# 2024sep24
#
#####

# «wsl-emacs-other-window»  (to ".wsl-emacs-other-window")
# (find-TH "2024-other-window")
# (find-telegachat "5687681604#238139" "screenshot")
# (find-telegachat "5687681604#238139" "mouse para o lado direito")




#####
#
# Chats with mplsCorwin on running eev on Windows (dec 2020)
# 2020dec31
#
#####

# «mplsCorwin-dec2020»  (to ".mplsCorwin-dec2020")
# (find-fline "~/LOGS/2020dec15.emacs" "<chrisb> edrx: hello!")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
wget https://bru.st/i/ops-models-agplv3%2B.org
wget https://bru.st/i/org-vpc.org


(defun ee-find-mpv-video (fname &optional pos &rest rest)
  `("d:/mpv/mpv.exe"
    ,fname
    ,@(if pos (list (format "--start=%s" (ee-secs-to-mm:ss pos))))
    ,@ee-mpv-video-options
    ))

;; Tests:
;; (ee-find-mpv-video "G:/obs-raw/edrx-emacsconf2020.mp4")

(find-bgprocess '("mpv" "G:/obs-raw/edrx-emacsconf2020.mp4" "--fs" "--osd-level=2"))
(find-mpv-video "G:/obs-raw/edrx-emacsconf2020.mp4")
(find-mpv-video "G:/obs-raw/edrx-emacsconf2020.mp4" "10:22" "PDFs and videos")

(find-fline "G:/obs-raw/")
(find-fline "G:/obs-raw/" "edrx-emacsconf2020.mp4")


(code-video "eev2020video" "G:/obs-raw/edrx-emacsconf2020.mp4")
(code-video "eev2019video" "G:/obs-raw/emacsconf2019.mp4")

# (find-fline "~/LOGS/2020dec15.mplsCorwin")
# (find-angggrep "grep --color -nH --null -e 0x0    LOGS/2020dec15.mplsCorwin")
# (find-angggrep "grep --color -nH --null -e bpa.st LOGS/2020dec15.mplsCorwin")
# (find-wget "https://0x0.st/iF4k.bin")
# (find-wget "https://0x0.st/iF4d.txt")
# (find-wget "https://0x0.st/iF4h.txt")
# (find-wget "https://0x0.st/iFJs.txt")
# (find-wget "https://0x0.st/iFJo.bin")




#####
#
# mplsCorwin: connecting to ghostwheel
# 2021jan16
#
#####

# «mplsCorwin-ghostwheel»  (to ".mplsCorwin-ghostwheel")
# (find-eev-quick-intro "9.1. `code-c-d'")
# (find-eev-quick-intro "9.1. `code-c-d'" "(find-code-c-d")
# (find-eev2020video "8:20" "`code-c-d' defines several new functions")
# (find-2020sometbfvideo "12:12" "extra arguments")

;; (find-fline         "/scp:[email protected]:/home/mplsCorwin/")
(code-c-d "ghostwheel" "/scp:[email protected]:/home/mplsCorwin/")
;; (find-ghostwhellfile "")

(defun eepitch-ghostwheel () (interactive)
  (eepitch-comint "ghostwheel"
       "ssh -C [email protected]"))

'(Test:

* (eepitch-ghostwheel)
* (eepitch-kill)
* (eepitch-ghostwheel)
whoami
uname -a

)






#####
#
# mplsCorwin's settings for running mpv on Window
# 2020dec31
#
#####

# «mplsCorwin-mpv»  (to ".mplsCorwin-mpv")
# (find-fline "~/LOGS/2020dec15.mplsCorwin" "D:/mpv")
# (find-eev "eev-audiovideo.el" "find-mpv-video")

(defun ee-find-mpv-video (fname &optional pos &rest rest)
  `("d:/mpv/mpv.exe"
    ,fname
    ,@(if pos (list (format "--start=%s" (ee-secs-to-mm:ss pos))))
    ,@ee-mpv-video-options
    ))




#####
#
# mplsCorwin's settings for chrome and M-x brg
# 2021jan09
#
#####

# «mplsCorwin-chrome»  (to ".mplsCorwin-chrome")

;; First check if this works:
;; (find-eev-quick-intro "3.1. Non-elisp hyperlinks")
;; (find-eev-quick-intro "3.1. Non-elisp hyperlinks" "M-x brg")
;; (find-googlechrome "http://www.lua.org/start.html")
;;               (brg "http://www.lua.org/start.html")
;;
;; If it doesn't work we have to redefine `find-googlechrome':
;; (find-eev "eev-brxxx.el" "code-brxxxs")
;; (find-eev "eev-brxxx.el" "code-brxxxs" "find-googlechrome")
;; (executable-find "google-chrome")
;;
(defun find-googlechrome (url) (find-bgprocess `("google-chrome" ,url)))




#####
#
# mplsCorwin's settings for using Google Chrome for opening PDFs
# 2021jan08
#
#####

# «mplsCorwin-pdf-chrome»  (to ".mplsCorwin-pdf-chrome")

;; How `find-pdf-page' is defined by default:
;; (find-eevfile "eev-pdflike.el" "1. DEFINING VIEWERS")
;; (find-eevfile "eev-pdflike.el" "2. ALIASES")
;; (find-eev "eev-pdflike.el")
;; (find-eev "eev-pdflike.el" "find-pdf-page")
;; (find-code-pdfbackendalias "pdf-page" "xpdf-page")
;;      (code-pdfbackendalias "pdf-page" "xpdf-page")
;;
;; How we will redefine it:
;; (find-code-pdfbackendalias "pdf-page" "googlechrome-page")
;;      (code-pdfbackendalias "pdf-page" "googlechrome-page")
;;
;; How to inspect the current definition:
;; (find-efunctiondescr 'find-pdf-page)
;; (find-efunctionpp    'find-pdf-page)
;; (find-efunctionpp   'find-xpdf-page)
;;
;; Download this into ~/, for tests:
;; https://tannerlectures.utah.edu/_documents/a-to-z/c/Coetzee99.pdf
;; Confirm that it is there:
;; (find-fline "~/" "Coetzee99.pdf")
;;
;; How `find-googlechrome-page' is defined:
;; (find-eev "eev-pdflike.el" "find-googlechrome-page")
;;
;; Tests:
;; (executable-find "google-chrome")
;; (ee-find-googlechrome-page "~/Coetzee99.pdf")
;; (ee-find-googlechrome-page "~/Coetzee99.pdf" 3)
;;    (find-googlechrome-page "~/Coetzee99.pdf")
;;    (find-googlechrome-page "~/Coetzee99.pdf" 3)
;;          (ee-find-pdf-page "~/Coetzee99.pdf")
;;          (ee-find-pdf-page "~/Coetzee99.pdf" 3)
;;             (find-pdf-page "~/Coetzee99.pdf")
;;             (find-pdf-page "~/Coetzee99.pdf" 3)
;;
;; (find-bgprocess '("google-chrome" "file:///home/edrx/Coetzee99.pdf#page=3"))
;;
;; We may need to redefine this:
(defun ee-find-googlechrome-page (fname &optional page)
  `("google-chrome" ,(ee-fname-page-to-url fname page)))

;; For more info on how the "~/" gets expanded:
;; (find-eev "eev-plinks.el" "find-bgprocess")
;; (find-eev "eepitch.el" "ee-split-and-expand")





#####
#
# Redefing find-psne-links for mplsCorwin's Windows machine
# 2021jan08
#
#####

# «mplsCorwin-psne»  (to ".mplsCorwin-psne")
# (find-psne-intro)
# (find-psne-intro "3. The new way: `M-x brep'")
# (find-psne-intro "3. The new way: `M-x brep'" "find-psne-links")
# (find-psne-intro "3. The new way: `M-x brep'" "M-x brep")
# (find-eev "eev-tlinks.el" "find-psne-links")
# https://stackoverflow.com/questions/33364752/equivalent-of-wget-command-line-for-windows-8-1
# (executable-find "wget")

* (eepitch-eshell)
* (eepitch-kill)
* (eepitch-eshell)

export S=$HOME/snarf
mkdir -p $S/http/www.gnu.org/software/emacs/
cd       $S/http/www.gnu.org/software/emacs/
wget      http://www.gnu.org/software/emacs/emacs-paper.html
echo     'http://www.gnu.org/software/emacs/emacs-paper.html' >> ~/.psne.log



(defun find-psne-links (&optional url wget-options &rest pos-spec-list)
"See: (find-psne-intro)"
  (interactive)
  (setq url (or url "{url}"))
  (setq wget-options (or wget-options "-nc"))
  (apply
   'find-elinks
   `((find-psne-links ,url ,wget-options ,@pos-spec-list)
     (find-psne-links ,url "-c" ,@pos-spec-list)
     (find-psne-links ,url "" ,@pos-spec-list)
     ;; Convention: the first sexp always regenerates the buffer.
     (find-efunction 'find-psne-links)
     ""
     ;; "* (eepitch-shell2)"
     "* (eepitch-eshell)"
     ,(ee-find-psne-core url wget-options)
     )
   pos-spec-list))




#####
#
# Making `find-eevvideo-links' work in mplsCorwin's Windows box
# 2021jan08
#
#####

# «mplsCorwin-eevvideos»  (to ".mplsCorwin-eevvideos")
# (find-videos-intro "2. Some `find-eevvideo-links'")

# (find-angg ".emacs.videos" "2020sometbf")
# (find-2020sometbfvideo "30:18" "if we type `M-h M-e' this runs `find-extra-file-links'")




#####
#
# wget for Windows
# 2021oct04
#
#####

# «wget-2021»  (to ".wget-2021")
# https://stackoverflow.com/questions/33364752/equivalent-of-wget-command-line-for-windows-8-1
# https://serverfault.com/questions/483754/is-there-a-built-in-command-line-tool-under-windows-like-wget-curl
# http://gnuwin32.sourceforge.net/packages/wget.htm
# http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip
# https://eternallybored.org/misc/wget/
# https://superuser.com/questions/362152/native-alternative-to-wget-in-windows-powershell/758510#758510
# https://superuser.com/questions/362152/native-alternative-to-wget-in-windows-powershell/758510
# https://docs.microsoft.com/en-us/windows/win32/winprog64/running-32-bit-applications
# https://en.wikipedia.org/wiki/Portable_Executable

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/wget/")
rm -Rv /tmp/wget/
mkdir  /tmp/wget/
cd     /tmp/wget/
unzip -d /tmp/wget/ $S/http/downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip
# (find-man "1 unzip")

# (find-fline "/tmp/wget/bin/" "wget.exe")
# (find-cp-angg-links "wget.exe" "/tmp/wget/bin/" "2021.1-projeto/")
# http://angg.twu.net/2021.1-projeto/wget.exe


# http://gnuwin32.sourceforge.net/packages/wget.htm
# http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip

 (eepitch-shell)
 (eepitch-kill)
 (eepitch-shell)
rm -Rv /tmp/wget/
mkdir  /tmp/wget/
cd     /tmp/wget/
wget http://downloads.sourceforge.net/gnuwin32/wget-1.11.4-1-bin.zip
unzip wget-1.11.4-1-bin.zip
file bin/wget.exe
# bin/wget.exe: PE32 executable (console) Intel 80386 (stripped to external PDB), for MS Windows

https://0x0.st/-gYs.txt
https://0x0.st/-gYr.txt

# (find-fline "/tmp/wget/")





#####
#
# wget-1.21.2-win64
# 2021oct07
#
#####

# «wget-1.21.2-win64»  (to ".wget-1.21.2-win64")
# http://gnuwin32.sourceforge.net/install.html
# http://gnuwin32.sourceforge.net/lists.html
# https://eternallybored.org/misc/wget/
# https://eternallybored.org/misc/wget/releases/wget-1.21.2-win64.zip
# https://stackoverflow.com/questions/2577545/why-is-this-program-cannot-be-run-in-dos-mode-text-present-in-dll-files/24011322
# https://www.reddit.com/r/dosbox/comments/ewchrj/error_this_program_cannot_be_run_in_dos_mode_in/
# https://stackoverflow.com/questions/32910712/dosbox-this-program-cannot-be-run-in-dos-mode-assembly

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/wget/")
rm -Rv /tmp/wget/
mkdir  /tmp/wget/
cd     /tmp/wget/
unzip $S/https/eternallybored.org/misc/wget/releases/wget-1.21.2-win64.zip
# (find-sh "strings /tmp/wget/wget.exe")
cp -v wget.exe ~/2021-oficina/

# (find-fline "~/2021-oficina/")
# (find-cp-angg-links "wget.exe" "~/2021-oficina/" "2021-oficina/")

# http://angg.twu.net/2021-oficina/wget.exe





#####
#
# powershell
# 2021oct04
#
#####

# «powershell»  (to ".powershell")
# (to "you-have-an-artifact")
# https://en.wikipedia.org/wiki/PowerShell
# https://www.alura.com.br/conteudo/powershell-parte1
# https://docs.microsoft.com/en-us/powershell/scripting/windows-powershell/install/installing-windows-powershell
# https://github.com/PowerShell/PowerShell
# https://github.com/PowerShell/PowerShell/tree/master/docs/learning-powershell
# https://adamtheautomator.com/powershell-linux/

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
cd /tmp/
wget https://github.com/PowerShell/PowerShell/releases/download/v7.1.4/powershell_7.1.4-1.debian.11_amd64.deb
sudo dpkg -i powershell*.deb
apti -f

# (find-status   "powershell")
# (find-vldifile "powershell.list")
# (find-udfile   "powershell/")

# (find-man "1 pwsh")

# http://ergoemacs.org/emacs/emacs_make_modern.html
# http://ergoemacs.org/emacs/emacs_mswin.html

<parsnip> powershell has lots of examples. be more like powershell
<edrx> parsnip: where examples?
<parsnip> if you look for powershell learning, it leads into like a
          dozen videos, and one of the first few videos, they go on
          about how many examples can be found in powershell
          docstrings
<parsnip> you can even pass -example
<parsnip> as an option
<parsnip> to like get-help, or help, etc, or something like that
<parsnip> so like `help help -example`






#####
#
# eepitch-pwsh
# 2021oct04
#
#####

# «eepitch-pwsh»  (to ".eepitch-pwsh")
# (find-es "emacs" "ansi-term")
# (find-eev "eepitch.el" "eepitch-ansiterm")

* (eepitch-pwsh2)
* (eepitch-kill)
* (eepitch-pwsh2)
help
q
wget
wget --help
which wget
cd /tmp/
mkdir a
pwd
cd /tmp/a
mkdir b
rm -Rv /tmp/a
pwd
cd

* (find-3ee '(eepitch-pwsh) '(eepitch-pwsh2))
* (find-3EE '(eepitch-pwsh) '(eepitch-pwsh2))
* (eepitch-pwsh)
* (eepitch-pwsh2)

rm -Rfv ~/bin0/

mkdir -p ~/bin0/
cd       ~/bin0/
rm -fv   ~/bin0/wget.exe
wget http://angg.twu.net/2021.1-projeto/wget.exe

ls -l



* (eepitch-pwsh)
* (eepitch-kill)
* (eepitch-pwsh)
mkdir -p ~/bin/
cd       ~/bin/
rm -fv   ~/bin/wget.exe
wget http://angg.twu.net/2021.1-projeto/wget.exe
ls -l wget.exe


(progn
  (find-ebuffer "*ansi-term: pwsh*")
  (setq atc (buffer-substring-no-properties (point-min) (point-max)))
  )




#####
#
# windows-terminal
# 2021oct05
#
#####

# «windows-terminal»  (to ".windows-terminal")
# https://github.com/microsoft/terminal
# (find-fline "~/LOGS/2021oct05.emacs" "windows terminal")
# https://devblogs.microsoft.com/commandline/new-experimental-console-features/

# https://devblogs.microsoft.com/oldnewthing/20060322-24/?p=31823 "first, install"




#####
#
# emacs-28
# 2021oct05 / 2023apr09
#
#####

# «emacs-28»  (to ".emacs-28")
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/README-windows-binaries
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/?C=M;O=A  <- sorted by Last modified
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/emacs-28.3-rc1-installer.exe
#
# Older notes:
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/emacs-28.0.50-snapshot-2021-01-15-installer.exe
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/emacs-28.0.50-snapshot-2021-01-15.zip

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/em/")
rm -Rv /tmp/em/
mkdir  /tmp/em/
cd     /tmp/em/
# unzip $S/http/alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/emacs-28.0.50-snapshot-2021-01-15-installer.exe
  unzip $S/http/alpha.gnu.org/gnu/emacs/pretest/windows/emacs-28/emacs-28.0.50-snapshot-2021-01-15.zip

# (find-fline "/tmp/em/share/emacs/28.0.50/lisp/")



#####
#
# emacs-29
# 2023apr09
#
#####

# «emacs-29»  (to ".emacs-29")
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/README-windows-binaries
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/?C=M;O=A  <- sorted by Last modified
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/emacs-29.0.60-5e1953-installer.exe




#####
#
# Finding the installation directory
# 2021oct06
#
#####

# «installation-directory»  (to ".installation-directory")

If you can start a Mozilla application by using a shortcut or launcher
icon, then you can usually see where its installation directory is
located by context-clicking (right-clicking) the icon and looking at
the properties.




#####
#
# test-mpv
# 2021oct07
#
#####

# «test-mpv»  (to ".test-mpv")

 (eepitch-shell)
 (eepitch-kill)
 (eepitch-shell)
export PATH="$HOME/bin;$PATH"
mkdir -p $S/http/angg.twu.net/eev-videos/
cd       $S/http/angg.twu.net/eev-videos/
~/bin/wget.exe -nc 'http://angg.twu.net/eev-videos/2021-test-blocks.mp4'

# (find-video "$S/http/angg.twu.net/eev-videos/2021-test-blocks.mp4")
# (find-video "$S/http/angg.twu.net/eev-videos/2021-test-blocks.mp4" "2:33")

ls ~/bin/
echo $PATH
~/bin/wget.exe --help
~/bin/wget --help




#####
#
# Code to install eev from a tarball
# 2021oct16
#
#####

# «eev-tar-2019»  (to ".eev-tar-2019")
# Deleted from: (find-eev "eev-on-windows.el" "eev-tar")

;; Old notes:
;;   (setq  eev-tar-dir   "~/eev-tar/")
;;   (setq  eev-tar-fname "~/eev-tar/eev2.tar")
;;   (setq  eev-tar-url   "http://angg.twu.net/eev-current/eev2.tar")
;;   (mkdir eev-tar-dir   t)
;;   (setq  eev-tar-contents nil)
;;   (setq  eev-tar-contents (find-urlretrieve0 eev-tar-url))
;;   (length (setq eev-tar-contents (find-urlretrieve0 eev-tar-url)))
;;   (write-region eev-tar-contents nil eev-tar-fname)
;;   
;;   (find-2a nil '(find-fline eev-tar-fname 1 '(tar-untar-buffer)))
;;   (eek "C-x o C-x 4 0")
;;   (find-2a nil '(find-fline eev-tar-dir nil '(eek "g")))
;;
;; Add something like this to your .emacs:
;;
;;   (add-to-list 'load-path "~/eev-tar/")
;;
;; Use these sexps to check if everything is alright:
;;
;;   (find-epp load-path)
;;   (find-estring (mapconcat 'identity load-path "\n"))
;;   (locate-library "eejump")
;;   (find-estring (list-load-path-shadows t))
;;
;; See:
;;   (find-eev "eev-plinks.el" "find-urlretrieve")
;;   (find-es "emacs" "package-untar")
;;   (find-es "emacs" "load-path")
;;   (find-angg ".emacs.local.w32")
;;   (find-angg ".emacs.local.w32" "PATH")





#####
#
# explorer
# 2022jun12
#
#####

# «explorer»  (to ".explorer")
# (find-fline "~/LOGS/2022jun11.emacs")
# (find-fline "~/LOGS/2022jun11.emacs" "(\".*\" \"explorer\")")
# https://stackoverflow.com/questions/6845005/how-can-i-open-files-externally-in-emacs-dired-mode/26923918#26923918
# https://stackoverflow.com/a/26923918/4204372

C:\program files\Mozilla Firefox\firefox.exe
C:\program files\mvp\mpv.exe




#####
#
# terminals-in-windows
# 2023jan11
#
#####

# «terminals-in-windows»  (to ".terminals-in-windows")

https://lists.gnu.org/archive/html/emacs-devel/2023-01/msg00141.html EliZ

If by "terminal emulation" you mean term.el, then it doesn't work on
MS-Windows because it requires two Posix features that AFAIK aren't
available on Windows, certainly not with the Windows default shell:

  . terminfo
  . stty settings

In addition, I'm not sure that Windows shells will work with the
process-connection-type being nil (i.e. via pipes instead of PTYs),
which is another feature that is missing on MS-Windows.

https://devblogs.microsoft.com/commandline/windows-command-line-introducing-the-windows-pseudo-console-conpty/




#####
#
# martin-milan
# 2023apr06
#
#####

# «martin-milan»  (to ".martin-milan")
# https://lists.gnu.org/archive/html/eev/2023-04/msg00001.html

#                  https://github.com/martin12333/marti-onedrive
# (find-git-links "https://github.com/martin12333/marti-onedrive" "marti")
# (code-c-d "marti" "~/usrc/marti-onedrive/")
# (find-martifile "")
# (find-martifile ".emacs.d/xah.el")

# https://raw.githubusercontent.com/martin12333/marti-onedrive/main2/.emacs.d/xah.el
# https://github.com/martin12333/marti-onedrive/blob/main2/.emacs.d/xah.el
#                                  C:/Users/marti/OneDrive/.emacs.d/xah.el
#                                               ~/Onedrive/.emacs.d/xah.el

(defun find-martifile (fname &rest rest)
  (let ((fmt "https://raw.githubusercontent.com/martin12333/marti-onedrive/main2/%s"))
    (apply 'find-wget (format fmt fname) rest)))

(code-c-d "marti" "C:/Users/marti/OneDrive/" :anchor)
(find-martifile ".emacs.d/xah.el")
(find-martifile ".emacs.d/xah.el" "(defun xah")


can you now navigate to another file inside C:/Users/marti/OneDrive/
and then type M-x klf?
this should "kill link to file"


# TODO:
# (find-eev "eev-kla.el" "a-test")



C:/Users/marti/OneDrive/snarf/http/www.gnu.org/software/emacs/emacs-paper.html



#####
#
# martin-milan-config
# 2023apr08
#
#####

# «martin-milan-config»  (to ".martin-milan-config")

;; (find-wconfig-browser-links)
;; (find-wconfig-links)
;; (find-efunction 'find-wconfig-browser-links)
(require 'eev-load)
(require 'eev-wconfig)
(setq ee-googlechrome-program
  "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe")



#####
#
# gabriel-lacerda-config
# 2024apr10
#
#####

# «gabriel-lacerda-config»  (to ".gabriel-lacerda-config")
# (find-telegachat "-4171633152#231703" "Emacs, eev e Maxima - abril/2024")
# (find-extra-file-links "~/tmp/2024apr11_emacs_eev_maxima.pdf" "2024apr11")
# (code-pdf-page "2024apr11" "~/tmp/2024apr11_emacs_eev_maxima.pdf")
# (code-pdf-text "2024apr11" "~/tmp/2024apr11_emacs_eev_maxima.pdf")
# (find-2024apr11page)
# (find-2024apr11text)
# (find-2024apr11page 21 "M-h M-s")
# (find-2024apr11text 21 "M-h M-s")


1. Right-click on the shortcut to Chrome.
2. Select the option "Open file location", or "Abrir local do arquivo".
3. It will open a window with an address bar near the top saying something like this:

     This PC > Sistema (C:) > Program Files > Google > Chrome > Application

4. Click on it. It will change to something like this:

     C:\Program Files\Google\Chrome\Application

5. Use copy and paste to send me that line by chat.
6. I will convert it into lines like these,

     (setq ee-googlechrome-program "C:/Program Files/Google/Chrome/Application/chrome.exe")
     (defalias 'find-pdf-page 'find-googlechrome-page)

     (find-googlechrome "http://www.lua.org/start.html")
     (brg "http://www.lua.org/start.html")


# Next steps:
# (find-wconfig-wget-links 2 "4. Use the browser as a PDF viewer")
# (find-eev "eev-pdflike.el" "find-googlechrome-page")

(find-kl-here-intro)
(find-kl-here-intro "1. Introduction")
(find-kl-here-intro "2. Try it!")
(find-kl-here-intro "3. Info")

(code-c-d "maxima"
  "c:/maxima-5.47.0/share/maxima/5.47.0/"
  "c:/maxima-5.47.0/share/info/maxima")
;; (find-maximafile "")
;; (find-maximanode "")

(defun eepitch-maxima () (interactive)
  (eepitch-comint "maxima"
     "c:/maxima-5.47.0/bin/maxima.bat"))

 (eepitch-maxima)
 (eepitch-kill)
 (eepitch-maxima)
integrate(x^2, x);




#####
#
# caio-palhares-config
# 2024apr25
#
#####

# «caio-palhares-config»  (to ".caio-palhares-config")

(setq ee-googlechrome-program "C:/Program Files/Google/Chrome/Application/chrome.exe")
(defalias 'find-pdf-page 'find-googlechrome-page)

;; (find-maximafile "")
;; (find-maximanode "")
(code-c-d "maxima"
  "c:/maxima-5.47.0/share/maxima/5.47.0/"
  "c:/maxima-5.47.0/share/info/maxima")

(defun eepitch-maxima () (interactive)
  (eepitch-comint "maxima"
     "c:/maxima-5.47.0/bin/maxima.bat"))


 (eepitch-maxima)
 (eepitch-kill)
 (eepitch-maxima)
1+2;


Na seção 3 do tutorial principal - esta aqui:

  (find-eev-quick-intro "3. Elisp hyperlinks")
  http://anggtwu.net/eev-intros/find-eev-quick-intro.html#3

alguns dos hiperlinks dos exemplos não funcionam no Windows,
e outros funcionam mal e dão resultados bem estranhos:

       (find-fline "~/")
       (find-efunctiondescr 'find-file)
       (find-eval-intro "5. Going back")
  não: (find-fline "/tmp/")
  não: (find-man "date")
  mal: (find-sh  "date")
  mal: (find-sh  "date; sleep 1; date")



Menu bar -> Edit -> Cut (C-w)
Menu bar -> Edit -> Copy (M-w)
Menu bar -> Edit -> Paste (C-y)

(find-fline "c:/maxima-5.47.0/bin/" "maxima.bat")






#####
#
# modo-escuro
# 2024apr30
#
#####

# «modo-escuro»  (to ".modo-escuro")
# (find-telegachat "1077825496#232604" "Caio Palhares C2")

outra dúvida, você lembra como eu coloco ele no modo escuro?

Tenta isso:
Menu bar -> Options -> Customize Emacs -> Specific face -> default
ou
(customize-face 'default)

E ai' altera esses dois campos daqui:

Quando voce salvar a configuracao nova o Emacs vai salvar ela naquele
trecho do ~/.emacs que nao e' feito pras pessoas editarem `a mao -
esse aqui:





#####
#
# folders
# 2023jun16
#
#####

# «folders»  (to ".folders")
# https://www.pcgamer.com/students-dont-know-what-files-and-folders-are-professors-say/
# https://www.theverge.com/22684730/students-file-folder-directory-structure-education-gen-z ***
# https://stackoverflow.blog/2022/02/15/gen-z-doesnt-understand-file-structures-ep-415/



#####
#
# maxima
# 2023dec21
#
#####

# «maxima»  (to ".maxima")
# (find-angg ".emacs.local.aspi" "maxima")
# https://maxima.sourceforge.io/windows-install.html

star (eepitch-eshell)
cmd.exe  /c  "C:\Users\marti\maxima\bin\maxima.bat"
5*7 ;




#####
#
# libgmp-10.dll
# 2024jan14
#
#####

# «libgmp-10.dll»  (to ".libgmp-10.dll")
# https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01092.html
# https://www.reddit.com/r/emacs/comments/121r5cv/emacs_29_for_windows_snapshot_64a2b0d36fe/
# https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/emacs-29-deps-20230310.zip

Confirming. All the dependency DLLs look to be missing, AFICT. I'll
publish a new set shortly. If you like, you can resolve this locally
by unpacking the latest emacs-29-deps zip (download link) (from the
same folder on the alpha FTP site) into the bin folder extracted from
the "full" zip.




#####
#
# bitmapped-fonts
# 2024jan28
#
#####

# «bitmapped-fonts»  (to ".bitmapped-fonts")
# (find-fline "~/LOGS/2024jan28.emacs" "Windows?" "favorite bitmapped fonts")
# (find-sh "xlsfonts | grep -v ^- | sort | uniq")

<edrx> in Linux - or at least in Debian - I can list all the
       "bitmapped" fonts by running this: "xlsfonts | grep -v ^- |
       sort | uniq"
<edrx> and I normally use 6x13. What are the bitmapped fonts that
       come with Windows? Version 1 of the question: what are your
       favorite bitmapped fonts? Version 2: how do I list them all?
<edrx> I'm looking for fonts in which the characters will appear
       very crisp, like the ones in these screenshots -
       http://anggtwu.net/Repl3.html - and in this screenshot,
       <https://i.ibb.co/TYQ0Nvp/sshot.png>, that I took using
       5x7...

# (find-google-links "bitmapped fonts for windows")
# http://www.google.com/search?q=bitmapped+fonts+for+windows
# https://moddingwiki.shikadi.net/wiki/Microsoft_Bitmap_Font_Format
# https://answers.microsoft.com/en-us/windows/forum/all/i-cant-use-bitmap-font-fon-in-any-program/4f1ebc3e-fa20-4c0f-a49c-391d90b62053
# https://typedrawers.com/discussion/4402/fon-fonts-in-windows-10
# https://en.wikipedia.org/wiki/Computer_font
# System
# SysFixed





#####
#
# 7z-x-exe
# 2024apr04
#
#####

# «7z-x-exe»  (to ".7z-x-exe")
# (find-fline "~/LOGS/2024apr04.emacs" "7z x emacs....exe")
# https://jasonmurray.org/posts/2020/selfextractingarch/
# (find-status   "7zip-full")
# (find-vldifile "7zip-full.list")
# (find-udfile   "7zip-full/")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/emacsw32i/")
rm -Rv /tmp/emacsw32i/
mkdir  /tmp/emacsw32i/
cd     /tmp/emacsw32i/
wget https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/emacs-29.1.90_1-installer.exe
laf  emacs-29.1.90_1-installer.exe
7z x emacs-29.1.90_1-installer.exe

# (code-c-d "emacsw32i" "/tmp/emacsw32i/")
# (find-emacsw32ifile "")
# (find-emacsw32ish "find * | sort")
# (find-emacsw32ish "find * | sort | grep dll")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
# (find-fline "/tmp/emacsw32/")
rm -Rv /tmp/emacsw32/
mkdir  /tmp/emacsw32/
cd     /tmp/emacsw32/
wget https://alpha.gnu.org/gnu/emacs/pretest/windows/emacs-29/emacs-29.1.90_1.zip
laf   emacs-29.1.90_1.zip
unzip emacs-29.1.90_1.zip

# (code-c-d "emacsw32" "/tmp/emacsw32/")
# (find-emacsw32file "")
# (find-emacsw32sh "find * | sort")
# (find-emacsw32sh "find * | sort | grep dll")




#####
#
# msi-installer
# 2024apr13
#
#####

# «msi-installer»  (to ".msi-installer")
# (find-emacs-tangents-links "2024" "04" "01" "msg00000" "txt_tS0yQc2nH")
# https://chaoticlab.io/posts/emacs-29-3-msi/
# https://en.wikipedia.org/wiki/Windows_Installer MSI installer





#####
#
# Use alt-leftshift on Windows to switch between keyboard layouts
# 2024may05
#
#####

# «keyboard-layout»  (to ".keyboard-layout")




#####
#
# How do I click mouse-3 on the Acer mousepad thing?
# 2024may05
#
#####

# «mouse-3-on-acer»  (to ".mouse-3-on-acer")



#####
#
# audio-to-text (dica da Irene)
# 2024may24
#
#####

# «audio-to-text»  (to ".audio-to-text")
# https://www.media.io/br/auto-subtitle/transcribe-audio-to-text-ms-word.html




#####
#
# ...in a scripting environment, you have an artifact
# 2024jul21
#
#####

# «you-have-an-artifact»  (to ".you-have-an-artifact")
# (to "powershell")
# https://corecursive.com/building-powershell-with-jeffrey-snover/
# https://mtlynch.io/notes/guis-are-antisocial/
# https://lobste.rs/s/4f1bmt/guis_are_antisocial
# (find-sh "dict artifact")

Um, yeah. realized at some point, like, oh, yeah, this is, this is
familiar. You know, computing used to be fun. And then it sort of
wasn’t fun anymore, but this is fun again. And as I thought about
that, I realized that, you know, that the mouse is antisocial, The GUI
is antisocial, So what’s that mean? you have a problem to solve and
you solve it with the GUI. What do you have? A problem solved. But
when you solve it with a command line interface in a scripting
environment, you have an artifact. And all of a sudden that artifact
can be shared with someone. By the way, the way you did it can show
cleverness.

I’ve never seen anybody use a GUI in a clever way. Ever. There’s no
cleverness to it. No, like, Oh my God, you should see the way Adam
clicked that mouse. Oh my God. Guys, guys, guys, guys, come on, check
it out. Adam’s going to click the button. Oh my God. That’s amazing.
It just doesn’t happen.

Scripting, you’re using a language, right? You’re communicating.

It’s like, Oh my God, did you see what, Proust did, that’s phenomenal.
This guy’s a freaking genius. And then, Hey, give that to me. I’m
going to steal that technique and apply it to my code. Or then I have
this artifact and I publish it and people are using it. There’s a debt
of gratitude. Like they owe me a beer.





#####
#
# screenshot-to-telegram
# 2024jul21
#
#####

# «screenshot-to-telegram»  (to ".screenshot-to-telegram")

Ah, como voce faz pra tirar screenshots e mandar pra ca'? Voce tem um
jeito bem rapido de fazer isso, ne'?

Sim, aperto a tecla de print screen e dou ctrl+v direto no telegram



#####
#
# display-unavailable
# 2024aug14
#
#####

# «display-unavailable»  (to ".display-unavailable")
# https://github.com/microsoft/WSL/issues/11698
# Screenshot no whatsapp: 2024aug14
# (find-telegachat "6264384040#236436")
# (find-telegachat "6264384040#236470")
# (find-telegachat "6264384040#236506")

* (eepitch-shell)
* (eepitch-kill)
* (eepitch-shell)
       ip route
       ip route | grep default
       ip route | grep default | awk '{print $3}'
echo $(ip route | grep default | awk '{print $3}')
echo $(ip route | grep default | awk '{print $3}'):0.0




#####
#
# vcxsrv
# 2024aug25
#
#####

# «vcxsrv»  (to ".vcxsrv")
# https://github.com/marchaesen/vcxsrv
# (find-telegachat "6264384040#236544" "instalar o cliente externo vcxsrv")




#####
#
# find-saveurl
# 2024aug25
#
#####

# «find-saveurl»  (to ".find-saveurl")
# (find-telegachat "6264384040#236904" "Esse tem testes:")

;; Tests:
;; (ee-saveurl-html "https://www.lua.org/")
;; (find-saveurl    "https://www.lua.org/")
;; (brs             "https://www.lua.org/")

(defun ee-saveurl-html (url)
  (format "\
<html>
<head></head>
<body>
<a href=\"%s\">%s</a>
</body>
</html>" url url))

(defun find-saveurl (url)
  (ee-write-with-nl (ee-saveurl-html url) nil "" "" "/tmp/o.html")
  (format "find-saveurl: wrote /tmp/o.html"))

;; (find-code-brurl 'find-saveurl  :remote 'brs)
        (code-brurl 'find-saveurl  :remote 'brs)




#####
#
# kiennq-emacs-build
# 2024sep22
#
#####

# «kiennq-emacs-build»  (to ".kiennq-emacs-build")
# (find-fline "~/LOGS/2024sep22.emacs" "https://github.com/kiennq/emacs-build/releases")
# https://github.com/kiennq/emacs-build/releases




# http://xahlee.info/emacs/emacs/emacs_copy_cut_current_line.html







(insert atc)

PowerShell 7.1.4
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.

PS /home/edrx/e> mkdir -p ~/bin/
PS /home/edrx/e> cd       ~/bin/
PS /home/edrx/bin> rm -fv   ~/bin/wget.exe
removed '/home/edrx/bin/wget.exe'
PS /home/edrx/bin> wget http://angg.twu.net/2021.1-projeto/wget.exe
--2021-10-05 01:31:47--  http://angg.twu.net/2021.1-projeto/wget.exe
Resolving angg.twu.net (angg.twu.net)... 192.129.162.2
Connecting to angg.twu.net (angg.twu.net)|192.129.162.2|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 449024 (438K) [application/x-msdos-program]
Saving to: 'wget.exe'

wget.exe  100%[============================>] 438.50K   546KB/s  in 0.8s    

2021-10-05 01:31:48 (546 KB/s) - 'wget.exe' saved [449024/449024]

PS /home/edrx/bin> ls -l wget.exe
-rw-r--r-- 1 edrx edrx 449024 Oct  5 00:16 wget.exe
PS /home/edrx/bin> 





# http://wiki.njh.eu/Cross_Compiling_for_Win32

http://ss64.com/nt/




Winapi (for Lua):
http://stevedonovan.github.com/winapi/
http://stevedonovan.github.com/winapi/api.html

http://en.wikipedia.org/wiki/Windows_PowerShellShareWindows

https://github.com/hubisan/emacs-wsl

http://nsis.sourceforge.net/Main_Page

<twb> edrx: in Windows, you just open the Windows Store and
      double-click on "Debian"
# (find-fline "~/LOGS/2023jan16.emacs" "<twb> edrx: in Windows,")

https://news.ycombinator.com/item?id=34505239 Wine 8.0 (winehq.org)
https://news.ycombinator.com/item?id=35526119 I Like Powershell (buttondown.email/hillelwayne)
https://news.ycombinator.com/item?id=35654574 The weird world of Windows file paths (fileside.app)

Typing left Alt-Shift customizes the language

https://gist.github.com/Frityet/06ec8d5572b5ea08353c7de92cffc001 Installing Lua (and wlua!) + Luarocks on native Windows (not WSL)

https://github.com/microsoft/WSL/issues/11698





#  Local Variables:
#  coding:               utf-8-unix
#  modes:                (fundamental-mode emacs-lisp-mode)
#  End: