ports/104255: Unable to change window manager after the first selection/login.
martinko
gamato at pobox.sk
Tue Oct 10 11:20:36 UTC 2006
>Number: 104255
>Category: ports
>Synopsis: Unable to change window manager after the first selection/login.
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: sw-bug
>Submitter-Id: current-users
>Arrival-Date: Tue Oct 10 11:20:19 GMT 2006
>Closed-Date:
>Last-Modified:
>Originator: martinko
>Release: FreeBSD 6.2-PRERELEASE
>Organization:
>Environment:
FreeBSD mb-aw1n-bsd 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Sat Sep 23 10:05:07 CEST 2006 root at mb-aw1n-bsd:/usr/obj/usr/src/sys/MB-AW1N i386
>Description:
A bug in Xsession makes it impossible (under certain circumstances) for a user to change window manager for new session.
Other amendments and enhancements are part of this delivery, too. For details please see description/discussion below.
---
On Sat, Oct 07, 2006 at 08:35:59PM +0200, "mato" wrote:
> > Soeren,
> >
> > I haven't received any response from you to my latest email, yet.
> > I guess you've either been busy or my mail server failed me again.
I'm sorry i've been busy lately, but your not forgotten
> >
> > Either way, I've made some changes to the files which I'm sending to you.
Hi can i get you to send a pr with these files? Since that is the right
way to do it.
> > Here's what I've done:
> >
> > In /usr/X11R6/lib/X11/wdm/Xsession:
> >
> > - I changed bash to sh(1).
> > - I quoted some variables.
> > - I changed ">" to ">|" in order to force overwriting of .wm_style.
> > - I amended sourcing of X11 resources and start-up code. [Based on
> > original X11 code.]
> >
> > In /usr/X11R6/lib/X11/wdm/Xclients:
> >
> > - I changed some bash constructs/syntax to sh(1)
> > - I double checked Xrootenv.0 stuff and commented it out.
> > - I quoted some variables.
> > - I got rid off the original WINMGR_* stuff (which was not used at all)
> > and transformed it to something useful.
> > - I amended sourcing of X11 resources. [This we do actually twice now
> > (!) but I'm not sure where it should be left/done. Well, better twice
> > than never.]
> > - I expanded case selectors.
> > - I refactored some of the code. [Except for Afterstep part which I
> > wasn't sure about.]
> >
> > I believe the changes made improves the quality of the code as well as
> > user experience and I hope you would agree. Should anything be not
> > clear, please let me know.
> >
> > With regards,
> >
> > Martin
> >
> > :mato: wrote:
>How-To-Repeat:
Add "set -o noclobber" into your .bashrc file and you won't be able to change window manager after initial selection on login.
For other "issues" pls read description above. Thanks.
>Fix:
Output redirection must force file overwriting in Xsession.
And there are actually a couple of other places where this needs to be fixed in both Xsession and Xclients.
Please apply attached patches.
NOTE: I am sorry but I was not able to figure out how to substitute the following hardcoded paths with autoconf @*@ stuff:
Xclients.in:sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
Xclients.in:sysmodmap="/usr/X11R6/lib/X11/xinit/.Xmodmap"
Xsession.in:sysresources="/usr/X11R6/lib/X11/xinit/.Xresources"
Patch attached with submission follows:
--- 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
-
+ at 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
>Release-Note:
>Audit-Trail:
>Unformatted:
>> > > Soeren wrote:
>> > >
>>> > >> On Sun, 17 Sep 2006 mato wrote:
>>> > >>
>>> > >>
>>>> > >>> Hello Soeren,
>>>> > >>>
>>>> > >>> I've just installed WDM and am looking around and trying to configure it
>>>> > >>> for my needs.
>>>> > >>>
>>>> > >>> while investigating /usr/X11R6/lib/X11/wdm/Xclients i've noticed
>>>> > >>> Xrootenv.0 file being created. -- what is the purpose of this file pls
>>>> > >>> ?? and couldn't it be hidden so as not to pollute user home ??
>>>> > >>>
>>> > >> I'm looking at it and can't seem to see why Xrootenv.0 is needed.
>>> > >>
>>> > >>
>> > >
>> > > it is not needed. at least not for wdm.
>> > > i googled around but found only questions "what is it good for?" but no
>> > > answers.
>> > > i believe we can safely comment it out.
>> > >
>> > >
>>>> > >>> also what is the point of WINMGR_NAME and "general purpose entry" in the
>>>> > >>> same file ??
>>>> > >>>
>>>> > >>>
>>> > >> I'll look into that later.
>>> > >>
>>> > >>
>>>> > >>> pls note that the scripts provided with wdm make use of bash which is
>>>> > >>> not listed as a dependency. (!)
>>>> > >>>
>>>> > >>> and why is bash in shebang line of the scripts called with -login ?
>>>> > >>>
>>> > >> Cause the configure script looks to see if bash is installed if so it
>>> > >> uses it.
>>> > >>
>>> > >>
>> > >
>> > > ok, i see. and what happens when bash is not installed. do we use sh(1) ?
>> > > and if so, why not to use it always?
>> > > btw, does sh(1) know $() ??
>> > > and still -- why used with -login pls ?
>> > >
>> > >
>>>> > >>> also ps(1) shows 3 instances of wdm running:
>>>> > >>> root 726 0.0 0.3 5992 2828 ?? S 11:52AM 0:00.33
>>>> > >>> /usr/X11R6/bin/wdm -nodaemon ttyv8
>>>> > >>> root 727 0.0 0.3 5988 2864 ?? I 11:52AM 0:00.11
>>>> > >>> /usr/X11R6/bin/wdm -nodaemon ttyv8
>>>> > >>> root 1188 0.0 0.3 6128 3304 ?? Is 12:06PM 0:00.13
>>>> > >>> /usr/X11R6/bin/wdm -nodaemon ttyv8
>>>> > >>> why is that so pls ???
>>>> > >>>
>>>> > >>>
>>> > >> I have to look further into that.
>>> > >>
>>> > >>
>>>> > >>> /usr/X11R6/lib/X11/wdm/Xsession needs a fix. here's what i've done:
>>>> > >>>
>>>> > >>> [mb-aw1n-bsd][mato][/usr/home/mato]
>>>> > >>> $ diff -u /usr/X11R6/lib/X11/wdm/Xsession.old
>>>> > >>> /usr/X11R6/lib/X11/wdm/Xsession
>>>> > >>> --- /usr/X11R6/lib/X11/wdm/Xsession.old Sun Sep 17 09:37:41 2006
>>>> > >>> +++ /usr/X11R6/lib/X11/wdm/Xsession Sun Sep 17 16:07:59 2006
>>>> > >>> @@ -1,6 +1,8 @@
>>>> > >>> #!/usr/local/bin/bash -login
>>>> > >>> # configs/Xsession. Generated from Xsession.in by configure.
>>>> > >>> # $XConsortium: Xsession /main/10 1995/12/18 18:21:28 gildea $
>>>> > >>> +#
>>>> > >>> +# /usr/X11R6/lib/X11/wdm/Xsession : FreeBSD : mato [17-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
>>>> > >>> - /usr/X11R6/bin/xrdb -load /dev/null
>>>> > >>> -
>>>> > >>> +/usr/X11R6/bin/xrdb -load /dev/null
>>>> > >>>
>>>> > >>> case $# in
>>>> > >>> 1)
>>>> > >>> - case $1 in
>>>> > >>> - failsafe)
>>>> > >>> - exec /usr/X11R6/bin/xterm -geometry 80x24-0-0
>>>> > >>> - ;;
>>>> > >>> + case "$1" in
>>>> > >>> + failsafe)
>>>> > >>> + exec /usr/X11R6/bin/xterm -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
>>>> > >>> [mb-aw1n-bsd][mato][/usr/home/mato]
>>>> > >>> $
>>>> > >>>
>>> > >> I'll add the ", but i don't see why there is a need for the |
>>> > >>
>>> > >>
>> > >
>> > > it is necessary. otherwise it might not work with some configurations
>> > > (like mine;)) where "set -o noclobber" is used (as Xsession is (i
>> > > believe) run under user just logged on and thus bash (or other shell)
>> > > makes use of users config/rc files).
>> > >
>> > > another thing i've been just thinking of is that we source/merge
>> > > .Xresources both in Xsession and then in Xclients. i think it
>> > > might/should be done in one place only, .Xsession preferably.
>> > > also i'd like to expand Xsession as follows (taken from default
>> > > /usr/X11R6/lib/X11/xinit/xinitrc :
>> > >
>> > > --
>> > >
>> > > userresources=$HOME/.Xresources
>> > > usermodmap=$HOME/.Xmodmap
>> > > sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
>> > > sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap
>> > >
>> > > # merge in defaults and keymaps
>> > >
>> > > if [ -f $sysresources ]; then
>> > > /usr/X11R6/bin/xrdb -merge $sysresources
>> > > fi
>> > >
>> > > if [ -f $sysmodmap ]; then
>> > > /usr/X11R6/bin/xmodmap $sysmodmap
>> > > fi
>> > >
>> > > if [ -f $userresources ]; then
>> > > /usr/X11R6/bin/xrdb -merge $userresources
>> > > fi
>> > >
>> > > if [ -f $usermodmap ]; then
>> > > /usr/X11R6/bin/xmodmap $usermodmap
>> > > fi
>> > >
>> > > --
>> > >
>> > > what do you say ?
>> > > i'd prefer a new patch for you.
>> > >
>> > > with regards,
>> > >
>> > > Martin
>> > >
>> > >
More information about the freebsd-ports-bugs
mailing list