Skip to content

Support the GDM login screen through native GNOME Shell integration #35

Description

@inayayousfi

Written by inayayousfi, typed by gpt-5.6-sol running in OpenCode.
Every call here is inayayousfi's, and no agent acted on its own.

Problem

Axidev OSK cannot currently display a usable external keyboard window above the GDM login screen on Fedora 44.

The keyboard process can start successfully inside the live greeter session, receive the complete Wayland environment, and access /dev/uinput. Qt then reports that Wayland layer-shell is unavailable and falls back to X11/Xwayland. The process remains healthy, but GNOME Shell's login screen does not show its external Xwayland window.

GDM should remain unsupported until Axidev OSK has an integration that GNOME Shell can display in login mode.

Fedora 44 Findings

Fedora 44 has a static gdm account without /var/lib/gdm, but the live login screen runs as a transient gdm-greeter account. The observed transient account had UID 60578 and group gdm. Greeter setup therefore cannot assume that the static account owns the live session or has a home directory.

/usr/share/gdm/greeter/autostart did not start Axidev OSK in the live Fedora 44 greeter. It is not a viable modern GDM startup hook for this purpose.

Two methods successfully gave the transient greeter access to /dev/uinput:

  • a udev rule using TAG+="uaccess"
  • a targeted systemd-tmpfiles access-control entry for group gdm

A transient user service attached to gnome-session@gnome-login.target successfully started the Axidev OSK supervisor and application with the live greeter's environment. The application logged:

Starting axidev-osk v0.16.0
Wayland layer-shell support is unavailable; falling back to the X11/XWayland overlay backend.
Showing runtime window window:keyboard

The supervisor, application process, and input permissions were healthy. The keyboard was still not visible. This isolates the remaining failure to presentation inside GNOME Shell's login mode rather than process startup, session discovery, or input-device permission.

Required Direction

Investigate a native GNOME Shell integration that can render the keyboard in GDM's login mode. This may require a GNOME Shell component rather than an ordinary Qt window.

The implementation must keep the greeter authoritative. An Axidev OSK startup, rendering, or input failure must not stop GDM or prevent login.

The installer must account for GDM's transient greeter identity, grant only the required /dev/uinput access, and remove only files and permissions that Axidev OSK owns.

Acceptance Conditions

  • The keyboard is visible above the GDM login screen on a clean supported Fedora installation.
  • On-screen keys type into GDM's password field.
  • The integration uses the live transient greeter session rather than assuming the static gdm account owns it.
  • Axidev OSK failure does not terminate, hide, or block the greeter.
  • Setup, status, removal, and uninstall report and preserve exact managed state.
  • A clean Fedora GDM virtual-machine test verifies startup, visibility, input, failure behavior, and removal.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions