Asciinema: Windowsサポート?

作成日 2016年03月03日  ·  31コメント  ·  ソース: asciinema/asciinema

Windowsコンソールは(風変わりな)ANSIターミナルであり、WindowsコンソールAPIの背後にバインドされています。 レコーダーを作成できると仮定すると、既存のasciicastファイル形式は、Windowsコンソールアプリケーションで実行できるほぼすべてのことを表現できる必要があります。 結果として得られる録音は、他の録音と同じように再生可能である必要があります。

難しいトリックはレコーディングです。 誰かがWindowsコンソール用のそのようなレコーダーを構築することに何か考えや努力をしましたか?

Windowsへのasciinemaの移植は可能でしょうか?

feature request packaging

最も参考になるコメント

Windowsでの記録に興味がある人のために、 @ mattnには実験的なブランチがあります: https ://github.com/mattn/asciinema/tree/windows

全てのコメント31件

asciinemaは、子プロセス(デフォルトではシェル)の生のstdout出力を記録します。 画面の内容を「キャプチャ」することはありません。 印刷されるもの(すべてのエスケープ/制御シーケンスを含む)をキャプチャし、疑似端末(pty)を使用してそれを実行します。

これまでのところ、ptyをサポートするWindowsターミナルは見つかりませんでしたが、最近http://babun.github.ioに出くわしました。 ページには次のように書かれています: Mintty is the console used in babun.

Minttyページ(https://mintty.github.io)には次のように書かれています: Similarly to other Cygwin/MSYS terminals based on pseudo terminal ("pty") devices (...)ただし、関連する問題については長いディスカッションスレッドがあります: https ://github.com/mintty/mintty/issues/56

誰かがWindowsでptyを使用する方法(またはptyを偽造しているが、生のstdoutストリームを提供するもの)を見つけた場合は、asciinema-on-windowsにアプローチできます。

ネイティブのcmdサポートに興味がありますか?

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

しかし、現在実験的です。

@mattnおっ! 確かに、これがどのように達成されたかを知りたいです。

Windowsでの記録に興味がある人のために、 @ mattnには実験的なブランチがあります: https ://github.com/mattn/asciinema/tree/windows

やあ! おそらくこのプロジェクトは役に立ちますか? https://github.com/adoxa/ansicon

皆さん、このツールをWindows用のgit bashで使用できますか?
つまり、 MinGWです。 またはバブンで...

https://github.com/mattn/asciinema/tree/windowsからフォークをインストールしましたが、 cmd.exeで実行されます。

@andkirby Windowsではbashで動作すると聞きましたが、自分で試したことはありません。

噂...:)ありがとう。)

@sickillマージされたため、またはサポートする予定がないため、これは閉じられましたか?

@masaeeduご関心をお寄せいただきありがとうございます。

次の理由でWindowsをサポートする予定はありません。

  • Windows用のほとんどのptyのようなソリューションはハックです
  • 私はWindowsを使用しておらず、主要なasciinema開発者としてそれを維持したくありません

現時点では、それだけの価値はないと思います。

asciinemaは、Win10(WSL)でインストールされ、完全に正常に動作します: https ://asciinema.org/a/123255

Windowsターミナルの記録には本当にハックが必要ですが、MOV命令を使用してコンソールバッファに直接書き込むことは、引き続きサポートされています。 @miniksa

現時点では、それだけの価値はないと思います。

たぶん、それだけの価値はあります。 Git BashforWindowsでビデオを作成するためのポケットが本当に欲しいです。

表示するものがたくさんあります。 :)

私はこの問題に関するスレッドを興味深くフォローしています。 将来的には、WindowのCMD、PowerShell、およびGit Bash(WSLなし)でのAsciinemaの使用をサポートするソリューションが登場することを期待しています。

それまでの間、その方向に役立つ可能性のあるリソースへのリンクをいくつかドロップします。

winpty

winptyは、Windowsコンソールプログラムと通信するためのUnixpty-masterと同様のインターフェイスを提供するWindowsソフトウェアパッケージです。 このパッケージは、ライブラリ(libwinpty)と、Cygwin /MSYSptyでWindowsコンソールプログラムを実行するためのCygwinおよびMSYS用のツールで構成されています。

