web-dev-qa-db-fra.com

Lancer le calendrier à partir de la barre d'état système

Est-il possible de lancer l'application Calendrier en cliquant sur la date en haut à droite de l'écran dans la barre d'état système ou à partir de l'un des éléments de son menu déroulant?

Je fais référence à l'application de calendrier par défaut d'Ubuntu (Unity).

Pour plus de clarté, je veux dire calendrier ouvert en cliquant ici:

2
alecarnevale

Comme mentionné dans les commentaires, ajouter gnome-calendar au menu existant Heure et date nécessiterait pénétrer dans le code. Mis à part le fait que cela semble être en dehors du champ d'action de l'UA, lors de la première mise à jour, vous devrez à nouveau suivre la même routine.

Alternativement

Exécutez l'indicateur ci-dessous. Il ajoutera une icône au panneau pour un accès rapide au calendrier:

enter image description here

Le code

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

Comment utiliser

  1. Pas sûr que python3-gi soit installé par défaut, mais pour être sûr:

    Sudo apt install python3-gi
    
  2. Copiez le script dans un fichier vide, enregistrez-le sous le nom indicator_runcal.py

  3. Testez-le avec la commande

    python3 /path/to/indicator_runcal.py
    

    Une icône pnale doit être ajoutée comme dans l’image, choisissez Show Calendar de son menu.

  4. Si tout fonctionne correctement, ajoutez à Applications de démarrage: Dash> Applications de démarrage> Ajouter. Ajouter la commande

    /bin/bash -c "sleep 10 && python3 /path/to/indicator_runcal.py"
    

Aditionellement

Vous pouvez lui donner un lanceur:

[Desktop Entry]
Exec=python3 /absolute/path/to/indicator_runcal.py
Name=Show Calendar
Type=Application
Icon=org.gnome.Calendar
  1. Copiez le code ci-dessus dans un fichier vide, enregistrez-le sous le nom cal_indicator.desktop
  2. Remplacez le chemin dans /absolute/path/to/indicator_runcal.py par le chemin réel (et complet, n'utilisez pas ~ ou $HOME) vers le script.
  3. Déplacez ou copiez le fichier dans ~/.local/share/applications, déconnectez-vous puis reconnectez-vous.

    Maintenant, l'indicateur peut être lancé depuis Dash:

    enter image description here

0
Jacob Vlijm