https://github.com/h2337/connmap
connmap is an X11 desktop widget that shows location of your current network peers on a world map in real-time
https://github.com/h2337/connmap
cairo desktop-widget geolocation i3 i3wm ip-geolocation libcairo linux-desktop tcp udp x11
Last synced: 2 months ago
JSON representation
connmap is an X11 desktop widget that shows location of your current network peers on a world map in real-time
- Host: GitHub
- URL: https://github.com/h2337/connmap
- Owner: h2337
- License: mit
- Created: 2020-03-20T17:04:22.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2025-08-02T15:49:48.000Z (3 months ago)
- Last Synced: 2025-08-04T08:58:44.110Z (2 months ago)
- Topics: cairo, desktop-widget, geolocation, i3, i3wm, ip-geolocation, libcairo, linux-desktop, tcp, udp, x11
- Language: C
- Homepage:
- Size: 34.9 MB
- Stars: 573
- Watchers: 10
- Forks: 25
- Open Issues: 10
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# connmap
connmap is an X11 desktop widget that shows location of your current network peers on a world map.
(Works on Wayland as well!)
![]()
## Installation
Clone the repository `git clone https://github.com/h2337/connmap --depth 1`, install the dependencies (see below), run `make install`, then run the resulting executable `./connmap.elf`.If you want to run it without attaching it to the terminal then add ampersand at the end of the command: `./connmal.elf &`.
You can also add it to your i3wm config to run at startup (make sure it is in the PATH):
```
exec --no-startup-id connmap.elf
```## Dependencies
Build dependencies: `xlib`, `libxext`, `libxfixes`, `libcairo2`Installation dependencies: `unzip`
Runtime dependencies: `iproute2`
Installation for Arch Linux:
```
sudo pacman -S --needed iproute2 libx11 libxext libxfixes cairo unzip
```Installation for Debian/Ubuntu:
```
sudo apt install iproute2 libx11-dev libxext-dev libxfixes-dev libcairo2-dev unzip
```## Config
Installation will create `~/.config/connmap/connmaprc`. Default `connmaprc` looks like this:
```
location_x 20
location_y 500
map_width 1000
black false
update_interval 1
```
- `location_x`/`location_y` specifies the initial widget location in your desktop (you can later drag/drop the widget with mouse if you are not using a desktop environment that treats mouse drag as multi-select).- `map_width` specifies the custom pixel width of the map. Height is automatically calculated as width/2. Examples:
- `map_width 500` creates a 500×250px map
- `map_width 1000` creates a 1000×500px map
- `map_width 1500` creates a 1500×750px map
- `map_width 2000` creates a 2000×1000px map- Setting `black` to true will draw map outline in black instead of white.
- `update_interval` is seconds the application will sleep for before fetching the updated list of network connections.
## Limitations
- Tested only with i3wm, might not work as expected in other DE/WM.- Only IPv4 is supported.
## License
MIT-licensed.This product includes GeoLite2 Data created by MaxMind, available from https://www.maxmind.com