Onboard keyboard still doesn't work on the login screen

A few days ago I started this thread because the onboard virtual keyboard was crashing as soon as the mouse pointer was hovered over it.

User Calimero kindly provided a tip that turned out to be the solution for that issue. And it still is, as long as I use the onboard keyboard when I am fully logged into my manjaro xfce. Unfortunately, it doesn’t work on the login screen before I enter my manjaro password. On the login screen, onboard keyboard still crashes as soon as I hover the mouse pointer over it. I don’t know why that happens. Perhaps onboard does not fully load its settings before one actually logs into the system?

By the way, here is how that keyboard can be configured to appear on the login screen for xfce. I don’t know of any other keyboard that can be used for the same purpose, but maybe I am wrong.

Since that software is from the official repositories, and it’s clearly not functioning correctly on the login screen after the latest manjaro update, could somebody please look into it and see if that tissue can be fixed? It appears that onboard requires KDE as the “input event source”. In order to function normally.

In plasma, the only thing that has worked for me for login is:

[General]
InputMethod=qtvirtualkeyboard

in:
/etc/sddm.conf

I don’t know if this solution is valid for your case.

@Antarmanu71

If you’re happy to say goodbye to onboard and use qt6-virtualkeyboard instead, I can confirm that using

[General]
InputMethod=qtvirtualkeyboard

in /etc/sddm.conf as suggested by @anon60566263 works in sddm when KDE Plasma 6, but, only when using X11.

Perhaps there is a similar setting in /etc/lightdm/lightdm.conf or the config file for whichever greeter you are using for LightDM. I’m not using XFCE, so am unable to verify.

Cheers.

Here is the entire content of that file (lightdm.conf)

[Seat:*]
#
# General configuration
#
# start-default-seat = True to always start one seat if none are defined in the configuration
# greeter-user = User to run greeter as
# minimum-display-number = Minimum display number to use for X servers
# minimum-vt = First VT to run displays on
# lock-memory = True to prevent memory from being paged to disk
# user-authority-in-system-dir = True if session authority should be in the system location
# guest-account-script = Script to be run to setup guest account
# logind-check-graphical = True to on start seats that are marked as graphical by logind
# log-directory = Directory to log information to
# run-directory = Directory to put running state in
# cache-directory = Directory to cache to
# sessions-directory = Directory to find sessions
# remote-sessions-directory = Directory to find remote sessions
# greeters-directory = Directory to find greeters
# backup-logs = True to move add a .old suffix to old log files when opening new ones
# dbus-service = True if LightDM provides a D-Bus service to control it
#
[LightDM]
#start-default-seat=true
#greeter-user=lightdm
#minimum-display-number=0
#minimum-vt=7 # Setting this to a value < 7 implies security issues, see FS#46799
#lock-memory=true
#user-authority-in-system-dir=false
#guest-account-script=guest-account
logind-check-graphical=true
#log-directory=/var/log/lightdm
run-directory=/run/lightdm
#cache-directory=/var/cache/lightdm
#sessions-directory=/usr/share/lightdm/sessions:/usr/share/xsessions:/usr/share/wayland-sessions
#remote-sessions-directory=/usr/share/lightdm/remote-sessions
#greeters-directory=$XDG_DATA_DIRS/lightdm/greeters:$XDG_DATA_DIRS/xgreeters
#backup-logs=true
#dbus-service=true

