diff options
author | Mike Gabriel <mike.gabriel@das-netzwerkteam.de> | 2023-09-15 12:46:24 +0200 |
---|---|---|
committer | Mihai Moldovan <ionic@ionic.de> | 2023-09-15 19:10:43 +0200 |
commit | 8dfc61bf04dfc5e5977a5dd7aa2981c8fd609b3b (patch) | |
tree | 3b76f06fc4f856b35698a98b2b28b19d764fe093 /src/arctica-greeter.vala | |
parent | 6c027e74fe2fdd1f750f6e2bdf9936cc0794de6e (diff) | |
download | arctica-greeter-8dfc61bf04dfc5e5977a5dd7aa2981c8fd609b3b.tar.gz arctica-greeter-8dfc61bf04dfc5e5977a5dd7aa2981c8fd609b3b.tar.bz2 arctica-greeter-8dfc61bf04dfc5e5977a5dd7aa2981c8fd609b3b.zip |
Introduce gsettings (list): includeonly-sessions, excluded-sessions.
Diffstat (limited to 'src/arctica-greeter.vala')
-rw-r--r-- | src/arctica-greeter.vala | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/arctica-greeter.vala b/src/arctica-greeter.vala index cacfdac..0aee212 100644 --- a/src/arctica-greeter.vala +++ b/src/arctica-greeter.vala @@ -254,8 +254,19 @@ public class ArcticaGreeter : Object sessions.append (preferred_session); } + var excluded_sessions = AGSettings.get_strv (AGSettings.KEY_EXCLUDED_SESSIONS); + var includeonly_sessions = AGSettings.get_strv (AGSettings.KEY_INCLUDEONLY_SESSIONS); + if (!AGSettings.get_boolean (AGSettings.KEY_HIDE_WAYLAND_SESSIONS)) { foreach (string session in sessions) { + if (includeonly_sessions.length > 0) { + if (!(session in includeonly_sessions)) { + continue; + } + } + else if (session in excluded_sessions) { + continue; + } var path = Path.build_filename ("/usr/share/wayland-sessions/", session.concat(".desktop"), null); if (FileUtils.test (path, FileTest.EXISTS)) { debug ("Using %s as default (Wayland) session.", session); @@ -266,6 +277,14 @@ public class ArcticaGreeter : Object if (!AGSettings.get_boolean (AGSettings.KEY_HIDE_X11_SESSIONS)) { foreach (string session in sessions) { + if (includeonly_sessions.length > 0) { + if (!(session in includeonly_sessions)) { + continue; + } + } + else if (session in excluded_sessions) { + continue; + } var path = Path.build_filename ("/usr/share/xsessions/", session.concat(".desktop"), null); if (FileUtils.test (path, FileTest.EXISTS)) { debug ("Using %s as default (X11) session.", session); @@ -283,6 +302,18 @@ public class ArcticaGreeter : Object /* Make sure the given session actually exists. Return it if it does. * otherwise, return the default session. */ + var excluded_sessions = AGSettings.get_strv (AGSettings.KEY_EXCLUDED_SESSIONS); + var includeonly_sessions = AGSettings.get_strv (AGSettings.KEY_INCLUDEONLY_SESSIONS); + + if (includeonly_sessions.length > 0) { + if (!(session in includeonly_sessions)) { + session = null; + } + } + else if (session in excluded_sessions) { + session = null; + } + if (session != null) { var xsessions_path = Path.build_filename ("/usr/share/xsessions/", session.concat(".desktop"), null); var wsessions_path = Path.build_filename ("/usr/share/wayland-sessions/", session.concat(".desktop"), null); |