call_end

    • Pl chevron_right

      GNOME Shell and Mutter Development: What is new in GNOME Kiosk 50

      news.movim.eu / PlanetGnome • 9:06 • 3 minutes

    GNOME Kiosk, the lightweight, specialized compositor continues to evolve In GNOME 50 by adding new configuration options and improving accessibility.

    Window configuration

    User configuration file monitoring

    The user configuration file gets reloaded when it changes on disk, so that it is not necessary to restart the session.

    New placement options

    New configuration options to constrain windows to monitors or regions on screen have been added:

    • lock-on-monitor : lock a window to a monitor.
    • lock-on-monitor-area : lock to an area relative to a monitor.
    • lock-on-area : lock to an absolute area.

    These options are intended to replicate the legacy „ Zaphod “ mode from X11, where windows could be tied to a specific monitor. It even goes further than that, as it allows to lock windows on a specific area on screen.

    The window/monitor association also remains true when a monitor is disconnected. Take for example a setup where each monitor, on a multiple monitors configuration, shows different timetables. If one of the monitors is disconnected (for whatever reason), the timetable showing on that monitor should not be moved to another remaining monitor. The lock-on-monitor option prevents that.

    Initial map behavior was tightened

    Clients can resize or change their state  before the window is mapped, so size, position, and fullscreen as set from the configuration could be skipped. Kiosk now makes sure to apply configured size, position, and fullscreen on first map when the initial configuration was not applied reliably.

    Auto-fullscreen heuristics were adjusted

    • Only normal windows are considered when checking whether another window already covers the monitor (avoids false positives from e.g. xwaylandvideobridge ).
    • The current window is excluded when scanning “ other ” fullscreen sized windows (fixes Firefox restoring monitor-sized geometry).
    • Maximized or fullscreen windows are no longer treated as non-resizable so toggling fullscreen still works when the client had already maximized.

    Compositor behavior and command-line options

    New command line options have been added:

    • --no-cursor : hides the pointer.
    • --force-animations : forces animations to be enabled.
    • --enable-vt-switch : restores VT switching with the keyboard.

    The --no-cursor option can be used to hide the pointer cursor entirely for setups where user input does not involve a pointing device (it is similar to the -nocursor option in Xorg).

    Animations can now be disabled using the desktop settings, and will also be automatically disabled when the backend reports no hardware-accelerated rendering for performance purpose. The option --force-animations can be used to forcibly enable animations in that case, similar to GNOME Shell.

    The native keybindings, which include VT switching keyboard shortcuts are now disabled by default for kiosk hardening. Applications that rely on the user being able to switch to another console VT on Linux, such as e.g Anaconda, will need to explicit re-enable VT switching using --enable-vt-switch in their session.

    These options need to be passed from the command line starting gnome-kiosk , which would imply updating the systemd definitions files, or better, create a custom one (taking example on the the ones provided with the GNOME Kiosk sessions).

    Accessibility

    Accessibility panel

    An example of an accessibility panel is now included, to control the platform accessibility settings with a GUI. It is a simple Python application using GTK4.

    (The gsettings options are also documented in the CONFIG.md file.)

    Screen magnifier

    Desktop magnification is now implemented, using the same settings as the rest of the GNOME desktop (namely screen-magnifier-enabled , mag-factor , see the CONFIG.md file for details).

    It can can be enabled from the accessibility panel or from the keyboard shortcuts through the gnome-settings-daemon’s “mediakeys” plugin.

    Accessibility settings

    The default systemd session units now start the gnome-settings-daemon accessibility plugin so that Orca (the screen reader) can be enabled through the dedicated keyboard shortcut.

    Notifications

    • A new, optional notification daemon implements org.freedesktop.Notifications and org.gtk.Notifications using GTK 4 and libadwaita.
    • A small utility to send notifications via org.gtk.Notifications is also provided.

    Input sources

    GNOME Kiosk was ported to the new Mutter’s keymap API which allows remote desktop servers to mirror the keyboard layout used on the client side.

    Session files and systemd

      • X-GDM-SessionRegister is now set to false in kiosk sessions as GNOME Kiosk does not register the session itself (unlike GNOME Shell). That fixes a hang when terminating the session.
      • Script session: systemd is no longer instructed to restart the session when the script exits, so that users can logout of the script session when the script terminates.