asmvik / asmvik/skhd

Potential internal restructuring

Open
#142 6 comments 5 reactions 0 assignees View on GitHub
enhancement
Dominant language
C
Stars
8.1k
Forks
241
PR merge metrics
No merged PRs in 30d

Description

I have had the following thoughts for some time now, and am debating whether I should do the changes listed below:

- Implement support to differentiate between commands that run on key-down, repeat, and release events.
- Implement mouse-down, up events.
- Add IPC mechanism to query current state and/or all state. This includes current available hotkeys (based on the active mode), or all modes with the hotkeys they provide. Probably json output for best integration with external tools.
- Utilize above IPC mechanism to synthesize hotkeys so that we don't need to take the overhead of process startup to simply synthesize a key. This will also allow the option to pass some kind of flag that makes skhd *not capture* the event it posted, so that key-remapping becomes more feasible than it currently is.
- I want to revise the syntax used to define hotkeys.

This might end up with me just starting from scratch and replacing the current files in the repo with a new version, eventually, as the planned changes pretty much call for a complete rewrite. The plan is to persist all current features somehow, but the syntax is probably going to be somewhat different.

Contributor guide

No contributing guide indexed for this repository

Research direction

Review the current hotkey event handling, command syntax, and process or IPC entry points before choosing a direction. The issue proposes event differentiation, mouse events, state-query IPC, synthesized hotkeys, and revised syntax, while preserving existing features; done would require an agreed design and a complete rewrite or restructuring implementing that scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, macos
Domain
cli, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.