EDIT: X sekarang dapat dikunci melalui xscreensaver
Hai! coba ini, saya mendapatkan hasil yang bagus menggunakannya, kebanyakan untuk game! Karena tidak akan dikelola oleh Unity, Anda mungkin memiliki hasil yang bagus juga!
Saya telah membuat skrip ini yang membuat sesi X baru dan menjalankan perintah atau membuka terminal sehingga Anda dapat menjalankannya di sana.
openNewX.sh
#!/bin/bash
function FUNCisX1running {
ps -A -o command |grep -v "grep" |grep -q -x "X :1"
}
useJWM=true
useKbd=true
while [[ ${1:0:2} == "--" ]]; do
if [[ "$1" == "--no-wm" ]]; then #opt SKIP WINDOW MANAGER (run pure X alone)
useJWM=false
shift
elif [[ "$1" == "--no-kbd" ]]; then #opt SKIP Keyboard setup
useKbd=false
shift
elif [[ "$1" == "--isRunning" ]]; then #opt check if new X :1 is already running
if FUNCisX1running; then
exit 0
else
exit 1
fi
elif [[ "$1" == "--help" ]]; then #opt show help info
echo "usage: options runCommand"
# this sed only cleans lines that have extended options with "--" prefixed
sedCleanHelpLine='s"\(.*\"\)\(--.*\)\".*#opt" \2"' #helpskip
grep "#opt" $0 |grep -v "#helpskip" |sed "$sedCleanHelpLine"
exit 0
else
#echoc -p "invalid option $1"
echo "PROBLEM: invalid option $1"
$0 --help
exit 1
fi
done
#echo "going to execute: $@"
#runCmd="$1" #this command must be simple, if need complex put on a script file and call it!
runCmd="$@" #this command must be simple, if need complex put on a script file and call it!
#if ! echoc -q -t 2 "use JWM window manager@Dy"; then
# useJWM=false
#fi
# run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb
if ! FUNCisX1running; then
xterm -e "\
echo \"INFO: hit CTRL+C to exit the other X session and close this window\";\
echo \"INFO: running in a thread (child proccess) to prevent ctrl+c from freezing this X session and the machine!\";\
echo \"INFO: hit ctrl+alt+f7 to get back to this X session (f7, f8 etc, may vary..)\";\
echo ;\
echo \"Going to execute on another X session: $runCmd\";\
sudo X :1"&
fi
#sudo chvt 8 # this line to force go to X :1 terminal
# wait for X to start
while ! FUNCisX1running; do
sleep 1
done
# run in a thread, prevents I from ctrl+c here what breaks THIS X instace and locks keyb
if $useJWM; then
if [[ ! -f "$HOME/.jwmrc" ]]; then
echo '<?xml version="1.0"?><JWM><Key mask="4" key="L">exec:xscreensaver-command --lock</Key></JWM>' \
>$HOME/.jwmrc
#if ! jwm -p; then
# rm $HOME/.jwmrc
# echo ".jwmrc is invalid"
#else
echo "see http://joewing.net/programs/jwm/config.shtml#keys"
echo "with Super+L you can lock the screen now"
#fi
fi
jwm -display :1&
fi
kbdSetup="echo \"SKIP: kbd setup\""
if $useKbd; then
kbdSetup="setxkbmap -layout us"
fi
sleep 2
xscreensaver -display :1&
# setxkbmap is good for games that have console access!; bash is to keep console open!
# nothing
#xterm -display :1&
# dead keys
#xterm -display :1 -e "setxkbmap -layout us -variant intl; bash"&
# good for games!
xterm -display :1 -e "$kbdSetup; bash -c \"$runCmd\"; bash"&
#xterm -display :1 -e "$kbdSetup; bash -c \"$@\"; bash"&
juga, tambahkan ini di: compiz config settings manager -> aturan jendela -> jendela yang tidak dapat ditutup:
(class=XTerm) & (title=sudo X :1) & (name=xterm)
Ini akan mencegah Anda menutup terminal itu (gunakan ctrl + c untuk menutup sesi X lainnya dan juga terminal), karena jika Anda menutup "jendela" itu akan membekukan sesi X Anda saat ini!
Ini memiliki keuntungan bahwa Anda tidak memiliki alt + masukkan masalah layar penuh, juga tidak ada Alt + TAB masalah layar penuh; Anda dapat menjalankan dengan lebih stabil game 3D apa saja, dari Urban Terror (asli linux) hingga game yang dijalankan dengan Wine! Bahkan beberapa browser yang menjalankan game 3D seperti Firefox dengan Quake!
Obs .: Anda mungkin ingin menginstal paket jwm, tidak diperlukan tetapi akan membuat perbedaan jika Anda perlu melakukan manajemen jendela di sana ..
PS: itu bisa diperbaiki tentu saja, rencana saya adalah menambahkan pengaturan keyboard ke opsi, tapi saya melakukannya dengan sangat lambat;), jika seseorang memperbaiki / membersihkannya, poskan sehingga saya dapat memperbarui skrip tambang :)