Releases: thongor77/nmlinux
v1.4.3 — TLS Watchlist fixes
Fixes in v1.4.3
TLS Watchlist — self-signed / untrusted cert detection
Self-signed and certs with untrusted CA were incorrectly shown as valid (green). Fixed:
- SSL exception catching now covers all
ssl.SSLErrorsubclasses (not justSSLCertVerificationError) - Such certs now display as "⚠ Invalid / untrusted cert" in orange
- Sidebar dot turns orange when an untrusted cert is detected
TLS Watchlist — clearer status text
- Entries show "… (checking)" while the background worker is running
- Unreachable hosts show "— (unreachable)" instead of the ambiguous "not checked"
v1.4.2 — TLS Watchlist
What's new in v1.4.2
TLS Watchlist — monitor certificate expiry at startup
A new TLS Watchlist panel appears at the bottom of the TLS Inspector page:
+ Watchbutton in the toolbar: adds the current host:port to the watchlist with one click- Persistent list stored in
~/.config/nmlinux/tls_watchlist.json - Automatic background check runs 2 seconds after launch (non-blocking)
- Sidebar alert dot on the "TLS Inspector" entry:
- 🔴 Red dot = at least one certificate expired
- 🟠 Orange dot = at least one certificate expires within 30 days
- No dot = all certificates valid
- Per-entry status in the panel: ✓ / ⚠ / EXPIRED with color coding and days remaining
- Re-check button to manually refresh all entries
- Unreachable hosts are silently ignored (no false alert when offline)
v1.4.1 — macOS IP Scanner ARP fix
What's new in v1.4.1
macOS — IP Scanner: MAC/vendor/interface now populated
The ARP lookup previously read from /proc/net/arp (Linux-only), leaving MAC address, vendor and network interface empty on macOS. It now calls arp -n <ip> on macOS and parses the native output format. All four scanner columns now work correctly on macOS.
VNC module: Linux server note added
A note has been added to the VNC help badge (all 8 languages) clarifying that Linux desktops do not run a VNC server by default. To expose a Linux desktop via VNC, install: x11vnc, tigervnc-server, or wayvnc (Wayland).
v1.4.0 — macOS module improvements
What's new — macOS compatibility extended
Five modules that previously had limited or no macOS support now work natively:
| Module | Before | After |
|---|---|---|
| IP Scanner | hostname lookup broken (getent missing) |
uses socket.gethostbyaddr() — Python native |
| SMB Browser | required Homebrew samba | uses smbutil view (built-in macOS) |
| NFS Browser | --no-headers flag unsupported |
flag removed, header line skipped |
| RDP | error "xfreerdp not found" | falls back to open rdp:// → Microsoft Remote Desktop (App Store) |
| VNC | error "vncviewer not found" | falls back to open vnc:// → Screen Sharing (built-in, zero install) |
Linux behaviour is unchanged.
Install / upgrade
Arch Linux (AUR):
yay -S nmlinuxAll platforms (wheel):
pip install nmlinux-1.4.0-py3-none-any.whlSHA256: fa0119329b0dcad66566f247f7927edc93526d4d5dc18264168cccdb57c16c03
v1.3.9 — SSH Agent Forwarding
What's new
SSH Agent Forwarding
- New "Agent forwarding" checkbox in the SSH connection form
- Adds
-Ato the generatedsshcommand when enabled - Allows jumping between servers without copying your private key: PC → server A → server B
- Requires an active SSH agent (
SSH_AUTH_SOCK) — if no agent is running, SSH ignores-Asilently - Detail panel shows "Oui (-A)" / "Non"
- Help content updated in all 8 languages (FR/EN/ES/DE/IT/PT/JA/ZH)
How to use:
- Make sure your SSH agent is running:
ssh-add -lshould list your keys - Edit a connection in the SSH page → check "Agent forwarding" → Save
- Once connected on server A, you can
ssh user@server-Bdirectly
Install / upgrade
Arch Linux (AUR):
yay -S nmlinuxAll platforms (wheel):
pip install nmlinux-1.3.9-py3-none-any.whlSHA256: 0d73d323ce1f89ae1cf47644e47a83fe254a6476246b8135582e35a67e865e0e
v1.3.8 — Command Palette & Export Manager
What's new
Command Palette (Ctrl+P)
- Press Ctrl+P from anywhere to open a quick-navigation overlay
- Fuzzy search across all 27 modules by name or keywords (e.g. "firewall", "tls", "ssh key", "scan")
- Navigate with Up/Down arrows + Enter, or single click
Export Manager
- File → Export Network Report… — export a live snapshot (interfaces, routes, DNS resolvers) in JSON, Markdown, plain text or PDF
- PDF export is optional:
pip install reportlab - Module export buttons — Export button added to: Interfaces, DNS Lookup, Firewall, SSH Connections, Connection Manager
- Filename extension updates live when you change the format filter in the save dialog
Install / upgrade
Arch Linux (AUR):
```bash
yay -S nmlinux
```
All platforms (wheel):
```bash
pip install nmlinux-1.3.8-py3-none-any.whl
```
Debian / Ubuntu / Mint:
```bash
git pull && bash install.sh
```
SHA256: `505f360a0235a119c4e06354be9b77727d3ea9959d8e87841ac1017d4d866396`
v1.3.6
What's new
Topology — device icons
Each node now displays a Lucide SVG icon matching its device type (router, laptop, printer, NAS, smartphone, switch, Raspberry Pi) instead of a generic circle.
Topology — mDNS device detection
Device type is detected via avahi-browse (optional, runs in parallel with nmap). Identifies printers, Android TV / Chromecast, Apple Macs (via model in AirPlay TXT), NAS (Synology reports model=Xserve), KDE Connect desktops. Falls back to MAC vendor OUI and hostname heuristics when avahi is unavailable.
Topology — detail panel
Shows the detected device class (Printer, Smartphone, NAS…) instead of "Host". i18n in all 8 languages.
Traceroute — auto-zoom
The world map automatically zooms and centres on the bounding box of geolocated hops. Disables on manual zoom/pan; restores on next traceroute. Right-click resets to full world view.
Optional new dependency: avahi (for mDNS topology detection)
v1.3.5 — Compatibilité macOS
Nouveautés
Compatibilité macOS : 9 modules fonctionnent maintenant en dual Linux/macOS sans casser les fonctionnalités Linux existantes.
Principe : _IS_MACOS = platform.system() == 'Darwin' dans chaque module — les branches macOS s'ajoutent à côté du code Linux, jamais en remplacement.
Modules couverts
| Module | macOS |
|---|---|
| Dashboard | route -n get default, ifconfig, scutil --dns, masque hex → CIDR |
| Interfaces | networksetup -listallhardwareports + ifconfig -a |
| Wi-Fi | system_profiler SPAirPortDataType -json (airport retiré macOS 15+) |
| Topology | route -n get default + ifconfig, police Menlo |
| Bandwidth | netstat -ib, filtre lo0 |
| Firewall | parser parse_pf(), LiveRulesetWorkerMacos via pfctl + osascript |
| Connection Manager | _ListWorkerMacos, _DetailWorkerMacos, actions osascript |
| Hosts | osascript au lieu de pkexec pour écrire /etc/hosts |
| MTR | Police Menlo/Monospace |
Modules inchangés (outils identiques Linux/macOS)
dns.py, nmap_scan.py, snmp.py, whois.py
Note : Le projet reste prioritairement Linux/KDE. Le support macOS est une compatibilité additionnelle, non testée en CI.
v1.3.2 — 8-language UI & contextual help
What's new
i18n extended to 8 languages
The full UI (~720 translation keys across all 27 modules) is now available in:
FR · EN · ES · DE · IT · PT · JA · ZH
Language can be changed at runtime in Settings without restarting the app.
Contextual help in 8 languages
The ? badge panel (description, usage examples and equivalent CLI commands) now covers all 8 languages × 27 modules. Previously Japanese and Chinese fell back to English.
Bug fix
Nav tooltips for SMB/NFS and Hosts File were displaying in French regardless of the selected language (nav_hint_smb_nfs / nav_hint_hosts missing from 7 non-French language blocks).
Installation
Arch Linux (AUR)
yay -S nmlinux
Debian / Ubuntu / Linux Mint
curl -fsSL https://raw.githubusercontent.com/thongor77/nmlinux/main/install.sh | bash
From wheel
pip install nmlinux-1.3.2-py3-none-any.whl
nmlinux
NMLinux v1.3.1
SSH Key Manager
- Liste les paires de clés dans
~/.ssh/(fichier, type, bits, commentaire, empreinte SHA256) - Génération Ed25519 ou RSA 4096 avec passphrase optionnelle
- Copie de la clé publique dans le presse-papiers
- Déploiement via
ssh-copy-iddans un terminal inline - Suppression de paire avec confirmation
- i18n : fr, en, es, de