How to use virtual/on-screen keyboard in Xmonad

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
10 messages Options
Reply | Threaded
Open this post in threaded view
|

How to use virtual/on-screen keyboard in Xmonad

Jakob Schöttl
Hello,

I would like to use Xmonad to set up a custom, very restricted desktop
environment on a Raspberry Pi with a touch screen.

Because there is no hardware keyboard I need a virtual keyboard. I tried
these programs: xvkbd, matchbox-keyboard, onboard, florence

Some of them work with some other programs. But when it works, it's
still buggy:

- after typing I have to click two times to a new input field to set focus
- virtual keyboard steals focus
- other windows get invisible and only come back when they get focus
(super+j)
- doesn't work at all with some programs

Is there a way to get virtual keyboards work with Xmonad, reliably and
for all programs?

Thank you!

Jakob

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Bogdan Sinitsyn
On Thursday, December 31, 2015 3:09:29 PM MSK Jakob Schöttl wrote:

> Hello,
>
> I would like to use Xmonad to set up a custom, very restricted desktop
> environment on a Raspberry Pi with a touch screen.
>
> Because there is no hardware keyboard I need a virtual keyboard. I tried
> these programs: xvkbd, matchbox-keyboard, onboard, florence
>
> Some of them work with some other programs. But when it works, it's
> still buggy:
>
> - after typing I have to click two times to a new input field to set focus
> - virtual keyboard steals focus
> - other windows get invisible and only come back when they get focus
> (super+j)
> - doesn't work at all with some programs
>
> Is there a way to get virtual keyboards work with Xmonad, reliably and
> for all programs?
>
> Thank you!
>
> Jakob
>
> _______________________________________________
> xmonad mailing list
> [hidden email]
> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
It this virtual keyboard _NET_WM_WINDOW_TYPE_DOCK or smth like this? If not,
it may be useful to make it be of this type.

--
Bogdan Sinitsyn
_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Jakob Schöttl
On 31.12.2015 15:25, Bogdan Sinitsyn wrote:

> On Thursday, December 31, 2015 3:09:29 PM MSK Jakob Schöttl wrote:
>> Because there is no hardware keyboard I need a virtual keyboard. I tried
>> these programs: xvkbd, matchbox-keyboard, onboard, florence
>>
>> Some of them work with some other programs. But when it works, it's
>> still buggy:
>>
>> - after typing I have to click two times to a new input field to set focus
>> - virtual keyboard steals focus
>> - other windows get invisible and only come back when they get focus
>> (super+j)
>> - doesn't work at all with some programs
>>
>> Is there a way to get virtual keyboards work with Xmonad, reliably and
>> for all programs?
>>
>> Thank you!
>>
>> Jakob
>>
>> _______________________________________________
>> xmonad mailing list
>> [hidden email]
>> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
> It this virtual keyboard _NET_WM_WINDOW_TYPE_DOCK or smth like this? If not,
> it may be useful to make it be of this type.
No, at least florence and onboard are not (xprop | grep DOCK).

What is this property and how can I set it?
_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Brandon Allbery
On Thu, Dec 31, 2015 at 10:36 PM, Jakob Schöttl <[hidden email]> wrote:
On 31.12.2015 15:25, Bogdan Sinitsyn wrote:
On Thursday, December 31, 2015 3:09:29 PM MSK Jakob Schöttl wrote:
Because there is no hardware keyboard I need a virtual keyboard. I tried
these programs: xvkbd, matchbox-keyboard, onboard, florence

Some of them work with some other programs. But when it works, it's
still buggy:

- after typing I have to click two times to a new input field to set focus
- virtual keyboard steals focus
- other windows get invisible and only come back when they get focus
(super+j)
- doesn't work at all with some programs

Is there a way to get virtual keyboards work with Xmonad, reliably and
for all programs?

Thank you!

Jakob

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
It this virtual keyboard _NET_WM_WINDOW_TYPE_DOCK or smth like this? If not,
it may be useful to make it be of this type.
No, at least florence and onboard are not (xprop | grep DOCK).

What is this property and how can I set it?

You probably can't set it, at least early enough for it to matter.
http://standards.freedesktop.org/wm-spec/latest/ar01s05.html#idm139870830002400

You could however look for other properties in xprop output (probably you wan WM_CLASS) and doIgnore it in the ManageHook so it won't take focus and will float.

Do the programs where it doesn't work under xmonad, work with it under another window manager? X11 actually makes this hard to do, for security reasons. xvkbd probably uses sendEvents, which some programs ignore as potential security issues (they are flagged by the X server as synthetic). If you enable the XTest extension and use a virtual keyboard that supports XTest, it will work reliably... but you've opened a bit of a security hole in the X server since now malicious programs can do things like injecting commands into a terminal with a root shell in it. (xmonad has no control whatsoever over this, it is the X server that controls it.)

--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Paul Fertser
In reply to this post by Jakob Schöttl
On Thu, Dec 31, 2015 at 03:09:29PM -0800, Jakob Schöttl wrote:
> Because there is no hardware keyboard I need a virtual keyboard. I tried
> these programs: xvkbd, matchbox-keyboard, onboard, florence

I can tell you that I'm very satisfied with xvkbd and Xmonad on my
smartphone.

Please see http://paste.debian.net/359010/ (as gitorious.org still
hasn't migrated the repositories to web archive...).

> Some of them work with some other programs. But when it works, it's still
> buggy:

I didn't notice any issues with the apps I use with this config.

--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:[hidden email]
_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Bogdan Sinitsyn
In reply to this post by Brandon Allbery
On Thursday, December 31, 2015 10:44:11 PM MSK Brandon Allbery wrote:

