Skip to content

Commit e08f4b0

Browse files
committed
šŸ› fix: fix: keyboard layout not applied correctly on Cinnamon live session
The keyboard layout selected in the live wizard was not being applied on Cinnamon sessions. Two issues were fixed: 1. The dconf path for Cinnamon keyboard input sources was wrong. The wizard was writing only to org/gnome/desktop/input-sources, but Cinnamon reads from org/cinnamon/desktop/input-sources. Now writes to both paths for full compatibility. 2. The X11 keyboard configuration (/etc/X11/xorg.conf.d/00-keyboard.conf) was not being updated. The cinnamon-settings-daemon syncs the X11 layout back to dconf on startup, overwriting the user's selection. Added localectl set-x11-keymap call to persist the layout at the X11 level as well.
1 parent 4259bcd commit e08f4b0

2 files changed

Lines changed: 8 additions & 1 deletion

File tree

ā€Žbiglinux-livecd/usr/share/biglinux/calamares/src/utils/constants.pyā€Ž

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# Application Information
1010
APP_NAME = "BigLinux Calamares Config"
1111
APP_ID = "com.biglinux.calamares-config"
12-
APP_VERSION = "1.0.11"
12+
APP_VERSION = "1.0.12"
1313

1414
# Paths and Directories
1515
BASE_DIR = Path(__file__).parent.parent.parent

ā€Žbiglinux-livecd/usr/share/biglinux/livecd/services.pyā€Ž

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,10 @@ def apply_keyboard_layout(self, layout: str):
141141
layout_cleaned = layout.replace("\\", "")
142142
self._write_tmp_file(self.tmp_keyboard_file, layout_cleaned)
143143
self._run_command(["setxkbmap", layout_cleaned])
144+
self._run_command(
145+
["localectl", "set-x11-keymap", layout_cleaned, "pc105+inet", "", "terminate:ctrl_alt_bksp"],
146+
as_root=True
147+
)
144148

145149
home = os.path.expanduser("~")
146150
desktop_env = self.get_desktop_environment()
@@ -151,6 +155,9 @@ def apply_keyboard_layout(self, layout: str):
151155
if settings_file:
152156
sources_value = f"[('xkb', '{layout_cleaned}')]"
153157
self._modify_settings_file(settings_file, {
158+
"org/cinnamon/desktop/input-sources": {
159+
"sources": sources_value
160+
},
154161
"org/gnome/desktop/input-sources": {
155162
"sources": sources_value
156163
}

0 commit comments

Comments
Ā (0)