Releases: thongor77/nmlinux
Release list
v1.7.8 — Speed Test: iperf3 LAN tab
Speed Test — new LAN (iperf3) tab
Alongside the existing internet speed test, a new LAN tab runs client-only iperf3 tests. Suggested by issue #6.
- Choose a server from a bundled public list (26 countries) or save your own custom server (e.g. an internal org iperf3 server)
- TCP or UDP, IPv4/IPv6/auto, and reverse (download) direction
- Jitter and packet loss shown for UDP tests
- Client only for now — no server mode
New optional dependency: iperf3 — install it to enable the tab; without it the tab shows a disabled banner instead of failing silently.
See full changelog in README.md.
v1.7.6
Changes
- Asset Inventory — right-click refresh: right-click one or more already-scanned rows (multi-select supported) and choose "Refresh selected" to rescan just those hosts in place, instead of rerunning a full network scan
- Asset Inventory — SSH auth-failure feedback: a rejected SSH login now shows "SSH auth failed" instead of failing silently, without losing the Nmap-detected hostname/OS baseline — confirmed against a real Synology NAS where DSM's Auto Block rejected a correct password after other configured credential sets were tried first
See README changelog for full history.
v1.7.5
Changes
- Ping Monitor — saved targets directory: a new left-hand panel lets you save ping targets (name, host, interval) to a persistent list, so hosts being monitored survive an app restart instead of having to be retyped
- Ping Monitor — save mid-session: a ★ button on each actively-monitored row saves that host to the directory at any point, no need to have planned ahead
- Ping Monitor — "Start monitoring": select a saved target and start monitoring it with one click, reusing its saved interval
See README changelog for full history.
v1.7.4
Changes
- Asset Inventory — fixed inconsistent scan results: liveness check now retries the ping before falling back to the TCP port probe, instead of giving up after a single 1s-timeout packet. Confirmed live that the old single-shot check dropped real devices under the scanner's own concurrent load or Wi-Fi power-save jitter
- Asset Inventory — new "Refresh empty" button: re-scan only the IPs that returned nothing, merging new results into the existing table
See README changelog for full history.
v1.7.3
Changes
- SMB — mount shares from the right-click menu: right-click a share in the SMB tab and choose Mount/Unmount to mount it at a stable local path (
~/mnt/<host>_<share>), usable from the terminal and any other app. Session-only, credentials reused from the existing user/password fields. Linux usespkexec mount -t cifswith a restricted-permission credentials file; macOS usesmount_smbfs. Automatically retries with an older SMB dialect (vers=2.0) for servers that reject the default negotiation (common with older NAS units) — both attempts happen under a single authentication prompt - New optional dependency:
cifs-utils(Linux) for SMB mounting; built into macOS
See README changelog for full history.
v1.7.2
Changes
- macOS install — fixed two bootstrap bugs found on a bare Mac:
bootstrap_macos.shno longer forcesNONINTERACTIVE=1on the Homebrew installer, which aborted immediately on any fresh admin account instead of prompting for the sudo password; the documented one-liner now downloads the script first instead of piping it directly intobash - Universal right-click menu — SMB added: right-clicking a host and choosing SMB now prefills the host field and launches the scan immediately, bold when port 445 is detected open
- i18n — remaining Dashboard strings translated: gateway latency label, TLS Watchlist card title and status row, across all 8 interface languages
See README changelog for full history.
v1.7.1 — macOS 26 (Tahoe) compatibility fixes
What's new
macOS 26 (Tahoe) — Wi-Fi SSID fixes
macOS 26 introduced strict privacy restrictions that redacted all Wi-Fi network names in CLI tools. nmlinux now uses CoreWLAN (Apple's native Wi-Fi framework) as the primary data source when Location Services is granted.
- Wi-Fi page: real SSIDs via CoreWLAN (
cachedScanResults+ active scan) - Connection Manager: connected SSID from CoreWLAN, security mode from system_profiler
- Location Services: the app requests permission at startup (first launch only) — macOS shows a dialog; grant it to display Wi-Fi names
- Fallback: if Location Services is denied, a yellow banner explains how to enable it in System Settings › Privacy & Security › Location Services
macOS — SMB improvements
- Clear authentication error message when the NAS requires credentials (instead of raw
NT_STATUS_LOGON_FAILURE) - Fixed "Can't load smb.conf" warning from Homebrew smbclient (
-s /dev/null)
Other macOS fixes
- Fixed crash on quit related to CoreLocation initialization (one-shot on first LS prompt)
NSLocationWhenInUseUsageDescriptionadded to app bundleInfo.plist
General
- Removed all remaining references to the old BornToBeRoot/NETworkManager project
Installation
Arch Linux (AUR)
yay -S nmlinux
macOS
pip install nmlinux
bash <(curl -s https://raw.githubusercontent.com/thongor77/nmlinux/main/packaging/install_macos_app.sh)Linux (pipx)
pipx install nmlinuxv1.7.0 — Universal right-click navigation + Dashboard live widgets
What's new in v1.7.0
Universal right-click context menu
Right-click any host in any table (IP Scanner, Nmap, Ping, Port Scanner, Traceroute, MTR, Topology) to navigate directly to another module — no more copy-pasting IPs.
Actions available: Ping · Scan ports · Whois · DNS · Traceroute · MTR · SSH · RDP · VNC · View in Topology · Add to Inventory
SSH / RDP / VNC entries appear bold when the corresponding port is detected open.
All menu labels are translated in all 8 interface languages (FR / EN / ES / DE / IT / PT / JA / ZH).
Target pages
Each target page receives the host intelligently:
- Whois / Traceroute / MTR / Ping — pre-fill + auto-start
- Port Scanner / DNS / SSH / RDP / VNC — pre-fill only (user chooses when to run)
- Topology — injects all hosts from the IP Scanner/Nmap scan as nodes; detects the local gateway automatically and draws star topology edges; the origin host is highlighted in red
- Asset Inventory — skips the ICMP discovery phase and launches credential-based collection directly on the provided host list
Dashboard live widgets
- Gateway ping graph: live latency sparkline, updated every 2 seconds, color-coded (<20 ms green / 20–100 ms orange / >100 ms red / timeout red)
- TLS Watchlist summary: new card in Dashboard reflects the TLS Watchlist status automatically (OK / expiring / alert)
- Geo map resize fix: the world map now expands horizontally when the window is resized
Installation
AppImage (any Linux distro)
chmod +x NMLinux-1.7.0-x86_64.AppImage
./NMLinux-1.7.0-x86_64.AppImageArch Linux (AUR)
yay -S nmlinuxpip
pipx install nmlinuxSee README for all installation options.
v1.6.4 — Fix macOS menu bar (NSBundle patch)
Fix
- macOS: menu bar affiche désormais NMLinux au lieu de Python
- Cause racine :
NSBundle.mainBundle()résout vers le bundlePython.framework(CFBundleName = "Python") que Qt lit pendant la construction de QApplication - Fix : patch du dict
infoDictionary()avant QApplication + renommage des items viaAppKit.NSApp.mainMenu()en fallback
- Cause racine :
Update
git pull && bash packaging/install_macos_app.sh --systemv1.6.3 — Fix macOS menu bar (NSProcessInfo)
Fix
- macOS: menu bar affiche désormais NMLinux au lieu de Python
- Cause racine : après
exec()dans Python, macOS identifie le processus comme appartenant auPython.frameworket affiche "Python" indépendamment du nom du bundle - Fix :
NSProcessInfo.setProcessName_('NMLinux')viapyobjc-framework-Cocoa, qui écrase le nom au niveau OS avant que Qt crée le menu de l'application pyobjc-framework-Cocoaest installé automatiquement dans le venv parinstall_macos_app.sh
- Cause racine : après
Update
git pull && bash packaging/install_macos_app.sh --system