Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 01/08/2008, à 17:00

jeepy

Créer un module pour le tableau de bord

Bonjour,

Je voudrais créer un module pour le tableau de bord ou que quelqu'un de doué le crée pour nous tous !


Le principe: Créer un module pour le tableau de bord avec comme fonction de monter un dossier de travail à la place du bureau

Comment ce module fonctionnerait:

Je clique sur l'icone

Je sélectionne un dossier qui me servira de dossier de travail, je le choisi dans mon arborescence.

Par exemple : /home/utilisateur/travail

Je valide mon choix et hop miracle le contenu de ce répertoire de travail s'affiche sur le bureau

Je re-clique sur l'icône, je demande de démonter mon dossier et hop mon bureau tout clean apparaît.


Si vous avez des idées, aidez moi et vous !

ps: pour infos, j'obtiens ce résultat en ligne de commande avec ces deux commandes + la touche F5 pour réactualiser

Monté:  mount -o bind /home/Mes\ Documents/Travail /home/Desktop

DéMonté: umount /home/Mes\ Documents/Travail

Merci pour votre aide !


Jérôme


From Ubuntu 6.06 LTS - Membre attitré de la brigade des J (J suis sur Gnome-Shell et J suis bien)
GNOME 4.0 = GNOME OS == http://linuxfr.org/news/guadec-2012-en- … t-gnome-os
John Mc Cann, avenir GNOME == http://www.generation-linux.fr/index.ph … -de-GNOME3

Hors ligne

#2 Le 03/08/2008, à 04:03

obiwankennedy

Re : Créer un module pour le tableau de bord

J'avais vraiment rien à faire et grâce à l'aide de ce tutorial : http://renaudguezennec.homelinux.org/pr … n,3-8.html
J'ai codé le truc alors je colle ici les fichiers et j'ai fais une archive.
donc les dépendances: libpanel-applet2-0 libpanel-applet2-dev gnome

(il y a quelques trucs à changer dans le codes pour adapter à son système)

compilation et installation :
"make"
"sudo make install"

file 1 : Makefile

PKGCONFIG = /usr/bin/pkg-config
CC = gcc
CFLAGS = -g -Wall $(shell $(PKGCONFIG) --cflags libpanelapplet-2.0)
OBJECTS = mountdir.o
INCFLAGS =
LDFLAGS =  $(shell $(PKGCONFIG) --libs libpanelapplet-2.0)
LIBS = 
#-Wl -rpath /usr/local/lib
all: mountdir

mountdir: $(OBJECTS)
	$(CC) -o mountdir $(OBJECTS) $(LDFLAGS) $(LIBS)

.SUFFIXES:
.SUFFIXES:	.c .cc .C .cpp .o

.c.o :
	$(CC) -o $@ -c $(CFLAGS) $< $(INCFLAGS)

count:
	wc *.c *.cc *.C *.cpp *.h *.hpp

clean:
	rm -f *.o

.PHONY: all
.PHONY: count
.PHONY: clean

install: mountdir
	cp mountdir /usr/lib/gnome-panel/
	cp mountdir.server /usr/lib/bonobo/servers/

fichier 2 : mountdir.c

#include <panel-applet.h>
#include <gtk/gtk.h>
#include <stdlib.h> 
#include <stdio.h>
#define SIZE 500
#define BUREAU "/home/renaud/Bureau"

static gchar* filename = NULL;
static gboolean on_button_press (GtkWidget *event_box, GdkEventButton *event,gpointer data)
{
if (event->button != 1)
	return FALSE;

	if(filename==NULL)
	{
		GtkWidget *pFileSelection;
		pFileSelection = gtk_file_chooser_dialog_new("Open...",
		NULL,
		GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
		GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
		GTK_STOCK_OPEN, GTK_RESPONSE_OK,
		NULL);
	
	
	  


		gtk_window_set_modal(GTK_WINDOW(pFileSelection), TRUE);
	
		  gchar sChemin[SIZE];
		  
		 
		        
		  switch(gtk_dialog_run(GTK_DIALOG(pFileSelection)))
		{
		    case GTK_RESPONSE_OK:
		        filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(pFileSelection));
				printf("je suis dans le truc %s \n",filename);
				sprintf(sChemin,"gksudo \"mount -o bind %s %s\"",filename,BUREAU);
				printf("je suis dans le chemin %s \n",sChemin);
		     	system(sChemin); 
				gtk_widget_destroy(pFileSelection);
		        break;
		    default:
		        break;
		}
	}
	else
	{
		gchar sChemin[SIZE];
		sprintf(sChemin,"gksudo umount %s ",filename);
		system(sChemin); 
		filename = NULL;
	}