> On Thu, Dec 31, 2015 at 10:36 PM, Jakob Schöttl <[hidden email]> wrote:
> > On 31.12.2015 15:25, Bogdan Sinitsyn wrote:
> >> On Thursday, December 31, 2015 3:09:29 PM MSK Jakob Schöttl wrote:
> >>> Because there is no hardware keyboard I need a virtual keyboard. I tried
> >>> these programs: xvkbd, matchbox-keyboard, onboard, florence
> >>>
> >>> Some of them work with some other programs. But when it works, it's
> >>> still buggy:
> >>>
> >>> - after typing I have to click two times to a new input field to set
> >>> focus
> >>> - virtual keyboard steals focus
> >>> - other windows get invisible and only come back when they get focus
> >>> (super+j)
> >>> - doesn't work at all with some programs
> >>>
> >>> Is there a way to get virtual keyboards work with Xmonad, reliably and
> >>> for all programs?
> >>>
> >>> Thank you!
> >>>
> >>> Jakob
> >>>
> >>> _______________________________________________
> >>> xmonad mailing list
> >>> [hidden email]
> >>> http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
> >>
> >> It this virtual keyboard _NET_WM_WINDOW_TYPE_DOCK or smth like this? If
> >> not,
> >> it may be useful to make it be of this type.
> >
> > No, at least florence and onboard are not (xprop | grep DOCK).
> >
> > What is this property and how can I set it?
>
> You probably can't set it, at least early enough for it to matter.
> http://standards.freedesktop.org/wm-spec/latest/ar01s05.html#idm139870830002
> 400
>
> You could however look for other properties in xprop output (probably you
> wan WM_CLASS) and doIgnore it in the ManageHook so it won't take focus and
> will float.
>
> Do the programs where it doesn't work under xmonad, work with it under
> another window manager? X11 actually makes this hard to do, for security
> reasons. xvkbd probably uses sendEvents, which some programs ignore as
> potential security issues (they are flagged by the X server as synthetic).
> If you enable the XTest extension and use a virtual keyboard that supports
> XTest, it will work reliably... but you've opened a bit of a security hole
> in the X server since now malicious programs can do things like injecting
> commands into a terminal with a root shell in it. (xmonad has no control
> whatsoever over this, it is the X server that controls it.)
If it's just ignored, it theoretically could be overlapped by some new
windows. But if xmonad thinks it's strut(it doesn't have to be of the dock
type for this), it wouldn't be overlapped. Another solution is to make it
always stay on top of other windows, but I don't know how to do it with xmonad
if it's ignored.

--
Bogdan Sinitsyn
_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Brandon Allbery
On Fri, Jan 1, 2016 at 5:22 AM, Bogdan Sinitsyn <[hidden email]> wrote:
If it's just ignored, it theoretically could be overlapped by some new
windows. But if xmonad thinks it's strut(it doesn't have to be of the dock
type for this), it wouldn't be overlapped. Another solution is to make it
always stay on top of other windows, but I don't know how to do it with xmonad
if it's ignored.

Only floating windows would overlap it; tiled windows would go below it. I don't think this would be too much of a problem in practice though. (Partly because floating windows are badly behaved anyway --- note that the strut is only applied to tiled windows!) 

--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Jakob Schöttl
In reply to this post by Paul Fertser

On 31.12.2015 22:37, Paul Fertser wrote:

> On Thu, Dec 31, 2015 at 03:09:29PM -0800, Jakob Schöttl wrote:
>> Because there is no hardware keyboard I need a virtual keyboard. I tried
>> these programs: xvkbd, matchbox-keyboard, onboard, florence
> I can tell you that I'm very satisfied with xvkbd and Xmonad on my
> smartphone.
>
> Please see http://paste.debian.net/359010/ (as gitorious.org still
> hasn't migrated the repositories to web archive...).
>
>> Some of them work with some other programs. But when it works, it's still
>> buggy:
> I didn't notice any issues with the apps I use with this config.
Thanks for sharing your config! I just tried xvkbd. When ignored it
works with all my other programs! (On system, it can only be launched
with a terminal and not with dmenu.)

I just have to position it somehow. At the moment it's at 0/0.


_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Brandon Allbery
On Fri, Jan 1, 2016 at 10:49 PM, Jakob Schöttl <[hidden email]> wrote:
I just have to position it somehow. At the moment it's at 0/0.

Look for a -geometry parameter, or possibly specify one in .Xresources. You probably can't position it within xmonad, at least not sanely.

--
brandon s allbery kf8nh                               sine nomine associates
[hidden email]                                  [hidden email]
unix, openafs, kerberos, infrastructure, xmonad        http://sinenomine.net

_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad
Reply | Threaded
Open this post in threaded view
|

Re: How to use virtual/on-screen keyboard in Xmonad

Paul Fertser
On Fri, Jan 01, 2016 at 10:50:51PM -0500, Brandon Allbery wrote:
> On Fri, Jan 1, 2016 at 10:49 PM, Jakob Schöttl <[1][hidden email]> wrote:
>
>   I just have to position it somehow. At the moment it's at 0/0.
>
> Look for a -geometry parameter, or possibly specify one in .Xresources. You
> probably can't position it within xmonad, at least not sanely.

Yes, I just have

xvkbd.windowGeometry: 480x200+0+440
xvkbd.compact: true

And as you might have noticed, I do not stop it when I need screen
space, I just let Xmonad cover it, and once I need the keyboard, I
press a hardware button to reveal it back.

--
Be free, use free (http://www.gnu.org/philosophy/free-sw.html) software!
mailto:[hidden email]
_______________________________________________
xmonad mailing list
[hidden email]
http://mail.haskell.org/cgi-bin/mailman/listinfo/xmonad