向 GNOME 面板添加自定义文本

向 GNOME 面板添加自定义文本

我想在 GNOME Classic 中的 GNOME 面板中添加一些文本。

我从中得到了一个建议博客但它可以追溯到 2008 年,现在似乎不再适用。

在 Ubuntu 12.10 和 GNOME classic 中,缺少 /apps/panel/applets/clock_screen0/prefs/custom_formatin选项。gconf-editor

那么,有什么方法可以向 GNOME classic 中的时钟添加自定义文本吗?

另外是否有其他可用的小程序/扩展允许我们向 GNOME 面板添加文本?

答案1

简单的 Gnome 扩展可能值得一试。(我不确定命名,在 Ubuntu 14.04 中:Gnome classic 使用相同的 Gnome shell 扩展,而旧经典重命名为 Gnome Fallback)


Gnome 经典版和 Mate

  1. 下载面板小程序生成器
  2. 生成一个新的小程序:

    python panel-applet-generator.py -n mylabel -d "my custom label"
    
  3. 调整mylabelApplet.py

    try:
        from gi.repository import Gtk
    except: # Can't use ImportError, as gi.repository isn't quite that nice...
        import gtk as Gtk
    
    def applet_factory(applet, iid, data = None):
        button = Gtk.Button("It works!")
        label = Gtk.Label("It works!")
        applet.add(label)
        applet.show_all()
        return True
    

    我添加label = Gtk.Label("It works!")并修改了applet.add(label)(它是applet.add(button)

  4. 将 mylabel 文件夹压缩为 tar.gz,然后将其重命名为mylabel_1.0.orig.tar.gz

  5. 构建 Debian 软件包

    cd mylabel/
    debuild -us -uc
    
  6. 安装包

    sudo dpkg -i ../*.deb
    
  7. Alt面板上+Right ClickSuper++ ,然后添加到Alt面板Right Click

  8. 查找 mylabel 小程序,然后添加

在此处输入图片描述

参考:

笔记:

  • 如果由于任何原因无法安装,可以手动安装:

    sudo cp org.gnome.applets.mylabel.panel-applet /usr/share/gnome-panel/4.0/applets/
    sudo cp org.gnome.panel.applet.mylabel.service /usr/share/dbus-1/services/
    sudo cp *.py /usr/lib/gnome-applets/
    

    32位系统:

    sudo cp mylabel.server /usr/lib/bonobo/servers/ 
    

    64位系统:

    sudo cp mylabel.server /usr/lib/x86_64-linux-gnu/bonobo/servers/
    

Gnome 外壳

我已经用 Gnome 3.10 测试过它:

  1. 安装 Gnome 调整工具

    sudo apt-get install gnome-tweak-tool
    
  2. 创建新的扩展:

    gnome-shell-extension-tool --create-extension
    
  3. 输入所需信息:名称My Label、描述Extension shows my custom text、uuidmylabel@yourname或保留默认值mylabel@hostname

    扩展创建于/home/username/.local/share/gnome-shell/extensions/mylabel@hostname

  4. extension.js自动打开。将图标替换为您的自定义标签。如下所示:

    function init() {
        button = new St.Bin({ style_class: 'panel-button',
                              reactive: true,
                              can_focus: true,
                              x_fill: true,
                              y_fill: false,
                              track_hover: true });
        let icon = new St.Icon({ icon_name: 'system-run-symbolic',
                                 style_class: 'system-status-icon' });
    
        let label = new St.Label({ text: "Hello, world!" });
        button.set_child(label);
        button.connect('button-press-event', _showHello);
    }
    

    我添加let label = new St.Label({ text: "Hello, world!" });并修改了'button.set_child(label);(它是button.set_child(icon);

  5. Alt保存,使用+重新启动 Gnome-Shell ,然后F2输入rEnter

  6. 启动 Gnome Tweak Tool → 扩展 → 启用My Label扩展。

  7. 再次重新启动 Gnome-Shell。

    在此处输入图片描述

参考:

答案2

在 20.04 上,有一个可以使用 dbus 来设置文本的工作扩展:
https://extensions.gnome.org/extension/2826/generic-monitor/?c=78316

这是自述文件:
http://indefero.soutade.fr/p/genericmonitor/source/tree/master/README.md
这是我使用的(1 分钟循环),因为我找不到其他方法来按照我想要的方式配置日期时间:

while true;do
  strDate="`date +"%A, %Hh%Mm - %d %B (%m/%Y)"`";
  gdbus call --session --dest org.gnome.Shell --object-path /com/soutade/GenericMonitor --method com.soutade.GenericMonitor.notify \
    '{"group":"new","items":[{"name":"first","text":"'"$strDate"'","style":"color:white"}]}'
  sleep 60
done

答案3

如果有人(仍然)在寻找它,这里有一个更简单的解决方案。一个名为 One Thing 的 gnome 扩展(以 Mac 上的类似应用程序命名)

https://extensions.gnome.org/extension/5072/one-thing/

相关内容