return TRUE;
}
static gboolean GnomeMountDir_applet_fill (PanelApplet *applet,const gchar *iid,gpointer data)
{
	GtkWidget *image;
	GtkWidget * event_box;
	if (strcmp (iid, "OAFIID:ExampleApplet") != 0)
		return FALSE;


	image = gtk_image_new_from_file ("/usr/share/icons/Mist/scalable/places/user-home.svg");
	event_box = gtk_event_box_new ();
	gtk_container_add (GTK_CONTAINER (event_box), image);
	g_signal_connect (G_OBJECT (event_box), "button_press_event",
	G_CALLBACK (on_button_press),
	image);



	gtk_container_add (GTK_CONTAINER (applet), event_box);
	gtk_widget_show_all (GTK_WIDGET (applet));
	return TRUE;
}

PANEL_APPLET_BONOBO_FACTORY ("OAFIID:GnomeMountDir_Factory",PANEL_TYPE_APPLET,"Gnome Mount Dir Applet",
"0",GnomeMountDir_applet_fill,NULL);

fichier 3 : mountdir.server

<oaf_info>
<oaf_server iid="OAFIID:GnomeMountDir_Factory" type="exe"
location="/usr/lib/gnome-panel/mountdir">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:Bonobo/GenericFactory:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="Gnome Mount Dir Factory"/>
<oaf_attribute name="description" type="string" 
value="Factory to create the GnomeMountDir applet"/>
</oaf_server>
<oaf_server iid="OAFIID:ExampleApplet" type="factory"
location="OAFIID:GnomeMountDir_Factory">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:GNOME/Vertigo/PanelAppletShell:1.0"/>
<item value="IDL:Bonobo/Control:1.0"/>
<item value="IDL:Bonobo/Unknown:1.0"/>
</oaf_attribute>
<oaf_attribute name="name" type="string" value="Gnome Mount Dir Applet"/>
<oaf_attribute name="description" type="string" value="Gnome Mount Dir applet"/>
<oaf_attribute name="panel:category" type="string" value="Amusements"/>
<oaf_attribute name="panel:icon" type="string" value="/usr/share/icons/Mist/scalable/places/user-home.svg"/>
</oaf_server>
</oaf_info>

Il faut changer la ligne 6 du fichier mountdir.c pour l'adapter à son bureau.
#define BUREAU "/home/UTILISATEUR/Bureau"

Le F5 pour rafraîchir doit être fait à la main.  (je chercherai une méthode pour le faire "logiciellement" ,plus tard).

alors l'archive: http://renaudguezennec.homelinux.org/pr … n,1-3.html

vérifier d'avoir bien ce fichier dans votre PC: /usr/share/icons/Mist/scalable/places/user-home.svg
sinon changer toutes les références à ce fichier par un chemin d'un icône de votre pc. (j'implémenterais certainement des diodes de couleurs par la suite)



une fois compilé et installé, cliquez sur "Ajouter au tableau de bord..." ,
une fenêtre s'affiche
chercher dedans : "Gnome Mount Dir Applet",
Glisser et déposer le sur le "tableau de bord".
Cliquer sur l'image (avec le bouton gauche).
un selecteur de dossier s'ouvre.
selectionner le dossier
cliquez sur "ouvrir"
Une fenêtre demandera le mot de passe pour "gksudo
le selecteur de dossier disparaît.
faite F5.

ensuite pour démonter:
il suffit de cliquer (avec le bouton gauche) encore une fois
et de faire F5.

Il y a des modifications évidentes à faire comme la gestion du bouton annuler du sélecteur de dossier ou la taille de l'icône dans la barre gnome.


EDIT: Les sources sont mises à jour dans l'archive téléchargeable. Une "diode" verte  signifie aucun montage, une rouge signifie "montage". Toujours la nécessité de faire le F5 soit même.

Dernière modification par obiwankennedy (Le 04/09/2009, à 02:00)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#3 Le 04/08/2008, à 10:27

jeepy

Re : Créer un module pour le tableau de bord

Bonjour obiwankennedy !

Merci pour ton aide !!! C'est vraiment super !

J'ai fait un paquet à partir de tes sources ( pour Debian lenny)



J'ai modifier : mountdir.c avec cette ligne :  #define BUREAU "~/Desktop"

