#!/bin/bash # # 2023.01.13 Version 1.0 # #WindowSize=1920x1080 WindowSize=1024x768 # TARGET=$1 USER_SESSION=$2 # func_signal() { kill -0 $2 > /dev/null 2>&1 if [ $? -eq 0 ] then kill -$1 $2 return $? fi return 1 } # trap ' if [ -n $VIEWER ] then func_signal TERM $VIEWER echo -e "\nTRAP viewer $VIEWER exited!" fi ' 2 3 15 # export GDM_LANG=$LANG #XLOG=/tmp/Xorg.$TARGET.log XLOG=/dev/null #VLOG=/tmp/x11vnc.$TARGET.log VLOG=/dev/null # # # Window Manager # gnome-session:gnome-flachback以外は(xrandrのlogical displayが存在しないため)動作しない # Open Motif :動作するが、タイトルの漢字コードは化ける # kde plasma :動作する # MATE :動作する # setxkbmap -model pc105 -layout jp,us # if [ -x ~/.vnc/xstartup ] then DISPLAY=$TARGET dbus-run-session -- ~/.vnc/xstartup & SESSION=$! else #################################################### if [ "$USER_SESSION" = "mate" -a -x /usr/bin/mate-session ] then /usr/bin/gnome-keyring-daemon --start --components=ssh # /usr/bin/ssh-agent -D -a /run/user/0/keyring/ssh DISPLAY=$TARGET dbus-run-session -- /usr/bin/mate-session --display=$TARGET & SESSION=$! fi #################################################### if [ "$USER_SESSION" = "mwm" -a -x /usr/bin/mwm ] then DISPLAY=$TARGET dbus-run-session -- /usr/bin/mwm -multiscreen & SESSION=$! fi #################################################### if [ "$USER_SESSION" = "kde" -a -x /usr/bin/startplasma-x11 ] then DISPLAY=$TARGET dbus-run-session -- /usr/bin/startplasma-x11 & SESSION=$! fi #################################################### if [ "$USER_SESSION" = "gnome-flashback" -a -x /usr/bin/gnome-flashback ] then export XDG_CURRENT_DESKTOP="GNOME-Flashback:GNOME" #DISPLAY=$TARGET dbus-launch gnome-session --session=gnome-flashback-metacity & DISPLAY=$TARGET dbus-run-session gnome-session --session=gnome-flashback-metacity & SESSION=$! fi #################################################### if [ "$USER_SESSION" = "gnome-classic" ] then export GNOME_SHELL_SESSION_MODE=classic export XDG_CURRENT_DESKTOP="GNOME-classic:GNOME" DISPLAY=$TARGET dbus-launch gnome-session --session=gnome-classic & SESSION=$! fi #################################################### if [ -z "$SESSION" -a -x /usr/bin/metacity ] then echo "Fail safe @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" # Fail safe DISPLAY=$TARGET xsetroot -solid gray20 unset GNOME_DESKTOP_SESSION_ID unset XDG_SESSION_ID unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS if [ "$LANG" = "ja_JP.UTF-8" ] then #################################################### # 仮想モードでは、['+space']による、かな漢字変換エンジンへの切り替えが、 # ホスト側のウィンドウマネージャによって、アクセプトされ、仮想モード側に認識されないため、 # 別のキーバイディングに変更します。 #################################################### #DISPLAY=$TARGET gsettings set org.gnome.desktop.wm.keybindings switch-input-source "['space', 'XF86Keyboard']" #DISPLAY=$TARGET gsettings set org.gnome.desktop.wm.keybindings switch-input-source-backward "['space', 'XF86Keyboard']" #################################################### # かな漢字変換エンジンを起動します #################################################### DISPLAY=$TARGET dbus-run-session -- /usr/bin/metacity --composite & SESSION=$! DISPLAY=$TARGET /usr/bin/ibus-daemon -r --xim -d DISPLAY=$TARGET /usr/libexec/ibus-engine-kkc --ibus & DISPLAY=$TARGET /usr/libexec/ibus-engine-simple & # #DISPLAY=$TARGET gsettings reset org.gnome.desktop.wm.keybindings switch-input-source fi DISPLAY=$TARGET dbus-launch /usr/bin/gnome-terminal --display=$TARGET #DISPLAY=$TARGET dbus-run-session -- /usr/bin/xterm & fi fi # # echo "Window Manager PID $SESSION" # sleep 1 vncviewer -RemoteResize=0 -geometry $WindowSize+0+0 --shared localhost$TARGET & VIEWER=$! # # if [ -n $SESSION ] then wait $SESSION echo "Window Manager $SESSION exited!" func_signal TERM $SESSION fi if [ -n $VIEWER ] then echo "vncviewer $VIEWER exited!" func_signal TERM $VIEWER fi # if [ "$USER_SESSION" = "gnome-flashback" ] then PROCESS=`ps|grep ibus-engine-kkc|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "ibus-engine-kkc $PROCESS exited!" fi PROCESS=`ps|grep ibus-engine-sim|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "ibus-engine-sim $PROCESS exited!" fi PROCESS=`ps|grep nm-applet|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "nm-applet $PROCESS exited!" fi PROCESS=`ps|grep gnome-screensav|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "gnome-screensav $PROCESS exited!" fi PROCESS=`ps|grep tracker-miner-a|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "tracker-miner-a $PROCESS exited!" fi PROCESS=`ps|grep tracker-miner-f|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "tracker-miner-f $PROCESS exited!" fi PROCESS=`ps|grep baloo_file|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "baloo_file $PROCESS exited!" fi PROCESS=`ps|grep evolution-alarm|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "evolution-alarm $PROCESS exited!" fi PROCESS=`ps|grep abrt-applet|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "abrt-applet $PROCESS exited!" fi PROCESS=`ps|grep gsd-disk-utilit|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "gsd-disk-utilit $PROCESS exited!" fi PROCESS=`ps|grep gnome-session-b|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "gnome-session-b $PROCESS exited!" fi PROCESS=`ps|grep metacity|awk '{print $1}'` if [ -n "$PROCESS" ] then func_signal KILL $PROCESS echo "metacity $PROCESS exited!" fi fi DBUS=`ps|grep dbus-daemon|awk '{print $1}'` if [ -n "$DBUS" ] then func_signal KILL $DBUS echo "dbus-daemon $DBUS exited!" fi