131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
		
		
			
		
	
	
			131 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
|  | #!/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 |