Terminal

擷取 tmux 狀態欄內容

  • October 25, 2019

我為 tmux 編寫了一個外掛tmu​​x-gitbar,它向 tmux 狀態欄添加了一些關於目前 Git 工作樹的資訊(本地和遠端分支的名稱,工作樹是否乾淨?等)。所以基本上它是在修改 tmux 狀態欄的內容。

我目前正在編寫一套自動化測試,我想擷取 tmux 狀態欄的實際內容以執行一些檢查。

我嘗試使用 unixscript工具,也使用ttyrec,都用於實現終端會話記錄。他們抓取整個終端內容,但不抓取狀態欄

我該怎麼做?

編輯

事實上,我能夠同時使用script和擷取 tmux 狀態欄ttyrec。為此,我只需要在啟動 tmux 之前執行它們。當這些工具抓取目前終端時,它們不知道您啟動 tmux 的終端。在啟動它們之前tmux讓它們看到 tmux 創建其狀態欄的終端行和列。

不過,我仍在尋找另一種解決方案,因為我發現解析由我的集成測試套件生成scriptttyrec作為其一部分的二進製文件並不是很穩定。然而,一個工具看起來很有希望:一個用 python 編寫的 vt100 模擬器庫,但我仍然願意接受建議/解決方案。

回答我自己的問題。

經過一番研究,是的,我找到了一種可靠的方法來擷取任何基於終端的應用程序的輸出:使用VT100 終端仿真器

VT100現在是所有虛擬終端應用程序的事實標準,tmux是一個與終端互動的應用程序,它的內容和狀態欄都可以被廢棄。

我使用的庫是pyte,它可以很好地完成這項工作。

可能還有很多其他的

引用自:https://unix.stackexchange.com/questions/267854