$ x11docker --verbose --no-init x11docker/lxde pcmanfm x11docker note: Using X server option --hostdisplay x11docker note: To allow protection against X security leaks, please install xpra, nxagent and/or Xephyr (recommended), or run a second Xorg server with options --xorg --wm=auto. x11docker note: 'xdpyinfo' not found. Need it to check whether Xorg supports untrusted cookies for --hostdisplay. Please install 'xdpyinfo'. x11docker WARNING: --hostdisplay runs with untrusted cookies restricting access to X resources. Some applications may misbehave, especially those needing OpenGL. Also, some keys like AltGr may not work. Some applications crash if using the X clipboard. You can degrade isolation and allow trusted cookies with option --trusted. (Options --gpu and --clipboard enable trusted cookies, too). It is recommended to use another X server option like --xpra or --nxagent. x11docker WARNING: Option --hostdisplay provides only low container isolation! It is recommended to use another X server option like --xpra or --nxagent. x11docker: Čt bře 1 19:52:32 CET 2018 openSUSE Tumbleweed X.Org X Server 1.19.6 Command: /usr/bin/x11docker --verbose --no-init x11docker/lxde pcmanfm Parsed options: --verbose --no-init -- 'x11docker/lxde' 'pcmanfm' x11docker note: Using X server option --hostdisplay x11docker note: To allow protection against X security leaks, please install xpra, nxagent and/or Xephyr (recommended), or run a second Xorg server with options --xorg --wm=auto. x11docker note: 'xdpyinfo' not found. Need it to check whether Xorg supports untrusted cookies for --hostdisplay. Please install 'xdpyinfo'. x11docker WARNING: --hostdisplay runs with untrusted cookies restricting access to X resources. Some applications may misbehave, especially those needing OpenGL. Also, some keys like AltGr may not work. Some applications crash if using the X clipboard. You can degrade isolation and allow trusted cookies with option --trusted. (Options --gpu and --clipboard enable trusted cookies, too). It is recommended to use another X server option like --xpra or --nxagent. x11docker WARNING: Option --hostdisplay provides only low container isolation! It is recommended to use another X server option like --xpra or --nxagent. x11docker: Host system: opensuse x11docker: X or Wayland server option: --hostdisplay x11docker: Virtual screen size: 3200x1080 x11docker: Real screen size: Screen 0: minimum 320 x 200, current 3200 x 1080, maximum 8192 x 8192 x11docker: Environment variables: DISPLAY=:0 XAUTHORITY=/home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 XPRA_XSHM=0 X11DOCKER_CACHE=/home/jan/.cache/x11docker/X54-x11docker-lxde x11docker: Image name: x11docker/lxde x11docker: Image command: pcmanfm x11docker: Users and terminal: x11docker was started by: jan As host user serves (running X, storing cache): jan Container user will be: jan Container user password: x11docker Getting permission to run docker with: bash -c Running X and other user commands with: bash -c Terminal for password frontend: bash -c Terminal to show docker pull progress: xterm -e Running on console: no x11docker: Current cache folder: /home/jan/.cache/x11docker/X54-x11docker-lxde x11docker: Init system in container: none x11docker: Created docker command: docker run -d --tty --rm --name=x11docker_X0_a6f274_x11docker_lxde \ --user 1000:100 --env USER=jan \ --cap-drop=ALL \ --security-opt=no-new-privileges \ --group-add 488 \ --group-add 484 \ --tmpfs /tmp --tmpfs /run --tmpfs /var/run --tmpfs /run/lock \ --entrypoint=env --workdir=/tmp \ -v /home/jan/.cache/x11docker/X54-x11docker-lxde/share:/x11docker:rw \ -v /tmp/.X54-lock:/tmp/.X54-lock:rw \ -v /tmp/.X11-unix/X0:/x11docker/X0:rw \ -- x11docker/lxde /bin/sh -c 'sleep 1 ; exec /bin/sh - /x11docker/x11docker.CMD.sh' x11docker: IP of docker interface: 172.17.0.1/16 x11docker: Created containersetup.sh: 1 #! /bin/sh 2 # set up docker container in 'sleep 1' phase of 'docker run' 3 # commands in this script are executed as root in container 4 5 # create some system dirs with needed permissions 6 mkdir -v -p /var/lib/dbus /var/run/dbus 7 mkdir -v -p -m 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix 8 chmod --changes 1777 /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix 9 ln -s /x11docker/X0 /tmp/.X11-unix/X0 10 ls -l /tmp/.X11-unix/X0 11 12 # create user entry in /etc/passwd (and delete possibly existing same uid) 13 getent passwd | grep -v $(getent passwd 1000 || echo USERNOTFOUND) > /tmp/passwd 14 echo jan:x:1000:100:jan,,,:/fakehome/jan:/bin/bash >> /tmp/passwd 15 mv /tmp/passwd /etc/passwd 16 17 # make sure root has no password in /etc/shadow 18 sed -i /root.*/d /etc/shadow 19 echo 'root:*:17219:0:99999:7:::' >> /etc/shadow 20 21 # create password entry for container user in /etc/shadow 22 sed -i /jan.*/d /etc/shadow # delete user entry if already existing 23 echo "jan:sac19FwGGTx/A:17293:0:99999:7:::" >> /etc/shadow 24 25 # add user to groups video, audio, systemd-journal 26 # replace container GIDs of video and audio with host GIDs 27 Gidvideo=484 28 Gidaudio=488 29 [ $Gidvideo ] || Gidvideo=$(getent group | grep video: | cut -d: -f3) 30 [ $Gidaudio ] || Gidaudio=$(getent group | grep audio: | cut -d: -f3) 31 getent group | sed "s/^video.*/video:x:$Gidvideo:$(getent group | grep video: | cut -d: -f4 ),jan/ ; 32 s/^audio.*/audio:x:$Gidaudio:$(getent group | grep audio: | cut -d: -f4 ),jan/ ;; 33 s/^systemd-journal.*/\0,jan/ " | sed 's/:,/:/' > /tmp/group 34 cp /tmp/group /etc/group 35 36 # create user group entry (and delete possibly existing same gid) 37 getent group | grep -v $(getent group 100 || echo USERNOTFOUND) > /tmp/group 38 echo users:x:100: >> /tmp/group 39 mv /tmp/group /etc/group 40 41 mkdir -v -m 777 /fakehome 42 43 x11docker: Created dockerrc: 1 #! /bin/bash 2 waitforfilecreation () 3 { 4 local Zeit Warten; 5 Zeit=$(date +%s); 6 verbose "Waiting for file creation of ${1:-}"; 7 case $2 in 8 "") 9 Warten=15 10 ;; 11 infinity | inf) 12 Warten=32000 13 ;; 14 *) 15 Warten=${2:-} 16 ;; 17 esac; 18 while [ ! "$(find "${1:-}" 2>/dev/null)" ]; do 19 sleep 0.2; 20 [ $Warten -lt $(expr $(date +%s) - $Zeit) ] && { 21 warning "Failed to wait for file creation of 22 ${1:-}"; 23 return 1 24 }; 25 [ -e "$Timetosaygoodbye" ] && return 1; 26 done; 27 verbose "Found new created file $(ls ${1:-})"; 28 sleep 0.1; 29 return 0 30 } 31 verbose () 32 { 33 [ -e "$Logfile" ] && echo "x11docker: $* 34 " >> "$Logfile"; 35 return 0 36 } 37 warning () 38 { 39 echo "$(tput setaf 3)x11docker WARNING:$(tput sgr0) $*" 1>&3; 40 echo "" 1>&3; 41 [ -e "$Logfile" ] && echo "x11docker WARNING: $* 42 " >> "$Logfile"; 43 return 0 44 } 45 Imagename='x11docker/lxde' 46 Imagecommand='pcmanfm' 47 # check if image is available locally 48 docker inspect --type=image x11docker/lxde > /dev/null 2>&1 || { 49 export DISPLAY=:0 XAUTHORITY=/home/jan/.cache/x11docker/X54-x11docker-lxde/Xauthority-0 XSOCKET=/tmp/.X11-unix/X0 WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000 50 xterm -e /bin/bash /home/jan/.cache/x11docker/X54-x11docker-lxde/pullrc 51 waitforfilecreation /home/jan/.cache/x11docker/X54-x11docker-lxde/pullready 52 docker inspect --type=image x11docker/lxde > /dev/null 2>&1 || { 53 echo '' 54 echo "ERROR: Image 'x11docker/lxde' not found locally and not pulled from docker hub. " >&2 55 exit 1 56 } 57 } 58 # check CMD 59 [ -z "$Imagecommand" ] && { 60 # extract image command from image if not given on cli 61 Imagecommand=$(docker inspect --format='{{.Config.Cmd}}' x11docker/lxde) 62 Imagecommand=${Imagecommand#[} 63 Imagecommand=${Imagecommand#/bin/sh -c } 64 Imagecommand=${Imagecommand%]} 65 } 66 # check ENTRYPOINT 67 Entrypoint=$(docker inspect --format='{{.Config.Entrypoint}}' x11docker/lxde) 68 Entrypoint=${Entrypoint#[} 69 Entrypoint=${Entrypoint#/bin/sh -c } 70 Entrypoint=${Entrypoint%]} 71 [ -z "$Imagecommand$Entrypoint" ] && echo 'x11docker WARNING: No image command specified and no CMD or ENTRYPOINT found in image.'|tee -a /tmp/x11docker.a6f274.log 72 # check image environment variables 73 Environment=$(docker inspect --format='{{.Config.Env}}' x11docker/lxde) 74 Environment=${Environment#[} 75 Environment=${Environment%]} 76 # create x11docker.CMD.sh (shared with container and given as image command on docker run) 77 { echo '#! /bin/sh' 78 echo '# created startscript for docker run: x11docker.CMD.sh' 79 echo Imagecommand="\"$Imagecommand\"" 80 echo Entrypoint="\"$Entrypoint\"" 81 echo '' 82 echo '# Environment variables found in image' 83 echo "export $Environment" 84 echo '' 85 echo export USER=jan 86 echo export HOME="\"/fakehome/jan\"" 87 echo mkdir -p -v /fakehome/jan 88 echo '' 89 echo 'export DISPLAY=:0' 90 echo 'export XAUTHORITY=/x11docker/Xclientcookie' 91 echo Dbus= 92 echo '' 93 echo '# xpra environment settings' 94 echo 'export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm' 95 echo 'export XPRA_XSHM=0' 96 echo '' 97 echo "[ -e \"\$XDG_RUNTIME_DIR\" ] || {" 98 echo ' mkdir -v -m 700 -p /tmp/XDG_RUNTIME_DIR' 99 echo ' export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR' 100 echo '}' 101 echo 'export XDG_SESSION_TYPE=x11' 102 echo '' 103 echo 'bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh' 104 echo 'export TERM=xterm' 105 echo '' 106 echo 'env > /x11docker/environment' 107 echo 'sed -i "/\(PWD=\|_=\)/d" /x11docker/environment' 108 echo '' 109 echo 'cd "$HOME"' 110 echo '' 111 echo "exec \$Dbus $Entrypoint $Imagecommand >>/x11docker/stdout 2>>/x11docker/stderr" 112 echo '# Ready for docker run' 113 } >> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/x11docker.CMD.sh 114 115 cat /home/jan/.cache/x11docker/X54-x11docker-lxde/share/x11docker.CMD.sh | nl -ba >> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log 116 117 read Containerid < <(docker run -d --tty --rm --name=x11docker_X0_a6f274_x11docker_lxde \ 118 --user 1000:100 --env USER=jan \ 119 --cap-drop=ALL \ 120 --security-opt=no-new-privileges \ 121 --group-add 488 \ 122 --group-add 484 \ 123 --tmpfs /tmp --tmpfs /run --tmpfs /var/run --tmpfs /run/lock \ 124 --entrypoint=env --workdir=/tmp \ 125 -v /home/jan/.cache/x11docker/X54-x11docker-lxde/share:/x11docker:rw \ 126 -v /tmp/.X54-lock:/tmp/.X54-lock:rw \ 127 -v /tmp/.X11-unix/X0:/x11docker/X0:rw \ 128 -- x11docker/lxde /bin/sh -c 'sleep 1 ; exec /bin/sh - /x11docker/x11docker.CMD.sh') 129 [ -z "$Containerid" ] && echo 'x11docker ERROR: Startup of docker failed.' && exit 1 130 echo x11docker: container ID: $Containerid 131 132 # wait for container to be ready 133 for Count in 1 2 3 4 5 6 7 8 9 10; do 134 sleep 0.1 135 docker exec x11docker_X0_a6f274_x11docker_lxde sh -c : && { echo 'x11docker: container is up and running.' ; break ; } || echo "x11docker: container not ready on $Count. attempt, trying again." 136 done 137 138 docker inspect --format '{{ .NetworkSettings.IPAddress }}' x11docker_X0_a6f274_x11docker_lxde >> /home/jan/.cache/x11docker/X54-x11docker-lxde/container.ip 139 echo x11docker: container IP: $(cat /home/jan/.cache/x11docker/X54-x11docker-lxde/container.ip) 140 141 # get PID of container 142 Containerpid=$(ps ax | grep $Containerid | grep -v grep | awk '{print $1}') 143 echo x11docker: container PID: $Containerpid 144 echo $Containerpid >> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.pid 145 146 docker exec -u root x11docker_X0_a6f274_x11docker_lxde sh /x11docker/containersetup.sh x11docker: Created xtermrc: 1 #! /bin/bash 2 touchxtermready() { 3 bash -c 'touch /home/jan/.cache/x11docker/X54-x11docker-lxde/xtermready' 4 } 5 trap touchxtermready EXIT 6 export TERM=xterm SHELL=/bin/bash 7 bash -c "bash /home/jan/.cache/x11docker/X54-x11docker-lxde/dockerrc" >>/home/jan/.cache/x11docker/X54-x11docker-lxde/xterm.log 2>&1 8 exit x11docker: Created xinitrc: 1 #! /bin/sh 2 storepid () 3 { 4 echo ${1:-} ${2:-} >> $Bgpidfile; 5 verbose "stored background pid ${1:-} of ${2:-}" 6 } 7 mywatch () 8 { 9 local Watchoutput; 10 verbose "Watching: sh -c '${1:-}' 11 Current output: 12 $(sh -c "${1:-}")"; 13 Watchoutput="$(sh -c "${1:-}" 2>&1)"; 14 while sleep 1; do 15 [ "$Watchoutput" = "$(sh -c "${1:-}" 2>&1)" ] || break; 16 done; 17 verbose "Stopped watching: sh -c '${1:-}' 18 Current output: 19 $(sh -c "${1:-}")" 20 } 21 no_xhost () 22 { 23 local Line; 24 xhost; 25 xhost | tail -n +2 /dev/stdin | while read -r Line; do 26 xhost -$Line; 27 done; 28 xhost -; 29 [ "$(xhost | wc -l)" -gt "1" ] && { 30 warning "Remaining xhost permissions found on display $DISPLAY 31 $(xhost)"; 32 return 1 33 }; 34 return 0 35 } 36 warning () 37 { 38 echo "$(tput setaf 3)x11docker WARNING:$(tput sgr0) $*" 1>&3; 39 echo "" 1>&3; 40 [ -e "$Logfile" ] && echo "x11docker WARNING: $* 41 " >> "$Logfile"; 42 return 0 43 } 44 verbose () 45 { 46 [ -e "$Logfile" ] && echo "x11docker: $* 47 " >> "$Logfile"; 48 return 0 49 } 50 note () 51 { 52 echo "$(tput setaf 2)x11docker note:$(tput sgr0) $*" 1>&3; 53 echo "" 1>&3; 54 [ -e "$Logfile" ] && echo "x11docker note: $* 55 " >> "$Logfile"; 56 return 0 57 } 58 Bgpidfile=/home/jan/.cache/x11docker/X54-x11docker-lxde/backgroundpids 59 export Hostxenv='DISPLAY=:0 XAUTHORITY=/home/jan/.cache/x11docker/X54-x11docker-lxde/Xauthority-0 XSOCKET=/tmp/.X11-unix/X0 WAYLAND_DISPLAY= XDG_RUNTIME_DIR=/run/user/1000' 60 export Newxenv='DISPLAY=:0 XAUTHORITY=/home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie XSOCKET=/tmp/.X11-unix/X0 XPRA_XSHM=0 X11DOCKER_CACHE=/home/jan/.cache/x11docker/X54-x11docker-lxde ' 61 # set X variables to new display 62 # create new XAUTHORITY cookies 63 :> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie 64 xauth -v -f /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie generate :0 . untrusted timeout 3600 65 [ -s '/home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie' ] || { 66 [ 'untrusted' = 'untrusted' ] && note 'Could not create untrusted cookie. 67 Maybe your X server misses extension SECURITY.' 68 warning 'Memory access failures and rendering glitches may occur 69 due to unrestricted cookie. 70 Avoid them with isolation breaking option --ipc, 71 or use another X server option like --xpra or --nxagent.' 72 warning 'SECURITY RISK! Keylogging and remote host control 73 may be possible! Better avoid using option --hostdisplay, 74 rather use --xpra or --nxagent.' 75 cp /home/jan/.cache/x11docker/X54-x11docker-lxde/Xauthority-0 /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie 76 } 77 [ -s '/home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie' ] || { 78 # still no cookie? try to create one without extension security 79 xauth -f /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie add :0 . 45d09e9832a7aae66bb294709b3d2765 80 } 81 # create prepared cookie with localhost identification disabled by ffff, needed if X socket is shared. ffff means 'familiy wild' 82 Cookie=$(xauth -f /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie nlist | sed -e 's/^..../ffff/') 83 echo $Cookie | xauth -v -f /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie nmerge - 84 cp /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie /home/jan/.cache/x11docker/X54-x11docker-lxde/Xservercookie 85 [ -s '/home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie' ] || warning 'Cookie creation failed! --hostdisplay runs without cookie authentication.' 86 export $Newxenv 87 verbose "Created cookie: $(xauth list)" 88 chmod 644 /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie 89 export $Newxenv 90 getscreensize() { 91 CurrentXaxis=$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f1 ) 92 CurrentYaxis=$(xrandr | grep primary | cut -d' ' -f4 | cut -dx -f2 | cut -d+ -f1) 93 } 94 checkscreensize() { 95 getscreensize 96 [ "$Xaxis" = "$CurrentXaxis" ] || return 1 97 [ "$Yaxis" = "$CurrentYaxis" ] || return 1 98 return 0 99 } 100 getprimary() { 101 xrandr | grep -q primary || xrandr --output $(xrandr | grep ' connected' | head -n1 | cut -d' ' -f1) --primary 102 echo $(xrandr | grep primary | cut -d' ' -f1) 103 } 104 Output=$(getprimary) 105 verbose "Output of xrandr on :0 106 $(xrandr)" 107 touch /home/jan/.cache/x11docker/X54-x11docker-lxde/Xready 108 mywatch 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null #xinitrc' x11docker: Logfiles are: /home/jan/.cache/x11docker/X54-x11docker-lxde/xinit.log /home/jan/.cache/x11docker/X54-x11docker-lxde/xpraserver.log /home/jan/.cache/x11docker/X54-x11docker-lxde/xpraclient.log /home/jan/.cache/x11docker/X54-x11docker-lxde/compositor.log /home/jan/.cache/x11docker/X54-x11docker-lxde/xterm.log /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log Summary logfile: /home/jan/.cache/x11docker/X54-x11docker-lxde/share/x11docker.log In container: /x11docker/x11docker.log After finish: /home/jan/.cache/x11docker/x11docker.log x11docker: Running X server --hostdisplay on display :0 now ... ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xterm.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xpraserver.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xpraclient.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xinit.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/compositor.log <== x11docker: stored background pid 22992 of x11docker-run ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/stdout <== ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/stderr <== x11docker: Waiting for file creation of /home/jan/.cache/x11docker/X54-x11docker-lxde/Xready ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xinit.log <== Using authority file /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie authorization id is 858 Writing authority file /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie Using authority file /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie 1 entries read in: 0 new, 1 replacement Writing authority file /home/jan/.cache/x11docker/X54-x11docker-lxde/share/Xclientcookie x11docker: Created cookie: #ffff#4f70656e535553452d57442d456c656d656e74732d31303432#:0 MIT-MAGIC-COOKIE-1 0de5297da963943ac7edd9e7f479b22d RandR extension missing RandR extension missing RandR extension missing RandR extension missing RandR extension missing x11docker: Output of xrandr on :0 x11docker: Watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null #xinitrc' Current output: x11docker: Found new created file /home/jan/.cache/x11docker/X54-x11docker-lxde/Xready x11docker: stored background pid 23039 of mywatch x11docker: Watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null #Xserver' Current output: x11docker: Waiting for file creation of /home/jan/.cache/x11docker/X54-x11docker-lxde/pullready x11docker: Found new created file /home/jan/.cache/x11docker/X54-x11docker-lxde/pullready ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log <== 1 #! /bin/sh 2 # created startscript for docker run: x11docker.CMD.sh 3 Imagecommand="pcmanfm" 4 Entrypoint="" 5 6 # Environment variables found in image 7 export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin DEBIAN_FRONTEND=noninteractive LANG=en_US.UTF-8 8 9 export USER=jan 10 export HOME="/fakehome/jan" 11 mkdir -p -v /fakehome/jan 12 13 export DISPLAY=:0 14 export XAUTHORITY=/x11docker/Xclientcookie 15 Dbus= 16 17 # xpra environment settings 18 export UBUNTU_MENUPROXY= QT_X11_NO_NATIVE_MENUBAR=1 MWNOCAPTURE=true MWNO_RIT=true MWWM=allwm 19 export XPRA_XSHM=0 20 21 [ -e "$XDG_RUNTIME_DIR" ] || { 22 mkdir -v -m 700 -p /tmp/XDG_RUNTIME_DIR 23 export XDG_RUNTIME_DIR=/tmp/XDG_RUNTIME_DIR 24 } 25 export XDG_SESSION_TYPE=x11 26 27 bash --version >/dev/null 2>&1 && export SHELL=/bin/bash || export SHELL=/bin/sh 28 export TERM=xterm 29 30 env > /x11docker/environment 31 sed -i "/\(PWD=\|_=\)/d" /x11docker/environment 32 33 cd "$HOME" 34 35 exec $Dbus pcmanfm >>/x11docker/stdout 2>>/x11docker/stderr 36 # Ready for docker run ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/xterm.log <== x11docker: container ID: d8e085ed962cb8cd5f3a8cdfeb6affdd2ff99d9fb24cd4a587920d23b2b99e0e x11docker: container is up and running. x11docker: container IP: 172.17.0.2 x11docker: container PID: 24406 mkdir: created directory '/var/run/dbus' mkdir: created directory '/tmp/.ICE-unix' mkdir: created directory '/tmp/.X11-unix' mkdir: created directory '/tmp/.font-unix' lrwxrwxrwx 1 root root 13 Mar 1 18:54 /tmp/.X11-unix/X0 -> /x11docker/X0 mkdir: created directory '/fakehome' x11docker: Waiting for file creation of /home/jan/.cache/x11docker/X54-x11docker-lxde/xtermready x11docker: Found new created file /home/jan/.cache/x11docker/X54-x11docker-lxde/xtermready x11docker: stored background pid 24406 of container x11docker: Watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null; ps -p 24406 -o pid #container' Current output: PID 24406 ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/docker.log <== Xlib: extension "RANDR" missing on display ":0". ** Message: x-terminal-emulator has very limited support, consider choose another terminal ** (pcmanfm:1): WARNING **: The directory '~/Templates' doesn't exist, ignoring it ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/stdout <== galculator ==> /home/jan/.cache/x11docker/X54-x11docker-lxde/share/stderr <== ** (galculator:77): WARNING **: Couldn't connect to accessibility bus: Failed to connect to socket /tmp/dbus-YwAATNJbw5: Connection refused [galculator] configuration file: couldn't open configuration file /fakehome/jan/.config/galculator/galculator.conf for reading. Nothing to worry about if you are starting galculator for the first time. Using defaults. Xlib: extension "XInputExtension" missing on display ":0.0". x11docker: Stopped watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null; ps -p 24406 -o pid #container' Current output: PID x11docker: Creating /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye x11docker: Stopped watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null #xinitrc' Current output: /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye x11docker: terminating x11docker ... x11docker: Creating /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye x11docker: terminating background pid 23039 of mywatch x11docker: Stopped watching: sh -c 'ls /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye 2>/dev/null #Xserver' Current output: /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye x11docker: Creating /home/jan/.cache/x11docker/X54-x11docker-lxde/share/timetosaygoodbye