diff options
Diffstat (limited to 'xfce4')
-rw-r--r-- | xfce4/.config/xfce4/xinitrc | 198 |
1 files changed, 198 insertions, 0 deletions
diff --git a/xfce4/.config/xfce4/xinitrc b/xfce4/.config/xfce4/xinitrc new file mode 100644 index 0000000..443fd85 --- /dev/null +++ b/xfce4/.config/xfce4/xinitrc @@ -0,0 +1,198 @@ +#!/bin/sh + +# fix broken $UID on some system... +if test "x$UID" = "x"; then + if test -x /usr/xpg4/bin/id; then + UID=`/usr/xpg4/bin/id -u`; + else + UID=`id -u`; + fi +fi + +# set $XDG_MENU_PREFIX to "xfce-" so that "xfce-applications.menu" is picked +# over "applications.menu" in all Xfce applications. +if test "x$XDG_MENU_PREFIX" = "x"; then + XDG_MENU_PREFIX="xfce-" + export XDG_MENU_PREFIX +fi + +# set DESKTOP_SESSION so that one can detect easily if an Xfce session is running +if test "x$DESKTOP_SESSION" = "x"; then + DESKTOP_SESSION="xfce" + export DESKTOP_SESSION +fi + +# set XDG_CURRENT_DESKTOP so that Qt 5 applications can identify user set Xfce theme +if test "x$XDG_CURRENT_DESKTOP" = "x"; then + XDG_CURRENT_DESKTOP="XFCE" + export XDG_CURRENT_DESKTOP +fi + +# $XDG_CONFIG_HOME defines the base directory relative to which user specific +# configuration files should be stored. If $XDG_CONFIG_HOME is either not set +# or empty, a default equal to $HOME/.config should be used. +if test "x$XDG_CONFIG_HOME" = "x" ; then + XDG_CONFIG_HOME=$HOME/.config +fi +[ -d "$XDG_CONFIG_HOME" ] || mkdir "$XDG_CONFIG_HOME" + +# $XDG_CACHE_HOME defines the base directory relative to which user specific +# non-essential data files should be stored. If $XDG_CACHE_HOME is either not +# set or empty, a default equal to $HOME/.cache should be used. +if test "x$XDG_CACHE_HOME" = "x" ; then + XDG_CACHE_HOME=$HOME/.cache +fi +[ -d "$XDG_CACHE_HOME" ] || mkdir "$XDG_CACHE_HOME" + +# set up XDG user directores. see +# http://freedesktop.org/wiki/Software/xdg-user-dirs +if which xdg-user-dirs-update >/dev/null 2>&1; then + xdg-user-dirs-update +fi + +# Modify libglade and glade environment variables so that +# it will find the files installed by Xfce +GLADE_CATALOG_PATH="$GLADE_CATALOG_PATH:" +GLADE_PIXMAP_PATH="$GLADE_PIXMAP_PATH:" +GLADE_MODULE_PATH="$GLADE_MODULE_PATH:" +export GLADE_CATALOG_PATH +export GLADE_PIXMAP_PATH +export GLADE_MODULE_PATH + +# For now, start with an empty list +XRESOURCES="" + +# Has to go prior to merging Xft.xrdb, as its the "Defaults" file +test -r "/etc/xdg/xfce4/Xft.xrdb" && XRESOURCES="$XRESOURCES /etc/xdg/xfce4/Xft.xrdb" +test -r $HOME/.Xdefaults && XRESOURCES="$XRESOURCES $HOME/.Xdefaults" + +BASEDIR=$XDG_CONFIG_HOME/xfce4 +if test -r "$BASEDIR/Xft.xrdb"; then + XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb" +elif test -r "$XFCE4HOME/Xft.xrdb"; then + mkdir -p "$BASEDIR" + cp "$XFCE4HOME/Xft.xrdb" "$BASEDIR"/ + XRESOURCES="$XRESOURCES $BASEDIR/Xft.xrdb" +fi + +# merge in X cursor settings +test -r "$BASEDIR/Xcursor.xrdb" && XRESOURCES="$XRESOURCES $BASEDIR/Xcursor.xrdb" + +# ~/.Xresources contains overrides to the above +test -r "$HOME/.Xresources" && XRESOURCES="$XRESOURCES $HOME/.Xresources" + +# load all X resources (adds /dev/null to avoid an empty list that would hang the process) +cat /dev/null $XRESOURCES | xrdb -nocpp -merge - + +# load local modmap +test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap + +# run xfce4-session if installed +if which xfce4-session >/dev/null 2>&1; then + + # check if we start xfce4-session with ck-launch-session. this is only + # required for starting from a console, not a login manager + if test "x$XFCE4_SESSION_WITH_CK" = "x1"; then + if which ck-launch-session >/dev/null 2>&1; then + ck-launch-session xfce4-session + else + echo + echo "You have tried to start Xfce with consolekit support, but" + echo "ck-launch-session is not installed." + echo "Aborted startup..." + echo + + exit 1 + fi + else + # start xfce4-session normally + xfce4-session + fi + + exit 0 +fi + +################## +# IMPORTANT NOTE # +################## + +# Everything below here ONLY gets executed if you are NOT using xfce4-session +# (Xfce's session manager). If you are using the session manager, everything +# below is handled by it, and the code below is not executed at all. If you're +# not sure if you're using the session manager, type 'ps -e|grep xfce4-session' +# in a terminal while Xfce is running. + +################## + +# Use dbus-launch if installed. +if test x"$DBUS_SESSION_BUS_ADDRESS" = x""; then + if which dbus-launch >/dev/null 2>&1; then + eval `dbus-launch --sh-syntax --exit-with-session` + # some older versions of dbus don't export the var properly + export DBUS_SESSION_BUS_ADDRESS + else + echo "Could not find dbus-launch; Xfce will not work properly" >&2 + fi +fi + +# this is only necessary when running w/o xfce4-session +xsetroot -solid black -cursor_name watch + +# or use old-fashioned startup script otherwise + +xfsettingsd & +xfwm4 --daemon + +# start up stuff in $XDG_CONFIG_HOME/autostart/ +if test -d "$XDG_CONFIG_HOME/autostart"; then + for i in ${XDG_CONFIG_HOME}/autostart/*.desktop; do + grep -q -E "^Hidden=true" "$i" && continue + if grep -q -E "^OnlyShowIn=" "$i"; then + # need to test twice, as lack of the line entirely means we still run it + grep -E "^OnlyShowIn=" "$i" | grep -q 'XFCE;' || continue + fi + grep -E "^NotShowIn=" "$i" | grep -q 'XFCE;' && continue + + # check for TryExec + trycmd=`grep -E "^TryExec=" "$i" | cut -d'=' -f2` + if test "$trycmd"; then + which "$trycmd" >/dev/null 2>&1 || continue + fi + + cmd=`grep -E "^Exec=" "$i" | cut -d'=' -f2` + if test "$cmd" && which "$cmd" >/dev/null 2>&1; then + $cmd & + fi + done +fi + +xfdesktop& +orage & + +panel=`which xfce4-panel` +case "x$panel" in + x|xno*) + ;; + *) + $panel + ret=$? + while test $ret -ne 0; do + xmessage -center -file - -timeout 20 -title Error <<EOF +A crash occured in the panel +Please report this to the xfce4-dev@xfce.org list +or on http://bugs.xfce.org +Meanwhile the panel will be restarted +EOF + cat >&2 <<EOF +A crash occured in the panel +Please report this to the xfce4-dev@xfce.org list +or on http://bugs.xfce.org +Meanwhile the panel will be restarted +EOF + $panel + ret=$? + done + ;; +esac + +xsetroot -bg white -fg red -solid black -cursor_name watch |