-
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
(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.Notificationsandorg.gtk.Notificationsusing GTK 4 and libadwaita. -
A small utility to send notifications via
org.gtk.Notificationsis also provided.
Input sources
Session files and systemd
-
-
X-GDM-SessionRegisteris now set tofalsein 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.
-