freebsd-ports/x11/wdm/files/patch-change_wm
Soeren Straarup 76cbbf4c80 Unable to change window manager after the first selection/login.
PR:		104255
Submitted by:	martinko  <gamato@users.sf.net>
2008-12-28 18:17:07 +00:00

452 lines
11 KiB
Text

--- configs/Xsession.in.orig Sat Mar 26 14:57:04 2005
+++ configs/Xsession.in Tue Oct 10 11:51:31 2006
@@ -1,6 +1,8 @@
-#!@SHELL_LOGIN@
+#!/bin/sh
# @configure_input@
# $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
+#
+# /usr/X11R6/lib/X11/wdm/Xsession : FreeBSD : mato [24-sep-2006]
# This is the basic login script for a user. Much of the logic/code
# for selecting and invoking the window manager is in the related file
@@ -9,17 +11,16 @@
# ~/.Xclients.
# cleanup wdm resources
- @XRDB_PATH@ -load /dev/null
-
+@XRDB_PATH@ -load /dev/null
case $# in
1)
- case $1 in
- failsafe)
- exec @FAILSAFE@ -geometry 80x24-0-0
- ;;
+ case "$1" in
+ failsafe)
+ exec @FAILSAFE@ -geometry 80x24+0+0
+ ;;
esac
- echo $1 >$HOME/.wm_style
+ echo "$1" >| "$HOME/.wm_style"
esac
# redirect errors to a file in user's home directory if we can
@@ -66,19 +67,23 @@
# fi
# exec @DMDIR@/Xclients
-startup=$HOME/.xsession
-resources=$HOME/.Xresources
+sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
+userresources="$HOME/.Xresources"
+
+if [ -f "$sysresources" ]; then
+ @XRDB_PATH@ -merge "$sysresources"
+fi
-if [ -f $resources ]; then
- @XRDB_PATH@ -load $resources
+if [ -f "$userresources" ]; then
+ @XRDB_PATH@ -merge "$userresources"
fi
-if [ -x $startup ]; then
- exec $startup
+if [ -x "$HOME/.xsession" ]; then
+ exec "$HOME/.xsession"
fi
-if [ -x $HOME/.Xclients ]; then
- exec $HOME/.Xclients
+if [ -x "$HOME/.Xclients" ]; then
+ exec "$HOME/.Xclients"
fi
if [ -x @DMDIR@/Xclients ]; then
--- configs/Xclients.in.orig Sat Mar 26 14:57:04 2005
+++ configs/Xclients.in Tue Oct 10 12:31:47 2006
@@ -1,5 +1,7 @@
#!@SHELL_LOGIN@
# @configure_input@
+#
+# ~/.Xclients * WDM/FreeBSD * modified by martinko [23-sep-2006]
########################################################################
# -*- sh -*- #
@@ -32,133 +34,279 @@
done
}
+# output startup message
+Starting()
+{
+ echo "Starting $1 on `date`" >| "$xwm_msgs"
+}
+
+
+wm_style="$HOME/.wm_style"
+xwm_msgs="$HOME/.xwm.msgs"
+xrootenv="$HOME/Xrootenv.0"
# these files are left sitting around by TheNextLevel.
-rm -f $HOME/Xrootenv.0
+rm -f "$xrootenv"
rm -f /tmp/fvwmrc* 2>/dev/null
-# check for and set x-resources
-if [ -f $HOME/.Xresources ] ; then
- @XRDB_PATH@ -merge $HOME/.Xresources
+# check for and set X-resources
+
+sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
+sysmodmap="/usr/X11R6/lib/X11/xinit/.Xmodmap"
+userresources="$HOME/.Xresources"
+usermodmap="$HOME/.Xmodmap"
+
+# merge in defaults and keymaps
+
+if [ -f "$sysresources" ]; then
+ xrdb -merge "$sysresources"
fi
-if [ -f $HOME/.Xdefaults ] ; then
- @XRDB_PATH@ -merge $HOME/.Xdefaults
+if [ -f "$sysmodmap" ]; then
+ xmodmap "$sysmodmap"
fi
-WINMGR_NAME=@WINMGR_NAME@
-if test -z "$WINMGR_NAME"; then
- WINMGR_NAME="UserDefined"
+if [ -f "$userresources" ]; then
+ xrdb -merge "$userresources"
+fi
+
+if [ -f "$usermodmap" ]; then
+ xmodmap "$usermodmap"
fi
-# First thing - check the user preferences
-if [ -f $HOME/.wm_style ] ; then
- WMSTYLE=`cat $HOME/.wm_style`
- case "$WMSTYLE" in
-#
-# first, a general purpose entry:
- $WINMGR_NAME*)
- # startup a window manager
- WINMGR_PATH=@WINMGR_PATH@
- if test -x "$WINMGR_PATH" ; then
- echo Starting $WINMGR_NAME >$HOME/.xwm.msgs
- exec $WINMGR_PATH >>$HOME/.xwm.msgs 2>&1
- fi
- ;;
- wmaker*|WindowMaker*)
- # startup WindowMaker
- WMAKER_PATH=@WMAKER_PATH@
+# First thing - check the user preferences
+if [ -f "$wm_style" ]
+then
+ WMSTYLE="`cat "$wm_style"`"
+ case "$WMSTYLE" in
+
+ wmaker*|WMaker*|WindowMaker*)
+ # startup Window Maker
+ WMAKER_PATH=wmaker
if ! test -x $WMAKER_PATH ; then
FindInPath $WMAKER_PATH
if test -n "$result" -a -x "$result"; then
- WMAKER_PATH="$result";
+ WMAKER_PATH="$result"
fi
fi
-
if test -x $WMAKER_PATH ; then
- echo Starting WindowMaker >$HOME/.xwm.msgs
- env > "$HOME"/Xrootenv.0
- exec $WMAKER_PATH >>$HOME/.xwm.msgs 2>&1
+ Starting "Window Maker"
+ #env >| "$xrootenv"
+ exec $WMAKER_PATH >> "$xwm_msgs" 2>&1
fi
;;
afterstep*|Afterstep*|AfterStep*)
- # we have to start up afterstep
- AFTERSTEP_PATH=@AFTERSTEP_PATH@
+ # we have to start up AfterStep
+ AFTERSTEP_PATH=afterstep
if ! test -x $AFTERSTEP_PATH ; then
FindInPath $AFTERSTEP_PATH
if test -n "$result" -a -x "$result"; then
- AFTERSTEP_PATH="$result";
+ AFTERSTEP_PATH="$result"
fi
fi
if [ -x $AFTERSTEP_PATH -a -f /usr/share/afterstep/wmconfig.conf ] ; then
mkdir -p $HOME/GNUstep/Library/AfterStep
wmconfig --output=afterstep --directories /usr/share/afterstep/wmconfig.conf 2>/dev/null
- env > "$HOME"/Xrootenv.0
+ #env >| "$xrootenv"
# if this works, we stop here
- eval "exec $AFTERSTEP_PATH" > "$HOME"/.AfterStep-errors 2>&1
+ eval "exec $AFTERSTEP_PATH" >| "$HOME"/.AfterStep-errors 2>&1
fi
;;
- blackbox*|BlackBox)
- # startup blackbox
- BLACKBOX_PATH=@BLACKBOX_PATH@
+ blackbox*|Blackbox*|BlackBox*)
+ # startup Blackbox
+ BLACKBOX_PATH=blackbox
if ! test -x $BLACKBOX_PATH ; then
FindInPath $BLACKBOX_PATH
if test -n "$result" -a -x "$result"; then
- BLACKBOX_PATH="$result";
+ BLACKBOX_PATH="$result"
fi
fi
if [ -x $BLACKBOX_PATH ] ; then
- echo Starting BlackBox >$HOME/.xwm.msgs
- exec $BLACKBOX_PATH >>$HOME/.xwm.msgs 2>&1
+ Starting "Blackbox"
+ #env >| "$xrootenv"
+ exec $BLACKBOX_PATH >> "$xwm_msgs" 2>&1
fi
;;
- icewm*|IceWm)
- # startup icewm
- ICEWM_PATH=@ICEWM_PATH@
+ fluxbox*|Fluxbox*|FluxBox*)
+ # startup Fluxbox
+ FLUXBOX_PATH=startfluxbox
+ if ! test -x $FLUXBOX_PATH ; then
+ FindInPath $FLUXBOX_PATH
+ if test -n "$result" -a -x "$result"; then
+ FLUXBOX_PATH="$result"
+ fi
+ fi
+ if [ -x $FLUXBOX_PATH ] ; then
+ Starting "Fluxbox"
+ #env >| "$xrootenv"
+ exec $FLUXBOX_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ fvwm*|FVWM*)
+ # startup FVWM
+ FVWM_PATH=fvwm
+ if ! test -x $FVWM_PATH ; then
+ FindInPath $FVWM_PATH
+ if test -n "$result" -a -x "$result"; then
+ FVWM_PATH="$result"
+ fi
+ fi
+ if test -x $FVWM_PATH ; then
+ Starting "FVWM"
+ #env >| "$xrootenv"
+ exec $FVWM_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ fvwm2*|FVWM2*)
+ # startup FVWM2
+ FVWM2_PATH=fvwm2
+ if ! test -x $FVWM2_PATH ; then
+ FindInPath $FVWM2_PATH
+ if test -n "$result" -a -x "$result"; then
+ FVWM2_PATH="$result"
+ fi
+ fi
+ if test -x $FVWM2_PATH ; then
+ Starting "FVWM2"
+ #env >| "$xrootenv"
+ exec $FVWM2_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ fvwm95*|FVWM95*)
+ # startup FVWM95
+ FVWM95_PATH=fvwm95
+ if ! test -x $FVWM95_PATH ; then
+ FindInPath $FVWM95_PATH
+ if test -n "$result" -a -x "$result"; then
+ FVWM95_PATH="$result"
+ fi
+ fi
+ if test -x $FVWM95_PATH ; then
+ Starting "FVWM95"
+ #env >| "$xrootenv"
+ exec $FVWM95_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ icewm*|IceWm*|IceWM*)
+ # startup IceWM
+ ICEWM_PATH=icewm
if ! test -x $ICEWM_PATH ; then
FindInPath $ICEWM_PATH
if test -n "$result" -a -x "$result"; then
- ICEWM_PATH="$result";
+ ICEWM_PATH="$result"
fi
fi
if [ -x $ICEWM_PATH ] ; then
- echo Starting icewm >$HOME/.xwm.msgs
- exec $ICEWM_PATH >>$HOME/.xwm.msgs 2>&1
+ Starting "IceWM"
+ #env >| "$xrootenv"
+ exec $ICEWM_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ twm*|TWM*)
+ # startup TWM
+ TWM_PATH=twm
+ if ! test -x $TWM_PATH ; then
+ FindInPath $TWM_PATH
+ if test -n "$result" -a -x "$result"; then
+ TWM_PATH="$result"
+ fi
+ fi
+ if test -x $TWM_PATH ; then
+ Starting "TWM"
+ #env >| "$xrootenv"
+ exec $TWM_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ xfce*|Xfce*|XFce*|XFCE*)
+ # startup Xfce
+ XFCE_PATH=startxfce4
+ if ! test -x $XFCE_PATH ; then
+ FindInPath $XFCE_PATH
+ if test -n "$result" -a -x "$result"; then
+ XFCE_PATH="$result"
+ fi
+ fi
+ if test -x $XFCE_PATH ; then
+ Starting "Xfce"
+ #env >| "$xrootenv"
+ exec $XFCE_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ gnome*|Gnome*)
+ # startup Gnome
+ GNOME_PATH=gnome-session
+ if ! test -x $GNOME_PATH ; then
+ FindInPath $GNOME_PATH
+ if test -n "$result" -a -x "$result"; then
+ GNOME_PATH="$result"
+ fi
+ fi
+ if test -x $GNOME_PATH ; then
+ Starting "Gnome"
+ #env >| "$xrootenv"
+ exec $GNOME_PATH >> "$xwm_msgs" 2>&1
+ fi
+ ;;
+
+ startkde*|kde*|KDE*)
+ # startup KDE
+ STARTKDE_PATH=startkde
+ if ! test -x $STARTKDE_PATH ; then
+ FindInPath $STARTKDE_PATH
+ if test -n "$result" -a -x "$result"; then
+ STARTKDE_PATH="$result"
+ fi
+ fi
+ if [ -x $STARTKDE_PATH ] ; then
+ Starting "KDE"
+ #env >| "$xrootenv"
+ exec $STARTKDE_PATH -console >> "$xwm_msgs" 2>&1
fi
;;
xsession*|Xsession*)
# startup xsession
- XSESSION_PATH=@XSESSION_PATH@
+ XSESSION_PATH=xsession
if ! test -x $XSESSION_PATH ; then
FindInPath $XSESSION_PATH
if test -n "$result" -a -x "$result"; then
- XSESSION_PATH="$result";
+ XSESSION_PATH="$result"
fi
fi
if [ -x $XSESSION_PATH ] ; then
- echo Starting xsession >$HOME/.xwm.msgs
- exec $XSESSION_PATH -console >>$HOME/.xwm.msgs 2>&1
+ Starting "xsession"
+ #env >| "$xrootenv"
+ exec $XSESSION_PATH -console >> "$xwm_msgs" 2>&1
fi
;;
- startkde*|kde*|KDE*)
- # startup kde
- STARTKDE_PATH=@STARTKDE_PATH@
- if ! test -x $STARTKDE_PATH ; then
- FindInPath $STARTKDE_PATH
+ # last, a general purpose entry:
+ *)
+ # try and startup a window manager
+ WINMGR_NAME="$WMSTYLE"
+ WINMGR_PATH="$WMSTYLE"
+ if ! test -x $WINMGR_PATH ; then
+ FindInPath $WINMGR_PATH
if test -n "$result" -a -x "$result"; then
- STARTKDE_PATH="$result";
+ WINMGR_PATH="$result"
fi
fi
- if [ -x $STARTKDE_PATH ] ; then
- echo Starting kde >$HOME/.xwm.msgs
- exec $STARTKDE_PATH -console >>$HOME/.xwm.msgs 2>&1
+ if test -x "$WINMGR_PATH" ; then
+ Starting "$WINMGR_NAME"
+ #env >| "$xrootenv"
+ exec $WINMGR_PATH >> "$xwm_msgs" 2>&1
fi
;;
esac
@@ -186,16 +334,16 @@
# with both fvwm95 and fvwm2
# (try fvwm95 first, then fvwm2).
for FVWMVER in 95 95-2 2; do
- if [ -n "$(type -path fvwm${FVWMVER})" ]; then
- env > "$HOME"/Xrootenv.0
+ if [ -n "`type -path fvwm${FVWMVER}`" ]; then
+ #env >| "$xrootenv"
# if this works, we stop here
- eval "exec fvwm${FVWMVER} ${FVWMOPTIONS}" > "$HOME"/.FVWM${FVWMVER}-errors 2>&1
+ eval "exec fvwm${FVWMVER} ${FVWMOPTIONS}" >| "$HOME"/.FVWM${FVWMVER}-errors 2>&1
fi
done
# gosh, neither fvwm95 nor fvwm2 is available;
# let's try regular fvwm (AnotherLevel doesn't work with fvwm1).
-if [ -n "$(type -path fvwm)" ]; then
+if [ -n "`type -path fvwm`" ]; then
# if this works, we stop here
exec fvwm
fi
--- configs/KillConsole.orig Tue Oct 10 13:04:27 2006
+++ configs/KillConsole Tue Oct 10 13:01:47 2006
@@ -0,0 +1,7 @@
+#!/bin/sh
+#
+# /usr/X11R6/lib/X11/wdm/KillConsole * mato [10-oct-2006]
+#
+# Kill xconsole process started before the Login window.
+#
+pkill xconsole || true