Home Forums Wiki Doc Install Extras Screenshots Source Code Projects Blog Users Groups Register
Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Interface graphique pour applets externes
The latest stable release is the *3.4.0* : How to install it here.
Note: We just switched from BZR to Git on Github! (only to host the code and your future pull requests)
Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Interface graphique pour applets externes
nochka85 Français 8 fabounet [Read]
25 January 2011 à 10:35

nochka85, Saturday 22 January 2011 à 12:17


Subscription date : 29 November 2007
Messages : 7408
Bon, j'en avais déjà brièvement parlé, mais je relance l'idée dans un post dédié

OBJECTIF : Pouvoir créer de VRAIES applets avec python (ou autre). Lorsque je parle de vraies applets, je veux surtout parler des applets détachées du dock (desklets).Cela permettrait à tous les devs qui le souhaite de créer des applets totalement originale.

Exemple de ce que je voudrais pouvoir faire :

http://uppix.net/2/d/8/49eb15f6f547cbea6ab79a951fae5.png

http://uppix.net/7/5/8/34f5fef3ecc8e829549b8fc50715d.png

CE QU'IL MANQUE :
Pouvoir afficher où l'on souhaite sur la surface du desklet (dans l'ordre de priorité) :
  1. du texte en définissant une police + un point de départ + un positionnement par rapport au point de départ (droite, gauche ou centré + haut, bas ou milieu)
  2. un fond de desklet simple comme dans Rssreader afin de dessiner facilement un dégradé (voir image ci-dessus)
  3. des graphismes en définissant un point de départ + une taille (x,y) + un positionnement par rapport au point de départ (droite, gauche ou centré + haut, bas ou milieu)
  4. des dessins avec la libcairo (pour générer des barres et autres graph)
  5. des zones cliquables

PROPOSITION :
  1. Avoir le même principe de tracé que RssReader ou Doncky : Le desklet n'est pas zoomable, c'est à dire que l'on impose des positions en pixels et des tailles de polices, mais si on agrandi ou réduit le desklet, seule la zone d'affichage est réduite. Exemple: http://uppix.net/d/a/1/5dc31c508f02c780c290532dcdc17.png
  2. Lorsque le desklet est envoyé dans le dock, pouvoir avoir au choix : Soit une icône classique (comme actuellement), Soit une "réduction" de son desklet.


Je propose de partir sur un exemple simple à pouvoir réaliser (dans un premier temps) et possédant les 4 premiers points manquants (textes, fond dégradé, image et dessins cairo) :
http://uppix.net/8/3/f/ab8a9824f5dda6682546b168fde80.png

Voilà, Fab, j'attends tes remarques

EDIT : Un argument pour justifier ce besoin d'une interface graphique pour les desklets -> Mon applet CpuWatcher en mode dock est pas mal (une icone CPU avec le pourcentage global en quickinfo + les différents cores en sous-dock), mais en desklet, c'est la cata !!! Et se serait tout de même mieux de pouvoir avoir un desklet avec toutes les infos clairement affichées (comme la 2ème image de ce post)

taiebot65, Sunday 23 January 2011 à 15:10


Subscription date : 26 October 2008
Messages : 1904
+1000000

ET pourquoi pas utiliser ce qu'a fait Nochka avecc le plugin Domcky.
On va finalement a y arriver a mon reve.
Un backend doncky pour tous les applets
CAD un fichier xml dans le dossier de chaque applet qui permet de configurer le-dit applet.
On pourrait carrement integrer le fichier xml dans le panneau de config. via un menu deroulant il afficherait le xml et apres on pourrait le modifier a la volee

Pour les applets externes si ils sont detaches ils utilisent le fichier .xml
Mais ca serait vraiment top cool ce truc..

nochka85, Sunday 23 January 2011 à 18:15


