Skip to content

Releases: thongor77/nmlinux

v1.7.8 — Speed Test: iperf3 LAN tab

Choose a tag to compare

@thongor77 thongor77 released this 14 Jul 18:19

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

Choose a tag to compare

@thongor77 thongor77 released this 05 Jul 18:07

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

Choose a tag to compare

@thongor77 thongor77 released this 04 Jul 12:21

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

Choose a tag to compare

@thongor77 thongor77 released this 04 Jul 08:37

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

Choose a tag to compare

@thongor77 thongor77 released this 03 Jul 21:17

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 uses pkexec mount -t cifs with a restricted-permission credentials file; macOS uses mount_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

Choose a tag to compare

@thongor77 thongor77 released this 03 Jul 14:29

Changes

  • macOS install — fixed two bootstrap bugs found on a bare Mac: bootstrap_macos.sh no longer forces NONINTERACTIVE=1 on 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 into bash
  • 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

Choose a tag to compare

@thongor77 thongor77 released this 02 Jul 16:36

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)
  • NSLocationWhenInUseUsageDescription added to app bundle Info.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 nmlinux

v1.7.0 — Universal right-click navigation + Dashboard live widgets

Choose a tag to compare

@thongor77 thongor77 released this 02 Jul 09:33

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.AppImage

Arch Linux (AUR)

yay -S nmlinux

pip

pipx install nmlinux

See README for all installation options.

v1.6.4 — Fix macOS menu bar (NSBundle patch)

Choose a tag to compare

@thongor77 thongor77 released this 28 Jun 10:23

Fix

  • macOS: menu bar affiche désormais NMLinux au lieu de Python
    • Cause racine : NSBundle.mainBundle() résout vers le bundle Python.framework (CFBundleName = "Python") que Qt lit pendant la construction de QApplication
    • Fix : patch du dict infoDictionary() avant QApplication + renommage des items via AppKit.NSApp.mainMenu() en fallback

Update

git pull && bash packaging/install_macos_app.sh --system

v1.6.3 — Fix macOS menu bar (NSProcessInfo)

Choose a tag to compare

@thongor77 thongor77 released this 28 Jun 10:17

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 au Python.framework et affiche "Python" indépendamment du nom du bundle
    • Fix : NSProcessInfo.setProcessName_('NMLinux') via pyobjc-framework-Cocoa, qui écrase le nom au niveau OS avant que Qt crée le menu de l'application
    • pyobjc-framework-Cocoa est installé automatiquement dans le venv par install_macos_app.sh

Update

git pull && bash packaging/install_macos_app.sh --system