所以我有很多,我從鍵盤快捷鍵,事情辦得如上傳截圖imgur並把鏈接在剪貼板,工具和數字化繪圖腳本等Python腳本不會對鍵盤快捷方式運行
我有這個當前腳本,它只能從終端運行,而不是當我嘗試將其作爲鍵盤快捷方式運行時。
我試圖通過Scientific linux 6.4
上的System > Preferences > Keyboard Shortcuts
來運行它。
我已經包含了下面的腳本,以防有什麼具體的事情會阻止它工作。
#!/usr/bin/python
import fileinput, os
import subprocess
from pygments import highlight
from pygments.lexers import get_lexer_by_name, guess_lexer
import pygments.formatters as formatters
#stdin = "\n".join([line for line in fileinput.input()])
p = subprocess.Popen(["xclip", "-selection", "primary", "-o"], stdout=subprocess.PIPE)
code, err = p.communicate()
if not err:
lexer = guess_lexer(code)
print lexer.name
imageformatter = formatters.ImageFormatter(linenos=True, cssclass="source", font_name="Liberation Mono")
formatter = formatters.HtmlFormatter(linenos=True, cssclass="source")
HTMLresult = highlight(code, lexer, formatter)
Jpgresult = highlight(code, lexer, imageformatter, outfile=open("syntax.png", "w"))
with open("syntax.html", "w") as f:
f.write("<html><head><style media='screen' type='text/css'>")
f.write(formatters.HtmlFormatter().get_style_defs('.source'))
f.write("</style></head><body>")
f.write(HTMLresult)
f.write("</body></html>")
# os.system("pdflatex syntax.tex")
os.system("firefox syntax.html")
os.system("uploadImage.sh syntax.png")
else:
print err
它的工作方式,是通過提取使用xclip
剪貼板選擇上的文字採用pygments
,然後都建立在Firefox中的HTML文件,並打開它,並上傳圖片到imgur(使用其他腳本我有,我知道100%的作品),然後把這個圖像url回到剪貼板。
它所在的bin
文件夾在我的路徑中。
我已經嘗試了所有的:
script
script.sh (where this file is just a shell script which calls the python script)
/home/will/bin/script
/home/will/bin/script.sh
作爲keyboard preferences
的command
。
如果我將這些腳本的內容更改爲notify-send "hello"
之類的內容,然後生成通知消息,所以我相當自信它是一個與腳本相關的問題,而不是keyboard shortcuts
菜單。
我會把'notify-send「hello」'放到腳本的各個位置,以隔離確切的線路導致問題。然後你可以繼續前進。當通過鍵盤快捷方式調用腳本時,腳本的某些部分可能需要某些您不具備的環境? – jhutar 2014-11-14 20:56:17
另一個重要的事情是嘗試捕獲腳本的輸出。如果你有'script.sh'包裝器,你可以嘗試通過類似'/home/will/bin/problematic_script.py&>/tmp/script.log'的方式將stdout和stderr(和其他)重定向到文件。也許這會提供更多的線索? – jhutar 2014-11-14 20:58:43