Releases: luc-github/NetNeighbor
NetNeighbor 2.0.1
NetNeighbor
Release 2.0.1
This release improves network device discovery stability and offline handling with better cache management, unified device type classification, and enhanced error logging for easier troubleshooting.
📋 Table of Contents
🐛 Bug Fixes
- Fix device icon refresh when switching between custom and system icons: Resolved issue where device icons would not refresh properly when toggling between custom icon packs and system icons (
d072f0a) - Fix application crash during device disconnection on Windows: Fixed crash that occurred when a device was disconnected from the network during the discovery process on Windows systems (
56560ce) - Prevent stale Device object accumulation when devices go offline: Cleaned up identity-hold pending queue when a device goes offline before its 3-second identity-hold timer expires, preventing memory leaks from stale Device objects (
93fb3b3)
💪 Improvements
- Enhanced discovery stability with unified device type classification: Consolidated four divergent device category implementations into a single, unified category_for_device_type() function. Added support for previously missing device types (scanner, HTTP, HTTPS, ESP32) across all discovery modules (SSDP, WS-Discovery, manager) for consistent device identification (
93fb3b3) - Better offline device detection and rendering: Improved how the application detects when devices go offline and how they are displayed in the interface for clearer user feedback (
354f538,3aa091d) - Comprehensive SSDP cache management: Added purge_ip_from_xml_cache() function to cleanly remove cached XML descriptors by IP address, complementing the existing profile cache purging. Manual purge operations now clear all SSDP caches (both memory and disk) for the target device (
93fb3b3) - Improved error visibility in discovery logs: Elevated log levels from debug to warning for critical discovery failures in anticipatory descriptor fetches, SSDP XML enrichment, and WS-Discovery probe sequences, making internal failures easier to diagnose (
93fb3b3) - Thread-safe device cache operations: Fixed potential RuntimeError in set_location_overrides and set_field_mapping_rules by snapshot-copying the device list before iteration, preventing crashes when discovery threads modify the device dictionary concurrently (
93fb3b3) - Enhanced error isolation on Windows: Improved error handling and isolation mechanisms on Windows systems for more stable operation during network discovery (
56560ce) - Clearer device labeling for ESP32 devices: Renamed 'ESP3D / firmware' label to 'ESP3D Device' across all supported languages for more intuitive device identification (
f57b3b0,93fb3b3)
👥 Contributors
Thanks to all contributors who made this release possible!
- @luc-github (6 commits, +564/-176)
📊 Statistics
- Commits: 6
- 👥 Contributors: 1
- Lines changed: +564 / -176
Generated by Release Agent on 2026-05-30 12:37
NetNeighbor 2.0.0
Complete rewrite of V1.0.0 — GTK → PySide6 (Qt). All platforms.
What's new
UI framework
- Ported from GTK to PySide6 — native look on Windows, macOS, and Linux
- Fusion theme with automatic light/dark mode detection (follows OS setting)
--theme-light/--theme-darkCLI flags to override
System tray
- Tray icon on all platforms — click to show/hide the window
- Minimize and close to tray (configurable)
- Session autostart at login with start-minimized-to-tray
- Windows: registry
HKCU\...\Run - macOS: LaunchAgent plist (
~/Library/LaunchAgents/) - Linux: XDG
.desktop(~/.config/autostart/)
- Windows: registry
Startup performance
- Lazy imports for zeroconf and WS-Discovery (~500 ms saved)
- Discovery starts in a background thread — window paints immediately
- Animated scanning overlay while waiting for first devices
- Single-instance check timeout reduced from 800 ms to 200 ms
Device lifetime management
last_seentimestamp on every device — stale cache entries (> 48 h) purged at startup- "Last seen N min/h ago" tooltip for cache-only devices
- TCP probe validation at startup: unreachable cached devices go offline in ~5 s,
before full protocol discovery completes - NetBIOS, WSD, wsdd offline detection: devices absent for 2 consecutive sweeps
are marked offline
UI improvements
- Icon grid and list view — toggle from View → Display
- Sidebar groups by Type or Location, collapsible sections
- Scroll position preserved across discovery refreshes
- Active context-menu guard: UI refresh deferred while a menu is open
- User-activity guard: refresh deferred 250 ms after last mouse/keyboard event
- Fingerprint bail-out: snapshot skipped entirely if nothing changed
Translations
- 8 languages: French, Spanish, German, Italian, Dutch, Japanese,
Simplified Chinese, Traditional Chinese - 74 new strings translated for all Qt-era UI (tray, overlay, preferences,
context menus)
Maintenance
- Reset all application data in Preferences → General
- Notifications history (Tools menu)
- Hidden devices manager (Tools menu)
Packages
| Platform | Artifact |
|---|---|
| Linux | .deb (amd64/arm64), .tar.gz portable, .AppImage |
| Windows | NetNeighbor-2.0.0-win64-setup.exe, .zip |
| macOS Apple Silicon | NetNeighbor-2.0.0-macos-arm64.dmg (macOS 12+) |
| macOS Intel | NetNeighbor-2.0.0-macos-intel.dmg (macOS 11 Big Sur+) |
Important
macOS note:
The app is not notarized (cost-prohibitive for an open-source
project). On first launch you may see a Gatekeeper warning — right-click →
Open → Open, or run xattr -cr /Applications/NetNeighbor.app in Terminal.
Important
Windows note:
The installer and application are not code-signed (cost-prohibitive
for an open-source project). Windows Defender SmartScreen may show a warning on first
run — click More info → Run anyway to proceed.
Installation
Linux .deb:
sudo apt install ./netneighbor_2.0.0_amd64.debWindows: run NetNeighbor-2.0.0-win64-setup.exe
macOS: open the .dmg, drag NetNeighbor to Applications
Uninstall / reset
See User Documentation for full uninstall steps
per platform. Configuration lives in ~/.config/netneighbor, cache in
~/.cache/netneighbor.
NetNeighbor 1.0.0 — First release
🎉 First release
NetNeighbor is a Linux desktop application that discovers and monitors devices
on your local network — a modern equivalent of the Windows Network Neighborhood.
What it does
- Automatically discovers devices via SSDP, mDNS, WS-Discovery and NetBIOS
- Displays them in an icon grid or list view with sidebar categories
- Opens devices in one click: HTTP, HTTPS, SMB, SSH, FTP, SFTP, Telnet
- Lets you rename devices, tag them by location, assign custom icons and types
- Runs in the system tray with optional autostart at login
- Available in French, Spanish, German, Italian, Dutch, Japanese and Chinese
Downloads
| File | Description |
|---|---|
netneighbor_1.0.0_amd64.deb |
Ubuntu / Linux Mint / Debian (recommended) |
NetNeighbor-1.0.0-x86_64.AppImage |
Any Linux distribution |
netneighbor-1.0.0.tar.gz |
Tarball for manual install |
SHA256SUMS-1.0.0.txt |
Checksums |
Install
.deb (dependencies installed automatically):
sudo dpkg -i netneighbor_1.0.0_amd64.debAppImage:
chmod +x NetNeighbor-1.0.0-x86_64.AppImage
./NetNeighbor-1.0.0-x86_64.AppImageRequirements
- Ubuntu 22.04+ / Linux Mint 21+ / Debian 12+ (or equivalent)
- Python 3.10+, GTK 3
NetBIOS name resolution requires samba-common-bin; system tray requires
gir1.2-ayatanaappindicator3-0.1. Both are pulled in automatically by the .deb.
Documentation
See USER_DOCUMENTATION.md
for the full user guide.