diff options
Diffstat (limited to 'hardinfo2/arch/linux')
| -rw-r--r-- | hardinfo2/arch/linux/common/os.h | 23 | 
1 files changed, 14 insertions, 9 deletions
| diff --git a/hardinfo2/arch/linux/common/os.h b/hardinfo2/arch/linux/common/os.h index 0f7b59e3..b4404925 100644 --- a/hardinfo2/arch/linux/common/os.h +++ b/hardinfo2/arch/linux/common/os.h @@ -105,18 +105,23 @@ detect_desktop_environment(OperatingSystem * os)  	if (!g_getenv("DISPLAY")) {  	    os->desktop = g_strdup("Terminal");  	} else { -            const gchar *windowman;              GdkScreen *screen = gdk_screen_get_default(); - -            windowman = gdk_x11_screen_get_window_manager_name(screen); -            if (g_str_equal(windowman, "Xfwm4")) { -                /* FIXME: check if xprop -root | grep XFCE_DESKTOP_WINDOW -                   is defined */ -                os->desktop = g_strdup("XFCE 4"); +            if (screen && GDK_IS_SCREEN(screen)) { +              const gchar *windowman; + +              windowman = gdk_x11_screen_get_window_manager_name(screen); +               +              if (g_str_equal(windowman, "Xfwm4")) { +                  /* FIXME: check if xprop -root | grep XFCE_DESKTOP_WINDOW +                     is defined */ +                  os->desktop = g_strdup("XFCE 4"); +              } else { +                  os->desktop = g_strdup_printf("Unknown (Window Manager: %s)", +                                                windowman); +              }              } else { -  	        os->desktop = g_strdup_printf("Unknown (Window Manager: %s)", -  	                                      windowman); +              os->desktop = g_strdup("Unknown");              }  	}      } | 
