Existuje nějaký způsob, jak mohu ovládat server tmux a posílat mu příkazy, jako je přepínání na konkrétní okno v relaci nebo provádět nějaké dotazy na panely prostřednictvím soketu, který vytváří?
Podíval jsem se na libtmux pro python a zdá se, že v některých ohledech chybí. Existuje oficiální odkaz na tmux api, kde bych se mohl podívat? Oficiální balíček tmux v mém distribuci obsahuje pouze jeden binární soubor tmux.
Existuje jiný způsob, než si přečíst zdroj, jak zjistit, jak lze ovládat tmux přes jeho zásuvku?
Existují nějaké další terminálové multiplexery, které to zjednodušují/mají to zjednodušit?
Přijatá odpověď:
Není těžké dělat úkoly, které požadujete, pomocí python-tmux.
Např. pokud spustíte nový server s názvem relace foo
tmux new-session -s foo
můžete se k němu připojit přes python tmux (za předpokladu, že je nainstalována knihovna python) z ipythonu přes
import libtmux
server = libtmux.Server()
session = server.find_where({ "session_name": "foo" })
Poté můžete v okně tmux sledovat akci příkazů, např.
session.cmd("send-keys","x")
odešle stisk klávesy „x“. Seznam panelů, o který jste požádali, lze vyhledat pomocí
session.cmd("list-panes").stdout
a můžete přepnout na konkrétní okno (řekněme č. 1) pomocí
session.cmd("select-window","-t","1").stdout
Abyste se to naučili, nemusíte číst zdrojový kód tmux. Všechny tyto příkazy jsou zdokumentovány v manuálové stránce tmux. Pokud to pro vás nestačí, musíte být konkrétnější, co myslíte tím, že python-libtmux „nějakým způsobem chybí“.