[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