Używam dwóch oddzielnych sesji w tmux
i mam następujące wpisy w /etc/tmux.conf
:
set -g base-index 1
new -s logi -n cmd
neww -n logi "cat /dev/logi | ccze -m ansi -p syslog -C"
splitw -t 1 -v -p 50
selectw -t 2
selectp -t 0
new -s standard -n htop "htop"
neww -n cmd
splitw -t 2 -v -p 50
selectw -t 2
selectp -t 1
Sesję rozpoczynam standard
od wywołania następującego polecenia:
urxvtc -name 'tmux' -e bash -c 'tmux attach-session -t standard'
Jeśli nie ma sesji, tworzy ją, jeśli jest, dołącza się. Jak widać mam dwa okna, z których jedno jest podzielone na 2 panele. Kiedy ponownie ładuję plik konfiguracyjny, dostałem 2 dodatkowe okna z drugiej sesji i oba zostały dodane do wcześniej istniejących. Ponadto poprzednie okna otrzymały jeden dodatkowy panel. Dwa dodatkowe panele są czyste, w żadnym z nich nie ma wykonanych poleceń (htop).
Czy istnieje sposób na ponowne załadowanie pliku konfiguracyjnego w taki sposób, aby dotyczyło to tylko dołączonej sesji? Czy też muszę zapomnieć o ponownym załadowaniu pliku konfiguracyjnego, gdy korzystam z sesji, a żeby zastosować nowe ustawienie, muszę użyć tmux kill-server
i rozpocząć sesję od nowa?
[[: not found
#!/bin/bash
.Nie musisz używać skryptu opakowania, możesz to zrobić za pomocą
source-file
polecenia.Podzieliłem moje
.tmux.conf
na dwie części, a to tylko źródła:Następnie
session.conf
zawiera definicje panelu:I
options.conf
zawiera tylko definicje opcji:W ten sposób
bind R
można tylko pobraćoptions.conf
i wszystko zostanie ponownie załadowane, ale nie zostaną utworzone nowe panele.Jedną niewielką wadą jest to, że jeśli chcesz zmienić układ okna, musisz wyjść i rozpocząć nową sesję.
źródło
Stworzyłem ten skrypt . Nie potrzebuje tmuxinatora, rubinu ani innych. To tylko skrypt bash, konfigurowalny.
Konfiguruję mój plik konfiguracyjny, taki jak:
Mogę skonfigurować wszystkie moje projekty. Reszta jest wykonywana przez skrypt:
źródło