Календарь запуска от системного лотка

Действительно ли возможно запустить календарное приложение путем нажатия в день на верхнем правом из экрана в системном лотке, или от каких-либо объектов в его выпадающем меню?

Я обращаюсь к календарному приложению по умолчанию Ubuntu (Единица).

Для большей ясности я имею в виду открытый календарь путем нажатия здесь:

2
задан 27 February 2017 в 15:46

1 ответ

Как упомянуто в комментариях, добавляя gnome-calendar к существующему Time & Date меню потребовало бы вторжения в код. Кроме того, что это, кажется, вне объема AU на первом обновлении, Вы должны были бы к той же стандартной программе снова.

Кроме того,

Выполните индикатор ниже. Это добавит значок к панели для быстрого доступа к календарю:

enter image description here

Код

#!/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()

Как использовать

  1. Не уверенный, если python3-gi установлен по умолчанию, но удостоверяться:

    sudo apt install python3-gi
    
  2. Скопируйте сценарий в пустой файл, сохраните его как indicator_runcal.py

  3. Тестовый прогон это с командой

    python3 /path/to/indicator_runcal.py
    

    pnale значок должен быть добавлен как в изображении, выбрать Show Calendar из своего меню.

  4. Если все хорошо работает, добавьте к Приложениям Запуска: Тире> Приложения Запуска> Добавляет. Добавьте команду

    /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
  1. Скопируйте код выше в пустой файл, сохраните его как cal_indicator.desktop
  2. Замените путь в /absolute/path/to/indicator_runcal.py реальным (и полный, не использовать ~ или $HOME) соедините каналом к сценарию.
  3. Переместите или скопируйте файл в ~/.local/share/applications, выйдите из системы и въезжайте задним ходом.

    Теперь индикатор может быть запущен с Тире:

    enter image description here

0
ответ дан 2 December 2019 в 09:22

Другие вопросы по тегам:

Похожие вопросы: