#!/bin/sh # # Revised by the author of the post # http://notesofaprogrammer.blogspot.com/2014/09/ubuntu-1404-trust-and-vmware-unity-mode.html # Revised to return gnome with GNOME Fallback on Ubuntu 14.04 and Mate # Desktop environment # # # vmware-xdg-detect-de -- # # Determines which Freedesktop.Org compliant desktop environment we're # running under. # # usage: vmware-xdg-detect-de # # Simply prints the detected environment (GNOME, KDE, or XFCE). Shamelessly # lifted from detectDE() routine found in many Portland xdg-* scripts. # # Copyright (c) 2010-2014 VMware, Inc. All rights reserved. # Copyright 2009-2010, Fathi Boudra # Copyright 2009-2010, Rex Dieter # Copyright 2006, Kevin Krammer # Copyright 2006, Jeremy White # # LICENSE: # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included # in all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR # OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. # #--------------------------------------------- #-------------------------------------- # Checks for known desktop environments # set variable DE to the desktop environments name, lowercase # see https://bugs.freedesktop.org/show_bug.cgi?id=34164 unset GREP_OPTIONS if [ -n "${XDG_CURRENT_DESKTOP}" ]; then # # This script deals in (case sensitive) desktop environment names as found in # menu-spec (http://standards.freedesktop.org/menu-spec/latest/apb.html), # xdgDE="${XDG_CURRENT_DESKTOP}" DE=`echo "${XDG_CURRENT_DESKTOP}" | tr '[:upper:]' '[:lower:]'` fi if [ x"$DE" = x"" ]; then # classic fallbacks if [ x"$KDE_FULL_SESSION" = x"true" ]; then DE=kde; elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then DE=gnome; elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.gnome.SessionManager > /dev/null 2>&1` ; then DE=gnome; elif `dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.GetNameOwner string:org.mate.SessionManager > /dev/null 2>&1` ; then DE=gnome; # Mate is gnome elif xprop -root _DT_SAVE_MODE 2> /dev/null | grep ' = \"xfce4\"$' >/dev/null 2>&1; then DE=xfce; elif xprop -root 2> /dev/null | grep -i '^xfce_desktop_window' >/dev/null 2>&1; then DE=xfce fi fi if [ x"$DE" = x"" ]; then # fallback to checking $DESKTOP_SESSION case "$DESKTOP_SESSION" in gnome) DE=gnome; ;; LXDE) DE=lxde; ;; xfce|xfce4) DE=xfce; ;; esac fi if [ x"$DE" = x ]; then exit 1 fi if [ -z "$xdgDE" ]; then case "$DE" in gnome) xdgDE=GNOME ;; kde) xdgDE=KDE ;; xfce) xdgDE=XFCE ;; esac fi if [ x"$DE" = "xunity" ] || [ x"$xdgDE" = "xUnity" ]; then # # if it is Unity, we check and see if it is a fall-back # # Reference: # http://unix.stackexchange.com/questions/116539/how-to-detect-the-desktop-environment-in-a-bash-script # DE=`echo "$XDG_DATA_DIRS" | sed 's/.*\(xfce\|kde\|gnome\).*/\1/'` case "$DE" in gnome) xdgDE=GNOME ;; kde) xdgDE=KDE ;; xfce) xdgDE=XFCE ;; esac fi echo $xdgDE