:winptyは、以下のnode-ptyライブラリによって使用されます。

node-pty

node.jsのforkpty(3)バインディング。 これにより、疑似端末ファイル記述子を使用してプロセスをフォークできます。 読み取りと書き込みを可能にするターミナルオブジェクトを返します。

これは次の場合に役立ちます。

  • ターミナルエミュレーターの作成(例:xterm.js経由)。
  • 制御シーケンスを送信するプログラムが必要な場合など、特定のプログラムに自分が端末であると思わせる。

node-ptyは、Linux、macOS、およびWindowsをサポートしています。 winptyライブラリを利用することでWindowsのサポートが可能です。

@tajmone可能なオプションの要約をありがとう。 asciinemaはPythonで記述されているため、node-ptyを使用できるとは思いません。

私はWSLにあまり精通していません-これはWin10の一部ですか、それとも個別にインストールする必要がありますか?

私はWSLにあまり精通していません-これはWin10の一部ですか、それとも個別にインストールする必要がありますか?

私も...しかし、私が読んだことから、WSLはオプションでWin 10にインストールでき、実際のUbuntuディストリビューションからパーツをインストールします。 私はすでにGitBashfor Windowsを持っているので、今必要なものをすべて提供しているので、もう少し理解するまでインストールしたくありません。WSLは確かにGit Bashだけでなく、より広い範囲のツールを提供します。 しかし、私はそれもより多くのスペースを占めると思います。

@tajmone @andkirby少し遅れましたが、 COMSPEC=cmdCOMSPEC=bash 、またはCOMSPEC=powershellを使用して、マットのフォークでさまざまなシェルを設定できます。 IMHO、COMSPECは、この種の関数に設定する適切なWindows変数になります。 以下の出力例:

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

WSL Bash(標準端末内から起動):
https://asciinema.org/a/XtLu8rh65uFekim1VbWamNcmh

パワーシェル:
https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

個人的にはそれは愉快にうまくいくと思います...

どうもありがとう@fquinner ! マットのフォークについてあちこち読んだことがありますが、そのような動作状態になっていることに気づいていませんでした。 あなたが提供したリンクは状況を明らかにしました。

しっかり調べてみます!

それで、asciinemaは、Windows cmdで実行されませんでしたね?

もう1つのオプションは、 https://github.com/Microsoft/consoleで問題を開いて、pty互換のAPIをcmdに追加することです。 @bitcrazedなどのMicrosoftWindowsConsoleエンジニアリングチームがGithubにいて、あなたの話を聞いています。

@joelhandwellが言ったこと:)このジョーを提案してくれてありがとう、そして上記のレポでy'allからの連絡を楽しみにしています;)

giphy

@bitcrazed先に進んで問題を作成しようとしましたが、すでに@ be5invishttps://github.com/Microsoft/console/issues/57を送信しました! この問題の人々は、うまくいけば、この問題に多くの👍を与え、より多くのマイクロソフトの注目を集めるでしょう。

回避策やハッキングが必要ない場合は、go-winptyを使用できます。

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

https://asciinema.org/a/r0UNULw8K5r0HV35kTLOatAbX

https://asciinema.org/a/HttJNKCwM9Tb1NlVP5PFy6Ftx

@fquinner 、申し訳ありませんが、これらのビデオをどのように録画するか、詳しく教えていただけますか?

Windowsに@mattnforkをインストールして実行しようとしましたが、 No module named 'termios'エラーを修正する方法がわかりません。

ありがとう。

以下のように構築してみてください:

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)

ありがとう。

すみません、それは私の間違いでした。 上記のように再試行してください。

@mattn

  1. バージョンのインストールをもっと簡単にできますか? たとえば、 pip install asciinemawindowsです。
  2. 私はまだあなたのasciinemaバージョンをインストールできません(はい、私は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)

ありがとう。

mattnのフォークインストールの問題に関する議論をmattnのリポジトリに移動してください。 ありがとう! ;)

Windowsサポート全般について話し合いたい場合は、asciinemaのディスカッションフォーラムを使用してください: https ://discourse.asciinema.org/

このページは役に立ちましたか?
0 / 5 - 0 評価