GTK3 添加到 window 的任务托盘图标上下文菜单
GTK3 add to a window's task tray icon context menu
我正在用 C 语言工作,并创建了一个 window 和一个菜单:
window = gtk_application_window_new (app);
[ ... ]
menu = gtk_menu_new();
我目前将菜单连接到 window 中的一个按钮,如下所示:
g_signal_connect (widget, "clicked", G_CALLBACK (open_menu), NULL);
然而,菜单实际上是它唯一需要的界面。 windows 我有一个带有上下文菜单的托盘图标。
我不想使用 GtkStatusIcon,因为它已被弃用,而且会被滥用。
我想在 Linux 上做类似的事情,但我需要能够获得 window 的任务托盘图标上下文菜单。
这可能吗?还是并非所有 Linux 版本都有任务栏这一事实使这成为一个坏主意?
我可以使用任何替代解决方案吗?
Linux 上的每个桌面环境在这方面的设计目标都略有不同。 Gnome 正在远离托盘图标,而更喜欢 DBus 激活服务和通知的设计。 Unity/Plasma 有 AppIndicators,其功能主要类似于托盘图标,但由于它们是 DBus 接口,因此受到的限制略多。像 XFCE 这样的经典环境仍然只是 X11,所以 XEmbed 风格的托盘 (GtkStatusIcon) 仍然在大量使用。
我正在用 C 语言工作,并创建了一个 window 和一个菜单:
window = gtk_application_window_new (app);
[ ... ]
menu = gtk_menu_new();
我目前将菜单连接到 window 中的一个按钮,如下所示:
g_signal_connect (widget, "clicked", G_CALLBACK (open_menu), NULL);
然而,菜单实际上是它唯一需要的界面。 windows 我有一个带有上下文菜单的托盘图标。
我不想使用 GtkStatusIcon,因为它已被弃用,而且会被滥用。
我想在 Linux 上做类似的事情,但我需要能够获得 window 的任务托盘图标上下文菜单。
这可能吗?还是并非所有 Linux 版本都有任务栏这一事实使这成为一个坏主意?
我可以使用任何替代解决方案吗?
Linux 上的每个桌面环境在这方面的设计目标都略有不同。 Gnome 正在远离托盘图标,而更喜欢 DBus 激活服务和通知的设计。 Unity/Plasma 有 AppIndicators,其功能主要类似于托盘图标,但由于它们是 DBus 接口,因此受到的限制略多。像 XFCE 这样的经典环境仍然只是 X11,所以 XEmbed 风格的托盘 (GtkStatusIcon) 仍然在大量使用。