Sesje i odłączanie
repartee może działać w tle po zamknięciu terminala i pozwolić na ponowne podłączenie później -- jak tmux lub screen, ale wbudowane w klienta.
Jak to działa
Kiedy uruchamiasz repartee, program rozdziela się na dwa procesy:
- Backend -- bezgłówkowy demon zarządzający połączeniami IRC, stanem i gniazdem Unix
- Shim -- lekki most terminalowy, który renderuje interfejs i przekazuje dane wejściowe
Gdy się odłączysz, shim kończy pracę i wraca wiersz poleceń powłoki. Backend kontynuuje działanie -- połączenia IRC pozostają aktywne, wiadomości są nadal logowane, a skrypty działają. Po ponownym podłączeniu nowy shim łączy się z gniazdem backendu i kontynuujesz dokładnie tam, gdzie skończyłeś.
Odłączanie
Trzy sposoby na odłączenie się od działającej sesji:
| Metoda | Opis |
|---|---|
/detach | Wpisz polecenie w pasku wejściowym |
Ctrl+\ | Skrót klawiszowy (backslash) |
Ctrl+Z | Skrót klawiszowy |
Po odłączeniu terminal jest przywracany i wraca wiersz poleceń powłoki. Proces repartee kontynuuje działanie w tle.
Ponowne podłączanie
repartee a # podłącz do jedynej działającej sesji
repartee a 12345 # podłącz do konkretnej sesji po PID
repartee attach # pełna forma
Jeśli działa wiele sesji, repartee a wyświetla ich listę do wyboru:
Active repartee sessions:
PID 12345 — ~/.repartee/sessions/12345.sock
PID 67890 — ~/.repartee/sessions/67890.sock
Specify a PID: repartee a <pid>
Uruchamianie bez terminala
Możesz uruchomić repartee bez terminala:
repartee -d # uruchom odłączony (bezgłówkowo)
repartee --detach # pełna forma
Uruchamia to backend bezpośrednio -- nie otwiera się terminal, nie wyświetla się ekran powitalny. Połączenia IRC są nawiązywane, skrypty ładowane, a gniazdo tworzone natychmiast. Podłącz się, gdy będziesz gotowy, za pomocą repartee a.
Przydatne dla serwerów, skryptów startowych lub uruchamiania repartee jako usługi systemd.
Pliki sesji
Sesje są śledzone za pomocą gniazd Unix w ~/.repartee/sessions/:
~/.repartee/sessions/
12345.sock # socket for PID 12345
67890.sock # socket for PID 67890
Nieaktualne gniazda po zawieszonych lub zabitych procesach są automatycznie czyszczone przy uruchomieniu i podczas listowania sesji.
Wiele sesji
Możesz uruchomić wiele niezależnych instancji repartee, każda z własnym PID i gniazdem. Jest to przydatne do łączenia się z odrębnymi sieciami pod różnymi tożsamościami.
Każda sesja uruchamia własną pętlę zdarzeń, połączenia IRC i skrypty. Użyj repartee a <pid>, aby podłączyć się do konkretnej sesji.
Co przetrwa odłączenie
Wszystko:
- Połączenia IRC -- pozostają połączone, kontynuują odbieranie wiadomości
- Historia czatu -- bufory przewijania są zachowywane w pamięci
- Zapis logów -- wiadomości są nadal zapisywane do SQLite
- Skrypty -- skrypty Lua działają dalej (timery, handlery zdarzeń)
- Stan kanału -- listy nicków, topiki, tryby, listy banów
- Historia poleceń -- historia wprowadzonych poleceń jest zachowywana
Zmiana terminala
Gdy podłączasz się ponownie z innego terminala (lub innego emulatora terminala), repartee automatycznie:
- Wykrywa możliwości protokołu obrazów nowego terminala (Kitty, iTerm2, Sixel)
- Aktualizuje pomiary rozmiaru czcionki dla prawidłowego skalowania obrazów
- Dostosowuje interfejs do wymiarów nowego terminala
Oznacza to, że możesz odłączyć się z iTerm2 na laptopie i podłączyć się ponownie z kitty na komputerze stacjonarnym -- podglądy obrazów będą używać prawidłowego protokołu dla każdego terminala.
Obsługa SIGHUP
Jeśli terminal zostanie nieoczekiwanie zamknięty (zamknięcie okna, rozłączenie SSH itp.), repartee przechwytuje SIGHUP i automatycznie się odłącza zamiast się wywalać. Sesja pozostaje uruchomiona i można się do niej ponownie podłączyć.
Wbudowana powłoka
Zamiast odłączać się, żeby uruchomić szybkie polecenie, możesz otworzyć powłokę bezpośrednio wewnątrz repartee:
/shell # otwórz $SHELL
/shell cmd htop # uruchom konkretne polecenie
/shell cmd vim "ścieżka ze spacjami" # argumenty w cudzysłowie są parsowane bezpośrednio bez rozwijania przez powłokę
/shell list # wyświetl otwarte powłoki
/shell close # zamknij aktywną powłokę
Bufory powłoki pojawiają się w grupie "Shell" na pasku bocznym. Naciśnij Ctrl+], aby przejść z powrotem do trybu wejścia IRC, lub użyj skrótów nawigacji między oknami (Alt+1–9/0, Alt+Lewo/Prawo, Alt+A bądź własnych skrótów nawigacji z /bind), aby przełączyć bezpośrednio na inny bufor. Wszystkie pozostałe naciśnięcia klawiszy są przekazywane do powłoki.
Pełnoekranowe programy TUI (btop, vim, irssi, weechat) działają prawidłowo, w tym obsługa myszy, 256 kolorów i alternatywny bufor ekranu.
Zobacz dokumentacja polecenia /shell, aby poznać szczegóły.
Wskazówki
- Sprawdź działające sesje:
repartee abez argumentów wyświetla wszystkie aktywne sesje - Czyste zamknięcie: użyj
/quitz podłączonej sesji, aby rozłączyć się z IRC i zamknąć backend - Wymuszone zakończenie:
kill <pid>wysyła SIGTERM -- repartee wysyła QUIT do serwerów IRC i zamyka się czysto - Skrypt startowy: dodaj
repartee -ddo profilu powłoki lub skryptu startowego systemu, aby zawsze mieć gotową sesję