从系统托盘启动日历

从系统托盘启动日历

是否可以通过单击系统托盘中屏幕右上角的日期或下拉菜单中的任何项目来启动日历应用程序?

我指的是 Ubuntu(Unity)的默认日历应用程序。

为了更加清楚,我的意思是点击此处打开日历:

答案1

正如评论中提到的,添加gnome-calendar现存的 时间和日期菜单需要破解代码。除了这似乎超出了 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()

如何使用

  1. 不确定 python3-gi 是否默认安装,但要确保:

    sudo apt install python3-gi
    
  2. 将脚本复制到一个空文件中,另存为indicator_runcal.py

  3. 使用命令进行测试运行

    python3 /path/to/indicator_runcal.py
    

    应添加一个如图所示的图标,Show Calendar从其菜单中选择。

  4. 如果一切正常,请添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令

    /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,然后注销并重新登录。

    现在可以从 Dash 启动该指标:

    在此处输入图片描述

相关内容