[Pkg-ayatana-devel] Bug#1107377: unblock: ayatana-indicator-keyboard/24.7.2-2
Mike Gabriel
sunweaver at debian.org
Fri Jun 6 15:25:14 BST 2025
Package: release.debian.org
Severity: normal
X-Debbugs-Cc: ayatana-indicator-keyboard at packages.debian.org
Control: affects -1 + src:ayatana-indicator-keyboard
User: release.debian.org at packages.debian.org
Usertags: unblock
Please unblock package ayatana-indicator-keyboard
In Lomiri, the kbd layout can be shown via a menu item in the keyboard
indicator in Lomiri's systray. Previously we used gkbd-capplet. However,
this fails with recent versions of Lomiri / Mir and with this version
of ayatana-indicator-keyboard we have switched over to using tecla (as
is used in GNOME).
[ Reason ]
Fix evocation of kbd layout application.
[ Impact ]
"Show Current Layout" item stays broken in Lomiri (nothing happens when
clicking on it).
[ Tests ]
Manual tests on a Lomiri Debian device using Debian trixie.
[ Risks ]
Minimal, only for users of ayatana-indicator-bluetooth (in Debian,
Ayatana Indicators are not in use by any desktop environment except from
Lomiri).
[ Checklist ]
[x] all changes are documented in the d/changelog
[x] I reviewed all changes and I approve them
[x] attach debdiff against the package in testing
[ Other info ]
Relevant for Lomiri on Debian.
unblock ayatana-indicator-keyboard/24.7.2-2
-------------- next part --------------
diff -Nru ayatana-indicator-keyboard-24.7.2/debian/changelog ayatana-indicator-keyboard-24.7.2/debian/changelog
--- ayatana-indicator-keyboard-24.7.2/debian/changelog 2025-03-02 17:48:25.000000000 +0100
+++ ayatana-indicator-keyboard-24.7.2/debian/changelog 2025-06-06 16:18:39.000000000 +0200
@@ -1,3 +1,14 @@
+ayatana-indicator-keyboard (24.7.2-2) unstable; urgency=medium
+
+ * debian/patches:
+ + Add 0002-Fix-showing-current-layout-on-Lomiri.patch. Use tecla (like
+ GNOME also does now) instead of gkbd-display-keyboard. Fixes showing
+ the kbd layout in Lomiri.
+ * debian/control:
+ + Add to S: tecla.
+
+ -- Mike Gabriel <sunweaver at debian.org> Fri, 06 Jun 2025 16:18:39 +0200
+
ayatana-indicator-keyboard (24.7.2-1) unstable; urgency=medium
* New upstream release.
diff -Nru ayatana-indicator-keyboard-24.7.2/debian/control ayatana-indicator-keyboard-24.7.2/debian/control
--- ayatana-indicator-keyboard-24.7.2/debian/control 2025-01-24 10:38:33.000000000 +0100
+++ ayatana-indicator-keyboard-24.7.2/debian/control 2025-05-15 09:08:15.000000000 +0200
@@ -31,7 +31,7 @@
Depends: ${shlibs:Depends},
${misc:Depends},
ayatana-indicator-common,
-Suggests: matekbd-keyboard-display | gkbd-capplet,
+Suggests: matekbd-keyboard-display | tecla | gkbd-capplet,
Description: Ayatana Indicator for managing keyboard layout and desktop language
This Ayatana Indicator for keyboard layout configuration shows as an
icon in the top panel of indicator aware destkop environments. It should
diff -Nru ayatana-indicator-keyboard-24.7.2/debian/patches/0002-Fix-showing-current-layout-on-Lomiri.patch ayatana-indicator-keyboard-24.7.2/debian/patches/0002-Fix-showing-current-layout-on-Lomiri.patch
--- ayatana-indicator-keyboard-24.7.2/debian/patches/0002-Fix-showing-current-layout-on-Lomiri.patch 1970-01-01 01:00:00.000000000 +0100
+++ ayatana-indicator-keyboard-24.7.2/debian/patches/0002-Fix-showing-current-layout-on-Lomiri.patch 2025-05-15 09:08:15.000000000 +0200
@@ -0,0 +1,164 @@
+From 17394a6f684b46e9f4bc2ed039515b09971b39d9 Mon Sep 17 00:00:00 2001
+From: Robert Tari <robert at tari.in>
+Date: Wed, 14 May 2025 16:22:42 +0200
+Subject: [PATCH 1/2] Fix showing current layout on Lomiri
+
+Just like GNOME did, we are switching to tecla here, since gkbd-keyboard-display does not work under Wayland.
+
+fixes https://github.com/AyatanaIndicators/ayatana-indicator-keyboard/issues/76
+---
+ src/keyboard-lomiri.c | 9 +++++++--
+ src/keyboard-x11.c | 13 ++++++++++---
+ src/keyboard.h | 4 ++--
+ src/service.c | 20 +++++++++++++++-----
+ 4 files changed, 34 insertions(+), 12 deletions(-)
+
+diff --git a/src/keyboard-lomiri.c b/src/keyboard-lomiri.c
+index c00bc55a1..bc6b3f93a 100644
+--- a/src/keyboard-lomiri.c
++++ b/src/keyboard-lomiri.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2021-2024 Robert Tari <robert at tari.in>
++ * Copyright 2021-2025 Robert Tari <robert at tari.in>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+@@ -179,7 +179,7 @@ guint keyboard_GetLayoutIndex (Keyboard *pKeyboard)
+ return pKeyboard->pPrivate->nLayout;
+ }
+
+-void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription)
++void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId)
+ {
+ if (nLayout == -1)
+ {
+@@ -199,6 +199,11 @@ void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gc
+ {
+ *pDescription = g_strdup(pLayout->sDescription);
+ }
++
++ if (pId != NULL)
++ {
++ *pId = g_strdup (sLayout);
++ }
+ }
+
+ void keyboard_SetLayout(Keyboard *pKeyboard, gint nLayout)
+diff --git a/src/keyboard-x11.c b/src/keyboard-x11.c
+index d7d482f5c..27dfb97cd 100644
+--- a/src/keyboard-x11.c
++++ b/src/keyboard-x11.c
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2021-2024 Robert Tari <robert at tari.in>
++ * Copyright 2021-2025 Robert Tari <robert at tari.in>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+@@ -390,7 +390,7 @@ guint keyboard_GetLayoutIndex (Keyboard *pKeyboard)
+ return pKeyboard->pPrivate->nLayout;
+ }
+
+-void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription)
++void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId)
+ {
+ if (nLayout == -1)
+ {
+@@ -432,7 +432,14 @@ void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gc
+ *pDescription = g_strdup(pLayout->sDescription);
+ }
+
+- g_free(sId);
++ if (pId != NULL)
++ {
++ *pId = sId;
++ }
++ else
++ {
++ g_free(sId);
++ }
+ }
+
+ void keyboard_SetLayout(Keyboard *pKeyboard, gint nLayout)
+diff --git a/src/keyboard.h b/src/keyboard.h
+index 39f822cdf..49c210561 100644
+--- a/src/keyboard.h
++++ b/src/keyboard.h
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright 2021-2023 Robert Tari <robert at tari.in>
++ * Copyright 2021-2025 Robert Tari <robert at tari.in>
+ *
+ * This program is free software: you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 3, as published
+@@ -48,7 +48,7 @@ Keyboard* keyboard_new();
+ void keyboard_AddSource(Keyboard *pKeyboard);
+ guint keyboard_GetNumLayouts(Keyboard *pKeyboard);
+ guint keyboard_GetLayoutIndex (Keyboard *pKeyboard);
+-void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription);
++void keyboard_GetLayout(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId);
+ void keyboard_SetLayout(Keyboard *pKeyboard, gint nLayout);
+
+ G_END_DECLS
+diff --git a/src/service.c b/src/service.c
+index 31f6ca3b1..f4b086cc0 100644
+--- a/src/service.c
++++ b/src/service.c
+@@ -31,7 +31,7 @@ static Keyboard* (*m_fnKeyboardNew)();
+ static void (*m_fnKeyboardAddSource)(Keyboard *pKeyboard);
+ static guint (*m_fnKeyboardGetNumLayouts)(Keyboard *pKeyboard);
+ static guint (*m_fnKeyboardGetLayoutIndex)(Keyboard *pKeyboard);
+-static void (*m_fnKeyboardGetLayout)(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription);
++static void (*m_fnKeyboardGetLayout)(Keyboard *pKeyboard, gint nLayout, gchar **pLanguage, gchar **pDescription, gchar **pId);
+ static void (*m_fnKeyboardSetLayout)(Keyboard *pKeyboard, gint nLayout);
+
+ enum
+@@ -121,7 +121,7 @@ static GVariant* createHeaderState(IndicatorKeyboardService *self, int nProfile)
+ else
+ {
+ gchar *sLanguage;
+- m_fnKeyboardGetLayout(self->pPrivate->pKeyboard, -1, &sLanguage, NULL);
++ m_fnKeyboardGetLayout(self->pPrivate->pKeyboard, -1, &sLanguage, NULL, NULL);
+
+ gchar *sIcon = g_strconcat("ayatana-indicator-keyboard-", sLanguage, NULL);
+ g_free(sLanguage);
+@@ -158,7 +158,7 @@ static GMenuModel* createLayoutSection(IndicatorKeyboardService *self)
+ {
+ gchar *sLanguage;
+ gchar *sDescription;
+- m_fnKeyboardGetLayout(self->pPrivate->pKeyboard, nLayout, &sLanguage, &sDescription);
++ m_fnKeyboardGetLayout(self->pPrivate->pKeyboard, nLayout, &sLanguage, &sDescription, NULL);
+ GMenuItem *pItem = g_menu_item_new(sDescription, NULL);
+ g_free(sDescription);
+ g_menu_item_set_action_and_target_value(pItem, "indicator.layout", g_variant_new_byte(nLayout));
+@@ -345,17 +345,27 @@ static void onDisplay (GSimpleAction *pAction, GVariant *pVariant, gpointer pDat
+ IndicatorKeyboardService *self = INDICATOR_KEYBOARD_SERVICE (pData);
+ guint nLayout = m_fnKeyboardGetLayoutIndex (self->pPrivate->pKeyboard);
+ gchar *sProgram = NULL;
++ gchar *sArgs = NULL;
++ gboolean bMate = ayatana_common_utils_is_mate ();
++ gboolean bLomiri = ayatana_common_utils_is_lomiri ();
+
+- if (ayatana_common_utils_is_mate ())
++ if (bMate)
+ {
+ sProgram = "matekbd-keyboard-display";
++ sArgs = g_strdup_printf ("-g %i", nLayout + 1);
++ }
++ else if (bLomiri)
++ {
++
++ sProgram = "tecla";
++ m_fnKeyboardGetLayout (self->pPrivate->pKeyboard, -1, NULL, NULL, &sArgs);
+ }
+ else
+ {
+ sProgram = "gkbd-keyboard-display";
++ sArgs = g_strdup_printf ("-g %i", nLayout + 1);
+ }
+
+- gchar *sArgs = g_strdup_printf ("-g %i", nLayout + 1);
+ ayatana_common_utils_execute_command_warn (sProgram, sArgs);
+ g_free (sArgs);
+ }
diff -Nru ayatana-indicator-keyboard-24.7.2/debian/patches/series ayatana-indicator-keyboard-24.7.2/debian/patches/series
--- ayatana-indicator-keyboard-24.7.2/debian/patches/series 2023-02-28 19:59:35.000000000 +0100
+++ ayatana-indicator-keyboard-24.7.2/debian/patches/series 2025-05-15 08:59:14.000000000 +0200
@@ -1,2 +1,3 @@
0001-Try-to-place-the-indicator-in-the-leftmost-position-.patch
2001_use-keyboard-icon.patch
+0002-Fix-showing-current-layout-on-Lomiri.patch
More information about the Pkg-ayatana-devel
mailing list