#26 Le 07/04/2013, à 07:37
- ljere
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
j'ai pas fait grand chose mais je suis content d'avoir pu être utile
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#27 Le 07/04/2013, à 11:30
- A.
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Bonjour,
Je réitère ma demande (#25) au cas où ce soit passé inaperçu et j'en profite pour demander la différence entre totaldown et vnstat, si vous avez une idée.
Merci.
Hors ligne
#28 Le 07/04/2013, à 13:14
- ljere
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Bonjour,
J'avais posé une question dans la partie réseaux et internet du forum (http://forum.ubuntu-fr.org/viewtopic.php?id=1243931), mais peut-être qu'ici ce sera mieux.
Mon PC est connecté à internet via une clé 3G. J'ai un volume de téléchargement mensuel limité. Donc pour surveiller un peu ma connexion, je voulais afficher le volume téléchargé dans mon conky.
j'ai trouvé la commande "totaldown 'nom_du_réseau' ", mais il y a plusieurs questions :- d'abord, est-ce cette fonction consomme des datas ?
- ensuite, qu'est-ce qui est affiché exactement ? Parce que je peux suivre ma consommation sur internet et il y avait une incohérence entre les valeurs.Merci.
normalement non cette fonction ne consomme pas de data, elle écoute juste ce que tu consommes je suppose que tu l'as additionné à totalup.
elle est de combien l'incohérence souvent les infos sur internet sont des approximations
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#29 Le 07/04/2013, à 14:06
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Bonjour a tous,
pour ceux qui seraient intéressé par la vraie transparence et des images intactes, voici le code lua a ajouter à vos conky.
image.lua
require 'cairo'
home = os.getenv ('HOME')
--Fonction d'affichage
function conky_fDrawImage(path,x,y,w,h,arc)
path = string.gsub(path, "~", home)
path = string.gsub(path, "$HOME", home)
local cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
local function fDrawImage(path,x,y,w,h,arc)
x=x+(w/2)
y=y+(h/2)
local img = cairo_image_surface_create_from_png(path)
local w_img, h_img = cairo_image_surface_get_width (img), cairo_image_surface_get_height (img)
local cr = cairo_create (cs)
cairo_translate (cr, x, y)
if arc then
cairo_rotate (cr, arc)
end
cairo_scale (cr, w/w_img, h/h_img)
cairo_set_source_surface (cr, img, -w_img/2, -h_img/2)
cairo_paint (cr)
cairo_destroy(cr)
cairo_surface_destroy (img)
end
fDrawImage(path,x,y,w,h,arc)
cairo_surface_destroy(cs)
return ""
end
Pour l'utilisation rien de bien compliqué.
dans conky il faudra ajouter avant TEXT
lua_load /chemin_vers_le_script/image.lua
ensuite pour afficher une image dans la partie après TEXT
${lua conky_fDrawImage image_a_afficher position_x position_y hauteur largeur rotation_si_nécessaire}
en fait pour modifier vos conkys, il suffit de modifier les lignes image de ceci
${image ~/.conky/conky-perso/HorlogeBois/HorlogeBois.png -p 0,0 -s 350x350}
a ceci
${lua conky_fDrawImage ~/.conky/conky-perso/HorlogeBois/HorlogeBois.png 0 0 350 350}
Hors ligne
#30 Le 07/04/2013, à 15:53
- A.
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
[...]
normalement non cette fonction ne consomme pas de data, elle écoute juste ce que tu consommes je suppose que tu l'as additionné à totalup.
elle est de combien l'incohérence souvent les infos sur internet sont des approximations
Non, je ne l'avais pas additionné. Je vais corriger ça, merci.
Je m'attendais bien à ce que la fonctionne ne consomme rien, mais j'ai déjà vu le compteur augmenter sans (à priori) qu'il n'y ait de consommation. Peut-être un service..
Pour l'incohérence entre le conky et internet, j'avais une consommation de 3834 ko le 03/04.
En fin de soirée, totaldown m'annonçait 5.91Mo de consommation.
Le 04/04, ma consommation sur internet est passée à 7219 ko.
Je vais faire un conky dédié avec en parallèle totaldown et vnstat et faire un relevé sur plusieurs jours. En corrigeant mon erreur, ça ira peut-être mieux.
Hors ligne
#31 Le 08/04/2013, à 15:39
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@Didier-T
Salut,
Quelle fonction utilises-tu pour changer de fond d'écran sur chaque bureau ?
Hors ligne
#32 Le 08/04/2013, à 15:59
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Un script maison que j'ai écrit pour voyager
Hors ligne
#33 Le 08/04/2013, à 16:26
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Un script maison que j'ai écrit pour voyager
AHHH je me disais bien... J'en ai un qui n'est pas très "frais" pour le changement d'écran...
Voudrais-tu nous le partager STP ?
le mien en python :
WallByDesk.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
## Réalisé par ArkSeth et ADcomp du forum Ubuntu-fr
## Distribué sous les termes de la GNU GPL v3.
## Ce script est un "daemon" pour utiliser un fond d'écran par bureau.
##Fonctionne en python, requiert les modules pygtk et wnck
##Ce dernier se trouve dans le paquet 'python-wnck' sous Debian
## et dans le paquet 'python-gnome2-desktop' sous Ubuntu.
import wnck
import gtk
import os
##Indiquez ici la commande servant à modifier le fond d'écran.
wallpainter = "feh --bg-fill"
##Indiquez ici l'adresse du fichier contenant vos préférences
wallfiles = "/home/climatix/.config/wallpapers"
##Ce fichier doit contenir l'adresse des images à utiliser, par ligne
## (première ligne => premier bureau et ainsi de suite)
##Lecture du fichier pour récupérer les fonds d'écran
file = open(wallfiles, "r")
wallpapers = file.readlines()
file.close
##Fonction qui modifie les fonds d'écrans au changement
def workspace_active_changed(screen, previous):
os.system(wallpainter+" "+wallpapers[screen.get_workspace_index(screen.get_active_workspace())])
##Lancement du daemon d'écoute
screen = wnck.screen_get_default()
screen.connect('active-workspace-changed', workspace_active_changed)
gtk.main()
Dernière modification par ragamatrix (Le 08/04/2013, à 16:27)
Hors ligne
#34 Le 08/04/2013, à 19:33
- ljere
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
tu te déconnectes comment ? hibernation, suspend, shutdown ou autre?
je sais qu'il y a un script qui ferme les ports usb pour permettre la veille dans la doc on pourrait inclure un killall conky pour ton problème
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#35 Le 08/04/2013, à 19:38
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
voici le code, du python, d'ailleurs le code que tu propose y ressemble beaucoup
bureau.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
import wnck
import gtk
import os
##Fonction qui modifie les fonds d'écrans au changement
def changement_de_bureau(screen, previous):
homedir = os.path.expanduser('~')
## on récupère le bureau actif
actif = screen.get_active_workspace()
## on récupère son index
index = screen.get_workspace_index(actif)
fichier = open(homedir+"/.scripts/Wall/changement_dash", "r")
info = fichier.readline()
fichier.close()
if info == "0":
if index == 0:
os.system("~/.scripts/Wall/wall1")
elif index == 1:
os.system("~/.scripts/Wall/wall2")
elif index == 2:
os.system("~/.scripts/Wall/wall3")
elif index == 3:
os.system("~/.scripts/Wall/wall4")
fichier = open(homedir+"/.scripts/Wall/changement_dash", "w")
fichier.write("0")
fichier.close()
##Lancement du daemon d'écoute
bureau = wnck.screen_get_default()
bureau.connect('active-workspace-changed', changement_de_bureau)
gtk.main()
la il est fait pour voyager, il vas donc lancer un script bash a chaque changement de bureau, chaque script change le fond d’écran. un petit exemple.
wall1
#!/bin/bash
# License GPL
# by rodofr Live Voyager
# Display the action selector
if [[ ! $(wmctrl -d | grep '*' | cut -d " " -f1) -eq 0 ]]; then
echo "1" > ~/.scripts/Wall/changement_dash
wmctrl -s0 &
fi
xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "/usr/share/xfce4/backdrops/xubuntu-quantal.png"
if [ ! -z "$1" ];then
xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "$1"
~/.scripts/Wall/Voyager_Wall 0 1 "$1"
fi
exit 0
Hors ligne
#36 Le 08/04/2013, à 19:39
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
tu te déconnectes comment ? hibernation, suspend, shutdown ou autre?
je sais qu'il y a un script qui ferme les ports usb pour permettre la veille dans la doc on pourrait inclure un killall conky pour ton problème
ou mettre le killall conky avant de les lancer dans un script bash, appelé au démarrage
Hors ligne
#37 Le 08/04/2013, à 20:45
- chepioq
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Bonjour à tous,
J'ai un petit problème avec mon conky horloge bois.
J'allume mon ordi, mon conky se lance nickel. Je vérifie les processus en cours. conky X 1
Je me déconecte et me reconnecte ..............................................les processus en cours. conky X 2
Et ainsi de suite ...............................................................................................les processus en cours. conky X 3
Et à force, mon cpu à 100 %
Galère.
Une idée ?
Tu utilises gnome ou kde ?
Pour kde, il faut lui notifier de démarrer avec une session vide (Configuration du système ==> Démarrage et arrêt ==> Gestion de session ==> cocher la case "Démarrer avec une session vide"
Pour gnome je ne sais pas...
Tout est dans tout et réciproquement....
Hors ligne
#38 Le 08/04/2013, à 21:35
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
voici le code, du python, d'ailleurs le code que tu propose y ressemble beaucoup
bureau.py
#! /usr/bin/python # -*- coding: utf-8 -*- import wnck import gtk import os ##Fonction qui modifie les fonds d'écrans au changement def changement_de_bureau(screen, previous): homedir = os.path.expanduser('~') ## on récupère le bureau actif actif = screen.get_active_workspace() ## on récupère son index index = screen.get_workspace_index(actif) fichier = open(homedir+"/.scripts/Wall/changement_dash", "r") info = fichier.readline() fichier.close() if info == "0": if index == 0: os.system("~/.scripts/Wall/wall1") elif index == 1: os.system("~/.scripts/Wall/wall2") elif index == 2: os.system("~/.scripts/Wall/wall3") elif index == 3: os.system("~/.scripts/Wall/wall4") fichier = open(homedir+"/.scripts/Wall/changement_dash", "w") fichier.write("0") fichier.close() ##Lancement du daemon d'écoute bureau = wnck.screen_get_default() bureau.connect('active-workspace-changed', changement_de_bureau) gtk.main()
la il est fait pour voyager, il vas donc lancer un script bash a chaque changement de bureau, chaque script change le fond d’écran. un petit exemple.
wall1
#!/bin/bash # License GPL # by rodofr Live Voyager # Display the action selector if [[ ! $(wmctrl -d | grep '*' | cut -d " " -f1) -eq 0 ]]; then echo "1" > ~/.scripts/Wall/changement_dash wmctrl -s0 & fi xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "/usr/share/xfce4/backdrops/xubuntu-quantal.png" if [ ! -z "$1" ];then xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "$1" ~/.scripts/Wall/Voyager_Wall 0 1 "$1" fi exit 0
Ok Merci Didier-T,
Là ton script fonctionne avec voyager, je suis aussi sur cette distribution mais je n'utilise pas xfce mais openbox...
Il faut que je remplace ça :
xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "/usr/share/xfce4/backdrops/xubuntu-quantal.png"
if [ ! -z "$1" ];then
xfconf-query -c xfce4-desktop -p "/backdrop/screen0/monitor0/image-path" -s "$1"
~/.scripts/Wall/Voyager_Wall 0 1 "$1"
avec des commandes pour feh et openbox ?
Cela fonctionnera t-il avec le script fond ecran de jpdipsy ?
merci...
Hors ligne
#39 Le 09/04/2013, à 04:51
- chepioq
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@chepioq
Bonsoir,
Alors là, ... mais alors là, je dis chapeau bas . Tu viens non seulement de régler mon problème !!! Mais en plus un autre de taille. Mes icônes de ma boite à miniatures arrivaient les uns après les autres, le son d'ouverture de session légerement en retard, se suivait si impatience avant ce son d'ouverture, d'avoir le malheur de vouloir ex faire un clic sur le menu de lancement ou autre d'un fisage momentané.
Là, ils arrivent instantanément, son y compris.
C'est une astuce à épingler. Il me semble n'avoir jamais vu cette solution ......Encore merci
Ce n'est pas une astuce propre à conky, mais à linux en général.
Si tu ne démarres pas avec une session vide, tu démarres donc avec la dernière session sauvegardée que tu as quitté, par exemple pour conky :
1°) tu mets conky en lancement automatique
2eme lancement : tu as le premier conky (de la session sauvegardée) plus celui qui est lancé automatiquement = 2 conky
3eme lancement : les deux conky sauvegardés plus celui lancé au démarrage = 3 conky
.........................................................
et ainsi de suite, tu te retrouves vite avec des dizaines de conky lancés, et avec un cpu à 100%.
Dernière modification par chepioq (Le 09/04/2013, à 04:53)
Tout est dans tout et réciproquement....
Hors ligne
#40 Le 09/04/2013, à 06:00
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
en effet, il faut modifier le script de modification de fond en y mettant les commande pour ton environnement, et il me semble que le script de jpdipsy vérifie les changement de fond, mais le mieux est de lui demander.
@ golgot200,
dans le cas de ton conky cette fonction ne sert a rien, car elle est tirée de cairo_clock.lua, en fait ce que tu as fait dans le meilleur des cas affiche deux fois le fond d'horloge (une fois avec cairo_clock.lua, puis avec image.lua) et dans le pire des cas fait clignoter les aiguilles de ton horloge.
l’intérêt du script image.lua est de rendre possible la gestion de la vraie transparence avec tout type de conky.
Hors ligne
#41 Le 10/04/2013, à 11:54
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@Didier-T
Salut;
J'ai essayé tes scripts pour changements de bureaux mais je n'ai pas du savoir la bonne syntaxe:
wall1:
#!/bin/bash
# License GPL
# by rodofr Live Voyager
# Display the action selector
if [[ ! $(wmctrl -d | grep '*' | cut -d " " -f1) -eq 0 ]]; then
echo "1" > ~/.scripts/Wall/changement_dash
wmctrl -s0 &
fi
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg &
if [ ! -z "$1" ];then
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg & "$1"
~/.scripts/Wall/Voyager_Wall 0 1 "$1"
fi
exit 0
erreur:
Traceback (most recent call last):
File "/home/climatix/.scripts/xdesk.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/changement_dash", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/changement_dash'
Merci
Hors ligne
#42 Le 10/04/2013, à 13:23
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Que faut-il mettre dans :
fichier = open(homedir+"/.scripts/Wall/changement_dash", "r")
Changement_dash est un fichier texte avec le chemin des images ?
Hors ligne
#43 Le 10/04/2013, à 15:56
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
la commande pour changer l'image de fond sur ton environnement c'est quoi ?
Hors ligne
#44 Le 10/04/2013, à 16:24
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
la commande pour changer l'image de fond sur ton environnement c'est quoi ?
Salut;
J'ai mis ça dans le script wall1:
#!/bin/bash
# License GPL
# by rodofr Live Voyager
# Display the action selector
if [[ ! $(wmctrl -d | grep '*' | cut -d " " -f1) -eq 0 ]]; then
echo "1" > ~/.scripts/Wall/changement_dash
wmctrl -s0 &
fi
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg &
if [ ! -z "$1" ];then
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg & "$1"
~/.scripts/Wall/Voyager_Wall 0 1 "$1"
fi
exit 0
Donc avec cette commande :
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg &
Avec ou sans le & ?
Hors ligne
#45 Le 10/04/2013, à 20:30
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
tient voici une version modifier du script bureau.py
#! /usr/bin/python
# -*- coding: utf-8 -*-
import wnck
import gtk
import os
##Fonction qui modifie les fonds d'écrans au changement
def changement_de_bureau(screen, previous):
homedir = os.path.expanduser('~')
## on récupère le bureau actif
actif = screen.get_active_workspace()
## on récupère son index
index = screen.get_workspace_index(actif)
fichier = open(homedir+"/.scripts/Wall/fond", "r")
info = fichier.readline()
fichier.close()
os.system(info[0])
##Lancement du daemon d'écoute
bureau = wnck.screen_get_default()
bureau.connect('active-workspace-changed', changement_de_bureau)
gtk.main()
dans le fichier fond tu colle la ligne de commande complète pour le changement de fond
par exemple:
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos1.jpg
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos2.jpg
feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos3.jpg
bureau 0 = ~/Images/fondsdebureaux/rosared_cosmos.jpg
bureau 1 = ~/Images/fondsdebureaux/rosared_cosmos1.jpg
etc..
n'étant pas sous openbox, je ne peut tester, donc si il y a un soucis n’hésite pas
Hors ligne
#46 Le 10/04/2013, à 21:05
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
Merci Didier-T
Je testerais demain; donc plus de scripts bash pour chaque image ?
Quelle est la différence avec le premier script python que j'avais ?
Hors ligne
#47 Le 11/04/2013, à 06:36
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
il n'y a pratiquement pas de différence, avec ton ancien script il faillais modifier le script si changement d’environnement, et pour modifier la liste de fond d'écran tu devais redémarrer le script, ou l'ordinateur.
avec le mien tu n'as qu'un fichier a modifier, et toute modification de fond d'écran est immédiatement prise en charge (et encore sa peut être amélioré avec un passage d'argument au script pour lui dire ou chercher les infos)
Hors ligne
#48 Le 11/04/2013, à 08:17
- ragamatrix
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
@ ragamatrix,
tient voici une version modifier du script bureau.py
#! /usr/bin/python # -*- coding: utf-8 -*- import wnck import gtk import os ##Fonction qui modifie les fonds d'écrans au changement def changement_de_bureau(screen, previous): homedir = os.path.expanduser('~') ## on récupère le bureau actif actif = screen.get_active_workspace() ## on récupère son index index = screen.get_workspace_index(actif) fichier = open(homedir+"/.scripts/Wall/fond", "r") info = fichier.readline() fichier.close() os.system(info[0]) ##Lancement du daemon d'écoute bureau = wnck.screen_get_default() bureau.connect('active-workspace-changed', changement_de_bureau) gtk.main()
dans le fichier fond tu colle la ligne de commande complète pour le changement de fond
par exemple:feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos.jpg feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos1.jpg feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos2.jpg feh --bg-fill ~/Images/fondsdebureaux/rosared_cosmos3.jpg
bureau 0 = ~/Images/fondsdebureaux/rosared_cosmos.jpg
bureau 1 = ~/Images/fondsdebureaux/rosared_cosmos1.jpg
etc..n'étant pas sous openbox, je ne peut tester, donc si il y a un soucis n’hésite pas
Merci mais ce code ne fonctionne pas...
retour:
┌─( climatix ) - ( 3.2.0-40-generic ) - ( ~ )
└─> '/home/climatix/.scripts/bureau.py'
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
Traceback (most recent call last):
File "/home/climatix/.scripts/bureau.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/fond", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/fond'
Traceback (most recent call last):
File "/home/climatix/.scripts/bureau.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/fond", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/fond'
Traceback (most recent call last):
File "/home/climatix/.scripts/bureau.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/fond", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/fond'
Traceback (most recent call last):
File "/home/climatix/.scripts/bureau.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/fond", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/fond'
Traceback (most recent call last):
File "/home/climatix/.scripts/bureau.py", line 17, in changement_de_bureau
fichier = open(homedir+"/.scripts/Wall/fond", "r")
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/climatix/.scripts/Wall/fond'
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
(bureau.py:6390): Wnck-WARNING **: Unhandled action type _OB_WM_ACTION_UNDECORATE
Hors ligne
#49 Le 11/04/2013, à 10:09
- Didier-T
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
le fichier ~/.scripts/Wall/fond n’existe pas.
il y aura peut être d'autre soucis
Hors ligne
#50 Le 11/04/2013, à 10:11
- ljere
Re : [5] Conky : Postez vos conkyrc ou certaines parties intéressantes
didier j'ai un souci avec le conky pour le vpn, il fait grimper mon proc à 100%, peux tu jeter un œil please?
conky-vpn
background no
update_interval 1
cpu_avg_samples 2
net_avg_samples 2
temperature_unit celsius
double_buffer yes
no_buffers yes
text_buffer_size 2048
gap_x 10
gap_y 30
minimum_size 320 0
#maximum_width 190
own_window yes
own_window_type normal
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below
own_window_argb_visual yes
#own_window_argb_value
border_inner_margin 0
border_outer_margin 0
alignment tr
draw_shades no
draw_outline no
draw_borders no
draw_graph_borders no
override_utf8_locale yes
use_xft yes
xftfont 6x10:size=8
xftalpha 0.8
uppercase no
default_color 666666
color1 888888
color2 AAAAAA
color3 DDDDDD
color4 CC3333
lua_load ~/.conky/conky-perso/scripts/conky.lua
lua_draw_hook_pre main_box
lua_draw_hook_post main_rings
TEXT
${goto 65}${font 6x10:size=12,weight:bold}${color #F09000}$sysname ${font 6x10:size=7,weight:bold}${color}$kernel on $machine
${voffset 10}
${goto 60}${font 6x10:size=12,weight:bold}${color3}CPU
${goto 45}${font 6x10:size=7,weight:normal}${color2}core 1:${goto 90}${cpu cpu1}%
${goto 45}${threads} process
${voffset -95}
${goto 218}${font 6x10:size=12,weight:bold}${color3}MEM
${goto 205}${font 6x10:size=7,weight:normal}${color2}RAM ${goto 240}$mem
${goto 205}SWAP ${goto 240}$swap
${voffset 82}
${goto 210}${font 6x10:size=12,weight:bold}${color3}DISKS
${goto 205}${font 6x10:size=7,weight:normal}${color2}/media${goto 245}${fs_used /media/a2dca2ce-c919-4edc-8cf5-599b6575b9d6}
${goto 205}/${goto 245}${fs_used /}
${voffset -90}
${goto 5}${color3}TOP CPU
${goto 5}${color2}${top name 1}${goto 90}${top pid 1}${goto 125}${top cpu 1}%
${goto 5}${color2}${top name 2}${goto 90}${top pid 2}${goto 125}${top cpu 2}%
${goto 5}${color2}${top name 3}${goto 90}${top pid 3}${goto 125}${top cpu 3}%
${goto 5}${color3}TOP MEM
${goto 5}${color2}${top_mem name 1}${goto 90}${top_mem pid 1}${goto 125}${top_mem mem 1}%
${goto 5}${color2}${top_mem name 2}${goto 90}${top_mem pid 2}${goto 125}${top_mem mem 2}%
${goto 5}${color2}${top_mem name 3}${goto 90}${top_mem pid 3}${goto 125}${top_mem mem 3}%
${if_existing /proc/net/route eth0}
${voffset 0}
${goto 5}${font 6x10:size=12,weight:bold}${color3}NET
${goto 5}${color1}${font 6x10:size=7,weight:bold}eth0 ${addr eth0}
${goto 5}${color}${font 6x10:size=7,weight:normal}Down: ${downspeed eth0}
${goto 5}Up: ${upspeed eth0}
${goto 5}Total Down: ${totaldown eth0}
${goto 5}Total Up: ${totalup eth0}
${endif}
${if_existing /proc/net/route tun0}${goto 5}${color1}${font 6x10:size=7,weight:bold}VPN ${addr tun0}
${goto 5}${color}${font 6x10:size=7,weight:normal}Down: ${downspeed tun0}
${goto 5}Up: ${upspeed tun0}
${goto 5}Total Down: ${totaldown tun0}
${goto 5}Total Up: ${totalup tun0}
${endif}
${font 6x10:size=7,weight:normal}${color1}${execi 1800 grep personnes /tmp/fip_occupation |cut -d '<' -f2 | cut -d '"' -f2 | sed -e '/FR1/d' | sort -k1n}
${if_existing /proc/net/route tun0}${goto 5}${font 6x10:size=7,weight:bold}${color}open ports: ${tcp_portmon 1 65535 count}
${goto 5}${offset 10}URL${goto 270}PORT
${goto 5}${font 6x10:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rhost 0} ${goto 270} ${tcp_portmon 1 65535 rport 0}
${goto 5}${tcp_portmon 1 65535 rhost 1} ${goto 270} ${tcp_portmon 1 65535 rport 1}
${goto 5}${tcp_portmon 1 65535 rhost 2} ${goto 270} ${tcp_portmon 1 65535 rport 2}
${goto 5}${tcp_portmon 1 65535 rhost 3} ${goto 270} ${tcp_portmon 1 65535 rport 3}
${goto 5}${tcp_portmon 1 65535 rhost 4} ${goto 270} ${tcp_portmon 1 65535 rport 4}
${else}
${if_existing /proc/net/route eth0}${goto 5}${font 6x10:size=7,weight:bold}${color}open ports: ${tcp_portmon 1 65535 count}
${goto 5}${offset 10}URL${goto 270}PORT
${goto 5}${font 6x10:size=7,weight:normal}${color1}${tcp_portmon 1 65535 rhost 0} ${goto 270} ${tcp_portmon 1 65535 rport 0}
${goto 5}${tcp_portmon 1 65535 rhost 1} ${goto 270} ${tcp_portmon 1 65535 rport 1}
${goto 5}${tcp_portmon 1 65535 rhost 2} ${goto 270} ${tcp_portmon 1 65535 rport 2}
${goto 5}${tcp_portmon 1 65535 rhost 3} ${goto 270} ${tcp_portmon 1 65535 rport 3}
${goto 5}${tcp_portmon 1 65535 rhost 4} ${goto 270} ${tcp_portmon 1 65535 rport 4}
${endif}${endif}
conky.lua (c'est une adaptation de conky_8c.lua)
--[[ RINGS with SECTORS widget
v1.1 by wlourf (07 Jan. 2011)
edited by Caymus
this widget draws a ring with differents effects
http://u-scripts.blogspot.com/2010/08/rings-sectors-widgets.html
To call the script in a conky, use, before TEXT
lua_load /path/to/the/script/rings.lua
lua_draw_hook_pre main_rings
and add one line (blank or not) after TEXT
Parameters are :
3 parameters are mandatory
name - the name of the conky variable to display,
for example for {$cpu cpu0}, just write name="cpu"
arg - the argument of the above variable,
for example for {$cpu cpu0}, just write arg="cpu0"
arg can be a numerical value if name=""
max - the maximum value the above variable can reach,
for example for {$cpu cpu0}, just write max=100
Optional parameters:
xc,yc - coordinates of the center of the ring,
default = middle of the conky window
radius - external radius of the ring, in pixels,
default = quarter of the width of the conky window
thickness - thickness of the ring, in pixels, default = 10 pixels
start_angle - starting angle of the ring, in degrees, value can be negative,
default = 0 degree
end_angle - ending angle of the ring, in degrees,
value must be greater than start_angle, default = 360 degrees
sectors - number of sectors in the ring, default = 10
gap_sectors - gap between two sectors, in pixels, default = 1 pixel
cap - the way to close a sector, available values are
"p" for parallel , default value
"r" for radial (follow the radius)
inverse_arc - if set to true, arc will be anticlockwise, default=false
border_size - size of the border, in pixels, default = 0 pixel i.e. no border
fill_sector - if set to true, each sector will be completely filled,
default=false, this parameter is inoperate if sectors=1
background - if set to false, background will not be drawn, default=true
foreground - if set to false, foreground will not be drawn, default=true
Colours tables below are defined into braces :
{position in the gradient (0 to 1), colour in hexadecimal, alpha (0 to 1)}
example for a single colour table :
{{0,0xFFAA00,1}} position parameter doesn't matter
example for a two-colours table :
{{0,0xFFAA00,1},{1,0x00AA00,1}} or {{0.5,0xFFAA00,1},{1,0x00AA00,1}}
example for a three-colours table :
{{0,0xFFAA00,1},{0.5,0xFF0000,1},{1,0x00AA00,1}}
bg_colour1 - colour table for background,
default = {{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
fg_colour1 - colour table for foreground,
default = {{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
bd_colour1 - colour table for border,
default = {{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
Seconds tables for radials gradients :
bg_colour2 - second colour table for background, default = no second colour
fg_colour2 - second colour table for foreground, default = no second colour
bd_colour2 - second colour table for border, default = no second colour
draw_me - if set to false, text is not drawn (default = true or 1)
it can be used with a conky string, if the string returns 1, the text is drawn :
example : "${if_empty ${wireless_essid wlan0}}${else}1$endif",
v1.0 (08 Aug. 2010) original release
v1.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
text is parsed inside the function, not in the array of settings
-- This program is free software; you can redistribute it and/or modify
-- it under the terms of the GNU General Public License as published by
-- the Free Software Foundation version 3 (GPLv3)
--
-- This program is distributed in the hope that it will be useful,
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- GNU General Public License for more details.
--
-- You should have received a copy of the GNU General Public License
-- along with this program; if not, write to the Free Software
-- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
-- MA 02110-1301, USA.
]]
require 'cairo'
function conky_main_rings()
-- START PARAMETERS HERE
local rings_settings={
{
name="cpu",
arg="cpu1",
exist="",
max=100,
xc=80,
yc=100,
thickness=10,
radius=60,
start_angle=5,
end_angle=175,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="memperc",
arg="",
exist="",
max=100,
xc=240,
yc=100,
thickness=10,
radius=60,
start_angle=5,
end_angle=175,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="swapperc",
arg="",
exist="",
max=100,
xc=240,
yc=100,
thickness=10,
radius=60,
start_angle=185,
end_angle=355,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="fs_used_perc",
arg="/home",
exist="",
max=100,
xc=240,
yc=250,
thickness=10,
radius=60,
start_angle=5,
end_angle=175,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="fs_used_perc",
arg="/",
exist="",
max=100,
xc=240,
yc=250,
thickness=10,
radius=60,
start_angle=185,
end_angle=355,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="downspeedf",
arg="eth0",
exist="${if_existing /proc/net/route eth0}Ok${else}Nil${endif}",
max=100,
xc=270,
yc=375,
thickness=5,
radius=30,
start_angle=5,
end_angle=175,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="upspeedf",
arg="eth0",
exist="${if_existing /proc/net/route eth0}Ok${else}Nil${endif}",
max=100,
xc=270,
yc=375,
thickness=5,
radius=30,
start_angle=185,
end_angle=355,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="downspeedf",
arg="tun0",
exist="${if_existing /proc/net/route tun0}Ok${else}Nil${endif}",
max=100,
xc=270,
yc=450,
thickness=5,
radius=30,
start_angle=5,
end_angle=175,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
{
name="upspeedf",
arg="tun0",
exist="${if_existing /proc/net/route tun0}Ok${else}Nil${endif}",
max=100,
xc=270,
yc=450,
thickness=5,
radius=30,
start_angle=185,
end_angle=355,
sectors=20,
bg_colour1={{0,0xFFFFFF,0.1},{0.5,0xFFFFFF,0.4},{1,0xFFFFFF,0.1}},
fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1.0},{1,0x00FF00,0.1}},
fg_colour2={{0,0xFF0000,0.1},{0.5,0xFF0000,1.0},{1,0xFF0000,0.1}},
},
}
--END OF PARAMETERS HERE
--main function
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)
local cr=cairo_create(cs)
if tonumber(conky_parse('${updates}'))>3 then
for i in pairs(rings_settings) do
if rings_settings[i].exist==nil then rings_settings[i].exist="" end
if rings_settings[i].exist~="" then
if conky_parse(rings_settings[i].exist)=="Ok" then
draw_ring(cr,rings_settings[i])
end
else
draw_ring(cr,rings_settings[i])
end
end
end
cairo_destroy(cr)
end
function draw_ring(cr, t)
local function rgba_to_r_g_b_a(tcolour)
local colour,alpha=tcolour[2],tcolour[3]
return ((colour / 0x10000) % 0x100) / 255.,
((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
local function calc_delta(tcol1,tcol2)
--calculate deltas P R G B A to table_colour 1
for x = 1, #tcol1 do
tcol1[x].dA = 0
tcol1[x].dP = 0
tcol1[x].dR = 0
tcol1[x].dG = 0
tcol1[x].dB = 0
if tcol2~=nil and #tcol1 == #tcol2 then
local r1,g1,b1,a1 = rgba_to_r_g_b_a(tcol1[x])
local r2,g2,b2,a2 = rgba_to_r_g_b_a(tcol2[x])
tcol1[x].dP = (tcol2[x][1]-tcol1[x][1])/t.sectors
tcol1[x].dR = (r2-r1)/t.sectors
tcol1[x].dG = (g2-g1)/t.sectors
tcol1[x].dB = (b2-b1)/t.sectors
tcol1[x].dA = (a2-a1)/t.sectors
end
end
return tcol1
end
--check values
local function setup(t)
if t.name==nil and t.arg==nil then
print ("No input values ... use parameters 'name'" +
" with 'arg' or only parameter 'arg' ")
return
end
if t.max==nil then
print ("No maximum value defined, use 'max'")
print ("for name=" .. t.name)
print ("with arg=" .. t.arg)
return
end
if t.name==nil then t.name="" end
if t.arg==nil then t.arg="" end
if t.xc==nil then t.xc=conky_window.width/2 end
if t.yc==nil then t.yc=conky_window.height/2 end
if t.thickness ==nil then t.thickness = 10 end
if t.radius ==nil then t.radius =conky_window.width/4 end
if t.start_angle==nil then t.start_angle =0 end
if t.end_angle==nil then t.end_angle=360 end
if t.bg_colour1==nil then
t.bg_colour1={{0,0x00ffff,0.1},{0.5,0x00FFFF,0.5},{1,0x00FFFF,0.1}}
end
if t.fg_colour1==nil then
t.fg_colour1={{0,0x00FF00,0.1},{0.5,0x00FF00,1},{1,0x00FF00,0.1}}
end
if t.bd_colour1==nil then
t.bd_colour1={{0,0xFFFF00,0.5},{0.5,0xFFFF00,1},{1,0xFFFF00,0.5}}
end
if t.sectors==nil then t.sectors=10 end
if t.gap_sectors==nil then t.gap_sectors=1 end
if t.fill_sector==nil then t.fill_sector=false end
if t.sectors==1 then t.fill_sector=false end
if t.border_size==nil then t.border_size=0 end
if t.cap==nil then t.cap="p" end
--some checks
if t.thickness>t.radius then t.thickness=t.radius*0.1 end
t.int_radius = t.radius-t.thickness
--check colors tables
for i=1, #t.bg_colour1 do
if #t.bg_colour1[i]~=3 then t.bg_colour1[i]={1,0xFFFFFF,0.5} end
end
for i=1, #t.fg_colour1 do
if #t.fg_colour1[i]~=3 then t.fg_colour1[i]={1,0xFF0000,1} end
end
for i=1, #t.bd_colour1 do
if #t.bd_colour1[i]~=3 then t.bd_colour1[i]={1,0xFFFF00,1} end
end
if t.bg_colour2~=nil then
for i=1, #t.bg_colour2 do
if #t.bg_colour2[i]~=3 then t.bg_colour2[i]={1,0xFFFFFF,0.5} end
end
end
if t.fg_colour2~=nil then
for i=1, #t.fg_colour2 do
if #t.fg_colour2[i]~=3 then t.fg_colour2[i]={1,0xFF0000,1} end
end
end
if t.bd_colour2~=nil then
for i=1, #t.bd_colour2 do
if #t.bd_colour2[i]~=3 then t.bd_colour2[i]={1,0xFFFF00,1} end
end
end
if t.start_angle>=t.end_angle then
local tmp_angle=t.end_angle
t.end_angle= t.start_angle
t.start_angle = tmp_angle
-- print ("inversed angles")
if t.end_angle-t.start_angle>360 and t.start_angle>0 then
t.end_angle=360+t.start_angle
print ("reduce angles")
end
if t.end_angle+t.start_angle>360 and t.start_angle<=0 then
t.end_angle=360+t.start_angle
print ("reduce angles")
end
if t.int_radius<0 then t.int_radius =0 end
if t.int_radius>t.radius then
local tmp_radius=t.radius
t.radius=t.int_radius
t.int_radius=tmp_radius
print ("inversed radius")
end
if t.int_radius==t.radius then
t.int_radius=0
print ("int radius set to 0")
end
end
t.fg_colour1 = calc_delta(t.fg_colour1,t.fg_colour2)
t.bg_colour1 = calc_delta(t.bg_colour1,t.bg_colour2)
t.bd_colour1 = calc_delta(t.bd_colour1,t.bd_colour2)
end
if t.draw_me == true then t.draw_me = nil end
if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
--initialize table
setup(t)
--initialize cairo context
cairo_save(cr)
cairo_translate(cr,t.xc,t.yc)
cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND)
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND)
--get value
local value = 0
if t.name ~="" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
else
value = tonumber(t.arg)
end
if value==nil then value =0 end
--initialize sectors
--angle of a sector :
local angleA = ((t.end_angle-t.start_angle)/t.sectors)*math.pi/180
--value of a sector :
local valueA = t.max/t.sectors
--first angle of a sector :
local lastAngle = t.start_angle*math.pi/180
local function draw_sector(type_arc,angle0,angle,valpc, idx)
--this function draws a portion of arc
--type of arc, angle0 = strating angle, angle= angle of sector,
--valpc = percentage inside the sector, idx = sctor number #
local tcolor
if type_arc=="bg" then --background
if valpc==1 then return end
tcolor=t.bg_colour1
elseif type_arc=="fg" then --foreground
if valpc==0 then return end
tcolor=t.fg_colour1
elseif type_arc=="bd" then --border
tcolor=t.bd_colour1
end
--angles equivalents to gap_sector
local ext_delta=math.atan(t.gap_sectors/(2*t.radius))
local int_delta=math.atan(t.gap_sectors/(2*t.int_radius))
--angles of arcs
local ext_angle=(angle-ext_delta*2)*valpc
local int_angle=(angle-int_delta*2)*valpc
--define colours to use for this sector
if #tcolor==1 then
--plain color
local vR,vG,vB,vA = rgba_to_r_g_b_a(tcolor[1])
cairo_set_source_rgba(cr,vR+tcolor[1].dR*idx,
vG+tcolor[1].dG*idx,
vB+tcolor[1].dB*idx,
vA+tcolor[1].dA*idx )
else
--radient color
local pat=cairo_pattern_create_radial(0,0,t.int_radius,0,0,t.radius)
for i=1, #tcolor do
local vP,vR,vG,vB,vA = tcolor[i][1], rgba_to_r_g_b_a(tcolor[i])
cairo_pattern_add_color_stop_rgba (pat,
vP+tcolor[i].dP*idx,
vR+tcolor[i].dR*idx,
vG+tcolor[i].dG*idx,
vB+tcolor[i].dB*idx,
vA+tcolor[i].dA*idx )
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
end
--start drawing
cairo_save(cr)
--x axis is parrallel to start of sector
cairo_rotate(cr,angle0-math.pi/2)
local ri,re = t.int_radius ,t.radius
--point A
local angle_a
if t.cap == "p" then
angle_a = int_delta
if t.inverse_arc and type_arc ~="bg" then
angle_a = angle-int_angle-int_delta
end
if not(t.inverse_arc) and type_arc =="bg" then
angle_a = int_delta+int_angle
end
else --t.cap=="r"
angle_a = ext_delta
if t.inverse_arc and type_arc~="bg" then
angle_a = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_a = ext_delta+ext_angle
end
end
local ax,ay = ri*math.cos(angle_a),ri*math.sin(angle_a)
--point B
local angle_b = ext_delta
if t.cap == "p" then
if t.inverse_arc and type_arc ~="bg" then
angle_b = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_b = ext_delta+ext_angle
end
else
if t.inverse_arc and type_arc ~="bg" then
angle_b = angle-ext_angle-ext_delta
end
if not(t.inverse_arc) and type_arc=="bg" then
angle_b = ext_delta+ext_angle
end
end
local bx,by = re*math.cos(angle_b),re*math.sin(angle_b)
-- EXTERNAL ARC B --> C
local b0,b1
if t.inverse_arc then
if type_arc=="bg" then
b0,b1= ext_delta, angle-ext_delta-ext_angle
else
b0,b1= angle-ext_angle-ext_delta, angle-ext_delta
end
else
if type_arc=="bg" then
b0,b1= ext_delta+ext_angle, angle-ext_delta
else
b0,b1= ext_delta, ext_angle+ext_delta
end
end
---POINT D
local angle_c, angle_d
if t.cap == "p" then
angle_d = angle-int_delta
if t.inverse_arc and type_arc=="bg" then
angle_d = angle-int_delta-int_angle
end
if not(t.inverse_arc) and type_arc~="bg" then
angle_d=int_delta+int_angle
end
else
angle_d = angle-ext_delta
if t.inverse_arc and type_arc=="bg" then
angle_d =angle-ext_delta-ext_angle
end
if not(t.inverse_arc) and type_arc~="bg" then
angle_d = ext_angle+ext_delta
end
end
local dx,dy = ri*math.cos(angle_d),ri*math.sin(angle_d)
-- INTERNAL ARC D --> A
local d0,d1
if t.cap=="p" then
if t.inverse_arc then
if type_arc=="bg" then
d0,d1= angle-int_delta-int_angle,int_delta
else
d0,d1= angle-int_delta, angle- int_angle-int_delta
end
else
if type_arc=="bg" then
d0,d1= angle-int_delta, int_delta+int_angle
else
d0,d1= int_delta+int_angle, int_delta
end
end
else
if t.inverse_arc then
if type_arc=="bg" then
d0,d1= angle-ext_delta-ext_angle,ext_delta
else
d0,d1= angle-ext_delta, angle- ext_angle-ext_delta
end
else
if type_arc=="bg" then
d0,d1= angle-ext_delta,ext_delta+ext_angle
else
d0,d1= ext_angle+ext_delta, ext_delta
end
end
end
--draw sector
cairo_move_to(cr,ax,ay)
cairo_line_to(cr,bx,by)
cairo_arc(cr,0,0,re,b0,b1)
cairo_line_to(cr,dx,dy)
cairo_arc_negative(cr,0,0,ri,d0,d1)
cairo_close_path (cr);
--stroke or fill sector
if type_arc=="bd" then
cairo_set_line_width(cr,t.border_size)
cairo_stroke(cr)
else
cairo_fill(cr)
end
cairo_restore(cr)
end
--draw sectors
local n0,n1,n2 = 1,t.sectors,1
if t.inverse_arc then n0,n1,n2 = t.sectors,1,-1 end
local index = 0
for i = n0,n1,n2 do
index = index +1
local valueZ=1
local cstA, cstB = (i-1),i
if t.inverse_arc then cstA,cstB = (t.sectors-i), (t.sectors-i+1) end
if value>valueA *cstA and value<valueA*cstB then
if not t.fill_sector then
valueZ = (value-valueA*cstA)/valueA
end
else
if value<valueA*cstB then valueZ=0 end
end
local start_angle= lastAngle+(i-1)*angleA
if t.foreground ~= false then
draw_sector("fg",start_angle,angleA,valueZ, index)
end
if t.background ~= false then
draw_sector("bg",start_angle,angleA,valueZ, i)
end
if t.border_size>0 then draw_sector("bd",start_angle,angleA,1, i) end
end
cairo_restore(cr)
end
--[[END OF RING-SECTORS WIDGET]]
require 'cairo'
function conky_main_box()
if conky_window==nil then return end
---------------------- PARAMETERS BEGIN HERE
local boxes_settings={
--FIRST COLUMN
--default colour and corner
{x=0, y=0, w=320, h=700,
exist="${if_existing /proc/net/route eth0}${if_existing /proc/net/route tun0}Ok${else}Nil${endif}${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {0,0,0,700},
corners={ {"circle",20}} },
{x=0, y=0, w=320, h=600,
exist="${if_existing /proc/net/route eth0}${if_existing /proc/net/route tun0}Nil${else}Ok${endif}${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {0,0,0,600},
corners={ {"circle",20}} },
{x=0, y=0, w=320, h=600,
exist="${if_existing /proc/net/route tun0}${if_existing /proc/net/route eth0}Nil${else}Ok${endif}${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {0,0,0,600},
corners={ {"circle",20}} },
{x=0, y=0, w=320, h=350,
exist="${if_existing /proc/net/route tun0}Nil${else}${if_existing /proc/net/route eth0}Nil${else}Ok${endif}${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {0,0,0,350},
corners={ {"circle",20}} },
{x=10, y=30, w=140, h=140,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {140,140,10,10} ,
corners={ {"circle",70} }, },
{x=20, y=40, w=120, h=120,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {20,20,120,120} ,
corners={ {"circle",60} }, },
{x=170, y=30, w=140, h=140,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {140,140,10,10} ,
corners={ {"circle",70} }, },
{x=180, y=40, w=120, h=120,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {20,20,120,120} ,
corners={ {"circle",60} }, },
{x=170, y=180, w=140, h=140,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {140,140,10,10} ,
corners={ {"circle",70} }, },
{x=180, y=190, w=120, h=120,
exist="",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {20,20,120,120} ,
corners={ {"circle",60} }, },
{x=235, y=339, w=70, h=70,
exist="${if_existing /proc/net/route eth0}Ok${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {70,70,10,10} ,
corners={ {"circle",35} }, },
{x=240, y=345, w=60, h=60,
exist="${if_existing /proc/net/route eth0}Ok${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {20,20,60,60} ,
corners={ {"circle",30} }, },
{x=235, y=414, w=70, h=70,
exist="${if_existing /proc/net/route tun0}Ok${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {70,70,10,10} ,
corners={ {"circle",35} }, },
{x=240, y=420, w=60, h=60,
exist="${if_existing /proc/net/route tun0}Ok${else}Nil${endif}",
colour={{0,0x858585,0.5}, {1,0x000000,0.5}}, linear_gradient= {20,20,60,60} ,
corners={ {"circle",30} }, },
}
---------------------------- PARAMETERS END HERE
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
local cr=cairo_create(cs)
if tonumber(conky_parse("$updates"))<5 then return end
for i in pairs(boxes_settings) do
if boxes_settings[i].exist==nil then boxes_settings[i].exist="" end
if boxes_settings[i].exist~="" then
if conky_parse(boxes_settings[i].exist)=="Ok" then
draw_box(cr,boxes_settings[i])
end
else
draw_box (cr,boxes_settings[i])
end
end
cairo_destroy(cr)
cairo_surface_destroy(cs)
end
function draw_box(cr,t)
if t.draw_me == true then t.draw_me = nil end
if t.draw_me ~= nil and conky_parse(tostring(t.draw_me)) ~= "1" then return end
local table_corners={"circle","curve","line"}
local t_operators={
clear = CAIRO_OPERATOR_CLEAR,
source = CAIRO_OPERATOR_SOURCE,
over = CAIRO_OPERATOR_OVER,
["in"] = CAIRO_OPERATOR_IN,
out = CAIRO_OPERATOR_OUT,
atop = CAIRO_OPERATOR_ATOP,
dest = CAIRO_OPERATOR_DEST,
dest_over = CAIRO_OPERATOR_DEST_OVER,
dest_in = CAIRO_OPERATOR_DEST_IN,
dest_out = CAIRO_OPERATOR_DEST_OUT,
dest_atop = CAIRO_OPERATOR_DEST_ATOP,
xor = CAIRO_OPERATOR_XOR,
add = CAIRO_OPERATOR_ADD,
saturate = CAIRO_OPERATOR_SATURATE,
}
function rgba_to_r_g_b_a(tc)
--tc={position,colour,alpha}
local colour = tc[2]
local alpha = tc[3]
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function table.copy(t)
local t2 = {}
for k,v in pairs(t) do
t2[k] = {v[1],v[2]}
end
return t2
end
function draw_corner(num,t)
local shape=t[1]
local radius=t[2]
local x,y = t[3],t[4]
if shape=="line" then
if num == 1 then cairo_line_to(cr,radius,0)
elseif num == 2 then cairo_line_to(cr,x,radius)
elseif num == 3 then cairo_line_to(cr,x-radius,y)
elseif num == 4 then cairo_line_to(cr,0,y-radius)
end
end
if shape=="circle" then
local PI = math.pi
if num == 1 then cairo_arc(cr,radius,radius,radius,-PI,-PI/2)
elseif num == 2 then cairo_arc(cr,x-radius,y+radius,radius,-PI/2,0)
elseif num == 3 then cairo_arc(cr,x-radius,y-radius,radius,0,PI/2)
elseif num == 4 then cairo_arc(cr,radius,y-radius,radius,PI/2,-PI)
end
end
if shape=="curve" then
if num == 1 then cairo_curve_to(cr,0,radius ,0,0 ,radius,0)
elseif num == 2 then cairo_curve_to(cr,x-radius,0, x,y, x,radius)
elseif num == 3 then cairo_curve_to(cr,x,y-radius, x,y, x-radius,y)
elseif num == 4 then cairo_curve_to(cr,radius,y, x,y, 0,y-radius)
end
end
end
--check values and set default values
if t.x == nil then t.x = 0 end
if t.y == nil then t.y = 0 end
if t.w == nil then t.w = conky_window.width end
if t.h == nil then t.h = conky_window.height end
if t.radius == nil then t.radius = 0 end
if t.border == nil then t.border = 0 end
if t.colour==nil then t.colour={{1,0xFFFFFF,0.5}} end
if t.linear_gradient ~= nil then
if #t.linear_gradient ~= 4 then
t.linear_gradient = {t.x,t.y,t.width,t.height}
end
end
if t.angle==nil then t.angle = 0 end
if t.skew_x == nil then t.skew_x=0 end
if t.skew_y == nil then t.skew_y=0 end
if t.scale_x==nil then t.scale_x=1 end
if t.scale_y==nil then t.scale_y=1 end
if t.rot_x == nil then t.rot_x=0 end
if t.rot_y == nil then t.rot_y=0 end
if t.operator == nil then t.operator = "over" end
if (t_operators[t.operator]) == nil then
print ("wrong operator :",t.operator)
t.operator = "over"
end
if t.radial_gradient ~= nil then
if #t.radial_gradient ~= 6 then
t.radial_gradient = {t.x,t.y,0, t.x,t.y, t.width}
end
end
for i=1, #t.colour do
if #t.colour[i]~=3 then
print ("error in color table")
t.colour[i]={1,0xFFFFFF,1}
end
end
if t.corners == nil then t.corners={ {"line",0} } end
local t_corners = {}
local t_corners = table.copy(t.corners)
--don't use t_corners=t.corners otherwise t.corners is altered
--complete the t_corners table if needed
for i=#t_corners+1,4 do
t_corners[i]=t_corners[#t_corners]
local flag=false
for j,v in pairs(table_corners) do flag=flag or (t_corners[i][1]==v) end
if not flag then print ("error in corners table :",t_corners[i][1]);t_corners[i][1]="curve" end
end
--this way :
-- t_corners[1][4]=x
-- t_corners[2][3]=y
--doesn't work
t_corners[1]={t_corners[1][1],t_corners[1][2],0,0}
t_corners[2]={t_corners[2][1],t_corners[2][2],t.w,0}
t_corners[3]={t_corners[3][1],t_corners[3][2],t.w,t.h}
t_corners[4]={t_corners[4][1],t_corners[4][2],0,t.h}
t.no_gradient = (t.linear_gradient == nil ) and (t.radial_gradient == nil )
cairo_save(cr)
cairo_translate(cr, t.x, t.y)
if t.rot_x~=0 or t.rot_y~=0 or t.angle~=0 then
cairo_translate(cr,t.rot_x,t.rot_y)
cairo_rotate(cr,t.angle*math.pi/180)
cairo_translate(cr,-t.rot_x,-t.rot_y)
end
if t.scale_x~=1 or t.scale_y~=1 or t.skew_x~=0 or t.skew_y~=0 then
local matrix0 = cairo_matrix_t:create()
tolua.takeownership(matrix0)
cairo_matrix_init (matrix0, t.scale_x,math.pi*t.skew_y/180 , math.pi*t.skew_x/180 ,t.scale_y,0,0)
cairo_transform(cr,matrix0)
end
local tc=t_corners
cairo_move_to(cr,tc[1][2],0)
cairo_line_to(cr,t.w-tc[2][2],0)
draw_corner(2,tc[2])
cairo_line_to(cr,t.w,t.h-tc[3][2])
draw_corner(3,tc[3])
cairo_line_to(cr,tc[4][2],t.h)
draw_corner(4,tc[4])
cairo_line_to(cr,0,tc[1][2])
draw_corner(1,tc[1])
if t.no_gradient then
cairo_set_source_rgba(cr,rgba_to_r_g_b_a(t.colour[1]))
else
if t.linear_gradient ~= nil then
pat = cairo_pattern_create_linear (t.linear_gradient[1],t.linear_gradient[2],t.linear_gradient[3],t.linear_gradient[4])
elseif t.radial_gradient ~= nil then
pat = cairo_pattern_create_radial (t.radial_gradient[1],t.radial_gradient[2],t.radial_gradient[3],
t.radial_gradient[4],t.radial_gradient[5],t.radial_gradient[6])
end
for i=1, #t.colour do
cairo_pattern_add_color_stop_rgba (pat, t.colour[i][1], rgba_to_r_g_b_a(t.colour[i]))
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
end
cairo_set_operator(cr,t_operators[t.operator])
if t.border>0 then
cairo_close_path(cr)
if t.dash ~= nil then cairo_set_dash(cr, t.dash, 1, 0.0) end
cairo_set_line_width(cr,t.border)
cairo_stroke(cr)
else
cairo_fill(cr)
end
cairo_restore(cr)
end
le fichier /tmp/fip_occupation est téléchargé par cron toute les heures
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne