nautilus & cdrom

karuso

Captain
Registriert
Juni 2001
Beiträge
4.079
moin,
hätte da mal ne frage zu nautilus:
damals bei yoper war bei nautilus das cdrom-laufwerk in der baumstruktur, dh wenn man die leiste öffnete waren da 3 punkte:
-Home Folder
-Filesystem
-CDROM

der punkt cdrom war wohl mit einem automounter verknüpft, da das cdromlaufwerk automatisch eingebunden wurde und sich automtisch auswerfen ließ.
bei gentoo ist dieser eintrag natürlich nicht und ich wüsste gerne wie ich diesen sehr nützlichen eintrag erstellen kann. außerdem wüsste ich gerne ob es möglich ist alle icons vom gnomedesktop zu entfernen(auch home und trash)
 
also:
ich habe mittlerweile eine lösung gefunden: man muss den quelltext ändern.
für alle die in nautilus beliebige top level haben möchten habe ich hier mal die lösung:

das nautilus-paket entpacken und folgende datei mit einem texteditor öffnen:
nautilus-2.6.0/src/file-manager/fm-tree-view.c

ab zeile 1066 muss der quelltext geändert werden:
Code:
static void
create_tree (FMTreeView *view)
{
   GtkCellRenderer *cell;
   GtkTreeViewColumn *column;
   GnomeVFSVolumeMonitor *volume_monitor;
   char *home_uri;
   GList *volumes, *l;
   /* adding some var */
   FILE *hack_fd = NULL;
   char *hack_homepath = NULL;
   char *hack_filename = NULL;
   char *hack_line = NULL;
   char *hack_dir = NULL;
   char *hack_name = NULL;
   char *hack_icon = NULL;
   size_t hack_len = 0;
   size_t hack_read = 0;

   view->details->child_model = fm_tree_model_new ();
   view->details->sort_model = GTK_TREE_MODEL_SORT
      (gtk_tree_model_sort_new_with_model (GTK_TREE_MODEL (view->details->child_model)));
   view->details->tree_widget = GTK_TREE_VIEW
      (gtk_tree_view_new_with_model (GTK_TREE_MODEL (view->details->sort_model)));
   g_object_unref (view->details->sort_model);
   g_signal_connect_object
      (view->details->child_model, "row_loaded",
       G_CALLBACK (row_loaded_callback),
       view, G_CONNECT_AFTER);
   home_uri = gnome_vfs_get_uri_from_local_path (g_get_home_dir ());
   fm_tree_model_add_root_uri (view->details->child_model, home_uri, _("Home Folder"), "gnome-home");
   g_free (home_uri);

   /* hack start */

   /* getting user environement */
   hack_homepath = (char*)getenv("HOME");

   /* malloc for the config filename */
   hack_filename = (char*)malloc(sizeof(char) * (strlen(hack_homepath) + strlen("/.nautilus_tree"))+1);
     memset(hack_filename,0,sizeof(char) * (strlen(hack_homepath) + strlen("/.nautilus_tree"))+1);

   /* filename is the string containing the full path for config file */
   hack_filename = strcat(hack_filename, hack_homepath);
   hack_filename = strcat(hack_filename, "/.nautilus_tree");

   /* opening filename in read mode */
   hack_fd = fopen(hack_filename, "r");

   /* check that filename is open(able) */
   if (hack_fd != NULL)
   {
      /* reading filename while EOF */
      while ((hack_read = getline(&hack_line, &hack_len, hack_fd)) != -1)
      {

         /* stripping line return */
         hack_line[strlen(hack_line)-1] = 0;

         /* split of the line */
         hack_dir = (char*)strsep(&hack_line,"|");
         hack_name = (char*)strsep(&hack_line,"|");
         hack_icon = (char*)strsep(&hack_line,"|");

         /* if we have three things */
         if (hack_dir && hack_name && hack_icon)
         {        
            /* check that the directory is open(able) */
            if (opendir(hack_dir))
            {
               /* if it's ok we had to nautilus tree with option*/
               fm_tree_model_add_root_uri (view->details->child_model, hack_dir, _(hack_name), hack_icon);
            }
         }
      }      
   }

   /* cleaning memory */
   if (hack_line) free(hack_line);
   if (hack_filename) free (hack_filename);

   /* close filename */
   fclose(hack_fd);

   /* hack end */

   fm_tree_model_add_root_uri (view->details->child_model, "file:///", _("Filesystem"), "gnome-folder");
#ifdef NOT_YET_USABLE
   fm_tree_model_add_root_uri (view->details->child_model, "network:///", _("Network Neighbourhood"), "gnome-fs-network");
#endif

[...]

dann nautilus wie gewohnt installieren und im home verzeichnis (zB /home/user) eine datei namens .nautilus_tree erstellen. in dieser können nun die einträge erstellt werden im format:

ordner|angezeigter name|icon
zB
/mnt/foo|FooBar|gnome-folder

nun sollte in der baumstruktur der punkt FooBar auftauchen.
 
Zurück
Oben