[master] [PATCH] Add method returning current activated X layout

Vratislav Podzimek vpodzime at redhat.com
Fri Oct 5 11:18:07 UTC 2012


We need to tell user which layout he/she has currently selected
in some dialogs.

Signed-off-by: Vratislav Podzimek <vpodzime at redhat.com>
---
 pyanaconda/keyboard.py | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py
index fb3f7ef..6817a15 100755
--- a/pyanaconda/keyboard.py
+++ b/pyanaconda/keyboard.py
@@ -34,6 +34,8 @@ import os
 import re
 from pyanaconda import iutil
 
+from gi.repository import Xkl
+
 import logging
 log = logging.getLogger("anaconda")
 
@@ -226,7 +228,7 @@ class XklWrapper(object):
         return XklWrapper._instance
 
     def __init__(self):
-        from gi.repository import Xkl, GdkX11
+        from gi.repository import GdkX11
 
         #initialize Xkl-related stuff
         display = GdkX11.x11_get_default_xdisplay()
@@ -311,6 +313,21 @@ class XklWrapper(object):
         #first layout (should exist for every language)
         return language_layouts[0].name
 
+    def get_current_layout_name(self):
+        """
+        Get current activated X layout's name
+
+        @return: current activated X layout's name (e.g. "Czech (qwerty)")
+
+        """
+
+        self._engine.start_listen(Xkl.EngineListenModes.TRACK_KEYBOARD_STATE)
+        state = self._engine.get_current_state()
+        groups_names = self._engine.get_groups_names()
+        self._engine.stop_listen(Xkl.EngineListenModes.TRACK_KEYBOARD_STATE)
+
+        return groups_names[state.group]
+
     def add_layout(self, layout):
         """
         Method that tries to add a given layout to the current X configuration.
-- 
1.7.11.4



More information about the anaconda-patches mailing list