keyboard does not show up on xenial

Bug #1572653 reported by Daniel Holz
24
This bug affects 4 people
Affects Status Importance Assigned to Milestone
ubuntu-keyboard (Ubuntu)
Fix Released
Critical
Michael Sheldon

Bug Description

Expected behaviour:

Install ubuntu-keyboard, run maliit-server, click on place to enter text -> keyboard shows up.

What happens:

Running maliit-server after installing ubuntu-keyboard-english in terminal shows following error:

WARNING: void MIMPluginManagerPrivate::_q_setActiveSubView(const QString&, Maliit::HandlerState) "libubuntu-keyboard-plugin.so" "en" is not enabled

Clicking on fields for entering text, does not cause the keyboard to show up.

What I tried so far:

export QT_IM_MODULE=Maliit
export GTK_IM_MODULE=Maliit

and

gconftool-2 -s --type list --list-type string /maliit/onscreen/enabled "[llibubuntu-keyboard-plugin.so,en_gb]"
gconftool-2 -s --type list --list-type string /maliit/onscreen/active "[libubuntu-keyboard-plugin.so,en_gb]"

according to

https://github.com/maliit/framework

and

https://github.com/maliit/plugins

but it still won't show up.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: ubuntu-keyboard 0.99.trunk.phablet2+16.04.20160226.1-0ubuntu1
ProcVersionSignature: Ubuntu 4.4.0-21.37-generic 4.4.6
Uname: Linux 4.4.0-21-generic x86_64
ApportVersion: 2.20.1-0ubuntu2
Architecture: amd64
CurrentDesktop: Unity
Date: Wed Apr 20 18:03:03 2016
InstallationDate: Installed on 2016-04-03 (16 days ago)
InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Beta amd64 (20160323)
ProcEnviron:
 LANGUAGE=de_DE
 PATH=(custom, no user)
 XDG_RUNTIME_DIR=<set>
 LANG=de_DE.UTF-8
 SHELL=/bin/bash
SourcePackage: ubuntu-keyboard
UpgradeStatus: No upgrade log present (probably fresh install)
modified.conffile..etc.xdg.maliit.org.server.conf: [modified]
mtime.conffile..etc.xdg.maliit.org.server.conf: 2016-04-20T17:40:50.856195

Related branches

