about summary refs log tree commit diff
path: root/pkgs/tools/misc/calamares/waylandkbd.patch
blob: 37cddcf4e2af901fd8a59b89f69c5e966fc32a60 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp
index 720588810..af0dd1c8d 100644
--- a/src/modules/keyboard/Config.cpp
+++ b/src/modules/keyboard/Config.cpp
@@ -219,7 +219,10 @@ Config::xkbApply()
                                                { m_additionalLayoutInfo.additionalVariant, m_selectedVariant },
                                                m_additionalLayoutInfo.groupSwitcher ) );
 
-
+        QString xkbmap = QString( "[('xkb','%1\%2'),('xkb','%3\%4')]").arg(
+                m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : ""),
+                m_additionalLayoutInfo.additionalLayout, ((!m_additionalLayoutInfo.additionalVariant.isEmpty()) ? "+" + m_additionalLayoutInfo.additionalVariant : ""));
+        QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap });
         cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant << "(added "
                  << m_additionalLayoutInfo.additionalLayout << "-" << m_additionalLayoutInfo.additionalVariant
                  << " since current layout is not ASCII-capable)";
@@ -227,6 +230,8 @@ Config::xkbApply()
     else
     {
         QProcess::execute( "setxkbmap", xkbmap_layout_args( m_selectedLayout, m_selectedVariant ) );
+        QString xkbmap = QString( "[('xkb','%1\%2')]").arg( m_selectedLayout, ((!m_selectedVariant.isEmpty()) ? "+" + m_selectedVariant : "") );
+        QProcess::execute( "sh", { "-c", "if command -v gsettings; then gsettings set org.gnome.desktop.input-sources sources \"$0\"; fi", xkbmap });
         cDebug() << "xkbmap selection changed to: " << m_selectedLayout << '-' << m_selectedVariant;
     }
     m_setxkbmapTimer.disconnect( this );