Skip to content

techt3/iptw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IP Travel Wallpaper (iptw)

You open your laptop. News apps. Social feeds. Streaming. Fifty tabs — and somehow it all feels like the same story, told by the same voices, hosted on the same three clouds, written for the same curated audience.

You are already inside the Matrix.

IP Travel Wallpaper is your way out. Every network connection your computer makes has a location — a country, a server, a story. IPTW maps those connections in real time, painting a living world map that grows more colorful every time you venture beyond the algorithmic mainstream. Escape the news bubble. Find the authentic voices the algorithm buried. The whole world is online — most people never see it.

What's New: System Tray & Interactive Map

IPTW has been modernized into a lightweight system tray application:

  • System Tray Icon: Access all features quickly from your OS menu bar.
  • Interactive Map: Click the tray icon to open a beautiful, real-time world map in your browser.
  • Opt-in Wallpaper: By default, IPTW no longer changes your OS wallpaper. You can enable this as an optional feature in the menu.
  • Auto-Start: Easily configure IPTW to start when you log in via the tray menu.

The Story: Escaping the Digital Matrix

The modern internet has a secret geography.

Ninety percent of global web traffic passes through the infrastructure of fewer than ten corporations. Amazon, Google, Cloudflare, Microsoft — invisible highways that funnel the world's information through a handful of data centers in Virginia, Oregon, Ireland, and Singapore. What appears to be a global, open network is, in practice, a tightly controlled distribution system optimized for engagement, profit, and convenience — not truth, diversity, or authenticity.

The result: a News Bubble. A personalized prison of algorithmically curated content that mirrors your existing views, your existing language, your existing culture. You didn't choose to live in it. You were guided there — one recommendation at a time, one autoplay at a time, one "you might also like" at a time.

Somewhere out there right now:

  • A community newspaper in rural Mozambique is reporting on events that will never reach a Western feed
  • A university in Kazakhstan is publishing climate research that doesn't fit the mainstream narrative
  • A local radio station in the Faroe Islands is streaming traditional music no algorithm has ever surfaced to you
  • A neighborhood blog in Myanmar is the only honest record of what's happening in that village today

They are real. They are online. Your computer could reach them right now.

But the Matrix has Agents — the recommendation engines, the CDN overlords, the walled gardens — endlessly recycling you back toward the familiar, the profitable, the safe. Every time you open the same news aggregator, stream from the same platform, search through the same engine, you feed the system that keeps you contained.

IPTW is the red pill.

It doesn't fight the Matrix. It makes it visible. Every country your connections touch gets colored on your map. Every country captured by the same few platforms bleeds into Matrix Rain — cascading green code washing over the regions where you are most imprisoned. Every local voice you find, every independent source you reach, every underrepresented corner of the internet you touch — that is a crack in the wall.

The mission: go further. Find the local newspaper. Tune into the community station. Connect to something real. The algorithm will never show you the way — that's the point.

How It Works: Mapping Your Escape

Your computer is already traveling the world — you just haven't been watching the map.

  • Virtual Travel: Every outbound network connection to a foreign IP is a "visit" to that country. Browse a site, stream a video, load an API — if the server is abroad, you just traveled there.
  • Progressive Country Coloring: Countries evolve as your visits accumulate:
    • 1–9 visits: The country displays its national flag — a fresh destination, still worth exploring
    • 10+ visits: The country "goes boring." Keep visiting it and you enter the Matrix Prison — green Matrix Rain bleeds across those captured countries, a visual alarm that you are stuck in a loop and need to break out
  • Target Countries: The map highlights a random unvisited country with a red border — your next escape objective. Chase it.
  • Interactive Map: Click the tray icon → Show Map to see your travels unfold live, with active connection points pulsing in real time
  • Optional Wallpaper: Enable wallpaper mode and your escape map becomes a personalized, ever-changing desktop — a daily reminder of how far you've traveled, and how far you still have to go

Your Mission: Escape the Matrix

The Matrix isn't defeated by a single breakthrough. It is dismantled country by country, server by server, authentic voice by authentic voice.

🎯 Primary Objectives

  1. Full Liberation: Visit all 195 countries — find internet content hosted in every corner of the world
  2. Continental Breakout: Complete entire continents by finding local hosting outside the major CDNs
  3. Rare Signal Hunter: Find active websites in countries with almost no global hosting presence — the digital frontier the algorithm forgot
  4. News Underground: Discover authentic local newspapers, community bulletins, and independent regional voices
  5. Escape the Triad: Minimize dependency on US, EU, and Chinese mega-platforms — the three pillars of the Matrix

