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
 |