i just commented in gitlab issue.
please read that comment.
may be we need Gsettings to disable Orca, but I think it should not be used for hour task because we only need to temporarily stop the Orca, not fully disable it.
but there is also the following text in the virt-manager issue:
Like you say, orca finds these keystrokes using atspi, specifically the API pyatspi.Registry.registerKeystrokeListener You are suggesting that when the VM window has grabbed keyboard input then we should disable atspi keygrab on the host.
may we disable that api from the spice gtk but not touch the screen reader itself?
your suggestion is bad by the following reasons:
when user's screen reader is running, it announces the desktop notification popups (which may be sent by software like blueman or network-manager, and by many other applications). if screen reader will be disabled user will be unable to hear such notifications. sometimes this notifications can be very important, for example they may give information about critical battery discharge in laptop.
on thlow (or high loaded) systems screen reader startup time may be considerably long.
if vm interface crash unexpectedly, user will remain with Orca disabled and will not know what hepened.
if you found the way to disable the appropriat api in atspi, it will be the most gracefull solution.
if you are planning to implement your suggestion anyway, please make it easy to disable.
and why we need gsettings to disable Orca?
simple kill/restart variant thims to be quite enough for this.
gsettings will make your changes persistent, which is not acceptable at all because user may get persistently disabled screen reader.
also with your current way of keygrabbing, user's screen reader may be randomly disabled if mouse cursor hovers to the vm window.
this is unacceptable too.
thank you, but solution that you suggest is not very well.
gsettings solution may not work in this environments.
and if you will use gsettings, user will lose speech output if system shuts down unexpectedly when orca is disabled.
if you want to use this way, you should simply kill Orca by command like this: killall orca and restart it afterwards.
but in general it is not good idea to fully shut down the screen reader.
it's better to simply prevent it from capturing any keyboard keys when keyboard is grepped.
as I remember, in virt-manager bug developer explained how this may be done
virtualbox, for example, does not have this issue.
and of corse we don't need any guest integration for this
thank you for your reaction.
hello
to interact with the computer, visually impaired users use special programs called screen readers.
in Linux the Orca screen reader is usually used.
to provide some features, screen reader greps some keyboard keys and combinations (for example, all keys on the numpad block are usually remapped).
if you will run any vm (I used virt-manager for this) with screen reader enabled, and grep the keyboard, you will found that allmost all system key combinations are captured, but the screen reader's combinations are not grepped.
as a result of this, you can't use screen reader key combinations in a guest vm, and all typed letters are spoken 2 times: by the host screen reader and by the screen reader of the guest system.
I may disable host screen reader when I work in the vm, but it is very inconvenient.
the following github issue in virt-manager can give you more information, including explanation why it happens and how to fix it.
yes, I mean this. in windows, all virtualizers and remote desktop solutions work by such way, and VirtualBox in linux too.
hello
I'm working in linux and using screen reader software named Orca.
it uses the atspi api to get accessibility information from all running applications.
but screen reader also needs to grep some key combinations, for example at most all keys from the numpad are reassigned. but it can't do this by usual ways because it is not current window or window manager, it is only background application. it uses atspi api for this too. it tells running application what keys should be grapped and this application sends such keys to the accessibility client. as I know, in gtk this is done by the special module.
so, when I grep keys in a running vm in virt-manager, all system wide combinations are grapped, but screenreader's are not.
in all other vm toolkits which I know (VmWare, virtualbox) it works as expected, grapping all keys.
more details can be found hear: https://github.com/virt-manager/virt-manager/issues/206