Index: gnome-do-0.8.4/Do/src/Do.cs =================================================================== --- gnome-do-0.8.4.orig/Do/src/Do.cs +++ gnome-do-0.8.4/Do/src/Do.cs @@ -44,6 +44,19 @@ namespace Do { Gtk.Application.Init (); Gdk.Threads.Init (); + bool arg_quiet = false; + int i = 0; + while (i < args.Length) { + string arg = args [i]; + ++i; + + switch (arg) { + case "--quiet": + arg_quiet = true; + break; + } + } + // We are conservative with the log at first. Log.DisplayLevel = LogLevel.Error; if (CorePreferences.PeekDebug) @@ -70,7 +83,7 @@ namespace Do { Controller.Initialize (); UniverseManager.Initialize (); - if (!Preferences.QuietStart) + if (!arg_quiet && !Preferences.QuietStart) Controller.Summon (); Gtk.Application.Run (); Index: gnome-do-0.8.4/data/Makefile.am =================================================================== --- gnome-do-0.8.4.orig/data/Makefile.am +++ gnome-do-0.8.4/data/Makefile.am @@ -1,7 +1,7 @@ SUBDIRS = icons -EXTRA_DIST = $(schemas_in_files) gnome-do.desktop.in -CLEANFILES = $(schemas_DATA) gnome-do.desktop +EXTRA_DIST = $(schemas_in_files) gnome-do.desktop.in gnome-do-autostart.desktop.in +CLEANFILES = $(schemas_DATA) gnome-do.desktop gnome-do-autostart.desktop schemasdir = $(GCONF_SCHEMA_FILE_DIR) schemas_in_files = gnome-do.schemas.in @@ -11,7 +11,7 @@ applicationsdir = $(datadir)/application applications_DATA = gnome-do.desktop startupdir = $(sysconfdir)/xdg/autostart -startup_DATA = gnome-do.desktop +startup_DATA = gnome-do-autostart.desktop @INTLTOOL_DESKTOP_RULE@ Index: gnome-do-0.8.4/data/gnome-do-autostart.desktop.in =================================================================== --- /dev/null +++ gnome-do-0.8.4/data/gnome-do-autostart.desktop.in @@ -0,0 +1,9 @@ +[Desktop Entry] +_Name=GNOME Do +Type=Application +Exec=gnome-do --quiet +Terminal=false +Icon=gnome-do +OnlyShowIn=GNOME; +_Comment=Do things as quickly as possible (but no quicker) with your files, bookmarks, applications, music, contacts, and more! +Categories=Utility; Index: gnome-do-0.8.4/Do.Platform.Linux/Makefile.am =================================================================== --- gnome-do-0.8.4.orig/Do.Platform.Linux/Makefile.am +++ gnome-do-0.8.4/Do.Platform.Linux/Makefile.am @@ -43,7 +43,8 @@ endif RESOURCES = \ gtk-gui/gui.stetic \ - Resources/Do.Platform.Linux.addin.xml + Resources/Do.Platform.Linux.addin.xml \ + $(top_srcdir)/data/gnome-do-autostart.desktop PKG_CONFIG_FILES = do.platform.linux.pc Index: gnome-do-0.8.4/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs =================================================================== --- gnome-do-0.8.4.orig/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs +++ gnome-do-0.8.4/Do.Platform.Linux/src/Do.Platform/Do.Platform.Linux/SystemService.cs @@ -160,34 +160,30 @@ namespace Do.Platform.Linux } } - string AutoStartUri { - get { - return Gnome.Vfs.Uri.GetUriFromLocalPath (AutoStartFileName); - } - } - DesktopItem AutoStartFile { get { if (autostartfile != null) return autostartfile; try { - autostartfile = DesktopItem.NewFromUri (AutoStartUri, DesktopItemLoadFlags.NoTranslations); + autostartfile = DesktopItem.NewFromFile (AutoStartFileName, DesktopItemLoadFlags.NoTranslations); } catch (GLib.GException loadException) { Log.Info ("Unable to load existing autostart file: {0}", loadException.Message); Log.Info ("Writing new autostart file to {0}", AutoStartFileName); - autostartfile = DesktopItem.NewFromFile (System.IO.Path.Combine (AssemblyInfo.InstallData, "applications/gnome-do.desktop"), - DesktopItemLoadFlags.NoTranslations); try { if (!Directory.Exists (AutoStartDir)) Directory.CreateDirectory (AutoStartDir); - // This *enables* autostart, by setting the "Hidden" key (which disables autostart) to false. - // Explicitly setting this key fixes LP #398303; otherwise our IsAutoStartEnabled method won't find - // the AutoStartKey, and will erroneously return false. - autostartfile.SetBoolean (AutoStartKey, false); - autostartfile.Save (AutoStartUri, true); - autostartfile.Location = AutoStartUri; + Assembly assembly = Assembly.GetExecutingAssembly (); + StreamReader reader = new StreamReader (assembly.GetManifestResourceStream ("gnome-do-autostart.desktop")); + StreamWriter writer = new StreamWriter (AutoStartFileName); + string l; + while ((l = reader.ReadLine ()) != null) + writer.WriteLine (l); + reader.Close (); + writer.Close (); + + autostartfile = DesktopItem.NewFromFile (AutoStartFileName, DesktopItemLoadFlags.NoTranslations); } catch (Exception e) { Log.Error ("Failed to write initial autostart file: {0}", e.Message); } @@ -201,7 +197,7 @@ namespace Do.Platform.Linux DesktopItem autostart = AutoStartFile; if (!autostart.Exists ()) { - Log.Error ("Could not open autostart file {0}", AutoStartUri); + Log.Error ("Could not open autostart file {0}", AutoStartFileName); } if (autostart.AttrExists (AutoStartKey)) {