Terminal sesije

ttyd + tmux na kimiai (.64 / 100.64.0.4) — perzistentni terminali u browseru, sa telefona i sa kompa.

Rute: /main/ (komp, root redirectuje ovde) · /mobile/ (telefon, linked na main) · /test/ (odvojena sesija) · code-server. Nema login-a — tailnet je granica autentifikacije.

Tri moda rada

ModKako se dobijaPonašanje
Shared screen dva klijenta otvore istu rutu (npr. oba /main/) Identičan ekran, isti prozor, ista veličina. Pair programming.
Linked ttyd-session-ctl link main mobile Ista tmux grupa — deli prozore i procese, ali svaki klijent bira svoj prozor i taj prozor ima svoju veličinu.
Odvojena ttyd-session-ctl add work Potpuno nezavisna tmux sesija — ništa se ne deli (kao main vs test).

Šta se deli, a šta ne (linked mod)

StvarDeljeno?Objašnjenje
Procesi, prozori, clipboardDATo je i smisao linka — ista tmux grupa.
Koji prozor gledašNESvaka sesija ima svoj trenutni prozor; pamti se i posle odkačinjanja.
Veličina prozora koji gledaš samNEPrilagođava se tvom klijentu.
Veličina prozora koji gledate zajednoDAMora — vidi objašnjenje ispod.
Zašto isti prozor mora izgledati identično svima. Svaki pane je jedan pty, a pty ima tačno jednu veličinu (rows/cols, kernelski atribut preko TIOCSWINSZ). Program u njemu — shell, vim, htop — crta za tu veličinu i emituje jedan bajt-stream; tmux ga samo prosleđuje svim gledaocima. Da bi dva klijenta videla isti program u dve širine, program bi morao da se iscrta dvaput, a on ni ne zna da ima više gledalaca. Za čist tekst bi soft-wrap po klijentu bio zamisliv, ali tmux čuva grid i scrollback već prelomljen na širini prozora — pa i istorija pripada toj jednoj veličini.

Praktično: drži telefon na svom prozoru, komp na svom. Na isti prozor pređi samo kad hoćeš da gledate isto (pair programming, ili da sa telefona vidiš šta se vrti na kompu).

Komande — upravljanje sesijama

ttyd-session-ctl add <name>              # nova odvojena sesija na /<name>/
ttyd-session-ctl link <target> <name>    # linked pogled na postojeću sesiju
ttyd-session-ctl remove <name>           # ukloni rutu (tmux sesija ostaje!)
ttyd-session-ctl list                    # prikaži sve sesije, portove i status

Port se dodeljuje automatski od baze 7681. Nakon add/link ne treba ništa ručno — nginx blok, systemd unit i reload idu sami.

tmux — samo ono što treba svaki dan

PrečicaRadnja
Ctrl+b cNovi prozor (pojavi se i u drugoj sesiji iz grupe)
Ctrl+b n / pSledeći / prethodni prozor — pomera samo tvog klijenta
Ctrl+b 0…9Skoči na prozor po broju
Ctrl+b wLista prozora za izbor
Ctrl+b dDetach (sesija i procesi ostaju da rade)
Ctrl+b [Scroll/copy mod — izlaz sa q

Zamke (naučeno na teži način)

Gde šta živi (na .64)

PutanjaŠta je
/usr/local/bin/ttyd-session-ctlalat za sesije (add/link/remove/list)
/usr/local/bin/tmux-session.shwrapper koji ttyd zove pri konekciji; čita LINK_TO
/etc/ttyd-sessions/<name>.confEnvironmentFile: PORT=, opciono LINK_TO=
/etc/systemd/system/ttyd-session@.servicesystemd template (User=kimi)
/etc/nginx/ttyd-sessions/<name>.confper-session nginx location
/etc/nginx/sites-available/hub.conf:443 → ttyd sesije, :8443 → code-server
/var/www/hub/keyboard.jsmobilna tastatura + per-device font size
Puna dokumentacija (arhitektura, keyboard.js, sertifikati, rationale): INFO_BANK/projects/terminal-sessions/README.md, TMUX_PRECICE.md, TROUBLESHOOTING.md.