EDIT: X agora pode ser bloqueado através do xscreensaver
oi! tente isso, estou tendo ótimos resultados usando, principalmente para jogos!
Como não será gerenciado pela Unity, você pode ter ótimos resultados também!
Eu criei esse script que cria uma nova sessão X e executa um comando ou abre um terminal para que você possa executá-lo lá.
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 [[ "" == "--no-wm" ]]; then #opt SKIP WINDOW MANAGER (run pure X alone)
useJWM=false
shift
elif [[ "" == "--no-kbd" ]]; then #opt SKIP Keyboard setup
useKbd=false
shift
elif [[ "" == "--isRunning" ]]; then #opt check if new X :1 is already running
if FUNCisX1running; then
exit 0
else
exit 1
fi
elif [[ "" == "--help" ]]; then #opt show help info
echo "usage: options runCommand"
# this sed only cleans lines that have extended options with "--" prefixed
sedCleanHelpLine='s"\(.*\"\)\(--.*\)\".*#opt" "' #helpskip
grep "#opt" (class=XTerm) & (title=sudo X :1) & (name=xterm)
|grep -v "#helpskip" |sed "$sedCleanHelpLine"
exit 0
else
#echoc -p "invalid option "
echo "PROBLEM: invalid option "
%pre% --help
exit 1
fi
done
#echo "going to execute: $@"
#runCmd="" #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"&
também, adicione isto em: compiz config settings manager - & gt; regras de janela - & gt; não fechavel
janelas:
%pre%
Isso impedirá que você feche esse terminal (use ctrl + c para fechar a outra sessão X e também o terminal), porque se você fechar "a janela" ele irá congelar sua sessão X atual!
Tem a vantagem de você não ter alt + inserir problemas de tela cheia, também sem problemas de tela cheia Alt + TAB; você pode rodar com mais estabilidade em qualquer jogo 3D, do Urban Terror (linux nativo) a jogos com o Wine! Até mesmo alguns navegadores que executam jogos 3D como o Firefox com o Quake!
Obs .: você pode querer instalar o pacote jwm, não é necessário, mas fará a diferença se você precisar fazer algum gerenciamento de janelas lá ..
PS .: pode ser melhorado é claro, meu plano é adicionar a configuração do teclado a uma opção, mas eu faço isso bem devagar;), se alguém melhorar / limpar, poste para que eu possa atualizar o meu script: )