Una consola de Windows es una terminal ANSI (peculiar), vinculada detrás de la API de la consola de Windows. Suponiendo que se pueda hacer una grabadora, el formato de archivo asciicast existente debería ser capaz de representar casi cualquier cosa que pueda hacer una aplicación de consola de Windows. La grabación resultante debe ser tan reproducible como cualquier otra.
El truco difícil es la grabación. ¿Alguien ha pensado o se ha esforzado en construir una grabadora de este tipo para una consola de Windows?
¿Sería posible un port de asciinema a Windows?
asciinema registra la salida estándar sin procesar de un proceso secundario (shell por defecto). No "captura" el contenido de la pantalla de ninguna manera. Captura lo que se imprime (incluidas todas las secuencias de escape/control) y lo hace mediante el uso de pseudo-terminal (pty).
Hasta ahora no encontré ningún terminal de Windows compatible con pty, pero recientemente me topé con http://babun.github.io . La página dice: Mintty is the console used in babun.
La página de Mintty (https://mintty.github.io) dice: Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...)
, sin embargo, hay un largo hilo de discusión sobre un problema relacionado: https://github.com/mintty/mintty/issues/56
Si alguien encuentra una manera de usar pty en Windows (o algo que finja pty pero nos proporcione un flujo de salida estándar sin procesar), entonces podríamos acercarnos a asciinema-on-windows.
¿Está interesado en el soporte de cmd nativo?
https://asciinema.org/a/0nsiofsbhypumh6vy5jx6wuog
Pero actualmente experimental.
@mattn ¡guau! Claro, tengo curiosidad por saber cómo se logró esto.
Para cualquier persona interesada en grabar en Windows, @mattn tiene una rama experimental aquí: https://github.com/mattn/asciinema/tree/windows
¡Hola! ¿Quizás este proyecto es útil? https://github.com/adoxa/ansicon
Chicos, ¿puedo usar esta herramienta en git bash para Windows?
Es decir, en MinGW . O en Babun...
Acabo de instalar la bifurcación desde https://github.com/mattn/asciinema/tree/windows pero ejecuta cmd.exe
.
@andkirby Escuché que funcionó en bash bajo Windows pero no lo he probado.
Rumores... :) Gracias.)
@sickill ¿Se cerró porque está fusionado o porque no planea apoyarlo?
@masaeedu Gracias por su interés.
No planeo admitir Windows porque:
De momento creo que no merece la pena.
asciinema se instala y funciona perfectamente bajo Win10 (WSL): https://asciinema.org/a/123255
La grabación de terminales de Windows realmente necesita hacks, AFAIK todavía admiten escribir en el búfer de la consola directamente con instrucciones MOV. @miniksa
De momento creo que no merece la pena.
Supongo que vale la pena. Realmente me encantaría tenerlo en el bolsillo para hacer algún video en Git Bash para Windows.
Sólo tengo un montón de cosas para mostrar. :)
@andkirby https://github.com/asciinema/asciinema/issues/150#issuecomment -305995768
Sigo con interés el hilo sobre este tema. Espero que en el futuro pueda surgir una solución para admitir el uso de Asciinema en CMD, PowerShell y Git Bash de Windows (sin WSL).
Mientras tanto, dejo algunos enlaces a recursos que encontré que podrían ayudar en esa dirección:
winpty es un paquete de software de Windows que proporciona una interfaz similar a un pty-master de Unix para comunicarse con los programas de la consola de Windows. El paquete consta de una biblioteca (libwinpty) y una herramienta para Cygwin y MSYS para ejecutar programas de consola de Windows en un pty Cygwin/MSYS.
NOTA : winpty es utilizado por la biblioteca node-pty a continuación.
forkpty(3)
enlaces para node.js. Esto le permite bifurcar procesos con descriptores de archivos pseudoterminales. Devuelve un objeto terminal que permite lecturas y escrituras.
Esto es útil para:
node-pty es compatible con Linux, macOS y Windows. El soporte de Windows es posible utilizando la biblioteca winpty .
@tajmone gracias por el resumen de las posibles opciones. Sin embargo, no creo que podamos usar node-pty, ya que asciinema está escrito en Python.
No estoy muy familiarizado con WSL: ¿es parte de Win10 o debe instalarse por separado?
No estoy muy familiarizado con WSL: ¿es parte de Win10 o debe instalarse por separado?
Yo tampoco ... pero por lo que leí, WSL se puede instalar opcionalmente en Win 10, y luego instalará partes de una distribución Ubuntu real. Dado que ya tengo Git Bash para Windows, que me ofrece todo lo que necesito en este momento, prefiero no instalarlo hasta que sepa un poco más al respecto: WSL seguramente ofrece más herramientas que solo Git Bash y tiene un alcance más amplio; pero supongo que también ocupa más espacio.
@tajmone @andkirby Un poco tarde, pero puedes configurar diferentes caparazones con el tenedor de Matt usando COMSPEC=cmd
, COMSPEC=bash
o COMSPEC=powershell
. En mi humilde opinión, COMSPEC sería la variable de Windows adecuada para configurar este tipo de función. Salidas de ejemplo a continuación:
Comando:
https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX
WSL Bash (lanzado desde dentro de la terminal estándar):
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh
Potencia Shell:
https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx
Personalmente creo que funciona muy bien...
¡Muchas gracias @fquinner ! He leído aquí y allá sobre el tenedor de Matt, pero no me di cuenta de que había alcanzado tal estado operativo. Los enlaces que proporcionó aclararon la situación.
¡Definitivamente lo investigaré!
Entonces, asciinema, no se ejecutó en Windows cmd, ¿verdad?
Otra opción es abrir un problema en https://github.com/Microsoft/console para agregar una API compatible con pty a cmd. El equipo de ingeniería de Microsoft Windows Console, como @bitcrazed , está en Github para escucharlo.
Lo que dijo @joelhandwell :) Gracias por sugerir esto, Joe, y espero saber de todos ustedes en el repositorio anterior;)
@bitcrazed Seguí adelante e intenté crear un problema, pero @be5invis ya envió https://github.com/Microsoft/console/issues/57 . Se espera que las personas en este problema den mucho 👍 al problema y capten más la atención de Microsoft.
Si no quiere una solución alternativa o trucos, puede usar go-winpty para esto.
@fquinner , lo siento, ¿podrías escribir en detalle cómo grabas estos videos?
Intento instalar y ejecutar la bifurcación @mattn en Windows, pero no entiendo cómo puedo solucionar el error No module named 'termios'
.
Gracias.
Intenta construir como a continuación:
mkdir \path\to\your\gopath\src\github.com\mattn
cd \path\to\your\gopath\src\github.com\mattn
git clone https://github.com/mattn/asciinema
cd asciinema
git checkout windows
go build
@mattn ,
D:\>go version
go version go1.10 windows/amd64
D:\>go get -d github.com/mattn/asciinema
package github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
package github.com/asciinema/asciinema/api: cannot find package "github.com/asciinema/asciinema/api" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
package github.com/asciinema/asciinema/commands: cannot find package "github.com/asciinema/asciinema/commands" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
package github.com/asciinema/asciinema/util: cannot find package "github.com/asciinema/asciinema/util" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
C:\Users\SashaChernykh\go\src\github.com\asciinema\asciinema\util (from $GOPATH)
Gracias.
Lo siento, fue mi error. Vuelva a intentarlo como se indicó anteriormente.
@mattn ,
pip install asciinemawindows
.D:\go\src\github.com\mattn\asciinema>go build
main.go:11:2: cannot find package "github.com/asciinema/asciinema/Godeps/_workspace/src/github.com/docopt/docopt-go" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\Godeps\_workspace\src\github.com\docopt\docopt-go (from $GOPATH)
main.go:12:2: cannot find package "github.com/asciinema/asciinema/api" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\api (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\api (from $GOPATH)
main.go:13:2: cannot find package "github.com/asciinema/asciinema/commands" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\commands (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\commands (from $GOPATH)
main.go:14:2: cannot find package "github.com/asciinema/asciinema/util" in any of:
C:\tools\go\src\github.com\asciinema\asciinema\util (from $GOROOT)
D:\go\src\github.com\asciinema\asciinema\util (from $GOPATH)
main.go:15:2: cannot find package "github.com/mattn/go-colorable" in any of:
C:\tools\go\src\github.com\mattn\go-colorable (from $GOROOT)
D:\go\src\github.com\mattn\go-colorable (from $GOPATH)
Gracias.
Mueva la discusión sobre los problemas de instalación de la bifurcación de mattn al repositorio de mattn. ¡Gracias! ;)
Si desea hablar sobre el soporte de Windows en general, use el foro de discusión de asciinema: https://discourse.asciinema.org/
Comentario más útil
Para cualquier persona interesada en grabar en Windows, @mattn tiene una rama experimental aquí: https://github.com/mattn/asciinema/tree/windows