Asciinema: ¿Soporte de Windows?

Creado en 3 mar. 2016  ·  31Comentarios  ·  Fuente: asciinema/asciinema

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?

feature request packaging

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

Todos 31 comentarios

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:

  • la mayoría de las soluciones similares a pty para Windows son hacks
  • No uso Windows y como desarrollador principal de asciinema no quiero mantenerlo.

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. :)

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

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.

nodo-pty

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:

  • Escribir un emulador de terminal (por ejemplo, a través de xterm.js).
  • Hacer que ciertos programas piensen que eres un terminal, como cuando necesitas un programa para enviarte secuencias de control.

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;)

giphy

@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.

https://github.com/iamacarpet/go-winpty

https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

@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 ,

  1. ¿Puedes hacer que la instalación de tu versión sea más simple? Por ejemplo, pip install asciinemawindows .
  2. Todavía no puedo instalar su versión de asciinema (sí, configuré gopath ):
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/

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

Bux42 picture Bux42  ·  9Comentarios

SR-Lut3t1um picture SR-Lut3t1um  ·  3Comentarios

omaraboumrad picture omaraboumrad  ·  10Comentarios

ethanboxx picture ethanboxx  ·  6Comentarios

yuvalif picture yuvalif  ·  10Comentarios