#1 Le 26/11/2007, à 13:40
- Sleipnir
[Semi-résolu]Comment personnaliser fenêtres Xdialog ?
Bjr,
Tout est dans le titre !
Les fenêtres d'origine de Xdialog sont comme suit:
images récupéré sur http://xdialog.dyns.net/
sur la meme page certaines fenêtres sont différentes:
Comment faire pour obtenir des fenêtres semblable au deuxième screen ?
Une option pour utiliser le thème utilisateur ?
Il est possible de créer un fichier .rc , est ce là qu'il faut indiquer quel thème utiliser ?
Ou trouver un tutos ( en fr ) pour la création des fichier .rc ? ( quelques explications ici http://www.linux-france.org/article/devl/gtk/gtk_tut-18.html mais pas suffisante à mon niveau de connaissances )
Merci d'avance
Dernière modification par Sleipnir (Le 29/11/2007, à 00:12)
Hors ligne
#2 Le 26/11/2007, à 19:29
- Wapush_HL
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
Salut
Xdialog utilise l'ancienne librairie GTK-1.x plutà´t que GTK-2.x des applications récentes. Pour modifier l'apparence des applications utilisant GTK-1.x comme Xdialog, Dillo ou XMMS par exemple, tu peux utiliser des thèmes GTK-1.x déjà fait.
Attension : Il est nécessaire d'installer l'engine GTK-1.x correspondant à celui utiliser par le thème GTK-1.x choisi.
Exemple avec Xdialog et XMMS(sans thème) :
Exemple avec Xdialog et XMMS(avec le thème GTK-1x ThinAndMild) :
Pour installer et utiliser un thème GTK-1.x, décompresse l'archive téléchargée et déplace le dossier obtenu dans /home/ton-nom/.themes. Crée ensuite un fichier nommé .gtkrc dans /home/ton-nom et entre(exemple avec le thème ThinAndMild de ma capture) :
include "/home/ton-nom/.themes/ThinAndMild/gtk/gtkrc"
En remplaçant ton-nom par ton identifiant de connexion.
Pour savoir quel gtk-engines installer, édite le fichier gtkrc du thème que tu veux utiliser et cherche une ligne de ce genre : engine "nom-de-l'engine". Dans mon exemple avec le thème ThinAndMild on y trouve engine "thinice". Il faut donc installer gtk-engines-thinice pour pouvoir l'utiliser.
Quelques liens o๠tu peux trouver des thèmes GTK-1.x :
http://themes.freshmeat.net/browse/923/
ftp://ftp.gnome.org/mirror/gnome.org/te … hemes/gtk/
Note : Les thèmes gtk-1.x utilisant l'engine "gtk-engines-pixmap" sont en général très lent(peu réactifs).
A++
#3 Le 26/11/2007, à 20:32
- Sleipnir
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
Ca c'est de l'explication...! Merci
C'est un peu lourd comme manipulation pour changer l'apparence de xdialog.
Il n'est pas possible de remplacer juste les boutons par exemple ? Ou d'installer un thème juste pour Xdialog, comme avec xmms ? ( si ça n'existe pas, il faudrait l'inventer...)
Hors ligne
#4 Le 26/11/2007, à 21:02
- frafa
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
lo
change le chemin du theme par le tien de:
"--rc-file $HOME/Desktop/ThinAndMild/gtk/gtkrc"
rcfile="--rc-file /home/ubuntu/Desktop/ThinAndMild/gtk/gtkrc"
Xdialog $rcfile --backtitle "Red Hat Software Linux" \
--title "RADIOLIST BOX" \
--radiolist "Hi, this is a radiolist box. You can use this\n\
to make a choice from a list of items.\n\
If there are more items than can fit on the\n\
screen, the list will be scrolled.\n\n\
Which of the following is a fruit ?" 26 46 5 \
"Tiger" "A dangerous animal." off \
"Dog" "No, that's not my dog." ON \
"Orange" "Yeah, that's juicy." off \
"Cat" "No, never put a dog and a cat together!" off \
"Fish" "Cats like fish." off 2>/tmp/checklist.tmp.$$
retval=$?
choice=`cat /tmp/checklist.tmp.$$`
rm -f /tmp/checklist.tmp.$$
case $retval in
0)
echo "'$choice' chosen.";;
1)
echo "Cancel pressed.";;
255)
echo "Box closed.";;
esac
regarde aussi dans: /usr/share/doc/xdialog
Dernière modification par frafa (Le 26/11/2007, à 21:04)
Hors ligne
#5 Le 26/11/2007, à 21:23
- Sleipnir
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
@frafra
Il faut quand meme installer un thème gtk-1 ? Pas moyen autrement ?
Hors ligne
#6 Le 26/11/2007, à 21:58
- frafa
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
ben si tu veut changer les boutons fo bien stocker les images quelque part
tu te fait ton theme gtkrc et tu pointe --rc-file dessus
Hors ligne
#7 Le 28/11/2007, à 14:48
- Sleipnir
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
ben si tu veut changer les boutons fo bien stocker les images quelque part
tu te fait ton thème gtkrc et tu pointe --rc-file dessus
Bon, en installant un thème et son "engine" correspondante, c'est presque bon...!
2 petits problèmes:
- le contour des fenêtres n'est pas prit en compte ( barre titre, bouton reduire, fermer...)
-les polices non plus.
J'ai créer un fichier gtkrc pour modifier les couleurs ( pas sans mal...), mais je bute également sur les polices.
Pour trouver le nom, j'utilise la boite fontsel de xdialog, dans le fichier gtkrc je renseigne bien dans le style
font = "-adobe-helvetica-medium-r-bold--*-200-*-*-*-*-*-*"
ou tout autres polices, mais ca ne fonctionne pas.
Si quelqu'un a une idée...?
merci
Hors ligne
#8 Le 29/11/2007, à 00:03
- Sleipnir
Re : [Semi-résolu]Comment personnaliser fenêtres Xdialog ?
J'ai passé le topic en semi résolu. Je poste ici qqles screen et le gtkrc avec mes commentaires. Je le pose tel quel, j'espère que ce sera clair.
Ca servira bien à quelqu'un...
Avec un thème Aéro et son engine
Le fichier gtkrc ( attention ca pique aux yeux les couleurs... prises au hazard )
style "defaut"
{
#bleu
fg[NORMAL] = { 0, 0.5, 1.0 }
#violet
bg[NORMAL] = { 1.0, 0, 1.0 }
#rouge
fg[SELECTED] = { 1.0, 0, 0 }
#vert
bg[SELECTED] ={ 0, 1.0, 0}
#fg[INSENSITIVE] = { 0, 0, 0.5 }
#bg[INSENSITIVE] ={ 1.0, 0, 1.0 }
#jaune
fg[PRELIGHT] = { 1.0, 1.0, 0 }
#orange
bg[PRELIGHT] = { 1.0, 0.5, 0 }
#bleu turquoise
fg[ACTIVE] = { 0.5, 1.0, 1.0 }
#vert clair
bg[ACTIVE] = { 0.5, 1.0, 0.5 }
#rose
base[NORMAL] = { 1.0, 0.7, 1.0 }
#violet
base[ACTIVE] = { 1.0, 0, 1.0 }
}
#décommenter la ligne suivante pour appliquer le style defaut à tous le widget
#widget "*" style "defaut"
style "menu"
{
#Fond de menu déroulant 'fselect' : violet
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*GtkMenu*" style "menu"
style "saisie"
{
#Zone de saisie : Fond rose, texte bleu
# rose
base[NORMAL] = { 1.0, 0.7, 1.0 }
# bleu
fg[NORMAL] = { 0, 0.5, 1.0 }
}
class "*Entry*" style "saisie"
style "barre"
{
#Barre de défilement (idem class "*CheckButton*") Fond vert, poignées violet, survol orange
# vertC
bg[ACTIVE] = { 0.5, 1.0, 0.5 }
# orange
bg[PRELIGHT] = { 1.0, 0.5, 0 }
# violet
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*Range*" style "barre"
style "misc"
{
#Texte boite(bleu) + text bouton & text check → 3 positions →
# selectionné (bleuT)& !selectionné (bleu) &survol (jaune)
#
#Flèche du bouton combobox : 3 positions ( idem class "*CheckButton*" ( à ajouter))
#
#Texte liste combobox :selectionné (rouge)& !selectionné (bleu)
# bleu
fg[NORMAL] = { 0, 0.5, 1.0 }
# bleu turquoise
fg[ACTIVE] = { 0.5, 1.0, 1.0 }
#jaune
fg[PRELIGHT] = { 1.0, 1.0, 0 }
# rouge
fg[SELECTED] = { 1.0, 0, 0 }
}
class "*GtkMisc*" style "misc"
style "bouton"
{
#Tous les boutons 3 positions +bouton combobox ( idem class "*CheckButton*")
# vertC
bg[ACTIVE] = { 0.5, 1.0, 0.5 }
# orange
bg[PRELIGHT] = { 1.0, 0.5, 0 }
# violet
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*Button*" style "bouton"
style "checkbouton"
{
# Checklist : case → selectionné (vertC)& !selectionné (violet) : survol → fond (orange)
# vertC
bg[ACTIVE] = { 0.5, 1.0, 0.5 }
# orange
bg[PRELIGHT] = { 1.0, 0.5, 0 }
# violet
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*CheckButton*" style "checkbouton"
style "fondcheck"
{
#Fond des checklist
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*View*" style "fondcheck"
style "fond"
{
#Fond des boites de dialogues
# violet
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*Window*" style "fond"
style "list"
{
#Liste : fond & texte → selectionné (vert,rouge)& !selectionné (rose,bleu)
# : cadres autour de la liste(violet) : séparation liste(violet)
# rouge
fg[SELECTED] = { 1.0, 0, 0 }
# vert
bg[SELECTED] ={ 0, 1.0, 0}
# rose
base[NORMAL] = { 1.0, 0.7, 1.0 }
# bleu
fg[NORMAL] = { 0, 0.5, 1.0 }
# violet
bg[NORMAL] = { 1.0, 0, 1.0 }
base[ACTIVE] = { 1.0, 0, 1.0 }
}
class "*List*" style "list"
style "combo"
{
#list deroulante combobox fond rose, selectionné vert
##vert
bg[SELECTED] ={ 0, 1.0, 0}
##rose
base[NORMAL] = { 1.0, 0.7, 1.0 }
}
class "*GtkList*" style "combo"
style "separ"
{
#barre de séparation
bg[NORMAL] = { 1.0, 0, 1.0 }
}
class "*Separ*" style "separ"
widget "main window.*Gtk*" style "defaut"
Dernière modification par Sleipnir (Le 29/11/2007, à 00:11)
Hors ligne