aboutsummaryrefslogtreecommitdiff
path: root/src/session-list.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/session-list.vala')
-rw-r--r--src/session-list.vala100
1 files changed, 62 insertions, 38 deletions
diff --git a/src/session-list.vala b/src/session-list.vala
index 735ca1f..eef234b 100644
--- a/src/session-list.vala
+++ b/src/session-list.vala
@@ -79,6 +79,8 @@ public class SessionList : GreeterList
private SessionPrompt prompt;
+ private const int BADGE_SIZE = 22;
+
public SessionList (Background bg, MenuBar mb, string? session, string? default_session)
{
Object (background: bg, menubar: mb, session: session, default_session: default_session);
@@ -100,80 +102,87 @@ public class SessionList : GreeterList
protected override void add_manual_entry () {}
public override void show_authenticated (bool successful = true) {}
- private static string? get_badge_name (string session)
+ private static string? get_badge_name_from_alias_list (string session)
{
+ /*
+ * Only list aliases here, if the badge name can be derived from <session>
+ * via <session>_badge.(svg|png) then the badge file is found automatically.
+ */
switch (session)
{
- case "awesome":
- return "awesome_badge.png";
case "budgie-desktop":
return "budgie_badge.png";
- case "ubuntu":
- case "ubuntu-2d":
- case "unity":
- return "ubuntu_badge.png";
+ case "cairo-dock-fallback":
+ case "cairo-dock-unity":
+ return "cairo-dock_badge.svg";
+ case "cinnamon-wayland":
+ case "cinnamon2d":
+ return "cinnamon_badge.svg";
+ case "fvwm-crystal":
+ case "fvwm1":
+ return "fvwm_badge.png";
case "gnome-classic":
+ case "gnome-classic-xorg":
+ case "gnome-classic-wayland":
case "gnome-flashback-compiz":
case "gnome-flashback-metacity":
case "gnome-shell":
case "gnome-wayland":
case "gnome-xorg":
- case "gnome":
case "openbox-gnome":
return "gnome_badge.png";
- case "sle-classic":
- return "sleclassic_badge.png";
case "wmaker-common":
return "gnustep_badge.png";
- case "kde":
+ case "IceWM-Experimental":
+ case "IceWM-Lite":
+ case "IceWM":
+ case "icewm-session":
+ return "icewm_badge.png";
case "kde-plasma":
case "openbox-kde":
case "plasma":
case "plasma5":
case "plasmawayland":
return "kde_badge.png";
- case "i3":
case "i3-with-shmlog":
return "i3_badge.png";
- case "sway":
- return "sway_badge.svg";
case "lightdm-xsession":
return "xsession_badge.png";
- case "lomiri":
- return "lomiri_badge.png";
- case "lxde":
case "LXDE":
+ case "lubuntu-nexus7":
+ case "lxgames":
+ case "Lubuntu":
+ case "Lubuntu-Netbook":
+ case "QLubuntu":
return "lxde_badge.png";
- case "lxqt":
case "LXQt":
return "lxqt_badge.png";
- case "matchbox":
- return "matchbox_badge.png";
- case "mate":
- return "mate_badge.png";
case "mir-shell":
return "mirshell_badge.png";
- case "openbox":
- return "openbox_badge.png";
- case "pademelon":
- return "pademelon_badge.png";
- case "sugar":
+ case "sle-classic":
+ return "sleclassic_badge.png";
+ case "sugar-session-0.84":
+ case "sugar-session-0.86":
+ case "sugar-session-0.88":
+ case "sugar-session-0.90":
+ case "sugar-session-0.96":
+ case "sugar-session-0.98":
+ case "usr":
return "sugar_badge.png";
case "surf-display":
return "surf_badge.png";
- case "twm":
- return "twm_badge.png";
- case "xfce":
+ case "ubuntu-2d":
+ case "ubuntu-xorg":
+ case "unity":
+ return "ubuntu_badge.png";
+ case "XBMC":
+ return "xbmc_badge.png";
+ case "xubuntu":
return "xfce_badge.png";
case "xterm":
return "recovery_console_badge.png";
- case "xmonad":
+ case "gnome-xmonad":
return "xmonad_badge.png";
- case "icewm":
- case "icewm-session":
- return "icewm_badge.png";
- case "fynedesk":
- return "fynedesk_badge.svg";
case "remote-login":
return "remote_login_help.png";
default:
@@ -184,7 +193,21 @@ public class SessionList : GreeterList
private static HashTable<string, Gdk.Pixbuf> badges; /* cache of badges */
public static Gdk.Pixbuf? get_badge (string session)
{
- var name = get_badge_name (session);
+ var name = get_badge_name_from_alias_list (session);
+
+ if (name == null)
+ {
+ var default_name_svg = "%s_badge.svg".printf (session);
+ var default_name_png = "%s_badge.png".printf (session);
+ var default_name_svg_path = Path.build_filename (Config.PKGDATADIR, default_name_svg, null);
+ var default_name_png_path = Path.build_filename (Config.PKGDATADIR, default_name_png, null);
+ if (FileUtils.test (default_name_svg_path, FileTest.EXISTS)) {
+ name = default_name_svg;
+ }
+ else if (FileUtils.test (default_name_png_path, FileTest.EXISTS)) {
+ name = default_name_png;
+ }
+ }
if (name == null)
{
@@ -206,7 +229,8 @@ public class SessionList : GreeterList
{
try
{
- pixbuf = new Gdk.Pixbuf.from_file (Path.build_filename (Config.PKGDATADIR, name, null));
+ pixbuf = new Gdk.Pixbuf.from_file_at_size (Path.build_filename (Config.PKGDATADIR, name, null),
+ BADGE_SIZE * _scale_factor, BADGE_SIZE * _scale_factor);
badges.insert (name, pixbuf);
}
catch (Error e)