summaryrefslogtreecommitdiffstats
path: root/fedora-live-desktop.ks
diff options
context:
space:
mode:
authorKalev Lember <kalevlember@gmail.com>2012-05-01 13:34:21 +0300
committerKalev Lember <kalevlember@gmail.com>2012-05-01 13:47:33 +0300
commitc712f456cb3b2e4d54edb28070b20fb7a30a27ad (patch)
tree902308df87582ea5b3012863383f3de1d97e33f2 /fedora-live-desktop.ks
parent19d152baef4936301eedbecafb63c7ea557ad3c2 (diff)
downloadspin-kickstarts-c712f456cb3b2e4d54edb28070b20fb7a30a27ad.tar.gz
spin-kickstarts-c712f456cb3b2e4d54edb28070b20fb7a30a27ad.tar.xz
spin-kickstarts-c712f456cb3b2e4d54edb28070b20fb7a30a27ad.zip
Desktop: Display a notification for starting the installer
A git repo with anaconda-notification and anaconda-notification.desktop is currently set up at https://github.com/kalev/anaconda-notification
Diffstat (limited to 'fedora-live-desktop.ks')
-rw-r--r--fedora-live-desktop.ks82
1 files changed, 82 insertions, 0 deletions
diff --git a/fedora-live-desktop.ks b/fedora-live-desktop.ks
index 54a4708..8184d47 100644
--- a/fedora-live-desktop.ks
+++ b/fedora-live-desktop.ks
@@ -57,6 +57,88 @@ if [ -f /usr/share/applications/liveinst.desktop ]; then
favorite-apps=['firefox.desktop', 'evolution.desktop', 'empathy.desktop', 'rhythmbox.desktop', 'shotwell.desktop', 'openoffice.org-writer.desktop', 'nautilus.desktop', 'anaconda.desktop']
FOE
+ cat > /usr/bin/anaconda-notification << FOE
+#!/usr/bin/env python
+
+from gi.repository import GLib
+from gi.repository import Gio
+from gi.repository import Notify
+import sys
+import os
+import time
+
+def install_cb(n, action, data):
+ assert action == "install"
+ n.close()
+ os.execlp("liveinst", "liveinst")
+
+def closed_cb(user_data):
+ sys.exit()
+
+def get_anaconda_desktop_file():
+ desktop_files = ['/usr/share/applications/anaconda.desktop',
+ '/usr/share/applications/liveinst.desktop']
+
+ for f in desktop_files:
+ if os.path.isfile(f):
+ return f
+
+ return ""
+
+def show_notification(n):
+ # Spin 10 seconds, waiting for the notification service to start
+ retval = False
+ for i in range(1, 10):
+ try:
+ retval = n.show()
+ break
+ except:
+ time.sleep(1)
+
+ return retval
+
+if __name__ == '__main__':
+ appinfo = Gio.DesktopAppInfo()
+ try:
+ desktop = appinfo.new_from_filename(get_anaconda_desktop_file())
+ except:
+ sys.exit(1)
+ label = desktop.get_name()
+ actionlabel = desktop.get_generic_name()
+
+ if not Notify.init(label):
+ sys.exit(1)
+
+ n = Notify.Notification()
+ n.set_property("summary",label)
+ n.set_property("body",
+ "You are currently using an uninstalled live image.\n" +
+ "If you want to keep using Fedora, you can install " +
+ "it to your hard disk.")
+ n.set_property("icon-name","anaconda")
+ n.set_urgency(Notify.Urgency.CRITICAL)
+
+ n.connect("closed", closed_cb)
+ n.add_action("install", actionlabel, install_cb, None, None)
+
+ if not show_notification(n):
+ print "Failed to send notification"
+ sys.exit(1)
+
+ GLib.MainLoop().run()
+FOE
+ chmod +x /usr/bin/anaconda-notification
+
+ mkdir -p ~liveuser/.config/autostart
+ cat > ~liveuser/.config/autostart/anaconda-notification.desktop << FOE
+[Desktop Entry]
+Name=Fedora Install Notification
+Exec=anaconda-notification
+Type=Application
+X-GNOME-Autostart-enabled=true
+FOE
+
+ chown -R liveuser:liveuser /home/liveuser/.config/
fi
# rebuild schema cache with any overrides we installed