🌍 Field Operations

  • Micro-Nation Signals: Find active web servers in microstates and island nations — places the CDN empire never bothered to reach
  • Minority Frequencies: Connect to servers hosting content in endangered and minority languages — voices the algorithm systematically buries
  • Community Transmissions: Discover local radio streams, independent newspapers, and neighborhood blogs
  • Academic Resistance: Find university and research servers — knowledge that exists outside the paywall and the recommendation engine
  • Sovereign Voices: Access government websites hosted locally — primary sources before the aggregators spin them
  • Memory Keepers: Find sites dedicated to local history, oral tradition, and cultural preservation — things no major platform has any financial incentive to surface

📰 The News Underground

Behind the walls of the algorithmic gatekeepers, a parallel internet of authentic voices is waiting:

  • Hyperlocal Dispatches: Small-town newspapers and community bulletins reporting on the stories no recommendation engine will ever amplify
  • Counter-Narratives: Non-Western perspectives on global events, unfiltered by the editorial choices of a handful of media conglomerates
  • Underrepresented Signals: Media from developing nations and communities that are statistically invisible in mainstream coverage
  • Primary Sources: Government, academic, and institutional websites hosted locally — data before the spin cycle
  • Living Culture: Local entertainment, oral history archives, and cultural networks that exist only because communities chose to build them

⚠️ The Matrix Prison Warning

When your map begins turning green — when the Matrix Rain starts bleeding across the countries you visit too often — the system is sending you a message:

You are stuck. Same platforms. Same voices. Same bubble.

There is only one way out: go further. Find something new. Connect to something real.

Installation & Usage

Download Pre-built Binaries

Latest Release: Download platform-specific binaries from the GitHub Releases page

Platform Support:

  • macOS: iptw-vX.X.X-darwin-amd64.tar.gz (Intel) / iptw-vX.X.X-darwin-arm64.tar.gz (Apple Silicon)
    • Binaries are code-signed to prevent macOS Gatekeeper warnings
  • Linux: iptw-vX.X.X-linux-amd64.tar.gz (x86_64) / iptw-vX.X.X-linux-arm64.tar.gz (ARM64)
  • Windows: iptw-vX.X.X-windows-amd64.zip (x86_64) / iptw-vX.X.X-windows-arm64.zip (ARM64)

macOS Security Notes

  • No Gatekeeper Warnings: All macOS binaries are code-signed to prevent "unidentified developer" warnings
  • First Run: Simply double-click or run from terminal - no additional security steps required
  • Privacy: If you see a network access prompt, allow it for geo-location tracking to work

Cross-Platform Support

IPTW runs natively on macOS, Linux, and Windows with automatic platform detection for network monitoring.

Self-Contained Application

  • No Setup Required: Single executable contains all dependencies
  • No External Downloads: Everything is embedded in the binary
  • Portable: Run from any location without installation
  • Privacy-First: All data processing happens locally on your machine

Quick Start

  1. Download the binary for your platform from Releases.
  2. Extract the archive.
  3. Run iptw to start the system tray application.
  4. Click the Tray Icon and select Show Map to see your journey.
  5. (Optional) Enable Update OS Wallpaper to have the map as your background!

Fastest Traveler Achievement System 🚀

New Feature: Strategic Country Targeting

IPTW now includes a dynamic achievement system that rewards strategic gameplay when dealing with target countries:

How It Works

  • Target Countries: The game automatically selects random unvisited countries as targets (highlighted with red borders)
  • Fastest Traveler Achievement: When you mark a target country as "boring," you earn a unique achievement
  • Immediate Target Rotation: A new target is selected instantly after earning the achievement

Two Ways to Earn

  1. Automatic: Visit a target country 10 times until it becomes boring automatically
  2. Manual: Use the web API to manually mark a target country as boring

API Usage

# Mark the current target country as boring
curl -X POST http://localhost:32782/countries/boring \
  -H "Content-Type: application/json" \
  -d '{"country": "United States"}'

Benefits

  • Strategic Gameplay: Encourages focused targeting of specific countries
  • Unique Achievements: Each country gets its own "Fastest Traveler to [Country]" achievement
  • Dynamic Content: Achievements are created on-the-fly as you play
  • Competitive Element: Race to mark targets before they naturally become boring

Testing

Use the web API to test the new feature:

# Mark the current target country as boring
curl -X POST http://localhost:32782/countries/boring \
  -H "Content-Type: application/json" \
  -d '{"country": "United States"}'

Configuration

IPTW uses a configuration file to customize behavior and positioning. Configuration files are located at:

  • macOS/Linux: ~/.config/iptw/iptwrc
  • Windows: %USERPROFILE%\.config\iptw\iptwrc

The configuration file is automatically created with default values on first run. Common parameters include:

