Advanced settings: use current username instead of Pi as default

Instead of using 'pi' as default, try to get the username of
the current user from the OS.

May not always work. (e.g. some Windows users may not have
setup a username themselves, but may be using a default user
created by the PC vendor).

Closes #497
This commit is contained in:
Floris Bos 2022-11-15 01:10:46 +01:00
parent e74efdca04
commit ebc6edc0c3
3 changed files with 24 additions and 0 deletions

View file

@ -478,7 +478,10 @@ Popup {
if ('sshUserName' in settings) { if ('sshUserName' in settings) {
fieldUserName.text = settings.sshUserName fieldUserName.text = settings.sshUserName
chkSetUser.checked = true chkSetUser.checked = true
} else {
fieldUserName.text = imageWriter.getCurrentUser()
} }
if ('wifiSSID' in settings) { if ('wifiSSID' in settings) {
fieldWifiSSID.text = settings.wifiSSID fieldWifiSSID.text = settings.wifiSSID
if ('wifiSSIDHidden' in settings && settings.wifiSSIDHidden) { if ('wifiSSIDHidden' in settings && settings.wifiSSIDHidden) {

View file

@ -1232,6 +1232,26 @@ QString ImageWriter::detectPiKeyboard()
return QString(); return QString();
} }
QString ImageWriter::getCurrentUser()
{
QString user = qgetenv("USER");
if (user.isEmpty())
user = qgetenv("USERNAME");
user = user.toLower();
if (user.contains(" "))
{
auto names = user.split(" ");
user = names.first();
}
if (user.isEmpty() || user == "root")
user = "pi";
return user;
}
bool ImageWriter::hasMouse() bool ImageWriter::hasMouse()
{ {
return !_embeddedMode || QFile::exists("/dev/input/mouse0"); return !_embeddedMode || QFile::exists("/dev/input/mouse0");

View file

@ -117,6 +117,7 @@ public:
Q_INVOKABLE QStringList getTranslations(); Q_INVOKABLE QStringList getTranslations();
Q_INVOKABLE QString getCurrentLanguage(); Q_INVOKABLE QString getCurrentLanguage();
Q_INVOKABLE QString getCurrentKeyboard(); Q_INVOKABLE QString getCurrentKeyboard();
Q_INVOKABLE QString getCurrentUser();
Q_INVOKABLE void changeLanguage(const QString &newLanguageName); Q_INVOKABLE void changeLanguage(const QString &newLanguageName);
Q_INVOKABLE void changeKeyboard(const QString &newKeymapLayout); Q_INVOKABLE void changeKeyboard(const QString &newKeymapLayout);
Q_INVOKABLE bool customRepo(); Q_INVOKABLE bool customRepo();