+ # get the process id of a program
+ def get_pid(self, bin_path, python = False):
+ pid = None
+
+ for p in psutil.process_iter():
+ try:
+ if p.pid != os.getpid():
+ exe = None
+ if python:
+ if len(p.cmdline) > 1:
+ if 'python' in p.cmdline[0]:
+ exe = p.cmdline[1]
+ else:
+ if len(p.cmdline) > 0:
+ exe = p.cmdline[0]
+
+ if exe == bin_path:
+ pid = p.pid
+
+ except:
+ pass
+
+ return pid
+
+ # bring program's x window to front
+ def bring_window_to_front(self, pid):
+ # figure out the window id
+ win_id = None
+ p = subprocess.Popen(['wmctrl', '-l', '-p'], stdout=subprocess.PIPE)
+ for line in p.stdout.readlines():
+ line_split = line.split()
+ cur_win_id = line_split[0]
+ cur_win_pid = int(line_split[2])
+ if cur_win_pid == pid:
+ win_id = cur_win_id
+
+ # bring to front
+ if win_id:
+ subprocess.call(['wmctrl', '-i', '-a', win_id])
+