Open source · MIT License

connmap

A lightweight desktop widget that visualizes your active network connections on an interactive world map. See where your packets go — in real time.

connmap.elf
connmap showing network connections on a world map
Features

Everything you need to see your network

A single binary, zero runtime config. Just launch it and watch your connections light up across the globe.

Real-Time Geolocation

Maps every active TCP connection to its geographic origin using the MaxMind GeoLite2 database with fast binary search lookups.

Desktop Widget

Sits directly on your desktop background as a transparent, draggable widget. No browser needed — pure native rendering.

Blazingly Lightweight

Written in C with ~730 lines of code. Minimal dependencies, minimal memory usage, compiles in under a second.

X11 + Wayland

Full support for both X11 and Wayland compositors. Automatically detects your display server and adapts.

Configurable

Customize position, map size, update interval, and color scheme through a simple text config file.

Live Updates

Continuously monitors your socket table and refreshes the map at configurable intervals, so you always see what's happening now.

How It Works

Three simple steps, zero effort

connmap reads your active connections, resolves their locations, and paints them on your desktop.

Detect Connections

Reads active TCP connections from the Linux socket table using the ss command every update cycle.

Geolocate IPs

Resolves each remote IP to latitude/longitude coordinates using a local MaxMind GeoLite2 database with O(log n) lookups.

Render on Map

Draws each connection as a glowing red dot on a Mercator-projected world map rendered with Cairo directly on your desktop.

Installation

Up and running in 60 seconds

Clone, install dependencies, build, and launch.

1

Install dependencies

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
2

Clone and build

git clone https://github.com/h2337/connmap --depth 1 cd connmap make install
3

Launch

connmap.elf

Run in background: connmap.elf &  ·  Auto-start with i3: exec --no-startup-id connmap.elf

Configuration

Simple config, full control

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
Compatibility

Works with your desktop

Tested across popular Linux desktop environments and window managers.

i3wm KDE Plasma GNOME Xfce LXDE LXQt MATE Cinnamon Deepin Enlightenment X11 Wayland

See where your packets go

Open source, lightweight, and installs in under a minute.