Jak uruchomić tmux z kilkoma otwartymi oknami w tym samym czasie?

23

Załóżmy, że uruchomię tmuxi natychmiast wykonam Ctrl+ b+ %i Ctrl+ b+ ".

To daje mi wysoki panel po lewej stronie ekranu; prawa strona ekranu ma górny i dolny panel.

Jak skonfigurować Tmux, aby uruchamiał się w tej konfiguracji bez konieczności wpisywania tych poleceń?

Mark Harrison
źródło
Jeśli Twoim celem jest otwarcie kilku terminali naraz za pomocą jednego kliknięcia, możesz to zrobić za pomocą terminatora . Zainstaluj go z centrum oprogramowania.
SAGAR Nair
Dzięki, dobrze wiedzieć! W moim szczególnym przypadku jest to sesja ssh na komputerze zdalnym.
Mark Harrison

Odpowiedzi:

15

Do konfiguracji możesz użyć następującego skryptu powłoki:

#!/bin/sh 
tmux new-session -s "mySession" -d
tmux split-window -h
tmux split-window -v
tmux -2 attach-session -d 

Zapewni to wymaganą konfigurację ekranu z następującymi poleceniami, jak wspomniałeś. tmux -> Ctrl+ b+ %-> Ctrl+ b+"

W celach informacyjnych skorzystaj ze strony man tmux .

Harshit
źródło
4

Włączanie i wyłączanie automatycznych tmuxsesji przy logowaniu może być łatwe przy użyciu aplikacji Byobu . Możesz użyć Byobu jako interfejsu do tmuxzaspokojenia tej potrzeby, dzięki czemu możesz łatwo zrobić to, o co prosisz. W terminalu uruchom następujące polecenia:

sudo apt-get install byobu
sudo byobu-enable
sudo -i

Gdy użytkownik root zaloguje się za pośrednictwem konsoli, SSH lub za pomocą sudo -i, Byobu połączy się z istniejącą tmuxsesją lub utworzy nową, jeśli jeszcze nie jest uruchomiona. Użyj sudo -izamiast sudo -s. -sOpcja uruchamia tylko skorupę, a nie powłoki logowania. Powinieneś użyć sudo -ido emulacji pełnego logowania, które również się ładuje roots ~/.profile, i to tutaj byobu zainstaluje się po uruchomieniu

byobu-enable.

Możesz skonfigurować różne sesje, .tmux.confjak poniżej:

# initialize sessions
bind S source-file ~/.tmux/session1 
bind s source-file ~/.tmux/session2

Następnie możesz sformatować sesje według potrzeb:

#session1
new  -s SessionName -n WindowName Command
neww -n foo/bar foo
splitw -v -p 50 -t 0 bar
selectw -t 1 
selectp -t 0

Otworzyłyby się 2 okna, z których drugie nazwano by foo / bar i byłoby podzielone pionowo na pół (50%) z foo działającym powyżej paska. Fokus byłby w oknie 2 (foo / bar), w górnym okienku (foo).

Byobu sprawia, że ​​konfiguracja i uruchomienie tmux jest bardzo proste.

Abhishek Tandon
źródło
1
dlaczego bind S vs bind s? (najpierw duże S, a potem małe s?)
knb
3

Tmux-Powstanie plugin pozwoli konfigurowania sesji wytrwałości, a także zapewniają dodatkową funkcjonalność do zapisywania i przywracania ustawień całej tmux sesji.

Dostępnych jest wiele dodatkowych funkcji. Ze strony internetowej wtyczki:

Ta wtyczka bardzo się stara, aby zapisać i przywrócić wszystkie szczegóły ze środowiska tmux. Oto, o co zadbano:

  • wszystkie sesje, okna, panele i ich kolejność
  • bieżący katalog roboczy dla każdego panelu
  • dokładne układy okien w oknach (nawet po powiększeniu)
  • sesja aktywna i alternatywna
  • aktywne i alternatywne okno dla każdej sesji
  • okna z aktywnym oknem aktywnym dla każdego okna
  • „zgrupowane sesje” (przydatna funkcja przy korzystaniu z tmux z wieloma monitorami) programy działające w okienku!

Instalacja:

  1. W terminalu przejdź do katalogu wtyczki tmux (w moim przypadku ~/dotfiles/tmux/plugins).
  2. Sklonować repozytorium za pomocą polecenia: git clone https://github.com/tmux-plugins/tmux-resurrect.

  3. Edytuj .tmux.confplik i dodaj linię set -g @plugin 'tmux-plugins/tmux-resurrect'.

  4. Odśwież środowiska tmux z poleceniem: tmux source-file ~/dotfiles/tmux/tmux.conf.
  5. Wprowadź odpowiedni układ. W tym przypadku Ctrl- b %i Ctrl- b ".
  6. Zapisz swoją sesję tmux, wpisując polecenie Ctrl- b+ Ctrl- s.
  7. Kiedy następnym razem rozpoczniesz sesję tmux, wpisz polecenie Ctrl- b+ Ctrl-, raby przywrócić sesję tmux.

Jak wspomniano wcześniej, oprócz ustawienia panelu sesji sesji tmux, ta wtyczka może również skonfigurować trwałe katalogi robocze, a także uruchamiać uruchomione aplikacje przy każdej sesji.

Kevin Bowen
źródło
2

Napisałem sobie mały skrypt bash :

# filename tmuxv in /home/<username>/Bash/tmuxv/

#!/bin/bash
tmux new-session \; split-window -v \; rename-window ${1} \; attach

i umieść alias w moich ~ / .bash_aliases

alias tmuxv="/home/<username>/Bash/tmuxv/tmuxv"

Teraz mogę po prostu pisać tmuxv PYTHONi mam pionowo podzieloną sesję tmux z oknem o nazwie PYTHON, co jest miłe, ponieważ nazwa okna znajduje odzwierciedlenie w nazwie mojej karty terminali gnome.

anarchist912
źródło
1
Dobra odpowiedź, ale proszę usunąć pytanie na końcu. Spróbuj zadać to pytanie jako nowe pytanie, które sprawi, że więcej osób je zobaczy.
Tom Brossman