Display Settings

  • map_width: Width of the world map in pixels (default: 1000)
  • auto_detect_screen: Automatically detect screen size (default: true)
  • black: Use dark theme for map colors (default: false)

Game Statistics Positioning

For users with smaller screens where game statistics may be drawn outside the visible area, you can manually position the stats rectangle:

  • stats_x: X position of the game statistics rectangle (default: -1 for auto-positioning)
  • stats_y: Y position of the game statistics rectangle (default: -1 for auto-positioning)

Auto-positioning behavior (when stats_x and stats_y are set to -1):

  • Statistics are positioned in the bottom-left corner with automatic margins
  • Position is calculated as a percentage of screen size for responsiveness

Manual positioning (when stats_x and stats_y are set to specific values):

  • Statistics are positioned exactly at the specified pixel coordinates
  • Values are constrained to keep the rectangle within screen bounds
  • Useful for smaller screens or specific layout preferences

Example configuration for manual positioning:

stats_x 50    # Position stats 50 pixels from left edge
stats_y 100   # Position stats 100 pixels from top edge

Performance Settings

  • update_interval: Seconds between wallpaper updates (default: 1)
  • target_interval: Minutes between target country changes (default: 5)
  • log_level: Logging verbosity: debug, info, warn, error (default: info)

Wallpaper Backup & Restore

IPTW automatically backs up your original desktop wallpaper before making any changes and can restore it when the application exits or on demand.

Automatic Backup & Restore

  • Automatic Backup: On the first wallpaper change, IPTW automatically saves your current wallpaper
  • Graceful Shutdown: When IPTW exits (Ctrl+C or SIGTERM), it automatically restores your original wallpaper
  • Backup Location: Wallpaper backups are stored in ~/.config/iptw/output/ with timestamps

Manual Restore via API

If you need to restore your original wallpaper while IPTW is still running:

# Restore original wallpaper via HTTP API
curl -X POST http://localhost:32782/wallpaper/restore

Response:

{
  "success": true,
  "message": "Original wallpaper restored successfully"
}

Supported Platforms

  • macOS: Full support using AppleScript
  • Linux: GNOME, XFCE, and basic support for other desktop environments
  • Windows: Full support using Windows API

Troubleshooting

  • If backup fails, IPTW will continue running but warn that restore functionality won't be available
  • KDE Linux support is limited - backup may not work perfectly on all KDE configurations
  • Backup files are automatically cleaned up on application restart

Testing

Test the wallpaper backup functionality:

# Run the test script
./scripts/test-wallpaper-backup.sh

Troubleshooting

macOS Issues

"Apple could not verify iptw is free of malware"

  • Solution: This shouldn't happen with recent releases (they're code-signed), but if it does:
    • Use the included helper script: ./scripts/macos-unquarantine.sh
    • Or right-click the binary → "Open" → click "Open" again in the dialog
    • Or run manually: xattr -d com.apple.quarantine /path/to/iptw

Permission Denied

  • Make the binary executable: chmod +x iptw

Linux Issues

Missing shared libraries (AppIndicator / GTK)

If you see an error like:

./iptw: error while loading shared libraries: libayatana-appindicator3.so.1: cannot open shared object file: No such file or directory

Run the included dependency installer script (requires root / sudo):

sudo ./scripts/linux-install-deps.sh ./iptw

The script detects your distro (Fedora, RHEL, Debian/Ubuntu, Arch, openSUSE) and installs the correct packages automatically. Pass the path to the iptw binary as the first argument so it can verify all libraries resolved correctly after installation.

Tray icon not visible on GNOME (Wayland)

Stock GNOME does not ship a StatusNotifierItem host (system tray), so the iptw tray icon will not appear by default. Install the AppIndicator extension to restore it:

After installation, enable the extension and restart GNOME Shell (Alt+F2r on X11, or log out and back in on Wayland), then re-launch iptw. The globe tray icon will appear in the top bar.

