Действительно ли возможно запустить календарное приложение путем нажатия в день на верхнем правом из экрана в системном лотке, или от каких-либо объектов в его выпадающем меню?
Я обращаюсь к календарному приложению по умолчанию Ubuntu (Единица).
Для большей ясности я имею в виду открытый календарь путем нажатия здесь:
Как упомянуто в комментариях, добавляя gnome-calendar
к существующему Time & Date меню потребовало бы вторжения в код. Кроме того, что это, кажется, вне объема AU на первом обновлении, Вы должны были бы к той же стандартной программе снова.
Выполните индикатор ниже. Это добавит значок к панели для быстрого доступа к календарю:
#!/usr/bin/env python3
import signal
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('AppIndicator3', '0.1')
from gi.repository import Gtk, AppIndicator3
import subprocess
class Indicator():
def __init__(self):
self.app = 'test123'
iconpath = "org.gnome.Calendar"
self.indicator = AppIndicator3.Indicator.new(
self.app, iconpath,
AppIndicator3.IndicatorCategory.OTHER)
self.indicator.set_status(AppIndicator3.IndicatorStatus.ACTIVE)
self.indicator.set_menu(self.create_menu())
def create_menu(self):
menu = Gtk.Menu()
open_cal = Gtk.MenuItem('Show Calendar')
open_cal.connect('activate', self.run_cal)
menu.append(open_cal)
# separator
menu_sep = Gtk.SeparatorMenuItem()
menu.append(menu_sep)
# quit
item_quit = Gtk.MenuItem('Quit')
item_quit.connect('activate', self.stop)
menu.append(item_quit)
menu.show_all()
return menu
def run_cal(self, source):
subprocess.Popen("gnome-calendar")
def stop(self, source):
Gtk.main_quit()
Indicator()
signal.signal(signal.SIGINT, signal.SIG_DFL)
Gtk.main()
Не уверенный, если python3-gi установлен по умолчанию, но удостоверяться:
sudo apt install python3-gi
Скопируйте сценарий в пустой файл, сохраните его как indicator_runcal.py
Тестовый прогон это с командой
python3 /path/to/indicator_runcal.py
pnale значок должен быть добавлен как в изображении, выбрать Show Calendar из своего меню.
Если все хорошо работает, добавьте к Приложениям Запуска: Тире> Приложения Запуска> Добавляет. Добавьте команду
/bin/bash -c "sleep 10 && python3 /path/to/indicator_runcal.py"
Можно дать ему средство запуска:
[Desktop Entry]
Exec=python3 /absolute/path/to/indicator_runcal.py
Name=Show Calendar
Type=Application
Icon=org.gnome.Calendar
cal_indicator.desktop
/absolute/path/to/indicator_runcal.py
реальным (и полный, не использовать ~
или $HOME
) соедините каналом к сценарию.Переместите или скопируйте файл в ~/.local/share/applications
, выйдите из системы и въезжайте задним ходом.
Теперь индикатор может быть запущен с Тире: