Advertisement
s243a

/usr/bin/user_wm_launch

May 4th, 2019
358
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 8.43 KB | None | 0 0
  1. #!/bin/bash
  2. # ~/.xinitrc: Executed by Slim/LXDM login manager to startx X session.
  3. # You can use F1 with Slim to change your window manager or configure
  4. # it permanently with your personal applications.conf file.
  5. #
  6. eval_safe_quote() # $@
  7. # Use this shell's 'set' command to consistently quote values with exterior
  8. # Single Quotes (SQ). The SQ character itself is quoted differently according
  9. # to each shell. This implementation is for dash and ash, which quote SQ as
  10. # "'" and ''"'", respectively.
  11. {
  12.     local a stop="$(od -An -N4 -i /dev/urandom)"
  13.     for a; do a="${a}
  14. $stop"; set; done | awk -v Q="'" '# awk, gawk, mawk
  15. f!=1 &&  /^a=/        { printf "%s", substr($0,3); f=1; next }
  16. f==1 && !/^'"$stop"'/ { printf "\n%s", $0; next }
  17. f==1 &&  /^'"$stop"'/ { printf Q" "; f=0; next }
  18. '
  19. }
  20. CURDIR=$PWD
  21. export USER=${1:-"tux"}
  22. export GROUP=${2:-`su -c 'id -gn' tux`}
  23. export HOME=`eval 'echo ~'"$USER"`
  24. Xorg &
  25. unset XDG_CONFIG_HOME
  26. unset XDG_DATA_HOME
  27. unset XDG_CACHE_HOME
  28. XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
  29. if [ -f "$XDG_CONFIG_HOME"/slitaz/applications.conf ]; then
  30.     apps_conf="$XDG_CONFIG_HOME"/slitaz/applications.conf
  31. elif [ -f "/etc/skel/.config/slitaz/applications.conf" ]; then
  32.     apps_conf="/etc/skel/.config/slitaz/applications.conf"
  33. elif [ -f "/etc/slitaz/applications.conf" ]; then
  34.     apps_conf="/etc/slitaz/applications.conf"
  35. fi
  36. . "$apps_conf"
  37.  
  38. #[ "$desktop" = "" ] && [ -f /etc/desktop_app ] && read -r desktop < /etc/desktop_app
  39. [ "$desktop" = "" ] && desktop=pcmanfm
  40.  
  41. #tazbox mkmenu
  42. #[ -f /tmp/wmexitmode.txt ] && rm /tmp/wmexitmode.txt
  43. #[ "$1" ] && WINDOW_MANAGER="$1"
  44.  
  45.  
  46. . /etc/rc.d/PUPSTATE
  47.  
  48. #v4.01 BK daemon to handle kernel uevents...
  49. echo '' > /var/local/pup_event_icon_change_flag
  50. /sbin/clean_desk_icons #v4.02 tidy up drive icons first.
  51. #/sbin/pup_event_frontend_d &
  52. #130525 ...start this further down.
  53.  
  54. #w482 reshape background image if widescreen...
  55. #120708 need to reshape for PUPMODE=2 also...
  56. #[ $PUPMODE -eq 5 ] && /usr/sbin/background_reshape
  57. NEEDRESHAPE='yes'
  58. [ -f /usr/share/backgrounds_original/ORIGINAL-default.jpg ] && NEEDRESHAPE='no'
  59. [ -f /usr/share/backgrounds_original/ORIGINAL-default.png ] && NEEDRESHAPE='no'
  60. [ "$NEEDRESHAPE" = "yes" ] && /usr/sbin/background_reshape
  61.  
  62. userresources=$HOME/.Xresources
  63. usermodmap=$HOME/.Xmodmap
  64. sysresources=/usr/lib/X11/xinit/Xresources
  65. sysmodmap=/usr/lib/X11/xinit/.Xmodmap
  66.  
  67. # merge in defaults and keymaps
  68.  
  69. if [ -f $sysresources ]; then
  70.     xrdb -merge -nocpp $sysresources
  71. fi
  72.  
  73. if [ -f $sysmodmap ]; then
  74.     xmodmap $sysmodmap
  75. fi
  76.  
  77. if [ -f $userresources ]; then
  78.     xrdb -merge -nocpp $userresources
  79. fi
  80.  
  81. if [ -f $usermodmap ]; then
  82.     xmodmap $usermodmap
  83. fi
  84.  
  85. CURRENTWM="`cat /etc/windowmanager`"
  86.  
  87. #100501 if full nvidia pkg installed, it has a gui config app...
  88. [ -f $HOME/.nvidia-settings-rc ] && nvidia-settings --load-config-only
  89.  
  90. [ -f $HOME/.xgamma-gamma ] && /bin/sh $HOME/.xgamma-gamma #100215 see /usr/sbin/xgamma-gui.
  91.  
  92. #0.9.8 sync selection-buffer and clipboard. only useful for older apps
  93. #such as rxvt that use the selection-buffer...
  94. [ -f /usr/bin/autocutsel ] && /usr/bin/autocutsel &
  95. #...disadvantage of this is it creates a little square bottom-right of screen.
  96.  
  97. if [ -e /tmp/videomode ];then #xvesa only: testing a video mode
  98.  video-wizard &
  99. fi
  100.  
  101. [ -f /usr/local/bin/agenda_chk ] && agenda_chk &
  102.  
  103. #v1.0.7 set by xrandrshell, part of xorg wizard... v3.99...
  104. if [ -f /etc/xrandrindex ];then
  105.   #v3.99 workround for dual monitors, 'head -n 1'....
  106.   XRANDRDEFAULT="$(xrandr -q | grep '\*' | tr -s ' ' | grep '^ [0-9]' | cut -f 2,3 -d ' ' | cut -f 1 -d '*' | tr ' ' '@' | head -n 1)" #130202 return 1024x768@60.0
  107.   XRANDRINDEX="`cat /etc/xrandrindex`" #v3.99 XRANDRINDEX now is XxY resolution. #130202 now vertxhoriz@freq (refer quicksetup).
  108.   #but do not switch if default is already this resolution....
  109.   if [ "$XRANDRINDEX" = "$XRANDRDEFAULT" ];then
  110.    rm -f /etc/xrandrindex
  111.   else
  112.    echo "$XRANDRINDEX"|grep -q "@"
  113.    case $? in
  114.     1)NEW_XY="$XRANDRINDEX"
  115.     xrandr -s $NEW_XY #131124 (see quicksetup)
  116.     ;;
  117.     *)NEW_XY="$(echo -n "$XRANDRINDEX" | cut -f 1 -d '@')" #130202
  118.     NEW_VFREQ="$(echo -n "$XRANDRINDEX" | cut -f 2 -d '@')" #130202
  119.     xrandr -s $NEW_XY -r $NEW_VFREQ #130202
  120.     ;;
  121.    esac
  122.   fi
  123. fi
  124.  
  125. if [ -f $HOME/.xset.sh ];then
  126.  #this is created by /usr/bin/pupx...
  127.  eval "$HOME/.xset.sh"
  128. else
  129.  ##Xorg has it's own fontpath settings in /etc/X11/xorg.conf...
  130.  #if [ "`readlink /usr/bin/X`" != "Xorg" ];then
  131.  # #xset fp+ /usr/lib/X11/fonts/Type1/
  132.  # #xset fp+ /usr/lib/X11/fonts/TTF/
  133.  # xset fp+ /usr/share/fonts/default/Type1/
  134.  # xset fp+ /usr/share/fonts/default/TTF/
  135.  #fi
  136.  xset s 600 600 s blank
  137. fi
  138.  
  139. #v1.0.7 also see /etc/rc.d/rc.local0
  140. if [ -f $HOME/.fonts/fonts.dir ];then
  141.  xset fp+ $HOME/.fonts/
  142. fi
  143.  
  144. [ -f /usr/bin/xsetroot ] && xsetroot -cursor_name top_left_arrow
  145.  
  146.  
  147. case "$WINDOW_MANAGER" in
  148. lxde*) ;;
  149. *)
  150.   case $desktop in
  151.   pcmanfm) pcmanfm --desktop & ;;
  152.   rox)
  153.     #relocates right-side icons to actual right-side of screen...
  154.     /usr/sbin/fixPuppyPin $HOME/ROX-Filer/PuppyPin #v1.0.7
  155.  
  156.     sleep 1 # let the dust settle
  157.  
  158.     if [ -f $HOME/Choices/ROX-Filer/PuppyPan1 ];then
  159.         roxfiler -p $HOME/Choices/ROX-Filer/PuppyPin -r $HOME/Choices/ROX-Filer/PuppyPan1
  160.     else
  161.         roxfiler -p $HOME/Choices/ROX-Filer/PuppyPin
  162.     fi
  163.     ;;
  164.   esac
  165.   ;;
  166. esac
  167.  
  168. /sbin/pup_event_frontend_d & #130525 moved down.
  169.  
  170. #v2.0.0
  171. /usr/sbin/delayedrun &
  172.  
  173. ##v2.01 hide cursor when not moving... (setup in /usr/sbin/input-wizard)
  174. #if [ -f /etc/mousehide ];then
  175. # IDLETIME="`cat /etc/mousehide | cut -f 1 -d ','`"
  176. # [ ! "$IDLETIME" = "0" ] && unclutter -idle $IDLETIME &
  177. #fi
  178.  
  179.   if [ -z "$XDG_CONFIG_HOME" ]; then
  180.     export XDG_CONFIG_HOME="$HOME/.config"
  181.   fi
  182.  
  183.   if [ -z "$XDG_DATA_HOME" ]; then
  184.     export XDG_DATA_HOME="$HOME/.local/share"
  185.   fi
  186.   export XDG_CACHE_HOME=$HOME/.cache
  187.   [ -z "$XAUTHORITY" ] && XAUTHORITY=/root/.Xauthority
  188.   [ -e "$XAUTHORITY" ] && cp --remove-destination -f $XAUTHORITY $HOME/.Xauthority &&
  189.   chown $USER:$GROUP $HOME/.Xauthority &&
  190.   export XAUTHORITY=$SPOT_HOME/.Xauthority
  191.   #if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
  192. #   if test -z "$XDG_RUNTIME_DIR" -o ! -S "$XDG_RUNTIME_DIR/bus" -o ! -O "$XDG_RUNTIME_DIR/bus"; then
  193. #       eval "$(dbus-launch --sh-syntax --exit-with-session)"
  194. #   fi
  195. #  fi
  196.   # Ensure the existance of openbox config file
  197.   OPENBOX_CONF_DIR="$XDG_CONFIG_HOME/openbox"
  198.   if [ ! -f "$OPENBOX_CONF_DIR/lxde-rc.xml" ]; then
  199.     mkdir -p "$OPENBOX_CONF_DIR"
  200.     cp /etc/xdg/openbox/LXDE/rc.xml "$OPENBOX_CONF_DIR/lxde-rc.xml"
  201.   fi
  202.   # Ensure the existance of the 'Desktop' folder
  203.   if [ -e "$XDG_CONFIG_HOME/user-dirs.dirs" ]; then
  204.     . "$XDG_CONFIG_HOME/user-dirs.dirs"
  205.   else
  206.     XDG_DESKTOP_DIR="$HOME/Desktop"
  207.   fi
  208.   mkdir -p "$XDG_DESKTOP_DIR"
  209.  
  210.   # Ensure the existance of the user applications folder
  211.   USER_APPS_DIR="$XDG_DATA_HOME/applications"
  212.   mkdir -p "$USER_APPS_DIR"
  213.   export XDG_DATA_DIRS="/usr/share:/usr/local/share:$HOME/.local/share"
  214.   # Clean up after GDM (GDM sets the number of desktops to one)
  215.   xprop -root -remove _NET_NUMBER_OF_DESKTOPS -remove _NET_DESKTOP_NAMES -remove _NET_CURRENT_DESKTOP 2> /dev/null  
  216.   # Enable GTK+2 integration for OpenOffice.org, if available.
  217.   export SAL_USE_VCLPLUGIN=gtk
  218.  
  219.  
  220. if [[ "$WINDOW_MANAGER"  = lxde* ]]; then
  221.  
  222.   if which dbus-launch >/dev/null && test -z "$DBUS_SESSION_BUS_ADDRESS"; then
  223.     if test -z "$XDG_RUNTIME_DIR" -o ! -S "$XDG_RUNTIME_DIR/bus" -o ! -O "$XDG_RUNTIME_DIR/bus"; then
  224.         eval "$(dbus-launch --sh-syntax --exit-with-session)"
  225.     fi
  226.   fi  
  227.   export XDG_MENU_PREFIX="lxde-"
  228.   export XDG_CURRENT_DESKTOP="LXDE"
  229.  
  230.   # Start the LXDE session
  231.   #exec su --group=$GROUP -c '/usr/bin/lxsession -s LXDE -e LXDE' - $USER  
  232.   exec su $USER -p -c '/usr/bin/lxsession -s LXDE -e LXDE'
  233.   #exec /usr/bin/lxsession -s LXDE -e LXDE
  234. else
  235.   #EXEC="exec ck-launch-session dbus-launch --sh-syntax --exit-with-session"
  236.   #EXEC="exec su --group=$GROUP -c 'dbus-launch --sh-syntax --exit-with-session'"
  237.   EXEC="exec su -p -c 'dbus-launch --sh-syntax --exit-with-session'"
  238.   LOG="/dev/null" ; X=$LOG ; ERR=$X
  239.   #vboxadd start
  240.   #VBoxClient --clipboard
  241.   case "$WINDOW_MANAGER" in
  242.     openbox|lxde*|icewm*|xfce4|compiz|karmen|dwm|fluxbox*|razor*|mate*)
  243.         $EXEC ${WINDOW_MANAGER%-session}-session  - $USER ;;
  244.     enlightenment)
  245.         $EXEC enlightenment_start - $USER;;
  246.     kde)    $EXEC startkde ;;
  247.     lxqt)   $EXEC startlxqt ;;
  248.     *)  $EXEC $WINDOW_MANAGER - $USER;
  249.   esac  #2>>$ERR >>$X
  250. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement