X-Git-Url: http://git.grml.org/?a=blobdiff_plain;f=grml-x;h=fc9ff76389e3b2711833e30b854a5a89af0c6560;hb=910af43b493c2d1089d0785c2ed80c8b5bd6116b;hp=3040a7f681dce9696ece07ea540eb58f86df46a6;hpb=0a647395d0f9fe0255e5d9f4c95ee72042d38430;p=grml-x.git diff --git a/grml-x b/grml-x index 3040a7f..fc9ff76 100755 --- a/grml-x +++ b/grml-x @@ -4,16 +4,8 @@ # Authors: grml-team (grml.org), (c) Michael Prokop # Bug-Reports: see http://grml.org/bugs/ # License: This file is licensed under the GPL v2. -# Latest change: Die Sep 04 01:44:19 CEST 2007 [mika] ################################################################################ -# make sure /tmp is writeable {{{ - if ! [ -w /tmp ] ; then - echo 'Fatal: /tmp is not writeable. Can not resume therefore, sorry.' >&2 - exit 1 - fi -# }}} - # debugging {{{ # usage: DEBUG=1 grml-x ..... 2>/tmp/grml-x-debug.log if [[ $DEBUG -gt 0 ]]; then @@ -47,9 +39,16 @@ [ -n "$XINITRC" ] || XINITRC="$HOME/.xinitrc" # temporary files - HWINFO_TMP="/tmp/hwinfo.$$" - MONITORINFO="/tmp/monitorinfo.$$" - MOUSEINFO="/tmp/mouse.$$" + # notice: we need the unsafe option, otherwise users other than root + # can not write to HWINFO_TMP, but we don't want to run hwinfo as root + HWINFO_TMP="$(mktemp -u)" || exit 1 + MONITORINFO="$(mktemp)" || exit 1 + MOUSEINFO="$(mktemp)" || exit 1 + + if [ -z "$HWINFO_TMP" ] ; then + echo "Fatal: could not create temporary file. Exiting.">&2 + bailout 1 + fi if [ -r /etc/sysconfig/keyboard ] ; then source /etc/sysconfig/keyboard @@ -128,17 +127,16 @@ Usage: $PROGRAMNAME $PROGRAMNAME [-options] windowmanager Usage examples: - $PROGRAMNAME wmii $PROGRAMNAME fluxbox - $PROGRAMNAME openbox + $PROGRAMNAME fluxbox $PROGRAMNAME -force -nostart fluxbox $PROGRAMNAME -nosynaptics fluxbox $PROGRAMNAME -nosync fluxbox - $PROGRAMNAME -noddc wmii - $PROGRAMNAME -xinerama -composite wmii - $PROGRAMNAME -module radeon -mode 1024x768 -vsync 60 openbox - XINITRC=~/.xinitrc $PROGRAMNAME openbox - $PROGRAMNAME -display 8 openbox + $PROGRAMNAME -noddc fluxbox + $PROGRAMNAME -xinerama -composite fluxbox + $PROGRAMNAME -module radeon -mode 1024x768 -vsync 60 fluxbox + XINITRC=~/.xinitrc $PROGRAMNAME fluxbox + $PROGRAMNAME -display 8 fluxbox More information on grml-x can be found in the manual page: man grml-x @@ -294,7 +292,7 @@ mouse() if grep -q 'Device:.*Synaptics' "$MOUSEINFO" ; then if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option MOUSEDRIVER='synaptics' - SYNMOUSE='InputDevice "Synaptics" "AlwaysCore"' + SYNMOUSE='InputDevice "Synaptics" # "AlwaysCore"' SYNMOUSEDETAIL=" Section \"InputDevice\" Driver \"synaptics\" @@ -329,7 +327,7 @@ EndSection if grep -q 'Device:.*ALPS' "$MOUSEINFO" ; then if [[ "$SYNAPTICS" == "yes" ]] ; then # check for '-nosynaptics'-option MOUSEDRIVER='synaptics' - SYNMOUSE='# InputDevice "Synaptics" "AlwaysCore"' + SYNMOUSE='InputDevice "Synaptics" # "AlwaysCore"' SYNMOUSEDETAIL=" Section \"InputDevice\" Driver \"synaptics\" @@ -682,7 +680,7 @@ cat << EOX # /usr/share/doc/xserver-xorg/ and # http://wiki.x.org/wiki/Home and # http://ftp.x.org/pub/X11R7.0/doc/html/index.html for information on Xorg -# +# # Refer to the xorg.conf man page and to # http://ftp.x.org/pub/X11R7.0/doc/html/xorg.conf.5.html # for details about the format of this file. @@ -706,7 +704,7 @@ EndSection Section "ServerFlags" Option "AllowMouseOpenFail" "true" # allows the server to start up even if the mouse does not work Option "DontVTSwitch" "false" # allow switching between virtual terminal - # Option "DontZap" "true" # disable (server abort) + Option "DontZap" "false" # enable (server abort) # Option "DontZoom" "true" # disable / (resolution switching) EndSection @@ -853,7 +851,7 @@ EOX # writeit {{{ writeit() { - XCONFTMP="/tmp/xconfig.$$" + XCONFTMP="$(mktemp)" xconfig > $XCONFTMP # we do not want to have two CorePointers, deactivate one therefore if grep -Eq '^[[:space:]]+InputDevice[ ]+"USB Mouse"[ ]+"CorePointer"' $XCONFTMP ; then @@ -893,6 +891,11 @@ $fg[red]" function runit { writeconfig + if [ "$(readlink /etc/X11/X)" = /bin/true ] ; then + print "$bold_color$fg[red]Fatal: /etc/X11/X is a symlink to /bin/true." + print "Fix it via running 'ln -sf /usr/bin/Xorg /etc/X11/X'" + exit 10 + fi if [ -z "$NOSTART" ] ; then print "$reset_color" if [ -x /etc/init.d/xorg-common ] ; then @@ -906,14 +909,15 @@ function runit if [ -z "$DISPLAY" ] ; then print "$bold_color$fg[green]Now trying to run startx.$reset_color" startx $XINITRC -- $XOPTS + return 1 else print "$bold_color$fg[green]Now trying to run startx on display $DISPLAY.$reset_color" startx $XINITRC -- :$DISPLAY $XOPTS + return 1 fi else print "$bold_color$fg[blue]Not running startx as requested via option.$reset_color" fi - return 1 } # }}}