self.i = self.i + 1
return line
+
def lyx_exists():
if lyx_pid is None:
return False
fname = '/proc/' + lyx_pid + '/status'
return os.path.exists(fname)
-def lyx_sleeping():
- fname = '/proc/' + lyx_pid + '/status'
- f = open(fname, 'r')
- lines = f.readlines()
- sleeping = lines[1].find('(sleeping)') > 0
-
- # print 'LYX_STATE', lines[1] , 'SLEEPING=', sleeping
-
- return sleeping
-
# Interruptible os.system()
def intr_system(cmd, ignore_err = False):
if os.WIFSIGNALED(ret):
raise KeyboardInterrupt
if ret != 0 and not ignore_err:
- raise BaseException("command failed.")
+ raise BaseException("command failed:" + cmd)
return ret
+# Return true if LyX (identified via lyx_pid) is sleeping
+def lyx_sleeping():
+ fname = '/proc/' + lyx_pid + '/status'
+ return intr_system("grep 'State.*sleeping' " + fname, True)
+
+
def sendKeystring(keystr, LYX_PID):
# print "sending keystring "+keystr+"\n"
actual_delay = key_delay
if actual_delay == '':
actual_delay = def_delay
- if not xvkbd_hacked:
- subprocess.call([xvkbd_exe, "-xsendevent", "-window", lyx_window_name,
- "-delay", actual_delay, "-text", keystr], stdout = FNULL, stderr = FNULL)
+ xvpar = [xvkbd_exe]
+ if qt_frontend == 'QT5':
+ xvpar.extend(["-no-jump-pointer"])
else:
- subprocess.call([xvkbd_exe, "-no_root", "-wait_idle", lyx_pid,
- "-xsendevent", "-window", lyx_window_name,
- "-delay", actual_delay, "-text", keystr], stdout = FNULL, stderr = FNULL)
+ xvpar.extend(["-xsendevent"])
+ if xvkbd_hacked:
+ xvpar.extend(["-wait_idle", lyx_pid])
+ xvpar.extend(["-window", lyx_window_name, "-delay", actual_delay, "-text", keystr])
+
+ subprocess.call(xvpar, stdout = FNULL, stderr = FNULL)
def system_retry(num_retry, cmd):
i = 0
rtn = intr_system(cmd)
while ( ( i < num_retry ) and ( rtn != 0) ):
i = i + 1
- rtn = intr_system(cmd)
+ rtn = intr_system(cmd)
time.sleep(1)
if ( rtn != 0 ):
print "Command Failed: "+cmd
xvkbd_exe = "xvkbd"
xvkbd_hacked = os.environ.get('XVKBD_HACKED') != None
+qt_frontend = os.environ.get('QT_FRONTEND')
+if qt_frontend is None:
+ qt_frontend = 'QT4'
locale_dir = os.environ.get('LOCALE_DIR')
if locale_dir is None:
intr_system(lyx_exe + c[9:] + "&")
else:
intr_system(lyx_exe + " -userdir " + lyx_userdir + " " + c[9:] + "&")
- while True:
+ count = 5
+ while count > 0:
lyx_pid=os.popen("pidof " + lyx).read().rstrip()
+ print 'lyx_pid=' + lyx_pid, '\n'
if lyx_pid != "":
lyx_window_name=os.popen("wmctrl -l -p | grep ' " + str(lyx_pid) + " ' | cut -d ' ' -f 1").read().rstrip()
+ print 'lyx_win=' + lyx_window_name, '\n'
if lyx_window_name != "":
break
+ else:
+ count = count - 1
print 'lyx_win: ' + lyx_window_name + '\n'
print "Waiting for LyX to show up . . ."
time.sleep(1)
+ if count <= 0:
+ print 'Timeout: could not start ' + lyx_exe, '\n'
+ sys.stdout.flush()
+ failed = True
print 'lyx_pid: ' + lyx_pid + '\n'
print 'lyx_win: ' + lyx_window_name + '\n'
elif c[0:5] == 'Sleep':
lang = c[5:].rstrip()
print "Setting LANG=" + lang + "\n"
os.environ['LANG'] = lang
- os.environ['LANGUAGE'] = lang
+ os.environ['LC_ALL'] = lang
# If it doesn't exist, create a link <locale_dir>/<country-code>/LC_MESSAGES/lyx<version-suffix>.mo
# pointing to the corresponding .gmo file. Needed to let lyx find the right translation files.
# See http://www.mail-archive.com/lyx-devel@lists.lyx.org/msg165613.html