geetCORD

geetRPCS - discord-rpc, rich-presence, custom-rpc

by
Automatically display your activity on Discord with geetRPCS. Supports 50+ apps like FL Studio and Chrome. Lightweight, open-source, and packed with features!

Add a comment

Replies

Best
geetCORD
Maker
📌
Discord Rich Presence should work for everything, not just games and apps that bothered to integrate it. I wanted a universal way to show what I'm actually doing across my entire desktop, browsers, editors, creative tools, without manual intervention or app-specific plugins. The Problem: Discord's Rich Presence system requires individual app integration. Most applications don't have it, and even fewer do it well. Manually updating status or using multiple disjointed tools was tedious. The Solution: A centralized, intelligent switcher that automatically detects foreground windows and processes, then updates Discord presence dynamically. Hybrid detection, combining Win32 event hooks with polling, makes it fast without eating resources. How the Approach Evolved: 1. Started Simple: Basic Discord RPC client that switched between a few hardcoded apps. The core was just detecting foreground windows and updating presence. 2. Grew into a System: The [TaskbarWatcher Service](Services/TaskbarWatcher.cs) was the breakthrough, using Win32 event hooks for near-instant window switch detection instead of just polling. This eliminated lag and battery drain. 3. Centralized Configuration: Moved from hardcoded apps to a JSON-based app database ([apps.json](apps.json)) managed by [AppConfigManager](Services/AppConfigManager.cs). This made it extensible, adding new apps became a config edit, not a code change. 4. Feature Creep (The Good Kind): - Added [GlobalHotkey](Services/GlobalHotkey.cs) support for pause/preview on the fly - Built a [TrayIconAnimator](Services/TrayIconAnimator.cs) for visual feedback - Created [NarrativeService](Services/NarrativeService.cs) for dynamic witty texts and placeholders - Implemented [UpdateChecker](Services/UpdateChecker.cs) and [UpdateDownloader](Services/UpdateDownloader.cs) for silent updates - Added [LanguageManager](Services/LanguageManager.cs) for 23+ languages 5. Performance Obsession: Every iteration focused on lowering memory footprint (now 5-30MB) and eliminating input lag. The main loop in [Program.cs](Program.cs) is optimized with async I/O and careful locking. The launch process evolved from a personal script to a production-ready tool with installers, documentation, and auto-update. The architecture shows the evolution: what started as a monolithic Program.cs is now a modular system with Services, Models, and UI layers.