Automatizuokite tmux su tmuxinator, 1 dalis

2014 birželio 23 d. Tmux ir Tmuxinator

Screen? Oi, tikrai ne. Nors, serveriuose, kur galbūt neturiu root ir negaliu įsidiegti, tai taip.

Bet visais kitais atvejais - tmux. Kuom gi jis geresnis:

  • Leidžia keliems klientams prisijungti prie vienos sesijos.
  • Visai neblogai aprašytos konfigūracijos.
  • Labai patogi teksto kopijavimo iš terminalo paslauga.
  • Ypatingai lengvai galima keisti langų dydžius ir vietas.
  • Statuso eilutė be jokių konfigūracijų!

Tiesa, screen turi savų privalumų, kurių niekada neteko panaudoti dėl technologijų senumo: visokie telnet ir serial palaikymai. Kam dar jų gali reikėti?

Kaip ten bebūtų, įdiegti tmux ir screen yra paprasta (apie tai rašyti tikriausiai neverta). Aš dažniausiai naudoju tokį darbo modelį:

  • Turiu vieną sesiją su keliais langais kurią vadinu „kompiuteris“. Tai vienas root langas, finansų apskaita, laiko apskaita, muzika.
  • Kiekvienam klientui skiriu po vieną sesiją su X kiekiu langų. Vienas langas = vienas projektas. Ir tas langas dažnai perskeltas į bent dvi dalis.
  • Viena sesija su IRC langu. Pati sesija kitame terminale rodoma, nes ją noriu matyti kitame ekrano lange.

Taigi, gaunasi ~5 sesijos su daugiau nei 30 langų jose. Kiekis gal ir nėra didelis, bet kai įjungus kompiuterį tenka viską pasileisti, tai… Erzina. Bet jau prieš daugiau nei pusmetį suradau tikrai vertą dėmesio programą pavadinimu tmuxinator. Ji leidžia automatiškai sukurti sesijas su langais.

Tai vyksta per konfigūracijų failus. Sukurti naują failą galime su komanda:

tmuxinator new PROJEKTO-VARDAS

Atsidarys YAML failo redagavimo langas, kuriame turėsite aprašyti kaip vadinsis sesija ir ką konkreti sesija turėtų paleisti (tokius langus su kokiomis komandomis). Pavyzdžiui štai kaip atrodo mano pirmoji aprašyta sesija:

name: computer
windows:
    - root: su - root
    - mc: mc
    - earnings: time watch -n 5 nice -n19 earned-history.awk
    - finances: watch -n 5 finances.bash
    - music: ncmpcpp

Sintaksė velniškai paprasta: vienas windows elementas laiko savyje bash komandą.

Susikūrus reikiamus tmuxinator projektus bet kada galime juos paleisti:

tmuxinator start computer

Pradžiai tiek. Kitame straipsnyje aprašysiu kaip vienas langas gali pavykdyti kelias komandas. Programa tmuxinator labai paprasta, bet galimybės tikrai stebina!