calamares: fix keyboard on GNOME wayland
This commit is contained in:
parent
9af377e5ee
commit
45afe309b7
2 changed files with 29 additions and 1 deletions
|
@ -33,6 +33,9 @@ mkDerivation rec {
|
|||
./uimod.patch
|
||||
# Remove options for unsupported partition types
|
||||
./partitions.patch
|
||||
# Fix setting the kayboard layout on GNOME wayland
|
||||
# By default the module uses the setxkbmap, which will not change the keyboard
|
||||
./waylandkbd.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||
|
@ -57,7 +60,7 @@ mkDerivation rec {
|
|||
sed -e "s,pkexec calamares,calamares," \
|
||||
-i calamares.desktop
|
||||
|
||||
sed -e "s,X-AppStream-Ignore=true,&\nStartupWMClass=io.calamares.calamares," \
|
||||
sed -e "s,X-AppStream-Ignore=true,&\nStartupWMClass=calamares," \
|
||||
-i calamares.desktop
|
||||
|
||||
# Fix desktop reference with wayland
|
||||
|
|
25
pkgs/tools/misc/calamares/waylandkbd.patch
Normal file
25
pkgs/tools/misc/calamares/waylandkbd.patch
Normal file
|
@ -0,0 +1,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 );
|
Loading…
Reference in a new issue