Hi Anders, what about using an easier hotkey combo. Personally I use alt-z
to toggle  zoom  (just set it as a hotkey for gnome's inbuilt desktop zoom
found in the keyboard hotkey section). Alternatively, in the extension
you're writing, you can use Alt-z/Super-z for zoom in/out. The keys are
right next to each other, making them alot easier to press than
shift-alt-a.

On 5 January 2018 at 07:00, <gnome-shell-list-requ...@gnome.org> wrote:

>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Thu, 4 Jan 2018 15:14:33 +0100
> From: Anders Rillbert <anders.rillb...@kutso.se>
> To: gnome-shell-list@gnome.org
> Subject: Globally grab mousewheel scroll events
> Message-ID:
>         <CAB2t-4x8jBxodbpsO3QCVrc0XiQ1ORtMGcUFL0R=
> vk_5zp_...@mail.gmail.com>
> Content-Type: text/plain; charset="utf-8"
>
> Hi.
>
> Being a visually impaired coder, a 'killer feature' for me is the ability
> to zoom the desktop in/out using the mouse wheel together with a modifier
> key such as <shift>, <ctrl> or similar. This functionality is supported by
> the 'Enhanced Desktop Zoom' feature in compiz-based desktops and by OSX
> out-of-the box (not in Windows however...).
>
> Currently this is not supported in a gnome-shell/wayland environment such
> as Ubuntu 17.10 so I thought I might take a stab at implementing this. I am
> however completely new to the whole gnome ecosystem so I have spent a
> couple of days trying to read-up on relevant concepts such as Wayland,
> Clutter, Mutter, Gjs, gnome-shell, etc.
>
> The main technical problem seems to be how to globally grab the
> Clutter.EventType.SCROLL events when a modifier key is pressed and I would
> be thankful for all help and pointers to the best way to accomplish this
> (if possible).
>
> My research so far seems to indicate the following:
>
> 1. There is a gnome-shell extension written in Vala by Tobias Quinn (
> https://github.com/tobiasquinn/gnome-shell-mousewheel-zoom) that
> accomplishes what I want but as I understand it, it requires gnome-shell to
> run under X and not Wayland.
> 2. It is possible to globally grab key combinations from within a
> gnome-shell extension using the 'accelerator-activated' signal like this:
>  global.display.connect('accelerator-activated',...
> (see
> https://stackoverflow.com/questions/12325405/gnome-
> shell-extension-key-binding#42466781
> for the source of this)
> 3. I have not succeeded in receiving scroll events when connecting to the
> 'scroll-event' or 'captured-event' signals on 'high-level' actors such as
> global.stage or Main.layoutManager.uiGroup. My guess is that the scroll
> events are routed directly to the actor under the mouse cursor and
> swallowed by them, thus not propagated upwards in the scene graph.
> 4. The Magnifier included in the gnome-shell uses a number of 'special'
> techniques to accomplish its task
>   - to follow the mouse it gets hold of a 'CursorTracker' that Mutter
> provides. (in src/meta/meta-cursor-tracker.h) but the CursorTracker only
> seems to care about pointer position and not about scroll events.
>   - to register global listeners for 'focus change' and 'caret change' it
> uses the Atspi library but I haven't had the time to try to see if this
> library also supports a global listener for scroll events.
>
> The best hypothesis I have come up with so far is to emulate the behaviour
> of the SwitcherPopup and write a gnome-shell extension that:
>  - globally captures a key combination
>  - implement an invisible actor that covers the whole screen and 'pops up'
> when the key combination above is captured (and destroyed when the keys are
> released).
>  - use the scroll-events that are received by the invisible actor to change
> the magnification factor for the magnifier in 'real time'.
>
> If the above would work, a draw-back would be that I can't just press
> <shift> and scroll but have to press a valid accelerator combo (e.g.
> <ctrl>+<shift>+'a' or similar) which would make it less ergonomical and
> swift.
>
> So, any ideas about how to accomplish a global grab of mousewheel scroll
> together with a single modifier key?
>
> Regards
> /Anders
> -------------- next part --------------
> An HTML attachment was scrubbed...
> URL: <https://mail.gnome.org/archives/gnome-shell-list/
> attachments/20180104/ed50b7c9/attachment.html>
>
> ------------------------------
>
>
_______________________________________________
gnome-shell-list mailing list
gnome-shell-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gnome-shell-list

Reply via email to