le ~ vas chercher directement le nom du dossier utilisateur.

Pour créer le fichier deb, j'ai utiliser checkinstall

Faire ;

make
sudo checkinstall

remplir les champs et hop un point deb

par contre j'ai je tape mon mots de passe root et ça marche pas ??

A bientôt

Jérôme

Dernière modification par jeepy (Le 06/09/2009, à 20:09)


From Ubuntu 6.06 LTS - Membre attitré de la brigade des J (J suis sur Gnome-Shell et J suis bien)
GNOME 4.0 = GNOME OS == http://linuxfr.org/news/guadec-2012-en- … t-gnome-os
John Mc Cann, avenir GNOME == http://www.generation-linux.fr/index.ph … -de-GNOME3

Hors ligne

#4 Le 04/08/2008, à 10:34

jeepy

Re : Créer un module pour le tableau de bord

Oups, j'ai trouvé pourquoi ça marche pas chez moi !! Sous debian, il n'y as pas de droit sudo !!

Grrr


From Ubuntu 6.06 LTS - Membre attitré de la brigade des J (J suis sur Gnome-Shell et J suis bien)
GNOME 4.0 = GNOME OS == http://linuxfr.org/news/guadec-2012-en- … t-gnome-os
John Mc Cann, avenir GNOME == http://www.generation-linux.fr/index.ph … -de-GNOME3

Hors ligne

#5 Le 04/08/2008, à 21:03

obiwankennedy

Re : Créer un module pour le tableau de bord

Oui dans ce cas, il faut que tu installes sudo sous debian. Sinon il faudrait le lancer en root mais bon c'est délicat.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#6 Le 31/12/2008, à 10:34

Ploply

Re : Créer un module pour le tableau de bord

Hello smile J'obtiens ce message au Make :
Makefile:12: *** séparateur manquant . Arrêt.

Une idée ? smile


Lucid - Gnome

Hors ligne

#7 Le 31/12/2008, à 14:08

AnsuzPeorth

Re : Créer un module pour le tableau de bord

Si li n'y a que 2 commande, mount et umount, pourquoi pas faire un simple script bash ???Ca sera pi etre moins lourd ! (4 5 lignes avec bash)

Dernière modification par AnsuzPeorth (Le 31/12/2008, à 14:08)


Interface graphique pour bash, python ou autre: glade2script
Support Tchat: http://chat.jabberfr.org/muckl_int/inde … ade2script  (Hors ligne)

Hors ligne

#8 Le 31/12/2008, à 15:26

Link31

Re : Créer un module pour le tableau de bord

Ploply a écrit :

Hello smile J'obtiens ce message au Make :
Makefile:12: *** séparateur manquant . Arrêt.

Une idée ? smile

Remplace les "    " en début de ligne par de véritables tabulations.

Hors ligne

#9 Le 31/12/2008, à 23:37

sam7

Re : Créer un module pour le tableau de bord

sympa votre idée... & très pratique : pourvu qu'il soit mis dans la 9.04...
il faudra que je regarde ça quand j'aurais plus de temps...


sam7 @ sweetux.org = "Faire connaître & promouvoir la culture libre"
& @ gafam.fr = "Faire connaître & promouvoir les alternatives aux GAFAMs"

Hors ligne

#10 Le 31/12/2008, à 23:39

Кຼزດ

Re : Créer un module pour le tableau de bord

je sais pas...
mais si il y a quelqu'un de motivé il pourrait lire la partie bonobo/applet de devhelp tongue


dou

Hors ligne

#11 Le 01/01/2009, à 10:47

rniamo

Re : Créer un module pour le tableau de bord

pour le "problème" #define Bureau : un char *bureau; résultat de la concaténation de getenv("HOME") et "/Bureau" (voir tester la locale et l'éxistence pour prendre Desktop si il n'est pas là) serait pas mal je pense : plus de tripatouillage de code après wink

edit : pour raffrachir tu peux faire un nautilus -q  puis nautilus --desktop ?

Dernière modification par rniamo (Le 01/01/2009, à 11:22)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#12 Le 01/01/2009, à 17:59

obiwankennedy

Re : Créer un module pour le tableau de bord

J'ai vu que certains d'entre vous avez essayé de télécharger le programme.
j'ai modifié un peu le code pour gérer un peu mieux le desktop.


