Open nnako opened 1 year ago
Hi, @nnako Thanks for your interest, I'm thrilled to join forces with you. I read your idea and it seemed like some application-aware automation to me, it is not supported at this point but totally possible from what I can tell, actually, It is in my mind as well. I haven't got to it yet because I have other priorities:
Hi @klesh . Great news.
I've superficially looked into your code base and would like to help integrate anything I had so far into it. Looks very structured to me. Worth using as a base. Unfortunately, I am not so strong concerning the implementation of native connections to the underlying operating system (handling interrupts, events, ... especially on Windows), yet. So, I would be happy if you could point me to valuable sources of information or provide some more structural diagrams of your own code (like how the different modules are related to each other, what happens where, ...). All would help me to faster get on track within your code.
Would this be a possibility? What do you think?
@nnako Yes, it is possible, but I don't have any diagrams at this point. I could try to draw some when I have time. Maybe I could give you a brief based on what you are trying to do.
jmk
is handling the keyboard and mouse event, the main idea is to intercept the Low-Level Input Events from the OS, and produce a set of new Input Events to the OS or call given python function. it is designed as a set of state machines:
w32
wraps all needed win32 APIs into Python functions, so it will be helpful if you need to know what Application is currently activated.Based on my understanding of your objective. I suggest that we should add a new state machine into the jmk
module that can remember what has been entered for an app and trigger the given function accordingly. jmk.seq
sth like that.
Hi,
first of all: AMAZING work you did!!!
I just stumbled across your project, today. And as I myself started writing a very much related application, a couple of years ago, I was wondering if there were possibilities of joining forces for higher goals ;-) .
My goal is to provide an application which runs in the Windows OS'es background (like yours) and listens for key presses (mouse clicking would not be highest priority). The main goal of the application would be to provide the following features to its users:
<ALT> + <TAB>
, ...):w
to save a document in MS WORD. So, translated into<CTRL> + <S>
when MS WORD is active window)For all this, I need a "crisp" and reliable keyboard interface on the lowest layer:
100% stable keyboard interface, see https://github.com/klesh/JigsawWM/issues/4
100% stateless operation Even when pressing the weirdest key combinations in any humanly possible sequence and typing speed, I would want to have a clear and clean status whenever I switch from one application to the next one. No hanging control keys, no hidden state influencing the current key sequences for the current application. Hanging control keys I have encountered in Python's
keyboard
module. Which disqualifies the usage of that great library for the intended purpose.100% stable switching between applications, see https://github.com/klesh/JigsawWM/issues/5