This folder contains technical documentation for contributors and maintainers. End-user
documentation is in USER_DOCUMENTATION.md.
docs/
reference/ Protocol and architecture deep-dives
contributing/ How to contribute icons, translations, and rule overlays
operations/ Build, packaging, and maintenance guides
archive/ Historical documents (GTK 1.x era)
images/ Screenshots and logos
esp3d-overview/ ESP3D project overview pages
| Document | Purpose |
|---|---|
USER_DOCUMENTATION.md |
End-user guide: UI, menus, preferences, tray. |
ROADMAP.md |
Planned and completed work, backlog, ideas. |
| Document | Purpose |
|---|---|
reference/BACKEND_ARCHITECTURE.md |
DiscoveryManager, override system, device commands model, protocol modules, data model, cross-protocol merge, config files, thread safety. |
reference/SSDP.md |
SSDP protocol basics, M-SEARCH, XML parsing, TTL/offline handling, ssdp_rules.json schema. |
reference/MDNS.md |
mDNS browse/aggregation model, service mapping, URL rules, lifecycle, mdns_rules.json schema. |
reference/WSD.md |
WS-Discovery (Windows PCs, printers), EPR/scope parsing, type classification, offline detection. |
reference/NETBIOS.md |
NetBIOS name browse via nmblookup, suffix table, integration as supplementary source. |
| Document | Purpose |
|---|---|
contributing/COMMUNITY_OVERRIDES.md |
User overlays in ~/.config/netneighbor/ (rules + device types) plus notes on ui_prefs.json keys. |
contributing/CONTRIBUTING_ICONS.md |
Icon assets and device_types.json contributions. |
contributing/I18N.md |
How to add/update translations (.po/.mo), merge catalogs, and test locales. |
| Document | Purpose |
|---|---|
operations/MAINTENANCE.md |
Ongoing care: logging, config paths, debugging discovery, release checklist. |
operations/PACKAGING.md |
Build and validate release artifacts (.deb / tar.gz / AppImage / PyInstaller / Inno Setup). |
| Document | Purpose |
|---|---|
archive/ROADMAP_QT_2_0.md |
Completed Qt 2.0 migration checklist (GTK → PySide6). |
archive/UI_ARCHITECTURE.md |
GTK 3 UI layer — archived, no longer current. |
archive/CHANGELOG.md |
Release notes up to 0.8.0. |
archive/ |
Brief v1.3, v1.4, GTK roadmap. |
- Discovery:
app/discovery/base.py(contract),app/discovery/manager.py(cache + merges + override system),app/discovery/ssdp.py,app/discovery/mdns.py,app/discovery/wsd.py(WS-Discovery),app/discovery/netbios.py. - UI:
app/app_qt.py(single instance, activation),app/ui/(NetNeighborMainWindow,MainThreadScheduler,PreferencesDialog,NetNeighborTray, …),app/utils/session_autostart.py(XDG/registry login entry). - Connect:
app/utils/double_click_open.py(target resolution),app/utils/connect_launcher.py(command templates + launch). - Config:
~/.config/netneighbor/ui_prefs.json(UI state + user choices/rules/overrides includingdevice_commands)~/.config/netneighbor/discovery.json(per-protocolmdns/ssdpblocks withenabled/rules,merge.protocol_order,merge.information_precedence, plusstartup_refresh_seconds; seeoperations/MAINTENANCE.md)~/.cache/netneighbor/discovery-cache.json(volatile discovery cache:last_seen, monitored snapshots, SSDP XML/profile cache)app/config/default_commands.json(per-OS built-in scheme templates; loaded byapp/utils/connect_launcher.py)
If you add a new protocol, start from BaseDiscovery and register the provider in DiscoveryManager.