De ce mRemoteNXT?
Daca folosesti mRemoteNG pe Windows si vrei acelasi
arbore de conexiuni, parole criptate, panel-uri si tab-uri pe Mac,
mRemoteNXT iti importa fisierul confCons.xml direct
— fara conversie, fara re-tastare.
Formatul e pastrat byte-exact: parolele raman
criptate cu aceeasi schema (PBKDF2-HMAC-SHA1 + AES-256-GCM,
passphrase implicit documentat sau unul custom), iar fisierele
salvate de mRemoteNXT pe macOS sunt citite de mRemoteNG pe Windows
fara probleme. Poti tine un singur fisier in Dropbox sau iCloud
si lucra de pe ambele platforme.
Changelog
Oglindeste exact release-urile de pe GitHub. Cele mai noi sus.
Programele de consola primesc in sfarsit ce tastezi, iar turca face a cincea limba.
- Reparat: tastarea in programele de consola peste RDP. Raportat in #9. In
powershell.exe disparea fiecare litera si cifra, in timp ce sagetile, Enter si Space mergeau, iar cmd.exe era in regula tot timpul. Separarea asta a fost tot diagnosticul: sagetile plecau ca pozitii de tasta, literele ca si caractere, iar un program de consola care citeste tastele brut arunca un eveniment care poarta doar caracterul, fiindca nu are cod de tasta virtuala — pe cand cmd.exe citeste in mod linie si pastreaza caracterul. Nu era regresie: acelasi cod trimitea literele si in 0.8.8, si in 0.8.9, iar raportorul a confirmat ca 0.8.8 se poarta identic. Tastarea normala pleaca acum ca pozitii, ceea ce a devenit sigur doar dupa ce serverului i se spune prin ce aranjament sa le citeasca — aranjamentul nu era anuntat deloc, iar fara el un Mac romanesc pe un Windows configurat US ar scrie caractere US. Se ia din input source-ul curent al Mac-ului; unul fara echivalent Windows nu anunta nimic si ramane pe caractere, fiindca un aranjament ghicit e mai rau decat lipsa pozitiilor. Option ramane intentionat pe caractere, fiindca macOS compune cu Option acolo unde Windows compune cu AltGr. Exista o setare, implicit pornita; oprita, revine exact la ce faceau versiunile de pana acum.
- Ce e nou, in meniul Help si o data dupa fiecare update. Help → Ce e nou deschide notele de lansare oricand, iar prima pornire a unei versiuni proaspat instalate le deschide singura, o data — o setare opreste asta. Notele se aduc de la release-urile GitHub, nu sunt impachetate, deci o versiune nu poate livra o copie invechita a propriului changelog; fara internet si versiune inca nepublicata ajung amandoua la aceeasi propozitie care ofera pagina de versiuni. O instalare noua isi noteaza build-ul fara sa deschida nimic, nefiind inca fata de ce sa fie noua.
- Turca, contributie de la @emircankavas. A cincea limba de interfata, toate cele 243 de siruri, completa. Tot el a trimis cele doua raportari de tastatura din spatele lui 0.8.6 si 0.8.9, care au reparat Option si AltGr pentru orice aranjament care le foloseste, nu doar pentru turca. Limbile raman cate un folder — aplicatia le gaseste in propriul bundle, deci o traducere nu cere niciun rand de cod.
v0.8.9-alpha
· 2026-08-14
— Option scrie caracterele lui si intr-o sesiune RDP
- Reparat: Option nu putea scrie caracterele lui intr-o sesiune RDP. Jumatatea RDP a lui #9. Raportorul a revenit dupa 0.8.6: pentru SSH era reparat, iar aceleasi taste ieseau tot gresit pe RDP — aceeasi greseala stand intr-un al doilea loc. Calea care trimite tastarea obisnuita spre server citea caracterul pe care tasta l-ar produce fara Option aplicat, deci un aranjament care scrie
@, [, { prin Option trimitea litera goala. Acum citeste ce a produs efectiv aranjamentul; comentariul de deasupra acelei linii descria deja corect intentia, doar proprietatea citita era gresita. Doua lucruri au venit la pachet: un rezultat gol inseamna ca aranjamentul a inghitit apasarea ca tasta moarta si da caracterul compus la urmatoarea, deci nu e nimic de trimis; iar Option e modificator pentru macOS dar tasta de compozitie pentru aranjament, deci Alt — deja apasat pe server pana atunci — se elibereaza pe durata caracterului, fiindca Alt+@ ajunge la Windows ca accelerator, nu ca text. Scurtaturile raman neatinse: Ctrl si Cmd ies in continuare pe calea de scancode, care nu se uita la caracter. Afecteaza orice aranjament care foloseste Option pentru caractere de programare: turca, germana, poloneza, spaniola, romana.
v0.8.8-alpha
· 2026-08-12
— trimiti o conexiune in alt folder fara s-o tragi pana acolo
- Muta in si Copiaza in, ca un meniu cu forma arborelui. Click dreapta pe o conexiune oferea Duplicate, care pune copia langa original, si nimic altceva — deci ca s-o duci in alta parte trebuia s-o tragi printr-un arbore care se deruleaza. Acceptabil pentru un folder vecin, obositor pentru orice altceva. Acum exista Muta in si Copiaza in, fiecare deschizand o cascada a folderelor: fiecare nivel isi listeaza intai propria destinatie, apoi cate un submeniu per folder-copil. Meniul are astfel forma arborelui, iar fiecare nivel ramane de cateva intrari, oricat de adanc ar fi arborele. Folderul in care conexiunea sta deja e dezactivat la Muta in, fiindca aia nu e o mutare; ramane activ la Copiaza in, unde inseamna exact ce inseamna Duplicate. Un folder nu se ofera niciodata pe sine, nici ceva de sub el, iar o copie isi pastreaza numele — alt folder nu are nicio ciocnire de rezolvat — si primeste sufix doar acolo unde destinatia are deja acel nume. Merg si pe foldere, nu doar pe conexiuni.
- Reparat: o conexiune mutata din radacina putea ajunge in doua locuri. Un nod din radacina traieste in lista de radacini a documentului si nu are parinte, deci mutarea lui intr-un folder il atasa la folder in timp ce pasul de desprindere nu gasea de ce sa-l desprinda — iar arborele il arata de doua ori, o data in fiecare loc. Drag-and-drop trecea prin acelasi apel, deci era accesibil si inainte; meniul nou doar l-a facut usor de nimerit.
v0.8.7-alpha
· 2026-08-10
— o limba noua inseamna un singur folder, si poate fi neterminata
- O limba noua inseamna acum un singur folder. Pornit de la o oferta de a contribui cu turca, in #9. Inainte insemna patru locuri de modificat, trei dintre ele cod: un caz intr-un enum, un nume de afisat, un tablou pe care il citeste setarea automata, si o lista in fisierul de proiect — deci cineva dispus sa dea niste cuvinte avea nevoie de Xcode, xcodegen si Swift ca s-o faca. Aplicatia isi descopera acum limbile din folderele
.lproj din propriul bundle: copiezi en.lproj/Localizable.strings in <cod>.lproj/, traduci valorile, deschizi un pull request. Limbile apar sub numele lor, luate de la sistem, nu scrise de mana — English, Français, Polski, Română.
- O traducere nu mai trebuie sa fie completa. O cheie pe care limba aleasa nu o are cade acum pe engleza. Inainte cadea pe cheia insasi, deci o traducere partiala afisa identificatori bruti gen
Settings.MasterPasswordNote in mijlocul interfetei — ceea ce insemna ca toate cele 224 de siruri trebuiau terminate inainte sa poata fi livrat vreunul. Patruzeci de siruri traduse sunt acum patruzeci de siruri traduse, iar restul ramane cum era.
- Reparat: setarea automata de limba lua in calcul doar doua. "Reglaj sistem" testa pentru romana si cadea pe engleza, deci un Mac setat pe poloneza primea engleza, cu traducerea poloneza stand in bundle chiar langa. Acum urmeaza limba sistemului ori de cate ori aplicatia o are.
v0.8.6-alpha
· 2026-08-10
— Option scrie ce zice aranjamentul tau de tastatura ca ar trebui
- Reparat: Option nu putea scrie caracterele pe care aranjamentul de tastatura le pune acolo. Raportat de pe un aranjament Turkish Q in #9:
Option+Q trebuia sa dea @, Option+8 sa dea [, si nu ajungea niciunul intr-o sesiune SSH — shell-ul vedea ESC q si ESC 8. Biblioteca de terminal trateaza implicit Option drept tasta Meta, iar in modul ala trimite ESC urmat de caracterul pe care tasta l-ar produce fara modificator aplicat, deci compunerea aranjamentului e aruncata inainte sa se poata intampla. Turca, germana, poloneza, spaniola si romana folosesc toate Option pentru caractere de programare de zi cu zi; un aranjament US aproape niciodata, de-aia a stat opt release-uri fara sa dea nimeni peste el. Option compune acum caracterele asa cum intentioneaza aranjamentul, adica exact ce fac Terminal.app si iTerm2, iar Meta a devenit o setare pentru cine vrea inapoi M-x. Option+Stanga si Option+Dreapta sar peste cuvant in ambele moduri: cu Meta oprit, macOS le transforma intr-o comanda de editare de text la care terminalul nu raspunde, deci se trimit manual in loc sa se piarda in tacere.
v0.8.5-alpha
· 2026-08-08
— scroll-ul in terminal merge din nou, in orice tab
- Reparat: scroll-ul intr-un terminal putea sa nu mai functioneze deloc. Scroll cu doua degete, sau cu rotita, nu facea absolut nimic intr-un tab de terminal — dar numai uneori, de-aia parea aleatoriu. Toate sesiunile dintr-o fereastra stau intr-o singura stiva de view-uri, toate de aceeasi dimensiune, cele inactive doar invizibile; asa ramane un proces ssh viu cat lucrezi in alt tab. Handler-ul de rotita era instalat cate unul per sesiune si rula pentru toate, iar testul lui pentru "e pointerul peste mine?" era o verificare fata de propriul dreptunghi — pe care il trece fiecare dintre view-urile stivuite, vizibil sau nu. Deci un tab lasat in
less, vim sau mc raspundea primul. Fiind pe ecranul alternativ, lua evenimentul, il inghitea si isi trimitea sagetile intr-o sesiune la care nu se uita nimeni, in timp ce terminalul de pe ecran nu afla nimic. Inchideai acel tab si scroll-ul revenea, de-aia parea ca vine si pleaca. Scroll-ul e tratat acum de tab-ul de pe ecran, si de niciunul altul. Acelasi fix acopera o varianta mai discreta a aceleiasi greseli: selectia ramasa intr-un tab ascuns putea sa suprascrie clipboard-ul la orice click din fereastra.
- Reparat: scroll-ul precis citea valoarea gresita. In
less si companie, cantitatea de scroll venea din campul pe care un mouse il completeaza cu trepte intregi. Un trackpad nu foloseste campul ala — raporteaza in puncte, si il lasa pe celalalt rotunjit la zero pentru orice miscare mai blanda decat un flick, deci un scroll lent si intentionat cu doua degete nu avea pe ce sa actioneze. Deltele precise se citesc acum de acolo de unde chiar sosesc, se aduna, si se cheltuie cate o linie.
v0.8.4-alpha
· 2026-08-07
— un audit al codului propriu al aplicatiei, si franceza
- Reparat: tab-ul web avea incredere in orice certificat i se arata. Intentia era un certificat self-signed pe un echipament din LAN. Efectul era ca niciun certificat nu putea sa pice — expirat, self-signed, emis de oricine, pe orice host — in timp ce acelasi view tasteaza userul si parola conexiunii in pagina. Verdictul il da din nou sistemul. Exceptia se ofera doar pentru host-ul pe care il numeste conexiunea, doar cand sistemul il refuza, si doar printr-un dialog care arata amprenta SHA-256 a certificatului. Daca ai incredere, se retine exact acel certificat pentru acel host, si esti intrebat din nou daca se schimba vreodata — aceeasi intelegere pe care partea de SSH a aplicatiei o face deja cu
StrictHostKeyChecking=accept-new. Restul a ce incarca pagina trece prin validare obisnuita, cum ar fi trebuit de la inceput.
- Reparat: autofill-ul nu avea idee pe ce host se afla. Completa credentialele la orice navigare terminata, deci un redirect catre alt domeniu ducea userul si parola conexiunii cu el, tastate in orice formular de login gasea acolo, cu un loop care mai incerca timp de optsprezece secunde. Formularele se completeaza doar pe host-ul pe care il numeste conexiunea. HTTP Basic, Digest si NTLM raspund tot numai acelui host.
- Reparat: parola SSH calatorea in linia de comanda.
sshpass -p <parola> pune parola in argumentele procesului, unde ps o arata oricarui alt proces care ruleaza ca tine, atat cat tine sesiunea. Acum trece printr-un pipe: sshpass -d primeste un descriptor de fisier, iar un descriptor e mostenit de procesul copil si de nimeni altcineva.
- Reparat: uneltele externe lipeau campurile conexiunii direct intr-un shell. Macro-urile se substituiau in linia de comanda ca text brut si se dadeau lui
/bin/sh. O conexiune numita x; reboot erau doua comenzi, nu una — iar fisierele confCons.xml se plimba in mod normal de la om la om, exact pentru asta exista aplicatia. Valorile se citeaza acum pentru shell, iar %Password% nu se mai substituie deloc: se transforma intr-o referinta, si parola calatoreste prin environment in loc de linia de comanda. O consecinta de stiut: daca citezi tu un macro, acum se dubleaza ghilimelele. Scrie ping %Host%, nu ping "%Host%". Cele trei unelte care vin cu aplicatia erau deja in forma buna.
- Reparat: schimbarea parolei master putea pierde parole in tacere. Orice parola care nu se decripta cu parola veche era sarita, iar schimbarea mergea mai departe si rescria oricum marcajul fisierului — lasand intrarile alea sigilate sub o cheie pe care fisierul nu mai pretindea ca o foloseste. Nerecuperabile dupa urmatoarea salvare, si nimic nu spunea nimic. Tot documentul se converteste intai in memorie, iar un singur esec abandoneaza schimbarea cu fisierul neatins, spunand cate intrari nu a putut citi. Un fisier cu resturi nedecriptabile dintr-un import vechi refuza acum schimbarea pana e curatat, care e directia in care nu se pierde nimic.
- Reparat: o criptare esuata putea sterge o parola. Criptarea intorcea un sir gol la eroare, pe care apelantii il stocau — imposibil de deosebit de "fara parola". Acum nu mai intoarce nimic, si fiecare apelant pastreaza ce avea deja.
- Franceza. A patra limba de interfata, completa: toate cele 222 de siruri, alaturi de engleza, poloneza si romana, comutabila din Setari fara restart. Setarea automata a invatat sa citeasca intre timp — testa pentru romana si cadea pe engleza, deci un sistem in poloneza primea engleza cu traducerea poloneza stand in bundle chiar langa. Acum urmeaza limba sistemului ori de cate ori aplicatia o are.
v0.8.3-alpha
· 2026-08-04
— cursorul din sesiunea remote chiar apare acum, si se poate trage cu el
- Reparat: cursorul remote nu-si schimba niciodata forma. Nicio sageata de redimensionare pe marginea unei ferestre, niciun I-beam peste text, niciun feedback la drag in Explorer — iar tragerea in sine era nesigura. Desenarea cursorului remote a aparut in 0.8.1, dar nu ajungea niciodata pe ecran. Instrumentat pe partea de RDP, formele veneau si se converteau corect tot timpul: 65 de cursoare distincte si 403 apeluri de set intr-o singura sesiune. Vina era in AppKit — singura cale a cursorului era mecanismul de cursor rects, iar SwiftUI le reseteaza sub un view care se redeseneaza la fiecare cadru, deci fiecare cursor era instalat si inlocuit imediat cu sageata simpla. Tracking area a view-ului are acum
.cursorUpdate, care face AppKit sa-l intrebe direct. Tragerea era victima colaterala a aceluiasi cod: zonele alea de cursor se reconstruiau la fiecare schimbare de forma, de sute de ori, inclusiv in mijlocul unui drag. Apelul a disparut, iar aceeasi forma nu se mai reconstruieste la nesfarsit.
- Reparat: cursorul era gresit pana miscai mouse-ul. O sesiune abia conectata, sau un tab adus in fata, ramanea pe sageata simpla pana clinteai pointerul. AppKit intreaba de cursor cand pointerul traverseaza intr-o tracking area si niciodata pentru unul care sta deja inauntru — iar view-ul asta isi reface tracking area la fiecare layout, deci un pointer nemiscat nu mai era intrebat niciodata. Cursorul se aplica acum direct de fiecare data cand zona e reconstruita cu pointerul inauntru.
v0.8.2-alpha
· 2026-08-02
— editezi conexiunea din panoul de jos, toolbar personalizabil, al saptelea tab se conecteaza
- Editezi conexiunea direct din panoul de jos — host, port, user, domeniu si parola sunt acum editabile pe loc si se scriu pe masura ce tastezi. Panoul urmeaza conexiunea selectata in arbore, adica modelul folosit de mRemoteNG pentru grila lui de proprietati: alimentata din selectia din arbore, salvata la fiecare schimbare, fara buton de OK. Mostenirea se poarta ca in editor — un camp mostenit arata valoarea folderului, gri si needitabil, iar scrisul intr-un camp ii stinge doar lui bifa de mostenire, nu atinge valoarea din folder. Fereastra de editare ramane neatinsa, cu tot restul; butonul din toolbar care o deschide spune acum pe ce lucreaza, fiindca bara de tab-uri are propria ei selectie. Domeniul apare doar cand conexiunea chiar are unul: scris ca
DOMENIU\utilizator in numele de utilizator, campul ramane gol pe aproape toate conexiunile, iar un rand mereu alb intr-un panou atat de mic e spatiu irosit.
- Toolbar-ul se poate personaliza — View → Customize Toolbar merge, iar aranjamentul se retine. Aspectul implicit e cel de dinainte, deci nimic nu se misca pana nu muti tu. Comutatorul de panouri e fixat: el arata unde esti, nu face ceva, iar o fereastra care l-ar pierde n-ar mai avea nicio cale intre panouri si niciun indiciu ca a avut vreodata una.
- Reparat: conexiunile de dupa a sasea nu se deschideau. Al saptelea tab RDP — sau restaurarea unei liste cu atatea — ramanea negru si mort. Doua defecte, unul ascunzandu-l pe celalalt. Conectarea e conditionata de faptul ca view-ul are o dimensiune reala, iar asta se reverifica doar cat timp fereastra se aseaza: restaurarea adauga tab-urile unul cate unul, deci fiecare le reaseaza pe cele dinainte si alea se conecteaza, dar ultimul e asezat o singura data, cu dimensiune zero, si nimic de dupa nu-l mai aseaza. Dedesubt, macOS da unei aplicatii 256 de descriptori deschisi, iar o sesiune RDP e scumpa in ei — fiecare eveniment, coada de mesaje si canal e un pipe. Sapte sesiuni plus cateva terminale stau exact pe tavanul ala, iar cea care il depaseste moare adanc in connect, raportandu-se ca esec de conectare. Limita se ridica acum la pornire.
- Reparat: numele fisierului disparuse din bara de titlu. Era scris direct pe fereastra in timp ce SwiftUI punea si el un titlu gol, si castiga cine ajungea ultimul — inofensiv cat timp o fereastra se actualiza rar, decisiv de cand ferestrele se redeseneaza la orice schimbare de setare comuna.
v0.8.1-alpha
· 2026-08-01
— cursorul remote se deseneaza, salvare automata, backup-uri rotite
- Reparat: cursorul nu isi schimba niciodata forma intr-o sesiune RDP — nicio sageata de redimensionare pe marginea unei ferestre, niciun I-beam peste text, niciun feedback cand tragi de ceva in Explorer. Imaginea desktopului nu contine niciodata cursorul: serverul ii trimite forma separat si se asteapta ca programul sa o deseneze, iar aici nu asculta nimeni. Forma devine acum un
NSCursor adevarat, cu alpha premultiplicat pentru CoreGraphics (fara asta marginea moale iese ca un halou luminos) si impartit la scala ecranului, ca sa nu fie desenat la dublu pe Retina. Cand serverul ascunde cursorul se foloseste unul transparent, nu NSCursor.hide(), care e un contor global — o singura chemare nebalansata si pointerul dispare din toata aplicatia.
- Modificarile se salveaza singure — in setari ai un interval: oprit, 1, 2, 5, 10, 15 sau 30 de minute, implicit 5. Cat timp o configuratie are modificari nesalvate, se scrie singura, ca intre tine si pierderea unei dupa-amiezi de lucru sa nu stea doar un dialog pe care trebuie sa-l citesti. Se sare peste fisierele inca blocate de parola master: parolele din ele sunt criptate cu un passphrase pe care aplicatia nu l-a primit, si nimic nu trebuie sa le atinga nesupravegheat.
- Backup-urile se rotesc, la un numar ales de tine — fara, 5, 10, 20, 50 sau 100, implicit 10. Fiecare salvare copiaza in continuare configuratia in folderul
backups; copiile cele mai vechi peste numarul ales sunt acum sterse. Aceeasi forma ca mRemoteNG pe Windows, care pastreaza 10 dupa aceeasi regula de copiere-si-curatare. Cu salvarea automata pornita, istoricul se intinde cam cat numarul inmultit cu intervalul. Oprit inseamna doar ca nu se mai fac copii noi, cele existente raman — mRemoteNG le sterge pe toate in cazul asta, prea mult pentru o simpla bifa.
- Reparat: backup-urile configuratiilor diferite se amestecau. Fiecare copie era numita dupa un
confCons fix, deci doua fisiere tinute in acelasi folder impartaseau acelasi spatiu de nume — iar cu rotatie, un document le-ar fi sters copiile celuilalt. Copiile sunt acum numite dupa fisierul salvat, iar stergerea se potriveste strict pe acel tipar, deci nimic altceva din folder nu ajunge vreodata candidat.
v0.8.0-alpha
· 2026-07-30
— cate o fereastra per fisier de configuratie, import Royal TS, fix-uri RDP pentru servere vechi
- Mai multe ferestre, fiecare cu fisierul ei de configuratie — fiecare fereastra are propriul arbore, propriile tab-uri, propria parola master si propriul restore de sesiuni, deci poti tine doua fisiere
confCons.xml deschise unul langa altul sau pe doua monitoare. Pe Windows, mRemoteNG face asta pornind mai multe instante; aici sunt ferestre in acelasi proces, deci ramane un singur updater si setarile comune raman coerente. Un fisier deja deschis iti aduce in fata fereastra lui in loc sa deschida o a doua copie a arborelui, unde ultima fereastra care salveaza ar sterge tacut modificarile celeilalte. Starea sesiunilor se tine per fisier, confirmarea la iesire numara conexiunile din toate ferestrele, iar setarile pot redeschide aceleasi fisiere la pornire.
- Cmd+W nu mai inchide fereastra. Inainte lua cu ea toate conexiunile deschise, la o tasta distanta de Cmd+Q, care intreba. Acum inchide un tab, ca in Safari; fereastra trece pe Shift+Cmd+W si cere confirmare cand ai conexiuni deschise sau modificari nesalvate. Cmd+N e din nou fereastra noua, iar configuratia noua e pe Shift+Cmd+N.
- Import de documente Royal TS — File → Import Royal TS document citeste un
.rtsz si adauga arborele lui in configuratia deschisa, cu tot cu parole acolo unde documentul Royal le tine in clar. Foldere, RDP, SSH, Telnet (Royal nu are tip separat — e o conexiune SSH cu o bifa), HTTP/HTTPS dupa schema din URI, si VNC. DOMENIU\utilizator se imparte in cele doua campuri, „credentials from parent” devine bifele de mostenire in loc de parole copiate, iar conexiunile sterse raman in urma. Tipurile fara echivalent sunt numarate si listate in sumar, nu aruncate tacut. Nimic nu se scrie pe disc pana nu salvezi.
- Reparat: sesiunile RDP catre servere Windows mai vechi erau taiate la vreo secunda, raportandu-se ca eroare de transport. FreeRDP completeaza definitia de monitor cu cei doi factori de scalare inversati, ceea ce pe un ecran Retina punea pe fir un
deviceScaleFactor de 200, unde protocolul admite doar 100, 140 sau 180. Windows 10 si 11 il ignora; Server 2012 R2 rupea conexiunea.
- Reparat: si dupa aceea ecranul ramanea negru. Pe Server 2012 R2 pipeline-ul grafic se negociaza, isi deschide canalul si nu picteaza decat cateva fragmente razlete. Serverele astea sunt acum recunoscute dupa propriile capabilitati anuntate la conectare, iar conexiunea se reia pe calea clasica de bitmap-uri, care se retine pentru hostul respectiv — conectarile urmatoare pornesc direct acolo.
- Reparat: o sesiune linistita era declarata moarta dupa 11 secunde. Keepalive-ul TCP era destul de agresiv incat sa omoare un tab lasat pe ecranul de logon Windows, care nu picteaza nimic. Acum 60 de secunde.
v0.7.6-alpha
· 2026-07-30
— parola master proprie, mouse reparat in terminal, confirmare la iesire
- Parola master proprie — parolele salvate sunt criptate cu passphrase-ul implicit al mRemoteNG, care e public, deci oricine are un
confCons.xml poate citi toate credentialele din el. Acum o poti pune pe a ta din Setari, iar fisierele deja protejate se deschid in sfarsit: app-ul o cere si o poate tine minte in keychain. Schimbarea ei recripteaza toate parolele si reconstruieste markerul din radacina asa cum il scrie mRemoteNG, deci Windows citeste fisierul in continuare si cere acelasi passphrase.
- Fisierul deschis apare in bara de titlu — Cmd+click pe iconita proxy iti da calea completa a folderului, iar folderul e scris si in subtitlu. Util cand ai mai multe
confCons.xml in directoare diferite.
- Reparat: rotita mouse-ului nu facea nimic in
mc, less si vim — alea ruleaza pe ecranul alternativ, care nu are scrollback de derulat, deci rotita era inerta si Page Down era singura cale prin fisier. Acum trimite sageti acolo; in shell normal deruleaza scrollback-ul ca inainte.
- Reparat: nu se putea selecta text cat timp un program folosea mouse-ul — cu mouse reporting pornit, fiecare click mergea la server, deci in Midnight Commander mouse-ul conducea doar mc. Shift suspenda acum reportingul pe durata acelui drag.
- Reparat: Cmd+Q iesea instant — o tasta distanta de Cmd+W. Acum intreaba cand ai conexiuni deschise sau modificari nesalvate, si iese direct cand nu ai ce pierde.
v0.7.5-alpha
· 2026-07-30
— rearanjare tab-uri, reconnect cu credentialele editate
- Trage tab-urile ca sa le rearanjezi — un marcaj arata unde va ateriza tab-ul, tab-ul urmareste cursorul, iar ordinea se pastreaza dupa repornire. Facut cu un gest de drag propriu si hit-test manual, nu cu drag-and-drop-ul sistemului, care desena o imagine-fantoma peste bara si avea tinte de drop ce inghiteau drop-urile in tacere. mRemoteNG se loveste de acelasi zid pe Windows si il rezolva la fel — DockPanelSuite nu cheama niciodata
DoDragDrop, captureaza singur mouse-ul.
- Tab-ul selectat se deruleaza in vizor — deschiderea unei conexiuni din sidebar ii selecteaza tab-ul, dar cu destule tab-uri deschise ramanea selectat si in afara ecranului pana derulai bara de mana.
- Reparat: Reconectarea folosea parola de la momentul deschiderii tab-ului. Conectarea cu credentiale gresite lasa tab-ul pe eroare de logon; editai parola, dadeai Reconnect si tot cu cea veche incerca — doar inchiderea tab-ului si redeschiderea din sidebar prindea schimbarea. Acum credentialele se recitesc din conexiune la fiecare reconectare. „Copiaza parola” avea aceeasi problema.
v0.7.4-alpha
· 2026-07-28
— lipire in terminal reparata, scrollback configurabil
- Reparat: lipirea unui bloc pe mai multe linii in terminal il strica. Newline-urile plecau ca LF; tasta Enter trimite CR, iar tty-ul il transforma el in newline pentru aplicatie. LF ajunge in schimb ca
^J literal — iar in nano ^J e comanda Justify, deci lipirea unui certificat rula justify pe fiecare linie si-l returna reflowat in doua coloane. Acum lipirea converteste terminatiile de linie in CR si inconjoara textul cu markeri de bracketed paste cand terminalul raporteaza modul, ca editoarele sa-l insereze literal, nu sa-l interpreteze ca tastare.
- Scrollback-ul terminalului e configurabil — Setari → Scrollback terminal, de la 1 000 la 100 000 de linii, acum implicit 10 000. Era fix 500, deci orice output mai lung de un ecran-doua isi pierdea inceputul. Schimbarea se aplica si tab-urilor deja deschise.
v0.7.3-alpha
· 2026-07-28
— crash la pornire reparat, clipboard + scurtaturi, folder partajat
- Reparat: crash la pornire cand se reconectau mai multe sesiuni RDP salvate deodata. Asta facea versiunile 0.7.x inutilizabile. A fost pus pe seama codului de redirectare si dat inapoi — dar versiunea revenita crapa identic. Cauza reala era decodorul multi-threaded de codec din FreeRDP, care se bate pe thread pool-ul comun cand mai multe sesiuni decodeaza in acelasi timp. Acum fiecare sesiune decodeaza pe thread-ul ei.
- Reparat: sesiunile restaurate ramaneau la 640×480. O sesiune redeschisa la pornire se conecteaza inainte ca fereastra sa aiba dimensiune reala, iar cererea de redimensionare pleca inainte sa existe canalul de afisare, deci se pierdea. Acum se reaplica imediat ce apare canalul.
- Reparat: conexiunile pe IP esuau la certificat. Certificat self-signed, un nume care nu se potriveste niciodata si o masina reinstalata cu certificat nou — combinatia asta oprea conexiunea inainte sa apuce sa ruleze handler-ele de acceptare.
- Reparat: scurtaturile de tastatura nu faceau nimic. Ctrl+C, Ctrl+Z si celelalte plecau ca text Unicode, iar Windows ignora modificatorii pe intrarea Unicode, deci se tasta litera in loc sa porneasca scurtatura. Acum scurtaturile pleaca drept scancode; tastarea normala ramane pe Unicode, ca layout-urile diferite intre Mac si server sa functioneze in continuare.
- Clipboard partajat — text si imagini, in ambele sensuri.
- Folder partajat prin RDP — alegi un folder per conexiune si apare in sesiune ca disc sub
\\tsclient, cu citire si scriere din ambele parti. E oprit pana alegi unul; nimic altceva de pe Mac nu e expus. Il pui pe un folder din arbore si tot ce e sub el il mosteneste.
- Click-dreapta pe tab — „Editeaza conexiunea…” deschide direct setarile acelui tab, „Arata in sidebar” il selecteaza si deruleaza pana la el.
- Campul de parola — buton de arata/ascunde si buton de lipire, care taie newline-urile de la coada (managerele de parole le adauga si strica autentificarea in tacere).
- Bifa de mostenire pe utilizator, domeniu si parola, ca un singur set de credentiale pus pe un folder sa serveasca toate conexiunile de sub el.
- Redirectarea de sunet e in continuare oprita, iar copierea de fisiere prin clipboard nu e suportata — pentru asta foloseste folderul partajat.
v0.7.2-alpha
· 2026-07-18
— Stabilitate: redirecturile RDP scoase
- Aplicatia e stabila din nou. Redirecturile RDP din v0.7.x (clipboard, drive, cursor, sunet) cauzau un crash la pornire, asa ca le-am scos si am revenit la nucleul RDP dovedit stabil. Se reintroduc una cate una, testate. Iconita, auto-update-ul si fix-ul de conectare NTLM raman.
v0.7.1-alpha
· 2026-07-18
— Redirecturi RDP (retrase in v0.7.2)
- Incercare de redirecturi RDP (clipboard, drive, cursor). Cauzau crash la pornire — retrase in v0.7.2, se reintroduc treptat.
v0.7.0-alpha
· 2026-07-18
— Redirectari RDP (clipboard, drive, cursor)
- Clipboard partajat (RDP) — copiezi text sau imagini in ambele sensuri intre Mac si masina remote.
- Drive partajat — un folder dedicat
~/mRemoteNXT Shared apare ca disc pe remote (doar ce pui acolo e expus, nu tot home-ul).
- Cursor remote — forma reala a cursorului de pe host, nu sageata locala.
v0.6.5-alpha
· 2026-07-18
— Actualizare automata (Sparkle)
- Se actualizeaza singura — aplicatia verifica automat daca a aparut o versiune noua (zilnic, si cat timp ramane deschisa) si iti propune s-o instaleze. Poti verifica si manual din meniul aplicatiei → „Cauta actualizari...”. Prin Sparkle, cu update-uri semnate (EdDSA) — de la aceasta versiune inainte nu mai trebuie sa descarci manual.
v0.6.4-alpha
· 2026-07-18
— Iconita noua
- Iconita noua a aplicatiei — un design nou, in formatul Icon Composer (Liquid Glass) pentru macOS Tahoe: o fereastra cu tab-uri din care un tunel de conexiuni intra in adancime catre masina remote.
v0.6.3-alpha
· 2026-07-18
— RDP catre Windows fara Active Directory (NTLM)
- RDP catre host-uri Windows standalone / workgroup (fara Active Directory) merge acum — ex. o instanta Windows pe AWS EC2. Conexiunea pica la etapa NLA si era raportata inselator ca
ERRCONNECT_CONNECT_TRANSPORT_FAILED, desi reteaua era in regula. Cauza reala: autentificarea NTLM calculeaza hash-ul parolei cu MD4, pe care OpenSSL 3 l-a mutat intr-un modul "legacy" separat, neinclus si neincarcat. App-ul livreaza si incarca acum acest modul. (RDP catre host-uri din Active Directory si SSH nu au fost niciodata afectate — nu folosesc MD4.)
v0.6.2-alpha
· 2026-07-17
— Log de diagnostic RDP
- Log de diagnostic (RDP) — o setare noua scrie log-ul intern al FreeRDP la nivel DEBUG in
~/Library/Logs/mRemoteNXT/mRemoteNXT.log (cu buton "Show in Finder"). Oprit implicit. Ajuta la localizarea cauzei cand o conexiune RDP pica — ex. ERRCONNECT_CONNECT_TRANSPORT_FAILED.
v0.6.1-alpha
· 2026-07-11
— Permisiune Local Network + fix-uri UI
- RDP/SSH catre host-uri din LAN pe macOS 15 / Tahoe — app-ul cere acum permisiunea Local Network. Fara ea, macOS bloca mut conexiunile catre servere locale la nivel de transport TCP (
ERRCONNECT_CONNECT_TRANSPORT_FAILED), chiar daca host-ul era accesibil. Accepta prompt-ul la prima conexiune, sau activeaza mRemoteNXT in System Settings → Privacy & Security → Local Network.
- Fereastra Settings redimensionabila, iar badge-ul de conexiune activa nu se mai taie la inaltime mica de rand.
- Scoase sagetile de scroll de pe bara de tab-uri din v0.6.0 (puteau razbate pe sub sidebar); scroll-ul cu touchpad merge in continuare.
v0.6.0-alpha
· 2026-06-19
— Restaurare sesiune + guide lines clasice in arbore
- Tine minte conexiunile deschise — o setare noua (activa implicit) redeschide si reconnecteaza conexiunile care erau deschise la ultima inchidere, restaurand tab-urile, panelele si selectia. Se salveaza doar referintele la noduri, niciodata parolele.
- Guide lines clasice in arbore — linii de ghidare in stil Windows, casute toggle
[+]/[-] si un badge verde "play" pe conexiunile active. Contributie de @vurmil.
v0.5.0-alpha
· 2026-06-16
— Primele contributii din comunitate
UI poloneza, duplicare, fix sidebar.
- Localizare poloneza — intreaga interfata e acum disponibila si in poloneza, alaturi de engleza si romana. Contributie de @vurmil.
- Duplicare conexiune / folder — o actiune noua de click-dreapta copiaza un nod (si copiii lui) cu un ID nou si un nume non-coliziune, inserat imediat sub original. Contributie de @vurmil.
- Fix context menu sidebar — click-dreapta pe zona goala de sub arbore creeaza acum corect conexiuni si foldere la nivel top, in loc sa le bage sub primul nod. Contributie de @vurmil.
v0.4.0-alpha
· 2026-06-16
— Semnat si notarizat de Apple
Fara avertisment Gatekeeper.
- Semnatura Developer ID — aplicatia si fiecare librarie inclusa sunt semnate cu un certificat Developer ID (Vtun Hardware SRL).
- Notarizare Apple — fisierul
.dmg e trimis la serviciul de notarizare Apple si tichetul e capsat (stapled), deci Gatekeeper il accepta offline fara niciun avertisment. Gata cu workaround-ul xattr -dr com.apple.quarantine.
- Hardened Runtime activat, cu entitlement-urile minime necesare pentru caile de codec FreeRDP / ffmpeg incluse (JIT, memorie executabila, validarea librariilor relaxata pentru dylib-urile Homebrew re-semnate).
v0.3.0-alpha
· 2026-05-26
— Blink cursor + titluri tab OSC + auto-scroll la drag
Functii portate din term-mac:
- Auto-scroll in timpul drag-select — tragi peste marginea de sus/jos a terminalului, buffer-ul deruleaza si selectia se extinde. Workaround pentru un bug upstream in SwiftTerm unde
mouseDragged seteaza autoScrollDelta dar nu programeaza niciodata timer-ul.
- Blink de cursor configurabil (Off / Lent / Mediu / Rapid) in Setari > Aspect. Foloseste DECSCUSR pentru toggle si o
CABasicAnimation custom pentru durata.
- Titlu de tab dinamic din terminal OSC 0/1/2 — cand shell-ul remote emite o secventa de titlu (tipic zsh precmd:
user@host:cwd), tab-ul se actualizeaza live. Controlat de un toggle nou in Setari.
v0.2.0-alpha
· 2026-05-24
— About / Help / New & Close + .dmg self-contained
Polishing pass — fara modificari breaking, toate fisierele confCons.xml de la v0.1 functioneaza in continuare.
Functii
- Panou About — inlocuieste About-ul generic macOS cu unul proper (autor, email, link repo, licenta).
- Meniu Help — fereastra Help in-app cu 7 sectiuni (Ce este, Pornire, Conectare, Editare, Scurtaturi, Sfaturi, Limitari), plus link-uri rapide spre sursa GitHub, issue tracker si email autor.
- File > New configuration... (⌘N) — creeaza un
confCons.xml gol, de la zero.
- File > Close configuration (⌘⇧W) — inchide documentul curent si readuce aplicatia in stare goala.
Corectii
- HelpView nu mai face crash la prima deschidere — hosting controller-ul primeste acum explicit obiectul de mediu
LanguageManager.
Documentatie si comunitate
SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md (Contributor Covenant 2.1), template-uri pentru issue + PR.
- README include acum capturi de ecran reale din demo config-ul inclus.
Exemple
examples/demo-config.xml — 4 foldere / 15 conexiuni cu SSH, RDP, Telnet, HTTPS, folosind range-uri de documentatie IANA (sigur de inclus in screenshot-uri).
Packaging
build/package.sh — build Release, copiaza 28 de dylib-uri Homebrew in Frameworks/, rescrie install names cu install_name_tool, re-semneaza ad-hoc si produce un .dmg self-contained. Utilizatorii finali nu mai au nevoie de brew install freerdp la runtime.
v0.1.0-alpha
· 2026-05-24
— Primul release public
Prima versiune alpha publica — un client nativ macOS multi-protocol pentru conexiuni remote, care importa confCons.xml de la mRemoteNG.
Ce functioneaza
- Import direct
confCons.xml (schema 2.6; passphrase implicit documentat sau unul custom). Crypto validat byte-exact (PBKDF2-HMAC-SHA1 + AES-256-GCM).
- Arbore de conexiuni cu foldere, mostenire atribute, reordonare drag & drop, iconite originale mRemoteNG, linii de ghidaj.
- Panel-uri — grupeaza conexiunile in tab-uri principale ca pe Windows.
- Cautare / filtru dupa nume, host, protocol, descriere.
- SSH + Telnet embedate via SwiftTerm. Copy-on-select + paste cu click-dreapta, stil PuTTY.
- SFTP — click-dreapta pe o conexiune SSH → Transfer fisiere.
- RDP embedat via FreeRDP. Canale GFX / disp / cliprdr, resize live, DPI Retina corect, Ctrl+Alt+Del.
- HTTP / HTTPS embedate in
WKWebView cu auto-fill din arbore.
- Unelte externe cu macro-uri (
%Host%, %Username%, ...) executate intr-un tab terminal.
- Modal editor conexiuni (General / Conectare / Credentiale / Aspect / Avansat) + bara de status cu click-to-copy.
- Auto-backup la salvare in
backups/confCons-<timestamp>.xml la fiecare scriere.
- Teme terminal, marime font ajustabila live, zoom ⌘+ / ⌘−.
- UI bilingv — engleza (default) / romana, schimbabil din Setari.
Intrebari frecvente
mRemoteNXT este gratuit?
Da. mRemoteNXT este gratuit si open source sub licenta
GPL-2.0-or-later. Nu exista tier platit, fara abonament, fara telemetrie. Sursa si .dmg sunt ambele pe GitHub.
Functioneaza pe Mac-uri Apple Silicon?
Da. Fisierul .dmg e build-uit pentru Apple Silicon (arm64) si necesita macOS 14 Sonoma sau mai nou. Build Intel nu e furnizat momentan, dar poti compila din sursa pe Intel daca e nevoie.
Poate mRemoteNXT sa importe configuratia mea mRemoteNG existenta?
Da — asta e tot rostul. mRemoteNXT deschide confCons.xml-ul tau existent byte-cu-byte. Arborele de conexiuni, folderele, panel-urile, mostenirea atributelor si iconitele sunt pastrate exact ca pe Windows. Fisierele salvate pe Mac sunt citite de mRemoteNG pe Windows fara probleme, deci poti tine un singur fisier in Dropbox / iCloud si lucra de pe ambele platforme.
Ce se intampla cu parolele salvate — sunt decriptate corect?
Da. Schema de criptare e re-implementata byte-exact: PBKDF2-HMAC-SHA1 (1000 iteratii) + AES-256-GCM cu salt-ul ca AAD. Sunt suportate atat parolele stocate cu passphrase-ul implicit documentat de mRemoteNG, cat si cele cu master password custom. Decriptarea a fost validata pe fisiere confCons.xml reale, de productie, cu sute de credentiale.
Da mRemoteNXT un avertisment Gatekeeper pe macOS?
Nu. Incepand cu v0.4.0-alpha aplicatia e semnata cu un certificat Developer ID si notarizata de Apple, deci Gatekeeper o accepta fara niciun avertisment — doar descarci, tragi in Applications si deschizi. Vechiul workaround xattr -dr com.apple.quarantine nu mai e necesar.
Ce protocoale suporta mRemoteNXT?
SSH (si SFTP), Telnet, RDP si HTTP/HTTPS, toate embedate in tab-uri. SSH/Telnet folosesc SwiftTerm cu copy-on-select si paste cu click-dreapta in stil PuTTY. RDP foloseste FreeRDP cu pipeline GFX, resize live, scalare DPI Retina corecta si Ctrl+Alt+Del din meniu. HTTP/HTTPS foloseste WKWebView cu auto-fill pentru interfetele web de router, iLO si switch. VNC e planificat pentru un release viitor.
Are mRemoteNXT nevoie de Homebrew sau alte dependinte instalate?
Nu. Fisierul .dmg e self-contained la ~21 MB si include toate librariile necesare (FreeRDP, OpenSSL, ffmpeg si altele) in interiorul aplicatiei. Trage in Applications si ruleaza — fara brew install, fara alta configurare. Build-ul din sursa necesita totusi Xcode plus Homebrew freerdp si xcodegen, dar asta e doar pentru contribuitori.
Licenta si credite
mRemoteNXT e lansat sub GPL-2.0-or-later.
Impacheteaza FreeRDP (Apache-2.0)
si SwiftTerm (MIT).
Setul de iconite e preluat din proiectul oficial
mRemoteNG (tot GPL-2.0).
Contributii din comunitate de la
@vurmil
(localizare poloneza, duplicare, fix sidebar). Pull request-urile
sunt binevenite.
Acest proiect nu e afiliat cu echipa mRemoteNG. Numele e referit
doar pentru compatibilitate de format de fisier.