l’Almanet doLys Gnu/Linux – Open Source – Entreprises › Forums › L’almanet doLys Open Source › [Tuto] Une icone animée sur votre bureau grâce à conky 1.9 …
Mots-clés : animated, clickable, conky, conky 1.9, gif, icon, interactive, lanceur animé, launcher, script lua, Xubuntu
- This topic has 2 réponses, 2 participants, and was last updated il y a 7 years et 5 months by jlfh0816.
-
AuteurArticles
-
avril 9, 2017 à 8:15 pm #4562jlfh0816Moderator
… et un gif cliquable.
Préambule
Les scripts lua de ce tutoriel ne fonctionneront que si vous utilisez la version 1.9 de conky (c’est-à-dire jusqu’à *ubuntu 15.04) … et non la nouvelle version 1.10 (c’est-à-dire à partir de 15.10) !
Pour savoir quelle version est installée sur votre distribution, ouvrez Synaptic ( Whisker Menu > tout > Système > Synaptic> rechercher > conky-all ) ou saisissez ceci dans un terminal :apt-cache policy conky-all
ou ceci :
conky -v
Si votre distribution utilise la version 1.10, reportez-vous à l’addendum à la fin du tutoriel pour examiner les différentes solutions/parades possibles.
Voila, ces remarques importantes étant faites, nous pouvons entrer dans le vif du sujet et créer notre lanceur animé !
Introduction
Il y a quelques années de cela (en 2014), n’ayant aucune compétence en matière de conky, j’avais beaucoup sollicité mrpeachy (sur le défunt forum #Crunchbang ) et Didier-T (sur le forum Ubuntu.fr ) pour qu’ils m’aident à incorporer un gif animé dans un conky interactif (cliquable). Leur collaboration a été très efficace et elle a vite abouti à une solution fonctionnelle. Etant donnée la qualité de leur travail, j’ai pensé faire œuvre utile en le mettant à la disposition de la communauté (… en français !).
Mais j’insiste, tout le mérite revient à mrpeachy et à Didier-T auxquels je renouvelle mes plus vifs remerciements.In fine, ce tutoriel vous permettra d’afficher sur votre bureau un ou plusieurs gifs animés (éventuellement cliquables mais ce n’est pas obligatoire) d’un être cher, d’un logo qui vous tient à cœur, d’un monument ou d’une œuvre d’art, de votre actrice préférée, etc …
Ce tutoriel comporte 4 étapes principales :
– obtenir un gif animé ;
– le décomposer ;
– créer le conky;
– rendre le conky cliquable
1 – Pré-requis
- mon installation :
Xubuntu – Voyager 14.04.5 LTS (en 64 bits)
Je n’utilise pas Compiz mais le compositeur de fenêtres d’origine de Xubuntu (Xfwm).
Mon gestionnaire de fichiers est Nemo.
Mon éditeur de fichiers est gedit.
Je n’utilise pas d’icones sur mon bureau mais un dock (en l’occurrence cairo-dock).
- logiciels requis :
Gifsicle
Conky (ici donc en version 1.9)
Xdotool
Xwininfo
Il est possible qu’ils soient déjà présents d’origine dans votre distribution mais vérifiez quand même, on ne sait jamais !
2 – obtenir un gif animé
Vous avez plusieurs possibilités :
– soit vous possédez déjà un gif animé dans vos archives personnelles;
– soit vous en récupérez un sur internet ;
– soit vous en réalisez un spécialement pour l’occasion.
Si vous préférez réaliser un gif animé spécialement pour l’occasion, vous avez 2 façons de faire :
– soit vous le réalisez vous-même de A à Z (avec Gimp par exemple);
– soit vous passez par l’intermédiaire d’un site spécialisé (il en existe beaucoup : Ezgif, Lunapic, Animizer, etc …).
Si vous passez par l’un de ces sites spécialisés, vous verrez qu’ils vous proposent gratuitement :
– soit de réaliser un gif animé 2D en appliquant des déformations ou des animations diverses et variées à du texte ou à l’une de vos icônes fixes que vous leur fournissez (par exemple chez Animizer). Vous en avez un exemple ci-dessus et un autre ci-dessous en sachant qu’il y en a beaucoup d’autres disponibles :– soit de réaliser un gif animé 3D en forme de cube qui tourne sur lui-même, à partir de photos que vous leur fournissez (par exemple chez Bloggif).
Pour la suite de ce tutoriel, je choisis d’afficher un cube 3D réalisé sur le site Bloggif.com à partir de photos personnelles.
3 – décomposer le gif animé
Pour fonctionner, le script lua que nous utiliserons pour afficher le gif animé a besoin d’accéder à toutes les images fixes (les « frames ») qui le constituent. Il faut donc que nous décomposions le gif.
Mais avant de faire cela, il nous faut :
– créer le répertoire /home/user/essai
– créer le répertoire /home/user/temp
(attention: le dossier temp ne devra contenir que vos frames et rien d’autre)
Bien entendu, vous remplacez user par votre propre nom d’utilisateur.
Pour décomposer notre gif animé, nous avons plusieurs possibilités dont celles-ci :
– soit nous utilisons Gimp ;
– soit nous demandons à un site spécialisé de le faire à notre place (Ezgif.com, Bloggif.com, etc …);
– soit nous recourons à gifsicle en ligne de commande.
J’ai testé les trois possibilités et elles sont toutes efficaces.
Dans le cadre de notre tutoriel, nous allons utiliser gifsicle. Voici comment procéder :
– dans un premier temps, vous renommez votre gif avec un nom simple (personnellement, j’ai choisi cube.gif ) ;
– dans un second temps, vous le déplacez dans votre dossier /home/user/temp
– dans un troisième temps, vous saisissez cette ligne de commande dans un terminal :
gifsicle --unoptimize --explode /home/user/temp/cube.gif --output /home/user/temp/gif
Bien entendu, dans cette ligne de commande, vous remplacez user par votre propre nom d’utilisateur.
En ouvrant /home/user/temp, vous pouvez vérifier que gifsicle a bien décomposé cube.gif en un certain nombre d’images fixes (les «frames»), chez moi en 18 images numérotées de gif.000 à gif.017
NB: il est possible que gifsicle refuse de s’exécuter et vous affiche le message d’erreur suivant :
gifsicle: While processing '/home/user/temp/cube.gif':
warning: GIF too complex to unoptimize
(The reason was local color tables or complex transparency.
Try running the GIF through 'gifsicle --colors=255' first.)
Dans ce cas, il vous suffit de modifier la ligne de commande pour tenir compte du message d’erreur. Ce qui donne la nouvelle commande suivante:
gifsicle --colors=255 --explode /home/user/temp/cube.gif --output /home/user/temp/gif
4 – créer le conky
Cette opération va se faire en deux temps :
– création du fichier conkyrc_cube (avec la syntaxe conky 1.9)
– création du fichier gif.lua
- 4.1 – création du fichier conkyrc_cube
Vous ouvrez le répertoire /home/user/essai et vous y créez un nouveau fichier que vous appelez conkyrc_cube
Vous l’ouvrez avec votre éditeur de fichiers préféré (chez moi, c’est gedit) et vous y copiez-collez le script suivant :
#le conky appelant doit avoir sa propre fenêtre et un nom
own_window_title Cube
#definition du type de fenetre, et des décorations
own_window_argb_visual no
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
#définition de la taille, et de la position du conky
minimum_size 135 135
alignment ml
gap_x 10
gap_y 10
#vitesse de rotation du cube
update_interval 0.15
réglage de la mémoire, pour éviter le clignotement
double_buffer yes
Soustraire les mémoires tampons de la mémoire utilisée
no_buffers yes
text_buffer_size 1024
lua_load ~/essai/Click_info.lua
lua_load ~/essai/gif.lua
#
TEXT
#Conky animation with images
${lua click}
${lua gif ~/temp * 0 15 135 135}
Vous sauvegardez ce fichier et vous le rendez exécutable :clic droit sur le fichier > propriétés > permissions > autoriser l’exécution du fichier comme un programme
- 4.2– création du fichier gif.lua
Vous ouvrez le répertoire /home/user/essai et vous y créez un nouveau fichier que vous appelez gif.lua
Vous ouvrez ce nouveau fichier avec votre éditeur de fichiers préféré (chez moi, c’est gedit) et vous y copiez-collez le script suivant :
--[[
Script gif.lua
By mrpeachy
Modifier le 22/03/2014 par Didier-T
prise en charge du contenu complet d'un répertoire avec choix de format (jpg, gif, etc...)
prise en charge des racourcis ~ et $HOME, ainsi que des espaces dans le chemin du repertoire
#############################################################################################
# #
# Usage #
# #
#############################################################################################
# #
# lua_load ~/gif.lua #
# TEXT #
# ${lua gif repertoire format pos_x pos_y largeur hauteur} #
# #
#############################################################################################
remplacer les espaces par %20 pour le chemin du repertoire
]]--
--gifsicle --unoptimize --explode /home/jlfh0816/temp/cube.gif --output /home/jlfh0816/temp/temp.gif
require 'cairo'
require 'imlib2'
ini=0
count=0
fichier={}
function conky_gif(rep,ext,x,y,w,h)
if conky_window == nil then return end
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
cr = cairo_create(cs)
if ini==0 then fichier=init(rep, ext) end
show_image=fichier[count]
if count
count=count+1
else
count=0
end
image({x=x,y=y,w=w,h=h,file=show_image,decache=1})
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
return ""
end-- end main function
function init(rep, ext)
ini=1
local home = os.getenv("HOME")
rep = string.gsub(rep, "~", home)
rep = string.gsub(rep, "$HOME", home)
rep=string.gsub(rep, '%%20', "\\ ")
local file=conky_parse("${exec find "..rep.."/*."..ext.." -type f -print}")
return file:split('\n')
end
-- Fonction de découpage maison
function string:split(pat)
-- Détermination du caractère séparant les champs pour le découpage
-- Par défaut ce sera espace
pat = pat or '%s+'
local tab = {}
local x=0
for i in self:gmatch("([^"..pat.."]+)") do
tab[x]=i
x=x+1
end
return tab
end
function image(im)--#######################################################################################
local x=(im.x or 0)
local y=(im.y or 0)
local w=(im.w or 50)
local h=(im.h or 50)
local file=tostring(im.file)
local decache=im.decache or 0
if file==nil then print("set image file") end
---------------------------------------------
local show = imlib_load_image(file)
if show == nil then return end
imlib_context_set_image(show)
if tonumber(w)==0 then
width=imlib_image_get_width()
else
width=tonumber(w)
end
if tonumber(h)==0 then
height=imlib_image_get_height()
else
height=tonumber(h)
end
imlib_context_set_image(show)
local scaled=imlib_create_cropped_scaled_image(0, 0, imlib_image_get_width(), imlib_image_get_height(), width, height)
if decache==1 then
imlib_free_image_and_decache()
else
imlib_free_image()
end
imlib_context_set_image(scaled)
imlib_render_image_on_drawable(x,y)
imlib_free_image()
end--function image
Vous sauvegardez ce fichier et vous le rendez exécutable :clic droit sur le fichier > propriétés > permissions > autoriser l’exécution du fichier comme un programme
5 – rendre le conky cliquable
Pour cette dernière étape, vous ouvrez le répertoire /home/user/essai et vous y créez un nouveau fichier que vous appelez Click_info.lua
Vous ouvrez ce nouveau fichier avec votre éditeur de fichiers préféré (chez moi, c’est gedit) et vous y copiez-collez le script suivant :
--[[
!!! Nécessite l’installation de xdotool !!!
Le conky appelant doit avoir sa propre fenêtre et un nom, par exemple
own_window_title Cube
own_window yes
Dans le conky il faut ajouter :
Avant TEXT
lua_load "Votre chemin"/Clic_info.lua
Après TEXT
${lua click}
Pour obtenir la position de la souris dans le script lié au clic utiliser
posx et posy
Pour ajouter des données récupérées via conky dans la commande à exécuter indiquer dans la ligne de commande arg(x), arg1 sera remplacé par le résultat de arg1, vous disposez de 5 arguments
Les commandes peuvent être exécutées par conky ou directement par le système
Le nom de la fenêtre conky doit être renseigné ci-dessous
]]--
local Fenetre="Cube"
local Bouton={
{
Posx=0,
Posy=15,
Lageur=135,
Hauteur=135,
Commande_Os="nemo /home/jlfh0816/Images",
Commande_Conky="",
arg1="",
arg2="",
arg3="",
arg4="",
arg5="",
},
}
local start=1
local abstlx, abstly
function conky_click()
local mousex, mousey, localx, localy, arg1, arg2, arg3, arg4, arg5
if conky_window == nil then return end
local updates=tonumber(conky_parse('${updates}'))
if updates>2 then
localx,localy=clickfunction()
for i in pairs(Bouton) do
if localx>=Bouton.Posx and localx<=Bouton.Posx+Bouton.Lageur and localy>=Bouton.Posy and localy<=Bouton.Posy+Bouton.Hauteur then
mousex=Bouton.Posx+abstlx
mousey=Bouton.Posy+Bouton.Hauteur+abstly
if Bouton.arg1 ~= "" then arg1=conky_parse( "${"..Bouton.arg1.."}" ) else arg1=" " end
if Bouton.arg2 ~= "" then arg2=conky_parse( "${"..Bouton.arg2.."}" ) else arg2=" " end
if Bouton.arg3 ~= "" then arg3=conky_parse( "${"..Bouton.arg3.."}" ) else arg3=" " end
if Bouton.arg4 ~= "" then arg4=conky_parse( "${"..Bouton.arg4.."}" ) else arg4=" " end
if Bouton.arg5 ~= "" then arg5=conky_parse( "${"..Bouton.arg5.."}" ) else arg5=" " end
if Bouton.Commande_Os ~= "" then
Bouton.Commande_Os=Bouton.Commande_Os:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
print(Bouton.Commande_Os)
os.execute(Bouton.Commande_Os)
end
if Bouton.Commande_Conky ~= "" then
Bouton.Commande_Conky=Bouton.Commande_Conky:gsub("posx", mousex):gsub("posy", mousey):gsub("arg1", arg1):gsub("arg2", arg2):gsub("arg3", arg3):gsub("arg4", arg4):gsub("arg5", arg5)
conky_parse( "${"..Bouton.Commande_Os.."}")
end
end
end
collectgarbage()
end
return ""
end
function clickfunction()
local xdot, geometry ,s ,f , click, mousex, mousey, localx, localy
--start click logging and calculations ##########################################
if start==1 then
xdot=os.execute("exec ps ax | awk '/ xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation / {print $1}'")
if tonumber(xdot)==1 then
os.execute("kill "..xdot)
end
os.execute("xdotool search --name "..Fenetre.." behave %@ mouse-click getmouselocation >> /tmp/xdo &")
start=nil
local f = io.popen("xwininfo -name '"..Fenetre.."' | grep 'Absolute'")
geometry = f:read("*a")
f:close()
geometry=string.gsub(geometry,"[\n]","")
s,f,abstlx=string.find(geometry,"X%p%s*(%d*)")
s,f,abstly=string.find(geometry,"Y%p%s*(%d*)")
end--if start=1 ######################################
--click calculations #################################
local f=io.open("/tmp/xdo")
click=f:read()
f:close()
if click~=nil then
local f = io.open("/tmp/xdo","w")
f:write("")
f:close()
end--if click=nil
if click==nil then click="x:0 y:0 " end
s,f,mousex=string.find(click,"x%p(%d*)%s")
s,f,mousey=string.find(click,"y%p(%d*)%s")
mousex=tonumber(mousex)
mousey=tonumber(mousey)
localx=mousex-abstlx
localy=mousey-abstly
--END CLICK CALCULATIONS #################################
return localx,localy,mousex,mousey
end--function
Vous sauvegardez ce fichier et vous le rendez exécutable :clic droit sur le fichier > propriétés > permissions > autoriser l’exécution du fichier comme un programme
6 – lancer le conky en ligne de commande
Pour vérifier que notre conky fonctionne correctement, vous pouvez le lancer à la demande, grâce à une ligne de commande. Dans un terminal, vous saisissez ceci :
conky -c ~/essai/conkyrc_cube
ou, si elle ne fonctionne pas, celle-ci :
conky -c /home/votre_nom_d'utilisateur/essai/conkyrc_cube
Si tout fonctionne correctement, vous pouvez avoir envie de remplacer le lancement par ligne de commande (pas très convivial) par un clic on/off sur un lanceur dédié. C’est l’objet du paragraphe 9 ci-dessous auquel je vous invite à vous reporter.
7 – personnaliser le conky
Vous pouvez interagir sur certains paramètres du conky et les modifier :
– le nom de la fenêtre du conky :
Cela se passe aux lignes 1 et 2 du script conkyrc_cube :
#le conky appelant doit avoir sa propre fenêtre et un nom
own_window_title Cube
Vous changez Cube par le nom qui vous convient.
– la dimension de la fenêtre dans laquelle s’affiche le conky :
Cela se passe aux lignes 9 et 10 du script conkyrc_cube :
#définition de la taille du conky
minimum_size 135 135
Ici, cela signifie que la fenêtre du conky a une taille minimale de 135 x 135 pixels.
Le premier 135 est pour la largeur (en pixels).
Le second 135 est pour la hauteur (en pixels).
Vous pouvez bien entendu modifier ces valeurs à votre guise.
– la taille des images du gif :
Cela se passe à la ligne 28 du script conkyrc_cube :
${lua gif ~/temp * 0 15 135 135}
0 et 15 se réfèrent aux coordonnées d’affichage, en pixels, du gif dans la fenêtre du conky (0 0 signifiant « en haut, à gauche »).
Quant au premier 135, il désigne la largeur du gif (en pixels) et le second 135 sa hauteur (toujours en pixels).
Vous pouvez tout à fait changer ces chiffres pour les adapter à la taille de votre gif personnel. Mais n’oubliez pas d’adapter en conséquence la taille de la fenêtre du conky.
– la position du conky :
Cela se passe aux lignes 12, 13 et14 du script conkyrc_cube :
alignment ml
gap_x 10
gap_y 10
alignment ml
signifiemiddle left
(c’est-à-dire au milieu et à gauche sur l’écran). C’est un positionnement prédéfini et grossier du conky.
Vous pouvez le modifier en changeantml
par l’une des ces valeurs suivantes :
top_left
(outl
en abrégé),top_right
(outr
),top_middle
(outm
),bottom_left
(oubl
),bottom_right
(oubr
),bottom_middle
(oubm
),middle_left
(ouml
),middle_middle
(oumm
),middle_right
(oumr
) ou mêmenone
.
Par rapport à cet alignement, vous pouvez ensuite jouer plus finement surgap_x
(donc l’abscisse ou axe des x) et surgap_y
(donc l’ordonnée ou axe des y).
Icigap_x 10
signifie 10 pixels à l’horizontale vers la droite (axe des x), à partir du bord gauche de l’écran.
Etgap_y 10
signifie 10 pixels vers le haut (axe des y), à partir de la position de l’alignementml
.
Donc, vous pouvez jouer sur ces deux valeurs pour positionner plus finement votre conky.
– la vitesse de rotation du cube :
Cela se passe aux lignes 15 et 16 du script conkyrc_cube :
#vitesse de rotation du cube
update_interval 0.15
Cela signifie que le gif change de frame (d’image fixe) toutes les 15 millisecondes.
Vous pouvez bien entendu modifier ces valeurs à votre guise pour augmenter ou diminuer la vitesse de rafraichissement des images et donc in fine la vitesse de rotation du cube.
– l’effet du clic sur le conky :
Dans mon cas personnel, le clic a pour effet d’ouvrir mon répertoire Images.
Cela se passe à la ligne 30 du script Click_info.lua :
Commande_Os="nemo /home/jlfh0816/Images",
Mais libre à vous que le clic ait un autre effet. Par exemple, on peut lui demander qu’il ait pour effet d’ouvrir un site internet précis, au hasard le site https://dolys.fr/ : cela donnera la ligne de commande suivante :
Commande_Os="firefox https://dolys.fr",
Maintenant, n’ayant pas (et de loin) les compétences de Didier-T, l’auteur des scripts « conky interactif », je vous conseille d’aller voir ses explications sur le forum Ubuntu.fr si vous souhaitez de plus amples informations. Il maitrise son sujet et il sera plus efficace que moi !
8 – automatiser le lancement du conky à l’ouverture de la session
Je suis sous Xubuntu donc je ne peux décrire la manip que pour cette distribution. Ceci dit, je pense que ça doit être faisable sur n’importe quelle autre distribution si on adapte…
Voici comment je procède sur ma Xubuntu -Voyager 14.04 :
menu Whisker > tous les paramètres > Session et démarrage > démarrage automatique d’applications > ajouter
et là, on complète les champs comme ceci :
nom : Cube
description : conky Cube animé et cliquable
commande :sh -c "sleep 5; conky -c ~/essai/conkyrc_cube;"
ou, si cette commande ci-dessus ne fonctionne pas, celle-ci :
sh -c "sleep 5; conky -c /home/user/essai/conkyrc_cube;"
Vous remplacez bien sûr user par votre propre nom d’utilisateur.
Vous validez-fermez et normalement, c’est tout bon.
Vous pouvez contrôler cela en redémarrant le PC (ou seulement votre session) : le conky interactif doit se lancer au bout de 5 secondes (c’est la signification du sleep 5 dans le champ « commande »).
Mais si vous préférez attendre 30 secondes, libre à vous de remplacer sleep 5 par sleep 30.
Par contre, je vous déconseille de mettre des valeurs inférieures à 5 secondes voire pas de sleep du tout …. ça risquerait de provoquer un embouteillage des diverses commandes qui se lancent au démarrage de la session et donc des problèmes assurés …
9 – réaliser un lanceur pour une utilisation occasionnelle
Pour faciliter l’utilisation occasionnelle de notre conky, nous allons lui créer un lanceur (…un lanceur de lanceur !). Un clic G dessus le fera apparaître sur le bureau et un nouveau clic G l’arrêtera.
Pour arriver à nos fins, nous avons besoin de d’abord créer un lanceur intermédiaire caché sur le bureau et, grâce à lui, nous pourrons ensuite facilement créer des lanceurs visibles dans le tableau de bord ou dans un dock.
Le lanceur caché sur le bureau s’appellera .Cube
- 9.1 – créer un lanceur caché sur le bureau
Avant de créer le lanceur proprement dit, il nous faut créer un petit script qui permettra de vérifier si le conky est déjà lancé ou pas. Dans le premier cas, il le stoppera. Dans le second cas, il le lancera.
Vous ouvrez le répertoire /home/user/essai et vous y créez un nouveau fichier que vous appelez conky_cube.sh
Vous ouvrez ce nouveau fichier avec votre éditeur de fichiers préféré (chez moi, c’est gedit) et vous y copiez-collez le script suivant :
if
#------- Partie recherche -------
pgrep -f "conky -c /home/user/essai/conkyrc_cube"
then
#------- Partie tuer le conky ------
for i in `ps aux | grep [c]onkyrc_cube |awk '{ print $2}'`; do kill -9 $i;done;
else
#------- Partie lancer le conky -------
#sleep 1
conky -c /home/user/essai/conkyrc_cube &
fi
Vous remplacez bien sûr user par votre propre nom d’utilisateur.
Vous sauvegardez ce fichier et vous le rendez exécutable :
clic droit sur le fichier > propriétés > permissions > autoriser l’exécution du fichier comme un programme
Ensuite, il nous faut créer le lanceur proprement dit.
Pour cela, nous faisons:
clic D directement sur le bureau > créer un lanceur > renseigner les champs comme ci-dessous :Là encore, vous remplacez user par votre propre nom d’utilisateur.
Et vous laissez décochées les cases «exécuter dans un terminal» et «notification»
On valide en cliquant sur «créer».
Il reste à re-cliquer droit dessus pour faire apparaître propriétés > permissions > autoriser l’exécution du fichier comme un programme
Appelez ensuite votre gestionnaire de fichiers (chez moi, c’est Nemo) et ouvrez le répertoire «Bureau».
Vous y voyez le lanceur Cube
Clic droit sur ce lanceur > renommer > lui attribuer le nom .Cube > valider en appuyant sur la touche entrée du clavier
- 9.2 – créer un lanceur visible dans le tableau de bord
Pour les débutants, voici la marche à suivre étape par étape:
ouvrir votre gestionnaire de fichiers (chez moi, c’est Nemo), allez dans le répertoire «Bureau» et faites y apparaître les fichiers cachés:
menu Edition > Affichage > afficher les fichiers cachés
Comme ça, nous voyons l’icone du fichier .Cube
cliquez droit sur ce fichier : ouvrir avec > créer un lanceur sur le tableau de bordVous validez et le petit panneau ci-dessous apparait:
Cliquez sur ajouter
Vous validez et un lanceur apparait en haut à droite de l’écran:C’est une icone générique assez moche mais vous pouvez tout à fait la remplacer par l’icone de votre choix (nous verrons comment un peu plus loin) et déplacer votre nouveau lanceur ailleurs sur le tableau de bord:
clic droit sur l’icone > déplacer
et vous tirez-glissez à l’endroit de votre choix.
Voilà ce que ça donne chez moi après cette personnalisation:Il reste maintenant à adapter les propriétés de ce lanceur à notre usage particulier. Pour cela, clic droit sur l’icone pour faire apparaitre les “propriétés du lanceur”:
Ensuite, clic gauche sur l’icone en bas à droite représentant un crayon afin de pouvoir modifier l’élément sélectionné:
Le panneau “éditer le lanceur” apparait:
(chez vous, user sera d’office remplacé par votre propre nom d’utilisateur donc n’y touchez pas, c’est déjà correct !)
Tout d’abord, dans les options, vous décochez:
– utiliser la notification de démarrage
– exécuter dans un terminal
sinon vous aurez toujours un terminal qui va se superposer à votre fond d’écran animé lors de l’exécution de celui-ci.
Ensuite, si vous êtes sous Nemo ou Caja ou Dolphin (mais pas sous Thunar ni sous Nautilus), vous pouvez personnaliser votre icone. Il suffit de cliquer gauche dessus et de naviguer dans les arborescences jusqu’à trouver l’icone de votre choix.
Lorsque tout est à votre goût, vous enregistrez et c’est fini !
Pour l’utilisation en pratique courante: un clic gauche sur l’icone dans le tableau de bord et le conky animé s’affiche. Un autre clic gauche dessus et il disparait, comme ceci :- 9.3 – créer un lanceur visible dans le tableau de dock
Au cas où avoir un lanceur dans le tableau de bord ne vous plait pas, vous pouvez également en créer un dans un dock. Chez moi, ce dock est Cairo-dock.
Pour mener à bien l’opération, j’ouvre mon gestionnaire de fichiers Nemo. Je clique sur l’icone du répertoire “Bureau” pour ouvrir celui-ci. Dans Nemo, j’ouvre:
menu Edition > Affichage > afficher les fichiers cachés
Comme ça, je vois l’icone de mon fichier .Cube
Je fais un tirer/glisser de cette icône jusque dans mon Cairo-Dock.
Une nouvelle icône apparaît instantanément dans mon dock, un rond bleu avec un point d’interrogation. Comme ceci:Si vous le souhaitez, vous pouvez remplacer l’icone point d’interrogation par une icône de votre choix (ça se passe dans la personnalisation de Cairo-Dock).
Si je clique gauche sur ce point d’interrogation (un seul clic, pas deux ! ), le conky animé s’affiche immédiatement.
Si je souhaite arrêter ce conky, je reclique gauche sur la même icône et il disparait.
Seule précaution à prendre : toujours bien attendre que l’icone du Cairo-dock ait arrêté sa propre animation (chez moi, elle tourne sur elle-même en 3D) avant de recliquer dessus. Sinon, ça ne fonctionne pas … et ça oblige de fait à attendre que l’icone soit redevenue fixe. C’est une sécurité voulue par les développeurs de Cairo-Dock pour éviter de lancer accidentellement deux fois de suite un programme. Mais bon, quelques secondes à attendre, ce n’est pas la mer à boire !
Voilà, ce tutoriel est terminé, je vous souhaite de bien vous amuser avec ce conky interactif !
NB: je ne suis ni un pro des scripts ni un pro de la ligne de commande alors si vous constatez des erreurs, des incohérences ou des choses à améliorer, n’hésitez surtout pas à me le faire savoir, j’en serai le premier ravi.
VARIANTE EN CAS DE « FREEZE » DU GIF AU CLIC:
Chez moi, il arrive de façon tout-à-fait aléatoire, que le clic sur le conky fige l’animation du gif. En fait, l’animation redémarre spontanément quelques secondes après la fermeture de la fenêtre de mon dossier «Images» (qui est, je vous le rappelle, la commande exécutée par le clic) mais c’est un fonctionnement pour le moins gênant…
N’ayant pas réussi à trouver d’où vient le problème, j’ai décidé d’une variante à mon tuto … en l’occurence, je supprime le fichier Click-info.lua et je le remplace par une simple commande de clic insérée dans le fichier conkyrc_cube. Et dès lors tout fonctionne sans freeze.
Le seul inconvénient de cette variante est lié à la fonction « search » de xdotool : lors de sa première exécution, elle demande 3 à 5 secondes pour chercher et trouver la fenêtre ‘Cube’ du conky. C’est une caractéristique connue de « search » et contre laquelle il n’y a rien à faire. Mais ensuite, à partir de sa seconde exécution, ça devient quasi-instantané parce que la bonne fenêtre est mémorisée dans le « Window stack » de xdotool (la mémoire volatile de xdotool).
Donc, lors de votre premier clic, il sera donc normal que votre conky demande 3 à 5 secondes pour exécuter la commande que vous lui aurez assignée. Mais par la suite, ce sera quasiment instantané.
Pour résumer, vous n’avez alors plus besoin du fichier Click-info.lua et vous remplacez tout le contenu du fichier conkyrc_cube par celui-ci :
#le conky appelant doit avoir sa propre fenêtre et un nom
own_window_title Cube
#definition du type de fenetre, et des décorations
own_window_argb_visual no
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
#définition de la taille, et de la position du conky
minimum_size 135 140
alignment ml
gap_x 10
gap_y 10
#vitesse de rotation du cube
update_interval 0.15
# réglage de la mémoire, pour éviter le clignotement
double_buffer yes
# Soustraire les mémoires tampons de la mémoire utilisée
no_buffers yes
text_buffer_size 1024
#
lua_load ~/essai/gif.lua
#
TEXT
#Conky animation with images
${voffset -100}
${lua gif ~/temp * 0 15 135 135}
${texeci 1 xdotool search --limit 1 --name 'Cube' behave %@ mouse-click exec nemo /home/jlfh0816/Images}
Et c’est tout !
ADDENDUM: l’épineux problème de la nouvelle version 1.10 de conky …
Depuis le 01/07/2015 (et donc depuis *ubuntu 15.10), conky est passé en version 1.10. Avec cette nouvelle version, non seulement la syntaxe d’écriture des conky a été chamboulée mais surtout certaines fonctions nécessaires au fonctionnement des scripts lua ne sont plus correctement assurées comme le constatent avec beaucoup de dépit les « cadors » du conky œuvrant sur le forum Bunsenlabs.
A titre d’exemple, voici le constat amer et sans appel que fait unklar le 18/01/2017 :
The abolition of the functions
Lua bindings:
* Cairo
* Imlib2
make the Lua scripts (e.g., an @mrpeachy)
unusable.
Conky 1.10 is not applicable to the normal user, unless he is learning
LUA
Devant un tel constat, plusieurs attitudes sont possibles :
– soit nous restons en version 1.9 (c’est le cas si vous utilisez *ubuntu avant 15.10);
– soit nous rétrogradons de 1.10 vers 1.9 (voir ce tutoriel de Loutch sur le forum Mint ou celui-ci de Corey Goldberg sur son blog);
– soit nous nous passons des scripts lua : voir ce tutoriel dédié, toujours sur dolys.fr. C’est de la bidouille maison mais ça fonctionne ;
– soit nous attendons stoïquement la sortie d’une nouvelle version de conky qui corrigera ces problèmes (version 1.11 ? version 2 ? )…. mais ça peut être long !
– soit nous entrons dans le domaine du rêve (soyons fous !) : nous nous investissons à fond dans la programmation en lua … et nous corrigeons nous-mêmes le code 1.10….
Pour la petite histoire, sachez que la plupart des « cadors » du conky qui œuvrent sur le forum Bunsenlabs ont décidé de rétrograder en version 1.9 (voir à ce sujet la déclaration sans appel de Sector11) !
[dkpdf-button]
Xubuntu-Voyager 18.04.4 LTS
juillet 2, 2017 à 2:43 pm #5675patuxParticipantSalut Jlfh0816,
Alors la chapeau! et merci de partager…moi qui aime bidouiller j’ai du taf la; ma femme va encore raler que je passe trop de temps devant mon ordi!
mon installation est la même que la tienne,(j’étais passé en 16.04.01 mais j’ai pas aimé) du coup je reviens à conky 1.9.0. Ouf!! Bravo pour ton travail.
Cordialement
Patuxjuillet 3, 2017 à 10:03 pm #5682 -
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.