Note: The HTTP map UI (http://127.0.0.1:<port>/map.html) works regardless of whether the tray icon is visible — check the terminal output for the exact URL when running with --foreground.

Permission Denied

  • Make the binary executable: chmod +x iptw

Windows Issues

Windows Defender Warning

  • Windows may show a SmartScreen warning for unsigned executables
  • Click "More info" → "Run anyway" if you trust the source
  • Future releases will include Windows code signing

Execution Policy Errors

  • If using PowerShell, you may need: Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

General Issues

Network Monitoring Not Working

  • Ensure the application has network access permissions
  • Some corporate firewalls may block network monitoring
  • Try running with administrator/root privileges if permitted

Wallpaper Not Updating

  • Check file permissions in the config directory
  • Verify your desktop environment is supported
  • Some Linux desktop environments require specific packages

Technical Features

Embedded Resources (No External Dependencies)

  • GeoIP Database: IP geolocation powered by embedded GeoLite2-City database
  • World Map Data: High-quality country boundaries from Natural Earth project
  • Typography: Custom fonts embedded for beautiful status displays
  • Vector Graphics: Crisp rendering at any screen resolution
  • Theme Support: Automatic light/dark theme detection

Network Monitoring

  • Real-time Connection Tracking: Monitors all outbound TCP connections
  • Smart Filtering: Excludes local/private networks, focuses on public internet
  • Protocol Support: TCP and UDP connection monitoring
  • Performance Optimized: Efficient native system calls on each platform

Privacy & Security

  • Local Processing Only: No data sent to external servers
  • No Account Required: Completely anonymous usage
  • No Tracking: Your browsing patterns stay on your device
  • Open Source: Full transparency in data handling

Licenses & Attribution

IPTW incorporates several high-quality open resources. We gratefully acknowledge:

Geographic Data

  • World Map: internal/resources/naturalearth.json
    • Source: Natural Earth
    • License: Public Domain
    • Description: High-quality country boundary data at 1:50m scale
    • Attribution: Made with Natural Earth, free vector and raster map data from naturalearthdata.com

GeoIP Database

  • IP Geolocation: internal/geoip/GeoLite2-City.mmdb.zip
    • Source: MaxMind GeoLite2
    • License: Creative Commons Attribution-ShareAlike 4.0 International License
    • Description: Free IP geolocation database
    • Attribution: This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com

Typography

  • Font Family: internal/resources/Caveat.zip
    • Source: Google Fonts - Caveat
    • License: SIL Open Font License (OFL)
    • Designer: Pablo Impallari
    • Description: Casual handwriting font for friendly, approachable text display

Additional Resources

Flags

  • Source: Flagpedia
  • License: Flag images are in the public domain (exempt from copyright). They are completely free for non-commercial and even commercial use. (https://flagpedia.net/about)
  • Usage: Flag backgrounds are displayed for boring countries (10+ visits) when available

Contributing

We welcome contributions to help make digital exploration more accessible and diverse! Areas where help is needed:

  • Geographic Coverage: Help identify websites hosted in underrepresented countries
  • Cultural Insights: Share knowledge about local internet infrastructure and hosting
  • Language Support: Internationalization and localization efforts
  • Platform Testing: Verification across different operating systems
  • Performance Optimization: Network monitoring efficiency improvements

Development Setup

Prerequisites:

  • Go 1.26.0 or later
  • Git
  • C compiler (for CGO dependencies)

Clone and Build:

git clone https://github.com/techt3/iptw.git
cd iptw
make build

Development Commands:

make help              # Show all available targets
make dev               # Run in development mode
make test              # Run tests
make test-coverage     # Run tests with coverage report
make fmt               # Format code
make lint              # Lint code
make build-all         # Build for all platforms
make package           # Create release packages
make release           # Full release build

Cross-Platform Building: The project includes comprehensive cross-platform build support via Makefile and GitHub Actions:

  • Makefile: Local cross-platform builds for all supported architectures
  • GitHub Actions: Automated builds and releases on every tag push

Supported Build Targets:

  • darwin/amd64 (macOS Intel)
  • darwin/arm64 (macOS Apple Silicon)
  • linux/amd64 (Linux x86_64)
  • windows/amd64 (Windows x86_64)

Build System

GitHub Actions Workflows:

  • build.yml: Main build and release workflow
  • pr.yml: Pull request validation and testing
  • deps.yml: Automated dependency updates

Release Process:

  1. Create a new tag: git tag v1.0.0
  2. Push the tag: git push origin v1.0.0
  3. GitHub Actions automatically builds and creates a release with binaries for all platforms
  4. Release artifacts are available on the GitHub Releases page

Architecture

Network Monitoring:

  • Platform-specific network connection tracking
  • Real-time IP geolocation with embedded GeoLite2 database
  • Efficient connection filtering and processing

Legal Notice

This software is designed for educational and awareness purposes about global internet infrastructure. Users are responsible for complying with all applicable laws and website terms of service in their jurisdiction. IPTW does not modify network traffic or bypass any security measures - it simply visualizes existing connections.

License

This project is licensed under the MIT License. See the LICENSE file for details.

MIT License Summary:

  • ✅ Commercial use
  • ✅ Modification
  • ✅ Distribution
  • ✅ Private use
  • ❌ Liability
  • ❌ Warranty

About

IP Travel Wallpaper transforms your network browsing into a gamified world exploration experience.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors