
Gnome 3.20 のロック画面に通知送信メッセージの内容を表示する方法を探しています。通常、これは設定 > 通知で設定されますが、そこには「通知送信」は記載されておらず、インストールされているアプリのみが記載されています。
dconf を操作しても、特に under で操作してorg.gnome.desktop.notifications application-children ['org-gnome-software', 'firefox', 'org-gnome-pomodoro', 'gnome-tweak-tool', 'evolution', 'ca-desrt-dconf-editor']
も、あまり役に立ちませんでした。
私の通知送信スクリプトは、別のファイルから取得した確認メッセージを 30 分ごとに表示します。
#!/bin/bash
while : ; do
notify-send -i /usr/share/icons/gnome/scalable/emotes/face-smile-big-symbolic.svg --hint int:transient:1 "$(sort -R ~/Sonstiges/Affirmationen/Affirmationen.txt | head -n 1)"
sleep 30m # Zeit in Minuten
done
これを実現する方法について何かアイデアはありますか?
答え1
クリス・ウィリアムズ(chrisawi)に感謝しますGnome IRC チャンネル次の解決策が見つかりました:
次のコンテンツで呼び出さnotifier
れるスクリプトを作成します。/.local/bin/
#!/usr/bin/python3
# License: MIT
# Author: Chris Williams
APP_ID = "com.example.Notifier"
import sys
from gi.repository import GLib, GObject, Gio
class Notifier(Gio.Application):
def __init__(self):
Gio.Application.__init__(self, application_id=APP_ID, flags=Gio.ApplicationFlags.HANDLES_COMMAND_LINE)
self.set_option_context_parameter_string ("ID TITLE [MESSAGE...]")
self.add_main_option("icon", ord('i'), GLib.OptionFlags.NONE, GLib.OptionArg.STRING, "Icon name or file", None)
#self.add_main_option("quit", ord('q'), GLib.OptionFlags.NONE, GLib.OptionArg.NONE, "Quit", None)
self.add_main_option(GLib.OPTION_REMAINING, 0, GLib.OptionFlags.NONE, GLib.OptionArg.STRING_ARRAY, "", None)
def do_command_line(self, cl):
Gio.Application.do_command_line(self, cl)
opts = cl.get_options_dict().end().unpack()
#if opts.get("quit"):
# self.quit()
args = opts.get(GLib.OPTION_REMAINING, [])
if len(args) >= 2:
notification = Gio.Notification()
notification.set_title(args[1])
if len(args) >= 3:
notification.set_body(" ".join(args[2:]))
icon_str = opts.get("icon")
if icon_str:
try:
icon = Gio.Icon.new_for_string(icon_str)
except GLib.Error as e:
if not e.matches(Gio.io_error_quark(), Gio.IOErrorEnum.INVALID_ARGUMENT):
raise
else:
notification.set_icon(icon)
self.send_notification(args[0], notification)
else:
print ("not enough arguments")
return 0
if __name__ == '__main__':
app = Notifier()
app.run(sys.argv)
元の通知送信スクリプトにも記載します。これは次の場所にあります/.local/bin/
:
#!/bin/bash
while : ; do
notifier -i emote-love-symbolic idxyz "$(sort -R ~/Sonstiges/Affirmationen/Affirmationen.txt | head -n 1)"
sleep 30m # time in minutes
done
このスクリプトを起動時に実行したい場合は、または に.desktop
ファイルを作成する必要があります。 私のは次のようになります。/.local/share/applications/
/.config/autostart/
/affirmationen.desktop
/.config/autostart/
[Desktop Entry]
Name=Affirmationen
Exec=affirmationen
Icon=emote-love-symbolic
Type=Application
StartupNotify=true
Hidden=false
NoDisplay=false
Terminal=false
X-GNOME-UsesNotifications=true
X-GNOME-Autostart-enabled=true
楽しむ!