Revision history for this message
Daniel Holz (daniel-holz91) wrote :
Bill Filler (bfiller)
Changed in ubuntu-keyboard (Ubuntu):
assignee: nobody → Michael Sheldon (michael-sheldon)
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Hi Daniel,

 The correct environment setting under Ubuntu is "maliitphablet" rather than "maliit" (as I understand it this change was made to avoid a conflict with a version of maliit that's semi-integrated into Qt)

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Also, I'm not sure what the state of the GTK integration is at the moment, but QT_IM_MODULE=maliitphablet should certainly work

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

I'll close this bug for now, but if you run into further issues feel free to reopen it

Thanks!
 Mike

Changed in ubuntu-keyboard (Ubuntu):
status: New → Invalid
Revision history for this message
Daniel Holz (daniel-holz91) wrote :

I tried maliitphablet, but I still can't find a way to get the keyboard to show up.

Changed in ubuntu-keyboard (Ubuntu):
status: Invalid → New
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Hi Daniel,

 What application are you testing with? I've just checked with

QT_IM_MODULE=maliitphablet qmlscene

 And clicking the filename text input causes the keyboard to display correctly on Xenial for me.

Thanks,
 Mike

Revision history for this message
Daniel Holz (daniel-holz91) wrote :

QT_IM_MODULE=maliitphablet qmlscene

Works for me too, but

GTK_IM_MODULE=maliitphablet gedit
or
GTK_IM_MODULE=maliitphablet nautilus

does not.

Might be a problem with the gtk module.

Is there any way to unhide the keyboard manually for usage with unsupported applications like chrome or steam or to bypass the problem with gtk?

Revision history for this message
Daniel Holz (daniel-holz91) wrote :

Next problem:

when trying

QT_IM_MODULE=maliitphablet qmlscene

the keyboard hides again, when I press on its keys.

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Hi Daniel,

 I've managed to reproduce the issue you're having now, it seems to only happen for me if I set the QT_DEVICE_PIXEL_RATIO. I'm guessing there's some nasty interaction here with the Ubuntu SDK's own grid unit based sizing system. Can you check your environment ("env | grep QT_DEVICE_PIXEL_RATIO") to see if this is being set?

Thanks!
 Mike

Revision history for this message
Daniel Holz (daniel-holz91) wrote :

Entering

env | grep QT_DEVICE_PIXEL_RATIO

in a terminal, gives me no output.

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu-keyboard (Ubuntu):
status: New → Confirmed
Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

I can reproduce this same issue, getting it to show up but when attempting to click on the keys it hides (its not getting any input events it would seem)

Revision history for this message
Brandon Schaefer (brandontschaefer) wrote :

And QT_DEVICE_PIXEL_RATIO is empty for me as well

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Interesting, I haven't been able to reproduce it any any circumstances other than with QT_DEVICE_PIXEL_RATIO enabled, could you post your full "env" output?

Changed in ubuntu-keyboard (Ubuntu):
importance: Undecided → Critical
Revision history for this message
Kris (k-k-jacewicz) wrote :

Currently I have installed my own gtk app inside Ubuntu Phone Meizu MX4.
It works, because in the .desktop file I turn Xmir on:

  [Desktop Entry]
  Name=LazarusApp Demo
  Comment=Lazarus developed app, made to run via xmir
  X-Ubuntu-Touch=true
  X-Ubuntu-XMir-Enable=true
  Exec=/home/phablet/.local/xmir/demo/demo.sh /home/phablet/.local/xmir/demo/demo
  Icon=/home/phablet/.local/xmir/lazarus.png
  Terminal=false
  Type=Application

and inside my demo.sh:

  #!/bin/bash
  export QT_IM_MOUDULE=maliitphablet
  export GTK_IM_MODULE=maliitphablet
  #below is just added after reading the comments in this thread:
  export QT_DEVICE_PIXEL_RATIO=
  exec $@

now, my app do launch and works, however, I just cannot get the onskreen keyboard to show up. Again, it is a GTK app, not a QT one.

If there is no way to make this to work, then someone please tell me, can I just use some shell command to just trigger the onscreen keyboard regardless of the status of the focus inside my app? I mean, to popup/hide the ISK fully programatically, without actual integration with focusing on text input allowed control, but just on demand? Because then, I could at least call the OSK programatically from my app.

Some of my recent experimenting with this stuff: http://forum.lazarus.freepascal.org/index.php/topic,32090.0.html

Revision history for this message
Kris (k-k-jacewicz) wrote :

Just a comment I found interesting in regards to some earlier comments here, about the OSK actually showing up but then disappearing as a key on it is pressed. I was trying many different things to go about my problem of lack of OSK in my GTK app on the phone. One thing I did, was that I actually installed florence on my phone:
  $ sudo mount -o remount,rw /
  $ sudo apt-get install frorence
  $ sudo mount -o remount,ro /
then, inside of my app I created a button labelled "OSK", and in the OnClick event of the button I have put:

  Procedure Button2.Onclick(Sender: TObject);
   begin
     Unix.fpSystem('florence &');
   end;

Now, this is written in FreePascal/Lazarus, but the meaning is that I programatically call florence, and put it to background (&). ANd the thing is, the OSK actually DO show up! But just like in some earlier comments here about maliit OSK (which I can't get to show up, nor do I know a command to show it up programatically), once I press any button on it, it disappears.
Only if I hit a button that is kayboard input anyways, if I hit a button on the OSK that is simply opening florence's OSK setting window, then that window does show up, with all the settings, and I can work in that window, then close it and the OSK is still there. Until I hit any keyboard input button. Then it disappears.

Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Hi Kris,

 Your issue appears to be unrelated to this bug report (which relates specifically to running the keyboard on an X11 desktop system); whereas you're attempting to run an XMir application on the phone outside of libertine, which isn't something we've tested much previously. Firstly could you make sure you have maliit-inputcontext-gtk3 and maliit-inputcontext-gtk2 installed, these provide GTK support for the OSK and wouldn't be installed by default on the phone (except inside libertine containers). If the problem still persists with those installed could you file a separate bug report for this and we'll try to look into it further

Thanks :)

Revision history for this message
Kris (k-k-jacewicz) wrote :

First of all, I am sorry that I misjudged where my problem belonged to.
Secondly, I am very thankful for your reply and happy to confirm that following steps in ubuntu phone shell allowed for a gtk application running within xmir did enable OSK in this app:

 $ sudo mount -o remount,rw /
 $ sudo apt-get install maliit-inputcontext-gtk3 maliit-inputcontext-gtk2
 $ sudo mount -o remount,ro /

Revision history for this message
Kris (k-k-jacewicz) wrote :

I think that logically, if XMir is provided in the default image, the maliit-inputcontext-gtk3 and maliit-inputcontext-gtk2 packages should be included by default as well. They don't even weight anything, couple hundreds of KB in total.

Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package ubuntu-keyboard - 0.100+17.04.20161108-0ubuntu1

---------------
ubuntu-keyboard (0.100+17.04.20161108-0ubuntu1) zesty; urgency=medium

  * Add support for building as a snap (LP: #1572653, #1629009)

 -- Michael Sheldon <email address hidden> Tue, 08 Nov 2016 11:24:43 +0000

Changed in ubuntu-keyboard (Ubuntu):
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.