Donc en gros, j'essaie
"/home/user/Bureau"
s'il n'existe pas alors je teste
"/home/user/Desktop"
s'il n'existe pas alors je demande à l'utilisateur de choisir le dossier de son bureau avec une fenetre de dialogue.

j'ai testé vite fait:
nautilus -q
nautilus --desktop
mais dans le man  l'option --desktop n'existe pas il n'y a que --no-desktop.

Dernière modification par obiwankennedy (Le 02/01/2009, à 22:49)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#13 Le 02/01/2009, à 17:02

Ploply

Re : Créer un module pour le tableau de bord

smile À défaut de vous être plus utile je m'abo au topic _  PS : C'était ça Link31 smile

Dernière modification par Ploply (Le 02/01/2009, à 17:03)


Lucid - Gnome

Hors ligne

#14 Le 02/01/2009, à 17:08

spatz

Re : Créer un module pour le tableau de bord

+1 Ploply


PLOP ! Blogueur ! Râleur ! Agnostique ! Architecte ! Floodeur ! Gentil ! Chiant ! Fourbe ! Crâneur ! GNU/Windows/Linuxien ! Machiavélique ! Beau ! Républicain ! Intelligent ! Bosseur ! Très Prétentieux ! Scientifique ! Frimeur ! Étudiant !  De bonne foi ! Perverti ! Ubunteros ! Grand ! Sociable! Altruiste ! Provoc' ! Censé !

Hors ligne

#15 Le 03/01/2009, à 04:00

obiwankennedy

Re : Créer un module pour le tableau de bord

http://renaudguezennec.homelinux.org/bl … top.tar.gz

Voilà, plus de problème de rafraichissement. J'ai trouvé une solution que je trouve super sale mais elle a le mérite de marcher.
"killall nautilus".
Si je trouve un autre moyen plus propre, je l'implémenterai. Si vous désirez d'autres fonctions: faite le moi savoir.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#16 Le 03/01/2009, à 12:48

Ploply

Re : Créer un module pour le tableau de bord

Barbare tongue
nautilus -n &

Chez moi ça superpose les bureaux hmm

Dernière modification par Ploply (Le 03/01/2009, à 13:25)


Lucid - Gnome

Hors ligne

#17 Le 03/09/2009, à 15:25

jeepy

Re : Créer un module pour le tableau de bord

Coucou,

je me suis mis à retravailler sur cette application et j'ai fait quelques modifications, je vous met en lien le deb pour jaunty.

Les modifications :

- Il n'y a plus besoin d'être superutilisateur pour utiliser l'applet, grâce à l'utilisation de xdg-user-dirs-update à la place de mount.
- Nautilus est quitté correctement grâce à l'utilisation de la commande: nautilus -q
- Nautilus est relancé sans lancer une fenêtre grâce à l'utilisation de la commande:  nautilus --no-default-window &

Je vous met le fichier source :
http://renaudguezennec.homelinux.org/pr … 3-4-8.html

Voilà pour les modifications, j'attends vos commentaires !

En images :

Avant :

Avant.png

L'icône dans la barre des taches :

Bouton.jpg

La sélection:

selection.jpg

Et pour finir, voici le résultat:

apres.jpg


A bientôt

Jérôme
http://www.informalibre.fr

Dernière modification par jeepy (Le 04/09/2009, à 12:09)


From Ubuntu 6.06 LTS - Membre attitré de la brigade des J (J suis sur Gnome-Shell et J suis bien)
GNOME 4.0 = GNOME OS == http://linuxfr.org/news/guadec-2012-en- … t-gnome-os
John Mc Cann, avenir GNOME == http://www.generation-linux.fr/index.ph … -de-GNOME3

Hors ligne

#18 Le 03/09/2009, à 22:55

sam7

Re : Créer un module pour le tableau de bord

Petite question :
faut-il absolument gnome... (rassurez vous, mon système principal (hardy) est sous gnome)
où est il possible de le faire marcher avec e17 ou xfce ... (en adaptant si nécessaire) ?

Dernière modification par sam7 (Le 03/09/2009, à 22:56)


sam7 @ sweetux.org = "Faire connaître & promouvoir la culture libre"
& @ gafam.fr = "Faire connaître & promouvoir les alternatives aux GAFAMs"

Hors ligne

#19 Le 04/09/2009, à 01:59

obiwankennedy

Re : Créer un module pour le tableau de bord

Juste un petit message pour dire que le code est à jour.
à l'adresse : http://renaudguezennec.homelinux.org/pr … n,1-3.html


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne