Skip to content

Conversation

PerfAct-Flip
Copy link

Addressing a critical usability issue where keyboard layout changes (specifically those impacting AltGr keys) were not being immediately recognized or applied in the Cosmic Greeter login screen.

After a clean install using a non-default keyboard layout (like Portuguese - Default), users were unable to type special characters that rely on the AltGr modifier key, such as:

@ (AltGr + 2 on Portuguese keyboard)

{ or ]

€ (AltGr + E)

This prevented users from logging into newly created accounts if their password contained such characters.

Changes
The fix ensures that the Greeter's compositor immediately loads the new XKB configuration by calling:
comp_config_handler.reload() after updating the xkb_config.

This change allows the keyboard layout to take effect immediately, resolving the inability to type special characters on the login screen.

Testing Steps (as per related issue pop-os/distinst#348)
Install Pop!_OS 24.04 Beta (or a similar Cosmic Epoch environment).

During installation:

Select a language (e.g., English - United Kingdom).

Select a layout that uses AltGr (e.g., Portuguese - Default).

Create a user account with a password containing the @ character.

Reboot to the login screen.

On the Cosmic Greeter login screen, attempt to type the password (specifically the @ character using AltGr + 2).

Expected Behavior with this Fix: The special characters should now be entered correctly, allowing the user to log in successfully.

Issue link: pop-os/cosmic-epoch#2242

- Call comp_config_handler.reload() after updating xkb_config
- Fixes issue where keyboard layout changes were not applied immediately
Ok(()) => tracing::info!("updated cosmic-comp xkb_config"),
Ok(()) => {
tracing::info!("updated cosmic-comp xkb_config");
if let Err(err) = comp_config_handler.reload() {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Where did you get this from? This function does not exist.

Copy link
Author

@PerfAct-Flip PerfAct-Flip Oct 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

My bad!! The changes are live in my fork. I used D-Bus method to trigger comp_config_handler.reload(). Can you review it. repo link:- https://github.com/PerfAct-Flip/cosmic-greeter

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you put those changes into this PR?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants