[openbox] A little direction requested = triggering action from overall window input events

Parke parke.nexus at gmail.com
Fri Jun 22 13:32:16 EDT 2018


On Fri, Jun 22, 2018 at 7:51 AM, Jay Lawrence <jayjlawrence70 at gmail.com> wrote:
> The use case is we have Chrome running under OpenBox and the app is deployed to a public setting running full screen on a touch screen device. I want to create a “special tap sequence" that will trigger an action … a different app will open over top of Chrome  to provide admin functions. (pass code protected of course).
>
> The “special tap sequence” could be 2 tap/click upper left, 1 tap’click lower right, and 2 tap/click lower left all within 10 seconds time. Then a new app would start,  over top of Chrome with its first function to require the entry of the unlock code. Then it does stuff like reboot, shutdown, status info, etc.
>
> What I’d like to know is what part of the X / Window Manager environment  would I look to to implement this. I expect that the Window Manager is processing all X input events and then forwarding the relevant events to the underlying app like chrome. Is there some way to implement my feature in OpenBox?
>
> Or do I look for a “click/tap jacking” app that will run over top of Chrome and it will implement my trigger and action.
>
> Maybe this app exists and I just need to install/config it. I’m at a loss for keywords to search with.
>
> In any event, I want to avoid implementing in the Chrome environment because if Chrome fails to start I still need to have this admin feature available.
>
> Any direction is appreciated.

Hello, Jay,

If you can write Python, you might want to look at the Python XLib libary.

https://github.com/python-xlib/python-xlib

Specifically:

https://github.com/python-xlib/python-xlib/blob/master/examples/xinput.py

It is possible, via C (and possibly also via Python?), to monitor all
X events *without* intercepting (i.e. consuming/blocking) them.  I
forget the exact API that allows you to do this.  It might be the
XTEST extension to X windows.  (Or maybe XRECORD?)  I have written a
C++ program that does extensive monitoring of X key press events.  I
don't have access to the source code right now, but I should be able
to look at it later today.  I would expect monitoring of mouse and
touch events to be very similar.  At some point I switched from Python
to C++ because the Python libraries did not expose all the X Windows
APIs that I needed.

Some of my older Python scripts, from back before I switched to C++,
might be a better template for you to start from than the above linked
xinput.py.  Like my C++ source code, I don't have access to it right
now, but I should later today.

Cheers,

Parke


More information about the openbox mailing list