Releases: haithium/hyprkan
Releases · haithium/hyprkan
v2.2.0
v2.1.0
v2.0.0
⚠️ Important Changes
Refactored Config Structure:
- Removed top-level
base,exec, andrulesfields. - Config now consists of a flat list of rules.
Important
Ensure your existing config file are updated to match the new structure to avoid runtime errors.
See: docs/config
Added
- X11 support: Hyprkan now monitors window focus changes using the
python-xliblibrary to fetch active window class and title. - Sway support: Integrated via
i3ipc-pythonfor window focus events and active window info. - New CLI option to list all Kanata-defined layer names, now working correctly thanks to a TCP response fix in Kanata 1.8.1.
- Validation: Ensures layers defined in the Hyprkan config file exist in the Kanata configuration.
- Signal handling: Proper handling added to gracefully terminate the script on exit.
- New options:
fake-key,set-mouse,change-layer,layers,current-window-info,current-layer-name, andcurrent-layer-info - Testing: Added basic pytest-based test coverage.
- New Rule Actions:
cmd: Run a shell command when the rule matches.fake_key: Trigger a virtual key actionset_mouse: Move the mouse to specified coordinates
Changed
- Hyprland behavior: Now listens only to
activewindow>>events, reducing noise and avoiding duplicate logs. This ensures correct layer switching when the focused window changes (e.g., title updates), while ignoring unrelated events. - Kanata client: Now maintains a persistent TCP connection instead of reconnecting on every window focus event.
- Codebase: Refactored and reorganized for improved readability and maintainability.
- Logging: Improved clarity and consistency across all output.
Removed
- Dependencies: socat is no longer required — resolving a FileNotFoundError (see issue #2).
- Code: Removed unused or unnecessary logic for a cleaner codebase.