Technical discussions | Discussions techniques
|
Tofe, Saturday 09 February 2008 à 16:26
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bonjour à tous,
je suis tout nouveau sur Cairo-dock, mais ce projet me plaît beaucoup et je compte bien suivre de près son développement !
Ceci dit, ce n'est pas le sujet principal de mon message. Je voudrais en fait savoir si prendre en compte un nouvel "environnement" représente beaucoup de boulot, car j'aimerais bien avoir mon Xfce dans cette liste "Unknown, Gnome, Kde"...
Concrètement je suis surtout utilisateur de Xfce, mais j'ai de bonnes connaissances en programmation, si jamais ça peut s'avérer utile. J'aimerais bien que les raccourcis, la corbeille, les volumes, le gestionnaire de fichier, toutes ces infos viennent de Xfce. Je ne sais pas encore comment c'est géré pour Gnome actuellement, mais je ne demande qu'à apprendre
Voilà, je ne sais pas si vous aviez déjà réfléchi à la possibilité Xfce, mais moi je serais très intéressé.
Tofe |
|
ctaf, Saturday 09 February 2008 à 19:04
|
|
Subscription date : 30 November 2007
Messages : 311
|
tout patch que tu pourras fournir sera plus que bienvenue
je pense que ce que tu cherches se trouve soit dans plug-ins/gnome-environment soit plug-ins/dustbin. |
|
fabounet, Sunday 10 February 2008 à 04:18
|
|
Subscription date : 30 November 2007
Messages : 17118
|
oui tout ce qui est relatif a l'environnement est dans un backend (gnome-integration pour gnome)
je pense que c'est assez facile d'en faire un nouveau, ça serait chouette d'avoir XFCE aussi ! |
|
Tofe, Sunday 10 February 2008 à 09:41
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, ben je vais regarder tout ça. Je vous tiens au courant ! |
|
ctaf, Sunday 10 February 2008 à 21:02
|
|
Subscription date : 30 November 2007
Messages : 311
|
n'hesite pas a demander si tu as besoin d'aide |
|
fabounet, Monday 11 February 2008 à 03:00
|
|
Subscription date : 30 November 2007
Messages : 17118
|
oui, regarde dans les structures, celle qui s'appelle CairoDockVFSBackend, c'est une liste de fonctions dont le dock définit les prototypes, mais qui lui sont fournis par un plug-in (qui est chargé si l'environnement lui correspond), gnome-integration dans le cas de Gnome.
l'idée est donc d'avoir un ensemble de fonctions par environnement. |
|
Tofe, Monday 11 February 2008 à 09:03
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, j'ai jeté un coup d'oeil: aucun problème pour ce qui est de comprendre comment ça fonctionne du coté cairo-dock. Le plus gros du boulot sera finalement de découvrir comment Xfce gère son VFS. Je suis même pas sûr qu'il ait effectivement un VFS, d'ailleurs, donc il faut que je vérifie tout ça. |
|
Tofe, Monday 11 February 2008 à 09:12
|
|
Subscription date : 09 February 2008
Messages : 921
|
Je me réponds à moi-même: oui, il y a une librairie dédiée au VFS, c'est libthunar-vfs. Apparemment il y a un joli petit paquet de fonctions ressemblant fort au gnome-vfs, ce qui va me simplifier la vie...
De toutes façons je pense que je vais fortement m'inspirer du code de gnome-integration, ce serait dommage de reprendre la réflexion à partir de zéro. |
|
fabounet, Monday 11 February 2008 à 12:06
|
|
Subscription date : 30 November 2007
Messages : 17118
|
je te le conseille vivement
beaucoup de fonctions sont juste des enrobages (effacer un fichier, le renommer, trouver la poubelle, etc), et y'en a 2 ou 3 qui sont plus compliquées (transformer un fichier en une icône pour le dock, choper les propriétés d'un fichier, etc, en fait c'est surtout quand on arrive aux points de montage que ça se gate, dans GnomeVFS c'est pas spécialement une partie de plaisir, je sais pas comment ils ont fait dans XFCE)
en tout cas bon courage, et n'hésite pas à demander de l'aide  |
|
ctaf, Monday 11 February 2008 à 12:20
|
|
Subscription date : 30 November 2007
Messages : 311
|
en plus prochaine version de gnome, ca change de vfs ca passe ca gio (gvfs), ca devrait etre plus simple, mais faut tout recoder
bon par contre au moins les performances seront la, pq gnome-vfs, qu'es que c'est lent et mal foutu cette horreur
C'est bizarre ya pas si longtps xfce n'avais pas de vfs, il utilisait juste fuse, j'arrive pas a trouver d'info sur le vfs de xfce, je suis interessé si quelqu'un a des pistes... vont-il utilisé gio integré dans la glib? |
|
fabounet, Monday 11 February 2008 à 12:37
|
|
Subscription date : 30 November 2007
Messages : 17118
|
ah ben ça c'est pas dommage ! tant pis si faut tout recoder, ce sera sûrement moins fastidieux que ce que j'ai du faire. |
|
Tofe, Tuesday 12 February 2008 à 14:15
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, j'ai avancé un petit peu (mais doucement, vu que la journée je suis au taf), et une question fondamentale me vient à l'esprit: les URIs qu'on a entrée de chaque méthode, elles sont spécifiques au VFS gnome, non ? D'où viennent-elles, en général ?
Je dis ça parce que par exemple Thunar-VFS ne gère pas le réseau dans son VFS. Donc si je me retrouve avec un "network://" au début de l'URI, ça va partir dans les choux... |
|
ctaf, Tuesday 12 February 2008 à 14:20
|
|
Subscription date : 30 November 2007
Messages : 311
|
Oui c'est normal et tu ne peux rien y faire... c'est qu'un user a fait un glisser deplacer depuis nautilus sous xfce.
Donc je pense que tu dois simplement eviter ce cas, tout ce que tu ne comprend pas tu ne gere pas.
Mais j'ai espoir (j'aime bps xfce) que xfce utilise gvfs dans les prochaine version, si c'est le cas, il serait interessant de laisser tomber thunar-vfs, au profit du futur et de coder un backend gio/gvfs qui sera aussi utilise pour gnome..
Mais encore une fois j'ai pas trouvé d'info, et pas trop cherché je dois l'avouer, faudrait demander sur une mailing list xfce |
|
fabounet, Tuesday 12 February 2008 à 16:58
|
|
Subscription date : 30 November 2007
Messages : 17118
|
+1
c'est des URI texte, donc pas propre à Gnome.
c'est du genre file:///home/toto. attention il peut y'avoir le nom de l'ordi dedans (y'a une fonction de la GLib qui l'isole genre g_filename_from_uri)
mais le mieux c'est de faire des tests de drag'n'drop à partir de Thunar et tu verras bien ce qu'il renvoie. |
|
Tofe, Thursday 14 February 2008 à 08:10
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, je n'ai plus qu'à m'occuper du listing de répertoire, du monitoring et de ce qui reste du montage/démontage, et ça devrait planter^Waller.
Mais... ma question fondamentale résiste à vos réponses... est-il logique que le dock ne puisse pas gérer _en même temps_ des glisser-déplacer venant de Thunar et de Nautilus ? Parce que je ne vois pas trop comment cairo-dock choisit son xxx-integration, en fait. Pourrait-il appeler le bon back-end en fonction de la provenance ? (Ça semble difficile, mais bon, on sait jamais)
Je dis ça parce que étant donné que les URIs de Thunar ne gèrent pas le réseau, le cas où il y a le nom de l'ordi dedans n'arrivera jamais à partir de Thunar. Les URIs sont donc bien spécifiques à l'environnement... (home://Documents n'existe pas sur Gnome, je crois, par exemple) |
|
Tofe, Thursday 14 February 2008 à 21:34
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, le listing de répertoire, je verrai plus tard, pour l'instant j'ai envie de tester la bestiole. Problème: comment que je le fais se charger, en fait ?
Voici ce que j'ai essayé:
- j'ai fait un svn up de tout cairo-dock
- j'ai autoreconf -isvf, puis configure --prefix=/usr/local pour cairo-dock et pour mon plugin xfce-integration
- j'ai fait make && sudo make install histoire de tout mettre dans /usr/local (compilation ok)
- je lance cairo-dock depuis un terminal avec:
/usr/local/bin/cairo-dock --log debug --env xfce
et là j'obtiens... rien de spécial. Primo, je sais pas comment je branche mon debugger avec Anjuta (mais je vais apprendre ), et deuzio, j'ai simplement ceci en lien avec mon xfce:
chris@tofe:~/cairo-dock/trunk/plug-ins/xfce-integration$ /usr/local/bin/cairo-dock --log debug --env xfce
message : (cairo-dock.c:main:436)
environnement de bureau : 3
cp: ne peut évaluer `/usr/local/share/cairo-dock/plug-in/xfce-integration/none': Aucun fichier ou répertoire de ce type
message : (cairo-dock-applet-facility.c:cairo_dock_check_conf_file_exists:58)
Attention : couldn't copy /usr/local/share/cairo-dock/plug-in/xfce-integration/none in /home/chris/.cairo-dock/current_theme/plug-ins/xfce-integration; check permissions and file's existence
j'ai essayé de créer un fichier "none" vide, ça enlève les warnings, mais ça ne fait pas se lancer mieux mon plugin... une idée ? |
|
fabounet, Friday 15 February 2008 à 13:08
|
|
Subscription date : 30 November 2007
Messages : 17118
|
ben c'est bon, il se charge bien on dirait.
le message d'erreur c'est rien je vais corriger ça, c'est pas gênant.
il faudrait juste trouver un moyen de savoir qu'on est sous XFCE pour pas avoir à forcer le --env=xfce. je me bsse sur les variables d'environnement propre à chacun des bureaux, mais j'ai pas trouvé pour XFCE.
pour les URIs, j'ai supposé que tous les backends sauraient gérer une URI texte. Si tu fais un dnd de Nautilus et qu'il te sort une URI que tu sais pas interpréter (genre réseau), ben tu laisses passer. ça n'est pas un cas nominal (si on est sous XFCE, c'est bien pour utiliser les outils d'XFCE).
t'as quelles fonctions déjà ? |
|
Tofe, Friday 15 February 2008 à 13:22
|
|
Subscription date : 09 February 2008
Messages : 921
|
Ok, bon, euh ben j'ai plus qu'à glisser des trucs sur le dock alors... et à réussir à lancer cairo-dock avec gdb
Pour la détection de l'environnement je jetterai un coup d'oeil, ça devrait pas être compliqué.
Pour les fonctions, j'ai à peu près tout fini sauf le listing de répertoire. Par "fini", comprendre que ça compile, pas que ça marche, hein ! Ce dernier est un peu chiant parce que Thunar-Vfs veut absolument faire ça en asynchrone et il n'y a pas de fonction genre "wait_until_finished". C'est d'ailleurs la même chose pour les autres opérations fichiers, sauf que pour le moment je n'attends pas que ça ait fini pour continuer.
A noter que dans gnome-integration, tu ne libères jamais pas le handler à la fin du monitoring... normal ? pas normal ? En tout cas dans mon code je libère le mien.
Au fait, tu utilises quoi, toi, pour débugger ton code ? Anjuta/gdb ? autre chose ?
[edit]
je te cite: je vous suggère de lancer cairo-dock avec ddd (ou gdb)
Donc je vais essayer avec ddd  |
|
fabounet, Friday 15 February 2008 à 17:26
|
|
Subscription date : 30 November 2007
Messages : 17118
|
y'a pas de fonction pour ça, donc je suppose qu'ils sont desalloués lorsqu'on se déconnecte.
avec l'asynchrone faut faire gaffe, on a vite des embrouilles pas possibles avec. ils ont pas des callbacks pour te prévenir quand le travail est fait ?
tu dois pouvoir bloquer avec g_thread_join () sinon tu peux regarder dans la poubelle, elle est threadée et j'ai fait ça proprement je pense. |
|
Tofe, Friday 15 February 2008 à 21:07
|
|
Subscription date : 09 February 2008
Messages : 921
|
Bon, j'ai à peu près terminé, ça marchotte pour les shortcuts des périphériques, j'ai juste encore les icones et le mount à retravailler. Pour les bookmarks ça les trouve et ça active aussi le monitoring, mais ensuite ça plante sauvagement et je dois trouver pourquoi.
Nota bene, je pense qu'il y a une typo ligne 349 de applet-gnome-vfs.c, ça devrait être "BY_TYPE" et pas "BY_DATE"
Nota bene 2: demander le listing de CAIRO_DOCK_FM_VFS_ROOT dans l'idée d'obtenir la liste des volumes n'est pas si logique que ça à mes yeux, vu que ça suppose que le root du VFS contient la liste des volumes... Evidemment c'est pas le cas pour ThunarVfs, sinon je râlerais pas
Pour le multi-threading je vais voir ça, mais ça devrait aller, vu qu'il y a un signal envoyé lorsque le job est terminé. |
Technical discussions | Discussions techniques
|