Как добавить скрипт как иконку в topbar
Мне бы очень хотелось, чтобы у меня был скрипт.sh для отключения / включения сенсорного экрана на моем компьютере в виде кнопки на верхней панели гнома (панели индикаторов). Я недавно переключил DE с единства на простого гнома.
Я смог найти, как вы можете добавить его как значок запуска или значок на рабочем столе, но мне бы очень хотелось, чтобы он был в верхней панели.
1 ответ
Вам нужно будет создать приложение-индикатор.
Быстрый пример, с которым вы можете работать:
#!/usr/bin/python
# This code is an example for a tutorial on Ubuntu Unity/Gnome AppIndicators:
# http://candidtim.github.io/appindicator/2014/09/13/ubuntu-appindicator-step-by-step.html
# https://gist.github.com/candidtim/7290a1ad6e465d680b68
import os
import signal
import json
import subprocess
from urllib2 import Request, urlopen # URLError
from gi.repository import Gtk as gtk
from gi.repository import AppIndicator3 as appindicator
from gi.repository import Notify as notify
APPINDICATOR_ID = 'myappindicator'
def main():
indicator = appindicator.Indicator.new(APPINDICATOR_ID, os.path.abspath('sample_icon.svg'), appindicator.IndicatorCategory.SYSTEM_SERVICES)
indicator.set_status(appindicator.IndicatorStatus.ACTIVE)
indicator.set_menu(build_menu())
notify.init(APPINDICATOR_ID)
gtk.main()
def build_menu():
menu = gtk.Menu()
item_myapp = gtk.MenuItem('MyApp')
item_myapp.connect('activate', myapp)
menu.append(item_myapp)
item_quit1 = gtk.MenuItem('Quit')
item_quit1.connect('activate', quit1)
menu.append(item_quit1)
menu.show_all()
return menu
def fetch_joke():
request = Request('http://api.icndb.com/jokes/random?limitTo=[nerdy]')
response = urlopen(request)
joke = json.loads(response.read())['value']['joke']
return joke
def myapp(_):
subprocess.call("myapp.sh", shell=True)
return myapp
def quit1(_):
notify.uninit()
gtk.main_quit()
if __name__ == "__main__":
signal.signal(signal.SIGINT, signal.SIG_DFL)
main()
В приведенном выше примере просто измените myapp.sh на полный путь вашего скрипта, и он будет работать. Когда вы запустите скрипт, он поместит элемент в индикаторе в строку меню.
Подробности можно найти по адресу:
http://candidtim.github.io/appindicator/2014/09/13/ubuntu-appindicator-step-by-step.html
а также
https://wiki.ubuntu.com/DesktopExperienceTeam/ApplicationIndicators