mirror of
https://pagure.io/fedora-kickstarts.git
synced 2024-11-10 08:00:06 +00:00
c712f456cb
A git repo with anaconda-notification and anaconda-notification.desktop is currently set up at https://github.com/kalev/anaconda-notification
162 lines
4.3 KiB
Plaintext
162 lines
4.3 KiB
Plaintext
# Maintained by the Fedora Desktop SIG:
|
|
# http://fedoraproject.org/wiki/SIGs/Desktop
|
|
# mailto:desktop@lists.fedoraproject.org
|
|
|
|
%include fedora-live-base.ks
|
|
|
|
part / --size 4096
|
|
|
|
%packages
|
|
@graphical-internet
|
|
@sound-and-video
|
|
@gnome-desktop
|
|
@office
|
|
|
|
# FIXME; apparently the glibc maintainers dislike this, but it got put into the
|
|
# desktop image at some point. We won't touch this one for now.
|
|
nss-mdns
|
|
|
|
# This one needs to be kicked out of @base
|
|
-smartmontools
|
|
|
|
# The gnome-shell team does not want extensions in the default spin;
|
|
# ibus support in gnome-shell will be integrated in GNOME 3.4
|
|
-ibus-gnome3
|
|
|
|
%end
|
|
|
|
%post
|
|
cat >> /etc/rc.d/init.d/livesys << EOF
|
|
# disable screensaver locking
|
|
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.screensaver.gschema.override << FOE
|
|
[org.gnome.desktop.screensaver]
|
|
lock-enabled=false
|
|
FOE
|
|
|
|
# and hide the lock screen option
|
|
cat >> /usr/share/glib-2.0/schemas/org.gnome.desktop.lockdown.gschema.override << FOE
|
|
[org.gnome.desktop.lockdown]
|
|
disable-lock-screen=true
|
|
FOE
|
|
|
|
# disable updates plugin
|
|
cat >> /usr/share/glib-2.0/schemas/org.gnome.settings-daemon.plugins.updates.gschema.override << FOE
|
|
[org.gnome.settings-daemon.plugins.updates]
|
|
active=false
|
|
FOE
|
|
|
|
# make the installer show up
|
|
if [ -f /usr/share/applications/liveinst.desktop ]; then
|
|
# Show harddisk install in shell dash
|
|
sed -i -e 's/NoDisplay=true/NoDisplay=false/' /usr/share/applications/liveinst.desktop ""
|
|
# need to move it to anaconda.desktop to make shell happy
|
|
mv /usr/share/applications/liveinst.desktop /usr/share/applications/anaconda.desktop
|
|
|
|
cat >> /usr/share/glib-2.0/schemas/org.gnome.shell.gschema.override << FOE
|
|
[org.gnome.shell]
|
|
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
|
|
glib-compile-schemas /usr/share/glib-2.0/schemas
|
|
|
|
# set up auto-login
|
|
cat >> /etc/gdm/custom.conf << FOE
|
|
[daemon]
|
|
AutomaticLoginEnable=True
|
|
AutomaticLogin=liveuser
|
|
FOE
|
|
|
|
# Turn off PackageKit-command-not-found while uninstalled
|
|
if [ -f /etc/PackageKit/CommandNotFound.conf ]; then
|
|
sed -i -e 's/^SoftwareSourceSearch=true/SoftwareSourceSearch=false/' /etc/PackageKit/CommandNotFound.conf
|
|
fi
|
|
|
|
EOF
|
|
|
|
%end
|