Asciinema: Windows-UnterstĂŒtzung?

Erstellt am 3. MĂ€rz 2016  Â·  31Kommentare  Â·  Quelle: asciinema/asciinema

Eine Windows-Konsole ist ein (skurriles) ANSI-Terminal, das hinter die Windows-Konsolen-API eingebunden ist. Unter der Annahme, dass ein Rekorder hergestellt werden kann, sollte das vorhandene asciicast-Dateiformat in der Lage sein, nahezu alles darzustellen, was eine Windows-Konsolenanwendung tun kann. Die resultierende Aufnahme sollte genauso gut abspielbar sein wie jede andere.

Der schwierige Trick ist die Aufnahme. Hat jemand darĂŒber nachgedacht oder sich MĂŒhe gegeben, einen solchen Rekorder fĂŒr eine Windows-Konsole zu bauen?

WÀre eine Portierung von Asciinema auf Windows möglich?

feature request packaging

Hilfreichster Kommentar

FĂŒr alle, die an Aufnahmen unter Windows interessiert sind, hat @mattn hier einen experimentellen Zweig: https://github.com/mattn/asciinema/tree/windows

Alle 31 Kommentare

asciinema zeichnet die rohe stdout-Ausgabe eines untergeordneten Prozesses (standardmĂ€ĂŸig Shell) auf. Es "erfasst" den Bildschirminhalt in keiner Weise. Es erfasst, was gedruckt wird (einschließlich aller Escape-/Steuersequenzen) und tut dies mit einem Pseudo-Terminal (pty).

Bisher habe ich kein Windows-Terminal gefunden, das pty unterstĂŒtzt, aber kĂŒrzlich bin ich auf http://babun.github.io gestoßen. Auf der Seite steht: Mintty is the console used in babun.

Die Mintty-Seite (https://mintty.github.io) sagt: Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...) , es gibt jedoch einen langen Diskussionsthread ĂŒber verwandte Probleme: https://github.com/mintty/mintty/issues/56

Wenn jemand einen Weg findet, pty unter Windows zu verwenden (oder etwas, das pty vortÀuscht, uns aber einen rohen stdout-Stream gibt), könnten wir uns an asciinema-on-windows wenden.

Interessieren Sie sich fĂŒr native cmd-UnterstĂŒtzung?

https://asciinema.org/a/0nsiofsbhypumh6vy5jx6wuog

Aber derzeit experimentell.

@mattn wow! NatĂŒrlich bin ich neugierig zu hören, wie dies erreicht wurde.

FĂŒr alle, die an Aufnahmen unter Windows interessiert sind, hat @mattn hier einen experimentellen Zweig: https://github.com/mattn/asciinema/tree/windows

Hallo! Vielleicht ist dieses Projekt nĂŒtzlich? https://github.com/adoxa/ansicon

Leute, kann ich dieses Tool in Git Bash fĂŒr Windows verwenden?
Dh in MinGW . Oder in Babun...

Ich habe gerade Fork von https://github.com/mattn/asciinema/tree/windows installiert, aber es lÀuft cmd.exe .

@andkirby Ich habe gehört, dass es in Bash unter Windows funktioniert, habe es aber selbst nicht ausprobiert.

GerĂŒchte... :) Danke.)

@sickill Wurde dies geschlossen, weil es zusammengefĂŒhrt wurde oder weil Sie nicht vorhaben, es zu unterstĂŒtzen?

@masaeedu Vielen Dank fĂŒr Ihr Interesse.

Ich habe nicht vor, Windows zu unterstĂŒtzen, weil:

  • Die meisten pty-Ă€hnlichen Lösungen fĂŒr Windows sind Hacks
  • Ich benutze Windows nicht und als Hauptentwickler von Asciinema möchte ich es nicht warten

Im Moment glaube ich, dass es sich nicht lohnt.

asciinema installiert und funktioniert einwandfrei unter Win10 (WSL): https://asciinema.org/a/123255

Aufzeichnende Windows-Terminals brauchen wirklich Hacks, AFAIK unterstĂŒtzen sie immer noch , direkt mit MOV-Anweisungen in den Konsolenpuffer zu schreiben. @miniksa

Im Moment glaube ich, dass es sich nicht lohnt.

Ich denke, es lohnt sich. Ich hĂ€tte wirklich gerne die Tasche, um ein Video in Git Bash fĂŒr Windows zu erstellen.

Ich habe einfach viel zu zeigen. :)

Ich verfolge mit Interesse den Thread zu diesem Thema. Ich hoffe, dass es in Zukunft eine Lösung geben wird, um die Verwendung von Asciinema auf Windows CMD, PowerShell und Git Bash (ohne WSL) zu unterstĂŒtzen.

In der Zwischenzeit lasse ich ein paar Links zu Ressourcen fallen, die ich gefunden habe und die in dieser Richtung helfen könnten:

winzig

winpty ist ein Windows-Softwarepaket, das eine Schnittstelle Ă€hnlich einem Unix-pty-master fĂŒr die Kommunikation mit Windows-Konsolenprogrammen bereitstellt. Das Paket besteht aus einer Bibliothek (libwinpty) und einem Tool fĂŒr Cygwin und MSYS zum AusfĂŒhren von Windows-Konsolenprogrammen in einem Cygwin/MSYS pty.

