gnome-shell/scripts/start-replace

37 lines
981 B
Plaintext
Raw Normal View History

#!/usr/bin/python
import os
import subprocess
import signal
from launcher import Launcher
launcher = Launcher()
try:
# Kill gnome-panel in a way that it won't autorespawn
pidof = subprocess.Popen(["/sbin/pidof", "gnome-panel"], stdout=subprocess.PIPE)
pids = pidof.communicate()[0].split()
pidof.wait()
devnull = open("/dev/null", "w")
for pid in pids:
subprocess.call(["gdb", "-batch-silent",
"-ex", "call panel_session_do_not_restart()",
"-ex", "call exit(0)",
"-p", pid], stdout=devnull, stderr=devnull)
devnull.close()
shell = launcher.start_shell()
# Wait for shell to exit
try:
shell.wait()
except KeyboardInterrupt, e:
os.kill(shell.pid, signal.SIGKILL)
shell.wait()
finally:
# Restart gnome-panel and window manager
subprocess.Popen(["/usr/bin/metacity"])
subprocess.Popen(["/usr/bin/gnome-panel"])