Subscription date : 29 November 2007
Messages : 7408
Enfin là, je ne parle pas d'un fichier xml, mais juste d'une lib accessible avec les applets externes pour "dessiner" des applets en desklets. Le but n'est pas que l'utilisateur puisse modifier le desklet comme bon lui semble, mais plutôt que le dev puisse le faire (ce qui n'est pas du tout le cas avec les applets externes).
Après, avec un tel système, tout sera imaginable ... et notamment refaire un Doncky en python plus facilement "maintenable" ... voir, à terme, passer TOUTES les applets en applets externes (je pense entre autre à RssReader, Cpu-monitor, etc) <- Le gros avantage, ce sera plus aucune compil pour les applets, + d'applets "originales" (marre des applets utilisant toujours les mêmes jauges), et, surtout, beaucoup plus de devs potentiels

Bref, le but de ce post est de trouver et mettre au point tout ce dont un dev a besoin pour créer une applet externe sans être "bridé" ... et donc "déçu" ( <- Sincèrement, pour l'instant, c'est un peu mon ressenti )

matttbe, Monday 24 January 2011 à 01:12


Subscription date : 24 January 2009
Messages : 12573
Franchement, Nochka, je pense que c'est une mauvaise idée. Le code de CD est vraiment bien codé et ce, en C! Si tu veux faire un outil de monitoring, ça doit se faire en C, C++ ou d'autres du style mais pas en python qui va consommer plus.

Pour moi, le but des applets externes, c'est deux choses:
  • Faire des applets "simples", du style lanceur évolué.
  • Que d'autres programmes interagissent avec le dock comme le plug-in pour Thunderbird.

Si tu veux écrire en Desklet avec python, autant directement écrire en gtk un peu comme il y a avec GTG pour les notes.
Enfin, c'est mon avis

fabounet, Monday 24 January 2011 à 11:42


Subscription date : 30 November 2007
Messages : 17118
effectivement les applets externes sont plus faites pour intégrer rapidement d'autres programmes au dock (Pidgin), ou offrir des raccourcis pratiques pour des actions précises (Translator).
le but n'est pas d'offrir une API permettant de faire autant qu'en C, tu noteras que si tu voulais le faire en C, il te faudrait le coder toi-même, l'API C offre qques fonctions bas niveau pour cairo/poengl, mais pas un canvas aussi poussé.

donc il faudrait commencer par là (faire un canvas en C). dans ce cas, c'est Donky qui est le meilleur candidat. et pour faire un doncky en fait il y'a juste un .xml à faire avec des commandes n'est-ce pas ? du coup on n'est pas loin d'avoir déjà ce que tu voulais.

PS: aussi ce serait top d'avoir un backend "barres de progression" en plus des jauges et graphiques. en plus ça serait utilisable directement.

nochka85, Monday 24 January 2011 à 19:18


Subscription date : 29 November 2007
Messages : 7408
matttbe :
je pense que c'est une mauvaise idée. Le code de CD est vraiment bien codé et ce, en C! Si tu veux faire un outil de monitoring, ça doit se faire en C, C++ ou d'autres du style mais pas en python qui va consommer plus.


Je n'ai jamais dis que c'était uniquement pour faire du monitoring ... ce n'est pas parce que j'ai pris cet exemple que cela ne sera que pour çà !

Pour moi, le but des applets externes, c'est deux choses:
          • Faire des applets "simples", du style lanceur évolué.
          • Que d'autres programmes interagissent avec le dock comme le plug-in pour Thunderbird.


Bien sûr, mais elles doivent aussi pouvoir être plus évoluées ! Sinon, autant arrêter tout de suite GLX-Desklet ! Car quand on voit le nombre de dev en C a se bousculer pour développer des desklets en C ...

fabounet :
effectivement les applets externes sont plus faites pour intégrer rapidement d'autres programmes au dock (Pidgin)

Yep ... mais encore une fois, tu ne "penses" qu'au mode dock ! Essayes d'imaginer l'applet pidgin avec GLX-Desklet ! Cà serait tout de même mieux de pouvoir directement afficher les correspondants et/ou les messages dans le desklet plutôt que dans une bulle de dialogue !

le but n'est pas d'offrir une API permettant de faire autant qu'en C, tu noteras que si tu voulais le faire en C, il te faudrait le coder toi-même

Mais je ne dis pas le contraire ! Je dis juste qu'il faudrait créer des raccourcis pour "inciter" les devs (et même débutants) à nous rejoindre !

pour faire un doncky en fait il y'a juste un .xml à faire avec des commandes n'est-ce pas ? du coup on n'est pas loin d'avoir déjà ce que tu voulais.

Yep ... pas loin ! Mais doncky doit intégrer les commandes pour être performant (car sinon, c'est du bash !!!) ... Bref, ce que je demande, c'est en quelque sorte d'intégrer le dessin sur les desklets de Doncky dans le code du dock et surtout de donner un accès au applets externes à toutes ces commandes

Bref, s'il n'y a qu'une chose à retenir à propos de ma réponse, ce sera tout simplement : "quand on voit le nombre de dev en C a se bousculer pour développer des desklets en C ... "

matttbe, Monday 24 January 2011 à 21:41


Subscription date : 24 January 2009
Messages : 12573
Bien sûr, mais elles doivent aussi pouvoir être plus évoluées ! Sinon, autant arrêter tout de suite GLX-Desklet ! Car quand on voit le nombre de dev en C a se bousculer pour développer des desklets en C ...
Oui, c'est vrai mais alors tu perds la puissance qu'a actuellement CD. En effet, regarde ce que prend en ressources et RAM AWN ou Docky par rapport à CD... Regarde le temps que met à chargé MintMenu aussi comparé à GMenu qui est quasi instantané!
Et aussi, qu'est-ce que tu voudrais voir apparaître comme applet évoluée en python? Enfin, ce n'est pas tellement compliqué de dessiner en gtk. Car il ne faut pas non plus que ça devienne une usine à gaz

Ou ce qui est également possible, c'est de faire une interface en python pour facilement écrire en gtk/qt sur le bureau.

Cà serait tout de même mieux de pouvoir directement afficher les correspondants et/ou les messages dans le desklet plutôt que dans une bulle de dialogue !
Ce serait pas mal mais utile? Alors autant afficher la fenêtre de Pidgin

Mais je ne dis pas le contraire ! Je dis juste qu'il faudrait créer des raccourcis pour "inciter" les devs (et même débutants) à nous rejoindre !
Bein oui, si tu veux y faire une applet évoluée, c'est pas mal pour les débutants. Pour écrire du texte sur l'icône, ça devient + hard à gérer et le développeur n'aura jamais ce qu'il veut...

nochka85, Monday 24 January 2011 à 21:59


Subscription date : 29 November 2007
Messages : 7408
Est ce qu'en gtk on peut profiter des avantages des desklets du dock ? ( rotation et inclinaison)
Car c'est surtout ça le +

fabounet, Tuesday 25 January 2011 à 10:35


Subscription date : 30 November 2007
Messages : 17118
tu ne "penses" qu'au mode dock

pas faux, mais que va t'apporter un desklet pidgin par rapport à Pidgin lui-même ? un desklet est forcément plus simple.

comme je l'ai dit, il faudrait commencer par avoir une API C avancée qui ferait du dessin.
il y'a plusieurs applets qui dessinent sur leur icône (RSS, Clock, Doncky), il y'a peut-être matière avec ça.

mais ça devra rester simple encore une fois, tu peux pas faire passer du dessin dynamique sur le bus (sinon il faut oublier Dbus et faire un binding python de libgldi)
par exemple on peut imaginer un modèle genre celui de RSSreader, un peu plus simple que Doncky pour commencer.

bref, on peut faire passer un modèle sur le bus, et ensuite demander au dock/desklet de l'afficher, mais on peut pas le dessiner nous-mêmes, la séparation est importante => tu seras toujours frustré si ce que tu veux c'est pouvoir dessiner tout ce que tu as envie

Technical discussions | Discussions techniques

Subjects Author Language Messages Last message
[Locked] Interface graphique pour applets externes
nochka85 Français 8 fabounet [Read]
25 January 2011 à 10:35


Glx-Dock / Cairo-Dock List of forums Technical discussions | Discussions techniques Interface graphique pour applets externes Top

Online users :

Powered by ElementSpeak © 2007 Adrien Pilleboue, 2009-2013 Matthieu Baerts.
Dock based on CSS Dock Menu (Ndesign) with jQuery. Icons by zgegball
Cairo-Dock is a free software under GNU-GPL3 licence. First stable version created by Fabounet.
Many thanks to TuxFamily for the web Hosting and Mav for the domain name.