A lightweight desktop widget that visualizes your active network connections on an interactive world map. See where your packets go — in real time.
A single binary, zero runtime config. Just launch it and watch your connections light up across the globe.
Maps every active TCP connection to its geographic origin using the MaxMind GeoLite2 database with fast binary search lookups.
Sits directly on your desktop background as a transparent, draggable widget. No browser needed — pure native rendering.
Written in C with ~730 lines of code. Minimal dependencies, minimal memory usage, compiles in under a second.
Full support for both X11 and Wayland compositors. Automatically detects your display server and adapts.
Customize position, map size, update interval, and color scheme through a simple text config file.
Continuously monitors your socket table and refreshes the map at configurable intervals, so you always see what's happening now.
connmap reads your active connections, resolves their locations, and paints them on your desktop.
Reads active TCP connections from the Linux socket table using the ss command every update cycle.
Resolves each remote IP to latitude/longitude coordinates using a local MaxMind GeoLite2 database with O(log n) lookups.
Draws each connection as a glowing red dot on a Mercator-projected world map rendered with Cairo directly on your desktop.
Clone, install dependencies, build, and launch.
Pick your distro:
sudo pacman -S --needed iproute2 libx11 libxext libxfixes cairo unzip
sudo apt install iproute2 libx11-dev libxext-dev libxfixes-dev libcairo2-dev unzip
git clone https://github.com/h2337/connmap --depth 1
cd connmap
make install
connmap.elf
Run in background: connmap.elf &
· Auto-start with i3: exec --no-startup-id connmap.elf
Edit ~/.config/connmap/connmaprc to customize.
# ~/.config/connmap/connmaprc
location_x 20
location_y 500
map_width 1000
black false
update_interval 1
| Option | Description |
|---|---|
| location_x | Initial horizontal position on your desktop (pixels) |
| location_y | Initial vertical position on your desktop (pixels) |
| map_width | Width of the map in pixels. Height is automatically width / 2 |
| black | Set to true for black map outlines instead of white |
| update_interval | Seconds between connection refreshes |
Tested across popular Linux desktop environments and window managers.
Open source, lightweight, and installs in under a minute.