presentをUbuntuで使う時のメモ
id:limitususから質問されて知った、Rubyで書かれたターミナルでプレゼンをするツール「present」をUbuntuで使う時のメモ。
presentについてはターミナル用プレゼンツールをリリースいたしました - Hello, world! - s21gが公式ページです。
presentをインストールする方法は
gem install present
が簡単。
しかし、いざ実行をしようとすると
present.rb:72:in `write': Broken pipe (Errno::EPIPE)
が発生してしまう。
これが聞かれたこと。
でも、検証するためのPCが死んでいたので実際に動作して確かめることが出来ないという罠・・・。
そこで、ソースの該当箇所を見たら
def figlet(font, cols, text) font = 'term' if mb?(text) cmd = Escape.shell_command(['figlet', '-f', "#{font}.flf", '-w', cols.to_s]) IO.popen(cmd, 'r+') do |io| io.write text io.close_write io.read end end
となっていました。
figletを実行して、そこにテキストを書き込もうとしてPIPEのエラーになっている模様なので、単純にfigletが入っていないだけでは?と思い伝えたところ、そうでした。
Ubuntuでfigletを入れるのは簡単
sudo apt-get install figlet
ただこれだけ。
presentで使うライブラリはgemで依存関係まとめてインストールされます。
自分の環境では
ncurses-0.9.1
Text-1.1.2
escape-0.0.4
redgreen-1.2.2
がインストールされました。
使い方は、Readmeに書かれていますが。
プレゼンの内容が書かれた(もちろんフォーマットにしたがって)ファイルを用意して
present fileName
簡単ですね。
オプションで開始ページも指定できます。
しかし、Windowsではこれを動かすのは少し面倒。
なぜなら、ncursesが依存関係でインストールされるため。
ncursesとは、CUIでスクリーンやキー入力、カーソルなどを管理するためのライブラリです。
Windowsで使う方法を探していたら、windows で curses を使うにはを見つけました。
Cygwinがいるみたいですね。
やっぱり、自作プレゼンツールはいいですね。
自分も作ってみたくなりました。
少し落ち着いたら作ってみよう。