HINWEIS : winpty wird von der folgenden node-pty-Bibliothek verwendet.

Knoten-pty

forkpty(3) Bindungen fĂŒr node.js. Auf diese Weise können Sie Prozesse mit pseudoterminalen Dateideskriptoren forken. Es gibt ein Terminalobjekt zurĂŒck, das Lese- und SchreibvorgĂ€nge zulĂ€sst.

Dies ist nĂŒtzlich fĂŒr:

  • Schreiben eines Terminal-Emulators (z. B. ĂŒber xterm.js).
  • Bestimmte Programme dazu bringen, Sie fĂŒr ein Terminal zu halten, z. B. wenn Sie ein Programm benötigen, das Ihnen Steuersequenzen sendet.

node-pty unterstĂŒtzt Linux, macOS und Windows. Windows-UnterstĂŒtzung ist durch Verwendung der winpty- Bibliothek möglich.

@tajmone danke fĂŒr die Zusammenfassung der möglichen Optionen. Ich glaube jedoch nicht, dass wir node-pty verwenden können, da asciinema in Python geschrieben ist.

Ich bin mit WSL nicht sehr vertraut - ist dies Teil von Win10 oder muss dies separat installiert werden?

Ich bin mit WSL nicht sehr vertraut - ist dies Teil von Win10 oder muss dies separat installiert werden?

Ich auch nicht ... aber nach dem, was ich gelesen habe, kann WSL optional in Win 10 installiert werden und installiert dann Teile einer tatsĂ€chlichen Ubuntu-Distribution. Da ich bereits Git Bash fĂŒr Windows habe, das mir im Moment alles bietet, was ich brauche, wĂŒrde ich es lieber nicht installieren, bis ich ein bisschen mehr darĂŒber weiß – WSL bietet sicherlich mehr Tools als nur Git Bash und hat einen grĂ¶ĂŸeren Umfang; aber ich schĂ€tze, es braucht auch mehr Platz.

@tajmone @andkirby Etwas verspĂ€tet, aber mit COMSPEC=cmd , COMSPEC=bash oder COMSPEC=powershell kann man mit Matts Fork verschiedene Shells setzen. IMHO wĂ€re COMSPEC die richtige Windows-Variable fĂŒr diese Art von Funktion. Beispielausgaben unten:

Befehl:
https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

WSL Bash (aus dem Standard-Terminal heraus gestartet):
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh

Power Shell:
https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

Ich persönlich finde es sehr gut gelungen...

Vielen Dank @fquinner ! Ich habe hier und da ĂŒber Matts Fork gelesen, wusste aber nicht, dass sie einen so operativen Status erreicht hatte. Die von Ihnen bereitgestellten Links haben die Situation verdeutlicht.

Ich probier es auf jeden Fall aus!

Asciinema lief also nicht unter Windows cmd, oder?

Eine andere Möglichkeit besteht darin, ein Problem in https://github.com/Microsoft/console zu öffnen, um eine pty-kompatible API zu cmd hinzuzufĂŒgen. Das Microsoft Windows Console-Engineering-Team wie @bitcrazed ist auf Github, um Ihnen zuzuhören.

Was @joelhandwell gesagt hat :) Danke, dass du diesen Joe vorgeschlagen hast, und freue mich darauf, von euch allen im obigen Repo zu hören;)

giphy

@bitcrazed Ich habe versucht, ein Problem zu lösen, aber @be5invis hat bereits https://github.com/Microsoft/console/issues/57 eingereicht! Die Leute in dieser Ausgabe geben dem Problem hoffentlich viel 👍 und erregen mehr Aufmerksamkeit von Microsoft.

Wenn Sie keine Problemumgehung oder Hacks wĂŒnschen, können Sie dafĂŒr go-winpty verwenden.

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

https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

@fquinner , tut mir leid, könntest du im Detail schreiben, wie du diese Videos aufnimmst?

Ich versuche, @mattn fork unter Windows zu installieren und auszufĂŒhren, aber ich verstehe nicht, wie ich den Fehler No module named 'termios' beheben kann.

Danke.

Versuchen Sie, wie folgt zu bauen:

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)

Danke.

Entschuldigung, es war mein Fehler. Bitte versuchen Sie es erneut wie oben.

@mattn ,

  1. Kannst du deine Versionsinstallation einfacher machen? Beispiel: pip install asciinemawindows .
  2. Ich kann Ihre asciinema-Version immer noch nicht installieren (ja, ich habe gopath eingestellt ):
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)

Danke.

Bitte verschieben Sie die Diskussion ĂŒber Probleme bei der Fork-Installation von Mattn in das Repo von Mattn. Danke! ;)

Wenn Sie allgemein ĂŒber den Windows-Support diskutieren möchten, nutzen Sie bitte das Diskussionsforum von asciinema: https://discourse.asciinema.org/

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

lukehinds picture lukehinds  Â·  5Kommentare

Bux42 picture Bux42  Â·  9Kommentare

ThomasWaldmann picture ThomasWaldmann  Â·  3Kommentare

laughedelic picture laughedelic  Â·  7Kommentare

deeplook picture deeplook  Â·  10Kommentare