diff options
Diffstat (limited to 'kxkb')
-rw-r--r-- | kxkb/extension.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/kxkb/extension.cpp b/kxkb/extension.cpp index f4eee125c..405208020 100644 --- a/kxkb/extension.cpp +++ b/kxkb/extension.cpp @@ -4,6 +4,7 @@ #include <qstring.h> #include <qmap.h> #include <qfile.h> +#include <qdir.h> #include <kdebug.h> #include <kstandarddirs.h> @@ -176,12 +177,18 @@ bool XKBExtension::setLayoutInternal(const QString& model, if( !fullVariant.isNull() && !fullVariant.isEmpty() ) p << "-variant" << fullVariant; - if (p.start(KProcess::Block) && p.normalExit() && (p.exitStatus() == 0)) { - return true; //setGroup( group ); - } - else { - return false; - } + p.start(KProcess::Block); + + // reload ubuntu hotkey-setup keycode -> keysym maps + KProcess pXmodmap; + pXmodmap << "/usr/bin/xmodmap" << "/usr/share/apps/kxkb/ubuntu.xmodmap"; + pXmodmap.start(KProcess::Block); + + KProcess pXmodmapHome; + pXmodmapHome << "/usr/bin/xmodmap" << QDir::home().path() + "/.Xmodmap"; + pXmodmapHome.start(KProcess::Block); + + return p.normalExit() && (p.exitStatus() == 0); } bool XKBExtension::setGroup(unsigned int group) |