131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
# This script is derived from https://github.com/neutrinolabs/xrdp/sesman/startwm.sh.
 | 
						|
 | 
						|
#
 | 
						|
# This script is an example. You might need to edit this script
 | 
						|
# depending on your distro if it doesn't work for you.
 | 
						|
#
 | 
						|
# Uncomment the following line for debug:
 | 
						|
# exec xterm
 | 
						|
 | 
						|
 | 
						|
# Execution sequence for interactive login shell - pseudocode
 | 
						|
#
 | 
						|
# IF /etc/profile is readable THEN
 | 
						|
#     execute ~/.bash_profile
 | 
						|
# END IF
 | 
						|
# IF ~/.bash_profile is readable THEN
 | 
						|
#     execute ~/.bash_profile
 | 
						|
# ELSE
 | 
						|
#     IF ~/.bash_login is readable THEN
 | 
						|
#         execute ~/.bash_login
 | 
						|
#     ELSE
 | 
						|
#         IF ~/.profile is readable THEN
 | 
						|
#             execute ~/.profile
 | 
						|
#         END IF
 | 
						|
#     END IF
 | 
						|
# END IF
 | 
						|
pre_start()
 | 
						|
{
 | 
						|
  if [ -r /etc/profile ]; then
 | 
						|
    . /etc/profile
 | 
						|
  fi
 | 
						|
  if [ -r ~/.bash_profile ]; then
 | 
						|
    . ~/.bash_profile
 | 
						|
  else
 | 
						|
    if [ -r ~/.bash_login ]; then
 | 
						|
      . ~/.bash_login
 | 
						|
    else
 | 
						|
      if [ -r ~/.profile ]; then
 | 
						|
        . ~/.profile
 | 
						|
      fi
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
  return 0
 | 
						|
}
 | 
						|
 | 
						|
# When loging out from the interactive shell, the execution sequence is:
 | 
						|
#
 | 
						|
# IF ~/.bash_logout exists THEN
 | 
						|
#     execute ~/.bash_logout
 | 
						|
# END IF
 | 
						|
post_start()
 | 
						|
{
 | 
						|
  if [ -r ~/.bash_logout ]; then
 | 
						|
    . ~/.bash_logout
 | 
						|
  fi
 | 
						|
  return 0
 | 
						|
}
 | 
						|
 | 
						|
#start the window manager
 | 
						|
wm_start()
 | 
						|
{
 | 
						|
  if [ -r /etc/default/locale ]; then
 | 
						|
    . /etc/default/locale
 | 
						|
    export LANG LANGUAGE
 | 
						|
  fi
 | 
						|
 | 
						|
  # debian
 | 
						|
  if [ -r /etc/X11/Xsession ]; then
 | 
						|
    pre_start
 | 
						|
    . /etc/X11/Xsession
 | 
						|
    post_start
 | 
						|
    exit 0
 | 
						|
  fi
 | 
						|
 | 
						|
  # alpine
 | 
						|
  # Don't use /etc/X11/xinit/Xsession - it doesn't work
 | 
						|
  if [ -f /etc/alpine-release ]; then
 | 
						|
    if [ -f /etc/X11/xinit/xinitrc ]; then
 | 
						|
        pre_start
 | 
						|
        /etc/X11/xinit/xinitrc
 | 
						|
        post_start
 | 
						|
    else
 | 
						|
        echo "** xinit package isn't installed" >&2
 | 
						|
        exit 1
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
 | 
						|
  # el
 | 
						|
  if [ -r /etc/X11/xinit/Xsession ]; then
 | 
						|
    pre_start
 | 
						|
    . /etc/X11/xinit/Xsession
 | 
						|
    post_start
 | 
						|
    exit 0
 | 
						|
  fi
 | 
						|
 | 
						|
  # suse
 | 
						|
  if [ -r /etc/X11/xdm/Xsession ]; then
 | 
						|
    # since the following script run a user login shell,
 | 
						|
    # do not execute the pseudo login shell scripts
 | 
						|
    . /etc/X11/xdm/Xsession
 | 
						|
    exit 0
 | 
						|
  elif [ -r /usr/etc/X11/xdm/Xsession ]; then
 | 
						|
    . /usr/etc/X11/xdm/Xsession
 | 
						|
    exit 0
 | 
						|
  fi
 | 
						|
 | 
						|
  pre_start
 | 
						|
  xterm
 | 
						|
  post_start
 | 
						|
}
 | 
						|
 | 
						|
#. /etc/environment
 | 
						|
#export PATH=$PATH
 | 
						|
#export LANG=$LANG
 | 
						|
 | 
						|
# change PATH to be what your environment needs usually what is in
 | 
						|
# /etc/environment
 | 
						|
#PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
 | 
						|
#export PATH=$PATH
 | 
						|
 | 
						|
# for PATH and LANG from /etc/environment
 | 
						|
# pam will auto process the environment file if /etc/pam.d/xrdp-sesman
 | 
						|
# includes
 | 
						|
# auth       required     pam_env.so readenv=1
 | 
						|
 | 
						|
wm_start
 | 
						|
 | 
						|
exit 1
 |