diff --git a/src/modules/keyboard/Config.cpp b/src/modules/keyboard/Config.cpp index 3450a7c1e..d41dcfa28 100644 --- a/src/modules/keyboard/Config.cpp +++ b/src/modules/keyboard/Config.cpp @@ -466,7 +466,8 @@ Config::createJobs() m_additionalLayoutInfo, m_xOrgConfFileName, m_convertedKeymapPath, - m_writeEtcDefaultKeyboard ); + m_writeEtcDefaultKeyboard, + m_useLocale1 ); list.append( Calamares::job_ptr( j ) ); return list; diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.cpp b/src/modules/keyboard/SetKeyboardLayoutJob.cpp index c80d84e7d..e40667295 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.cpp +++ b/src/modules/keyboard/SetKeyboardLayoutJob.cpp @@ -36,7 +36,8 @@ SetKeyboardLayoutJob::SetKeyboardLayoutJob( const QString& model, const AdditionalLayoutInfo& additionalLayoutInfo, const QString& xOrgConfFileName, const QString& convertedKeymapPath, - bool writeEtcDefaultKeyboard ) + bool writeEtcDefaultKeyboard, + bool skipIfNoRoot ) : Calamares::Job() , m_model( model ) , m_layout( layout ) @@ -45,6 +46,7 @@ SetKeyboardLayoutJob::SetKeyboardLayoutJob( const QString& model, , m_xOrgConfFileName( xOrgConfFileName ) , m_convertedKeymapPath( convertedKeymapPath ) , m_writeEtcDefaultKeyboard( writeEtcDefaultKeyboard ) + , m_skipIfNoRoot( skipIfNoRoot ) { } @@ -348,6 +350,9 @@ SetKeyboardLayoutJob::exec() Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); QDir destDir( gs->value( "rootMountPoint" ).toString() ); + // Skip this if we are using locale1 and we are configuring the local system, + // since the service will have already updated these configs for us. + if ( !( m_skipIfNoRoot && ( destDir.isEmpty() || destDir.isRoot() ) ) ) { // Get the path to the destination's /etc/vconsole.conf QString vconsoleConfPath = destDir.absoluteFilePath( "etc/vconsole.conf" ); @@ -368,9 +373,7 @@ SetKeyboardLayoutJob::exec() return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for the virtual console." ), tr( "Failed to write to %1" ).arg( vconsoleConfPath ) ); } - } - { // Get the path to the destination's /etc/X11/xorg.conf.d/00-keyboard.conf QString xorgConfDPath; QString keyboardConfPath; diff --git a/src/modules/keyboard/SetKeyboardLayoutJob.h b/src/modules/keyboard/SetKeyboardLayoutJob.h index 15fadfb52..87aa8ff73 100644 --- a/src/modules/keyboard/SetKeyboardLayoutJob.h +++ b/src/modules/keyboard/SetKeyboardLayoutJob.h @@ -25,7 +25,8 @@ public: const AdditionalLayoutInfo& additionaLayoutInfo, const QString& xOrgConfFileName, const QString& convertedKeymapPath, - bool writeEtcDefaultKeyboard ); + bool writeEtcDefaultKeyboard, + bool skipIfNoRoot ); QString prettyName() const override; Calamares::JobResult exec() override; @@ -44,6 +45,7 @@ private: QString m_xOrgConfFileName; QString m_convertedKeymapPath; const bool m_writeEtcDefaultKeyboard; + const bool m_skipIfNoRoot; }; #endif /* SETKEYBOARDLAYOUTJOB_H */