@@ -124,20 +124,12 @@ namespace SDDM {
124124 // greeter environment
125125 QProcessEnvironment env;
126126 QProcessEnvironment sysenv = QProcessEnvironment::systemEnvironment ();
127- env.insert (" LANG" , sysenv.value (" LANG" ));
128- env.insert (" LANGUAGE" , sysenv.value (" LANGUAGE" ));
129- env.insert (" LC_CTYPE" , sysenv.value (" LC_CTYPE" ));
130- env.insert (" LC_NUMERIC" , sysenv.value (" LC_NUMERIC" ));
131- env.insert (" LC_TIME" , sysenv.value (" LC_TIME" ));
132- env.insert (" LC_COLLATE" , sysenv.value (" LC_COLLATE" ));
133- env.insert (" LC_MONETARY" , sysenv.value (" LC_MONETARY" ));
134- env.insert (" LC_MESSAGES" , sysenv.value (" LC_MESSAGES" ));
135- env.insert (" LC_PAPER" , sysenv.value (" LC_PAPER" ));
136- env.insert (" LC_NAME" , sysenv.value (" LC_NAME" ));
137- env.insert (" LC_ADDRESS" , sysenv.value (" LC_ADDRESS" ));
138- env.insert (" LC_TELEPHONE" , sysenv.value (" LC_TELEPHONE" ));
139- env.insert (" LC_MEASUREMENT" , sysenv.value (" LC_MEASUREMENT" ));
140- env.insert (" LC_IDENTIFICATION" , sysenv.value (" LC_IDENTIFICATION" ));
127+
128+ insertEnvironmentList ({" LANG" , " LANGUAGE" ,
129+ " LC_CTYPE" , " LC_NUMERIC" , " LC_TIME" , " LC_COLLATE" , " LC_MONETARY" , " LC_MESSAGES" ,
130+ " LC_PAPER" , " LC_NAME" , " LC_ADDRESS" , " LC_TELEPHONE" , " LC_MEASUREMENT" , " LC_IDENTIFICATION"
131+ }, sysenv, env);
132+
141133 env.insert (" PATH" , mainConfig.Users .DefaultPath .get ());
142134 env.insert (" DISPLAY" , m_display->name ());
143135 env.insert (" XAUTHORITY" , m_authPath);
@@ -164,6 +156,12 @@ namespace SDDM {
164156 return true ;
165157 }
166158
159+ void Greeter::insertEnvironmentList (QStringList names, QProcessEnvironment sourceEnv, QProcessEnvironment &targetEnv) {
160+ for (QStringList::const_iterator it = names.constBegin (); it != names.constEnd (); ++it)
161+ if (sourceEnv.contains (*it))
162+ targetEnv.insert (*it, sourceEnv.value (*it));
163+ }
164+
167165 void Greeter::stop () {
168166 // check flag
169167 if (!m_started)
0 commit comments