web-dev-qa-db-ja.com

システムトレイからカレンダーを起動する

システムトレイの画面右上の日付をクリックするか、ドロップダウンメニューの項目からカレンダーアプリケーションを起動できますか?

Ubuntu(Unity)のデフォルトのカレンダーアプリケーションを指します。

より明確にするために、ここをクリックしてカレンダーを開いてください:

2
alecarnevale

コメントで述べたように、gnome-calendarexistingTime&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
Jacob Vlijm