diff --git a/Base/etc/SystemServer.ini b/Base/etc/SystemServer.ini index 0796cb9190..76d55e4234 100644 --- a/Base/etc/SystemServer.ini +++ b/Base/etc/SystemServer.ini @@ -163,9 +163,6 @@ BootModes=self-test [SpiceAgent] KeepAlive=0 -[SystemServer] -Arguments=--user -User=anon - -#[LoginServer] -#User=root +[LoginServer] +User=root +Arguments=--auto-login anon diff --git a/Userland/Services/LoginServer/main.cpp b/Userland/Services/LoginServer/main.cpp index 42e93b7d9a..216bac9043 100644 --- a/Userland/Services/LoginServer/main.cpp +++ b/Userland/Services/LoginServer/main.cpp @@ -5,6 +5,7 @@ */ #include +#include #include #include #include @@ -113,7 +114,23 @@ int main(int argc, char** argv) login(account.value(), *window); }; - window->show(); + char const* auto_login = nullptr; + + Core::ArgsParser args_parser; + args_parser.add_option(auto_login, "automatically log in with no prompt", "auto-login", 'a', "userame"); + args_parser.parse(argc, argv); + + if (!auto_login) { + window->show(); + } else { + auto account = Core::Account::from_name(auto_login); + if (account.is_error()) { + dbgln("failed auto-login for user {}: {}", auto_login, account.error()); + return 1; + } + + login(account.value(), *window); + } return app->exec(); }