#
# Seat configuration
#
# Seat configuration is matched against the seat name glob in the section, for example:
# [Seat:*] matches all seats and is applied first.
# [Seat:seat0] matches the seat named "seat0".
# [Seat:seat-thin-client*] matches all seats that have names that start with "seat-thin-client".
#
# type = Seat type (local, xremote)
# pam-service = PAM service to use for login
# pam-autologin-service = PAM service to use for autologin
# pam-greeter-service = PAM service to use for greeters
# xserver-command = X server command to run (can also contain arguments e.g. X -special-option)
# xmir-command = Xmir server command to run (can also contain arguments e.g. Xmir -special-option)
# xserver-config = Config file to pass to X server
# xserver-layout = Layout to pass to X server
# xserver-allow-tcp = True if TCP/IP connections are allowed to this X server
# xserver-share = True if the X server is shared for both greeter and session
# xserver-hostname = Hostname of X server (only for type=xremote)
# xserver-display-number = Display number of X server (only for type=xremote)
# xdmcp-manager = XDMCP manager to connect to (implies xserver-allow-tcp=true)
# xdmcp-port = XDMCP UDP/IP port to communicate on
# xdmcp-key = Authentication key to use for XDM-AUTHENTICATION-1 (stored in keys.conf)
# greeter-session = Session to load for greeter
# greeter-hide-users = True to hide the user list
# greeter-allow-guest = True if the greeter should show a guest login option
# greeter-show-manual-login = True if the greeter should offer a manual login option
# greeter-show-remote-login = True if the greeter should offer a remote login option
# user-session = Session to load for users
# allow-user-switching = True if allowed to switch users
# allow-guest = True if guest login is allowed
# guest-session = Session to load for guests (overrides user-session)
# session-wrapper = Wrapper script to run session with
# greeter-wrapper = Wrapper script to run greeter with
# guest-wrapper = Wrapper script to run guest sessions with
# display-setup-script = Script to run when starting a greeter session (runs as root)
# display-stopped-script = Script to run after stopping the display server (runs as root)
# greeter-setup-script = Script to run when starting a greeter (runs as root)
# session-setup-script = Script to run when starting a user session (runs as root)
# session-cleanup-script = Script to run when quitting a user session (runs as root)
# autologin-guest = True to log in as guest by default
# autologin-user = User to log in with by default (overrides autologin-guest)
# autologin-user-timeout = Number of seconds to wait before loading default user
# autologin-session = Session to load for automatic login (overrides user-session)
# autologin-in-background = True if autologin session should not be immediately activated
# exit-on-failure = True if the daemon should exit if this seat fails
#
[Seat:*]
#type=local
#pam-service=lightdm
#pam-autologin-service=lightdm-autologin
#pam-greeter-service=lightdm-greeter
#xserver-command=X
#xmir-command=Xmir
#xserver-config=
#xserver-layout=
#xserver-allow-tcp=false
#xserver-share=true
#xserver-hostname=
#xserver-display-number=
#xdmcp-manager=
#xdmcp-port=177
#xdmcp-key=
greeter-session=lightdm-gtk-greeter
#greeter-hide-users=false
#greeter-allow-guest=true
#greeter-show-manual-login=false
#greeter-show-remote-login=true
user-session=xfce
#allow-user-switching=true
#allow-guest=true
#guest-session=
session-wrapper=/etc/lightdm/Xsession
#greeter-wrapper=
#guest-wrapper=
#display-setup-script=
#display-stopped-script=
#greeter-setup-script=
#session-setup-script=
#session-cleanup-script=
#autologin-guest=false
#autologin-user=
#autologin-user-timeout=0
#autologin-in-background=false
#autologin-session=
#exit-on-failure=false

#
# XDMCP Server configuration
#
# enabled = True if XDMCP connections should be allowed
# port = UDP/IP port to listen for connections on
# listen-address = Host/address to listen for XDMCP connections (use all addresses if not present)
# key = Authentication key to use for XDM-AUTHENTICATION-1 or blank to not use authentication (stored in keys.conf)
# hostname = Hostname to report to XDMCP clients (defaults to system hostname if unset)
#
# The authentication key is a 56 bit DES key specified in hex as 0xnnnnnnnnnnnnnn.  Alternatively
# it can be a word and the first 7 characters are used as the key.
#
[XDMCPServer]
#enabled=false
#port=177
#listen-address=
#key=
#hostname=

#
# VNC Server configuration
#
# enabled = True if VNC connections should be allowed
# command = Command to run Xvnc server with
# port = TCP/IP port to listen for connections on
# listen-address = Host/address to listen for VNC connections (use all addresses if not present)
# width = Width of display to use
# height = Height of display to use
# depth = Color depth of display to use
#
[VNCServer]
#enabled=false
#command=Xvnc
#port=5900
#listen-address=
#width=1024
#height=768
#depth=8

I don’t see the string “InputMethod” at all. Does any other string or entry in this file look like it could be used to specify which virtual keyboard should be used on the login screen?

Neither do I; nor anything remotely useful.
Another dead end.

According to onboard-settings there is more documentation in /usr/share/doc/onboard - maybe that’s worth looking through. Otherwise, I’m out of ideas. I’ll chime in again if I think of anything else.

Cheers.

Maybe in the file /etc/lightdm/lightdm-gtk-greeter.conf

More radical solution, install SDDM

:interrobang: :thinking:

I don’t suppose anyone noticed the xfce tag?

I don’t see the problem in installing SDDM, I myself have GDM3 for KDE on one computer.

In fact many with the “wayland” label are recommended to install x11 :slight_smile:

I don’t suppose they did.

I can confirm that using

[General]
InputMethod=qtvirtualkeyboard

in /etc/sddm.conf as suggested by @anon60566263 works in sddm when KDE Plasma 6, but, only when using X11.

I have a following problem: virtual keyboard appears on the Login SDDM screen, but it does not insert any typed characters to the password field.
It started after manjaro upgrade to KDE6 when wayland became the default.
I switched to X11 to start KDE, but maybe SDDM is using wayland for the Login screen, before KDE started, and that is the problem?
How can I check this (I don’t see any DisplayServer=wayland in the configs, but maybe it is activated some other way) and make SDDM use X11 again?

Being that the switch for either X11 or Wayland is located in SDDM, and either of those take effect only when you continue to boot into the DE, then I’d say you’re likely barking up the wrong tree (as the saying goes).

Regarding qt6-virtualkeyboard and the qtvirtualkeyboard setting in /etc/sddm.conf - I’m afraid I don’t actually use the virtual keyboard (I use Wayland, which it didn’t seem to work in); I only tested it in that instance, and it seemed to work (in X11).

Cheers.

the switch for either X11 or Wayland is located in SDDM, and either of those take effect only when you continue to boot into the DE

Did I understand you correctly that SDDM itself does not use neither X11 nor Wayland for drawing its login screen (before DE loaded)?
How does it render its graphics then?