Releases: elJulioDev/KeyForge
v1.4.0
Update System & Professional Startup
This release transforms KeyForge into a self-sustaining application with the introduction of an Automatic Update System, a polished Splash Screen experience, and a professional-grade Logging Infrastructure.
New Features
- Auto-Update System: KeyForge now intelligently checks for new releases via the GitHub API. It utilizes semantic versioning (via
packaging) to accurately notify you when a new update is available and directs you to the download page. - Dynamic Splash Screen: A new, theme-aware startup screen provides visual feedback while the application initializes. It adapts automatically to your selected theme (Light/Dark) and displays real-time loading progress (Scanning system, Loading rules, etc.).
- Robust Application Restart: Changing languages or themes now triggers a "hard restart" (process re-execution). This ensures a completely clean state for the new settings, eliminating potential memory glitches or UI artifacts.
Technical & Core Improvements
-
Professional Logging System: A new
KeyForgeLoggersingleton has been implemented.-
Rotating Logs: Automatically manages log files (max 5MB, keeps last 3 files) to prevent disk clutter.
-
Console Output: Color-coded console logs for easier debugging during development.
-
Error Analysis: Captures critical errors and stack traces in
AppData/Local/KeyForge/logs(Windows) or equivalent paths on Linux/Mac.
-
-
Startup Optimization: The initialization logic in
main_window.pyhas been decoupled. Heavy tasks (like scanning windows and loading rules) are now threaded effectively behind the Splash Screen, preventing the "application not responding" ghosting effect during launch.
Dependency Updates
- Added
requests>=2.31.0(For API communication). - Added
packaging>=23.0(For version comparison). - Updated
pywin32requirement.
v1.3.3
Performance Boost & Visual Consistency
This release focuses on refining the user experience by synchronizing themes across all window modes and significantly optimizing the application's startup process for better efficiency.
Visual Enhancements
- Themed Minimized Mode: The floating widget now fully inherits the active theme's color palette. It dynamically adapts its background and accent colors to match the selected theme, ensuring visual consistency whether the app is open or minimized.
- Cleaner Interface: Removed decorative emojis from various UI text elements to provide a more polished, professional, and readable interface throughout the dashboard.
Technical Details
- Startup Optimization: Refactored the initialization logic for global constants and the
AppMonitormodule. This streamlines the boot process, resulting in a faster and more efficient application launch.
v1.3.2
Accessibility & Personalization Hub
This release introduces a dedicated configuration center for accessibility, allowing users to seamlessly customize their experience with language and theme preferences, supported by intelligent application handling.
New Features
- Accessibility Tab: A new dedicated tab has been added to the main interface (
Accessibility), providing a centralized location to manage application preferences. - Theme & Language Selector: Users can now switch between available languages and visual themes directly from the GUI without editing configuration files manually.
- Auto-Restart System: Implemented an automated restart logic that triggers immediately after applying new settings. This ensures that language strings and theme resources are reloaded correctly across the entire application without requiring a manual restart.
UI/UX Improvements
- Immediate Feedback: The application now handles the state transition gracefully when settings are changed, closing the current instance and launching a fresh one with the updated configuration.
- Simplified Navigation: The settings have been decoupled from the main logic, making the interface cleaner and more intuitive for first-time users.
Technical Details
- New Module: Introduced
src/gui/accessibility_settings.pyto handle the rendering and logic of the new settings interface. - Config Management: Updated the configuration loader to write changes to
config.jsonsynchronously before triggering the restart process.
v1.3.1
Interactive Widget & Visual Feedback
This release focuses on enhancing the usability of the minimized mode, allowing for faster control without interrupting your workflow, along with essential library updates.
New Features
- Quick Toggle (Right-Click): The floating widget now supports a right-click action to instantly Activate or Stop the script. You no longer need to restore the main window to toggle remapping rules.
- Real-Time Visual Feedback: The minimized icon now dynamically updates its color (Neon Green for Active, Grey for Stopped) immediately when the state changes, regardless of whether it was triggered via the widget, global hotkeys, or the main interface.
Maintenance
- Dependency Update: Upgraded
ttkbootstrapto version 1.19.0+ to ensure compatibility with the latest visual rendering improvements and fix potential display issues. - Code Optimization: Refactored the state synchronization logic between the main window and the minimized widget to ensure visual consistency without unnecessary redraws.
v1.3.0
New Features and Core Updates
This major release completely overhauls the core architecture to support multiple simultaneous rules and introduces a modern, tabbed interface.
Multi-Rule Engine
- Unlimited Remapping: The core logic has been rewritten to support a list of simultaneous rules. You can now map multiple keys at the same time (e.g.,
Q→TabandAlt→Shift) without conflict. - Rules Manager: A new dedicated interface allows for easy management (Add, Edit, Delete) of your remapping rules via a clean table view.
Performance & Stability
- Zero-Latency Monitoring: Replaced the old polling mechanism with a native WinEventHook. The application now consumes 0% CPU while idle and reacts instantly to window focus changes.
- Recursion Protection: Implemented a safety algorithm (Graph DFS) that detects circular dependencies (e.g., A→B and B→A) and prevents the script from locking up the keyboard.
UI/UX Improvements
- Tabbed Interface: The main window has been reorganized into a tabbed structure (Dashboard & Rules), improving organization and saving screen space.
- Dynamic Sizing: Windows now automatically calculate and adjust their size based on content and language, ensuring text is never cut off.
- Smart Floating Widget: The minimized overlay now features a live status indicator (Green/Grey) and automatically centers itself on the screen.
v1.2.1
Technical Changes and Improvements
This version focuses on system stability, thread safety, and proper file management during application compilation.
Bug Fixes
-
Thread Safety in Tkinter: A critical issue where keyboard callbacks attempted to update the graphical interface from a secondary thread has been resolved.
.after()is now used to safely dispatch updates to the main thread, preventing unexpected crashes. -
Path Detection (PyInstaller): The logic in
constants.pyhas been rewritten to correctly detect whether the application is running from source code or as a frozen executable (sys.frozen). -
Configuration files are now persistently saved in
AppData(Windows) or.config(Linux) instead of temporary folders.
Robustness
- Permission Handling: Robust
try-exceptblocks have been added whenkeyboard.hookis initialized. The application now correctly handles the lack of administrator/root permissions instead of abruptly closing and reporting the error to the console.
v1.2.0
New Features:
- Modular architecture with separated concerns
- Centralized version management
- Improved code maintainability
Improvements:
- Code split into ~1200 lines across 14 files
- Better separation of business logic and UI
- Enhanced code readability and testability
Structure:
- src/config/: Configuration management
- src/core/: Business logic (keyboard and app monitoring)
- src/gui/: User interface components
- src/utils/: Helper utilities
Compatibility:
- Maintains all original functionality
- Same user interface and behavior
- Backward compatible with existing config files
v1.1.3
Add translation support for common keys window
- Internationalized show_common_keys() function
- Added new translation keys to lang.json (es/en)
- All window content now uses centralized translation system
v1.1.2
New Features
- Added multi-language support (Spanish/English) with data/lang.json
- The application dynamically loads all interface text based on the lang value in
v1.1.1
KeyForge v1.1.1 - UI Overhaul
New Features
- Borderless Window Design: Custom window without system title bar for a modern, professional look
- Draggable Window: Click and drag the header to move the window anywhere on screen
- Optimized Layout: Window dimensions adjusted to 750x850px for perfect screen fit
Bug Fixes
- Fixed common keys window appearing behind main window
- Proper modal window behavior with
transient()andgrab_set()
Technical Details
- Added
start_window_drag()anddrag_window()functions for window movement - Implemented
overrideredirect(True)for borderless design - Modified
show_common_keys()with proper window stacking attributes - Updated header frame to support drag functionality