РЕДАКТИРОВАНИЕ 9: Прежде, чем записать ответ, говорящий для изменения Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
кому: Exec=something or another
, .desktop
файл Exec=
код не является проблемой, поскольку это хорошо работает с gtk-launch
. Проблема состоит в том, что это не работает из Выставочных Приложений, это просто ничего не делает. Также наблюдайте мой снимок экрана, таким образом, Вы видите точно, какова проблема.
Я пытался (в течение нескольких часов теперь) получить a .desktop
файл для запущения моего скрипта Python, но когда я нажимаю на значок в окне приложений, ничего не происходит.
Вот мой код .desktop:
[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
Name=Volume GUI
Icon=/home/insertUsernameHere/volumeGUI/volumeGUI_Logo.png
Обратите внимание на это, когда я буду работать /home/insertUsernameHere/volumeGUI/volumeGUI.py
в терминале это хорошо работает.
Править: Вот мой код Python
#!/usr/bin/env python3
from tkinter import *
from tkinter.font import *
import subprocess
top = Tk()
top.resizable(False, False)
top.title("Python Volume Controller")
padx = 10
pady = 10
myFont = Font(family = "helvetica", size = 16, weight = "bold")
volumeTextVariable = StringVar()
currentVolumeText = Label(top, textvariable = volumeTextVariable, font = myFont)
currentVolumeText.grid(row = 1, column = 0, columnspan = 2, padx=padx, pady=pady)
volumeIncrement = 2
def volumeUp(volume):
if (volume + volumeIncrement) <= 100:
subprocess.call("pactl set-sink-volume 0 +" + str(volumeIncrement) + r"%", shell=True)
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
def volumeDown(volume):
if (volume - volumeIncrement) >= 0:
subprocess.call("pactl set-sink-volume 0 -" + str(volumeIncrement) + r"%", shell=True)
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
def getVolume():
try:
volume = subprocess.Popen("amixer get Master |grep % |awk '{print $4}'|sed 's/[^0-9]//g'", stdout=subprocess.PIPE, shell=True).communicate()[0].decode("utf-8")[:-1]
except:
volume = -404
return volume
volumeTextVariable.set("Current Volume: " + getVolume() + r"%")
volUpButton = Button(top, text = "Volume Up", command = lambda: volumeUp(int(getVolume())), font = myFont)
volDownButton = Button(top, text = "Volume Down", command = lambda: volumeDown(int(getVolume())), font = myFont)
volUpButton.grid(row = 2, column = 1, padx=padx, pady=pady)
volDownButton.grid(row = 2, column = 0, padx=padx, pady=pady)
top.mainloop()
РЕДАКТИРОВАНИЕ 6: GIF того, что я работал .desktop
файл в командной строке с gtk-launch volumeGUI.desktop
и это работа, но не работа при попытке запустить его от Show Applications
Снимок экрана
РЕДАКТИРОВАНИЕ 7: Я с тех пор улучшил свой код Python: https://paste.ubuntu.com/p/QF6PVrSPSy/
РЕДАКТИРОВАНИЕ 8: Я изменился Exec=/home/insertUsernameHere/volumeGUI/volumeGUI.py
кому: Exec=bash -c "/home/insertUsernameHere/volumeGUI/volumeGUI.py 2>&1 > ~/logfile.txt"
согласно предложению и когда я любое выполнение это с gtk-launch
или попытайтесь выполнить его из Выставочных Приложений, файл журнала пуст.
Попытайтесь изменить Должностное лицо =/script.py на Exec=python3/script.py
, у меня есть несколько программ Java, которые я запускаю через .desktop файлы. Некоторые даже выполняются на начальной загрузке... Извините настолько короткий, отправляя по моему телефону.