Με το tmux
μπορούμε να έχουμε πολλά τερματικά σε ένα και όχι μόνο. Αλλά αν δεν έχουμε μια έτοιμη συνεδρία είναι μπελάς να φτιάξεις όλα τα παράθυρα και τις περιοχές από την αρχή. Δεν είναι καθόλου δύσκολο να το αυτοματοποιήσεις με ένα bash script
, αλλά υπάρχει ένας καλύτερος τρόπος.
To tmuxinator
θα αυτοματοποιήσει την δημιουργία μιας συνεδρίας, φτιάχνοντας ένα απλό αρχείο ρυθμίσεων.
Είναι γραμμένο στην αγαπημένη μου γλώσσα ruby και υπάρχει στα αποθετήρια.
Βασική χρήση
Μετά την εγκατάσταση θα πρέπει να ορίσουμε ένα διορθωτή. Διαλέξτε όποιον σας βολεύει καλύτερα. Στην συνέχεια θα φτιάξουμε μια περιγραφή μιας συνεδρίας με ότι όνομα θέλουμε.
export EDITOR='xed'
tmuxinator new demo
Και θα ανοίξει το αρχείο # ~/.tmuxinator/demo.yml
για διόρθωση. Το αρχείο είναι τυπου yaml
αυτό που τουλάχιστον πρέπει να ξέρουμε για αυτά τα αρχεία είναι ότι τα κενά μετράνε και κάθε εσοχή πρέπει να έχει 2 κενά.
Ας φτιάξουμε μια πολύπλοκη δομή
startup_window: work
windows:
- work:
layout: even-vertical
panes:
- shell1:
- cd ~/Projects
- shell2:
- pwd
- tput colors
- tasks: ytop
- logs: tail -f /var/log/syslog | ccze -A
- monitor:
layout: even-horizontal
panes:
disks: watch -d df -h
sensors: watch -d sensors
Το παραπάνω λέει πως η συνεδρία θα έχει 4 παράθυρα. Το πρώτο work
, θα έχει 2 παράθυρα με δομή even-vertical
(αλλες τιμές even-horizontal
, even-vertical
, main-horizontal
, main-vertical
, tiled
). Αν δεν μας βολεύει μπορούμε να φτιάξουμε τα δικά μας layout. Το παράθυρο αυτό θα έχει δυο περιοχές τις shell1
και shell2
. Σε κάθε μια από αυτές θα τρέξει κάποιες εντολές.
Ένα δεύτερο παράθυρο θα τρέχει την ytop
, ένα άλλο θα δείχνει τα logs, και τέλος στο τελυταίο θα παρακολουθούμε τις θερμοκρασίες και τον ελεύθερο χώρο στο δίσκο.Με λίγη προσοχή στα κενά εύκολα το φέρνουμε στις ανάγκες μας.
Θα ξεκινήσουμε όλα τα παραπάνω με την εντολή
tmuxinator start demo
Άλλες λύσεις
Υπάρχουν άλλα 3 παρόμοια προγράμματα με πάνω κάτω τις ίδιες δυνατότητες.