term-mac

Terminal nativ macOS cu copy & paste in stil PuTTY, titluri dinamice de tab pentru SSH si blink de cursor configurabil.

~1.4 MB · macOS 14+ · Apple Silicon · GPL-2.0

Ce este term-mac?

Un terminal mic si focused pentru macOS. Ruleaza shell-ul tau de login (zsh by default) si adauga partile din PuTTY care probabil iti lipsesc pe Mac: selectia e copiata automat in clipboard cand eliberezi mouse-ul, iar click-dreapta face paste din clipboard. Fara meniuri, fara combinatii de taste.

In plus: tab-uri care arata unde esti de fapt (titlul OSC al prompt-ului tau — deci ssh user@host arata user@host:cwd in tab), auto-scroll cand drag-ul de selectie iese din zona vizibila, blink de cursor configurabil, si un folder pe care il poti fixa ca director implicit de pornire pentru tab-uri noi.

Functionalitati

Instalare

  1. Descarca cel mai recent .dmg de la pagina de release-uri.
  2. Deschide .dmg, trage term-mac.app in Applications.
  3. Pentru ca bundle-ul e ad-hoc signed (inca nu exista Apple Developer ID platit), Gatekeeper va refuza sa-l deschida la prima lansare. Sterge flag-ul de carantina o singura data:
    xattr -dr com.apple.quarantine /Applications/term-mac.app
  4. Porneste din /Applications. Deschide ⌘, pentru Setari, ⌘T pentru un tab nou, ⌘? pentru help-ul in-app.
Nu e pe Mac App Store. term-mac e intentionat non-sandboxed — un terminal local real are nevoie de acces complet la fisierele tale (vim, less, grep prin sistem, etc.). Pentru o versiune compatibila cu sandbox, vezi proiectul (privat) VTerm.

Ce nu e inca

Licenta si credite

term-mac e lansat sub GPL-2.0-or-later. Foloseste SwiftTerm (MIT) ca emulator de terminal.

Changelog

Oglindeste exact release-urile de pe GitHub. Cele mai noi sus.

v0.1.4-alpha · 2026-05-27

Fix scrollback — setarea functioneaza acum cu adevarat.

  • Setarea Setari > Buffer scrollback are acum efect. In v0.1.2 / v0.1.3 buffer-ul ramanea la 500 linii indiferent de valoarea aleasa. Cauza: setarea terminal.options.scrollback + apelul resetNormalBuffer() in makeNSView era anulata silentios de setupOptions al SwiftTerm care rula ulterior in pipeline-ul de layout, reassign-and terminal.options la un struct nou cu default scrollback=500. Fix: foloseste API-ul public Terminal.changeScrollback(_:) al SwiftTerm, care muteaza Buffer.scrollback si lines.maxLength in loc, fara recreare de buffer.
  • Scrollback se aplica si la tab-urile deschise. Schimbi setarea in Setari si tab-urile deja deschise primesc imediat noua dimensiune — fara nevoie sa le inchizi si redeschizi.
v0.1.3-alpha · 2026-05-26 — Prima incercare de fix scrollback (nu a functionat efectiv)

Am incercat sa repar bug-ul de scrollback din v0.1.2 apeland resetNormalBuffer() in loc de setup(isReset:false). Mai aproape, dar tot nu supravietuia apelurilor ulterioare de layout din SwiftTerm. Superseded de v0.1.4.

v0.1.2-alpha · 2026-05-26 — Setare buffer scrollback (adaugata, dar fara efect)

Am adaugat picker-ul Setari > Buffer scrollback (1.000 / 5.000 / 10.000 / 25.000 / 50.000 / 100.000 linii) pentru ca workflow-uri comune ca mdls Downloads/ + Tab cu 1217 intrari sa nu fie taiate. UI-ul a aparut dar wiring-ul era gresit — reparat proper in v0.1.4.

v0.1.1-alpha · 2026-05-25 — Panou About + fereastra Help
  • Panou Aboutterm-mac → About term-mac deschide un panou real cu autor, email, link repo, versiune si numar de build. Inlocuieste cel gol auto-generat.
  • Meniu Help⌘? deschide o fereastra in-app cu: Ce este, Pornire rapida, Selectie si paste, Titlu tab SSH, Tab completion, Limitari + link-uri spre GitHub / issues / email. Inlocuieste "Help isn't available for term-mac".
  • Fix: Info.plist citeste acum versiunea din $(MARKETING_VERSION) — anterior hardcodata la "1.0" deci bump-urile de versiune nu apareau in About sau Finder Get Info.
v0.1.0-alpha · 2026-05-25 — Primul release public

Prima versiune alpha publica a unui terminal nativ macOS cu copy/paste in stil PuTTY.

  • Shell local de login (zsh / bash din $SHELL), tab-uri (⌘T / ⌘W).
  • Titluri dinamice de tab via OSC 0/1/2 — sesiunile SSH arata automat user@host:cwd.
  • Copy on select + paste cu click-dreapta (stil PuTTY).
  • Auto-scroll in timpul drag-select — workaround pentru un bug upstream SwiftTerm unde autoScrollDelta e setat dar niciodata consumat.
  • Blink de cursor configurabil: Off / Lent / Mediu / Rapid. Foloseste DECSCUSR + acces prin reflection la caretView pentru durata custom a animatiei (SwiftTerm are hardcodat 0.7s).
  • Folder de pornire implicit in Setari (gol = HOME).
  • Teme (Default, Solarized, Dracula, Nord, macOS Light si altele), font ajustabil (⌘= / ⌘-).
  • Integrare shell auto-install in ~/.zshrc (cu markeri, toggle in Setari): adauga hook-ul precmd pentru titlu + AUTO_MENU / menu select pentru tab completion interactiv.

Feedback

Bug-uri si cereri de functionalitati: issue tracker.
Contact direct: razvan@cremenescu.ro.