SEARCH

Enter your search query in the box above ^, or use the forum search tool.

You are not logged in.

#4901 2013-03-03 23:34:09

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

Sure I was lost in paths to displays weather background of 4 citys... Knowledge in codes are missing.
Here's the python script:
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/YOU/.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()

You have to create a text file to call the pictures for each desktop; 1st line first desktop; 2nd one second desktop,  3rd....etc:
here's an example:

/home/YOU/Images/fondsdebureaux/spacecalm1920x1080.jpg
/home/YOU/Images/fondsdebureaux/WallByDesk/02.jpg
/home/YOU/Images/fondsdebureaux/WallByDesk/03.jpg
/home/YOU/Images/fondsdebureaux/WallByDesk/04.jpg

Last edited by ragamatrix (2013-03-03 23:36:40)

Offline

Be excellent to each other!

#4902 2013-03-03 23:54:37

Sector11
77345 ¡#
From: SR11 Cockpit
Registered: 2010-05-05
Posts: 9,902
Website

Re: The New Monster Conky Thread

ragamatrix wrote:

Sure I was lost in paths to displays weather background of 4 citys... Knowledge in codes are missing.
Here's the python script:
WallByDesk.py:

Nice - is there much of a delay when switching desktops?
Doesn't matter, I'll find out I will play with it.  big_smile

Offline

#4903 2013-03-04 00:35:13

Sector11
77345 ¡#
From: SR11 Cockpit
Registered: 2010-05-05
Posts: 9,902
Website

Re: The New Monster Conky Thread

Re: WallByDesk.py

I can't get it to work.

python-wnck & feh are installed.

/home/sector11/bin/WallByDesk.py

#! /usr/bin/python
# -*- coding: utf-8 -*-

##  You have to create a text file to call the pictures for each desktop;
##  1st line first desktop; 2nd one second desktop,  3rd....etc:
##
## /home/YOU/Images/fondsdebureaux/spacecalm1920x1080.jpg
## /home/YOU/Images/fondsdebureaux/WallByDesk/02.jpg
## /home/YOU/Images/fondsdebureaux/WallByDesk/03.jpg
## /home/YOU/Images/fondsdebureaux/WallByDesk/04.jpg

## 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/sector11/bin/wallbydesk"
##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()

/home/sector11/bin/wallbydesk

/media/5/Wallpapers/C&H.jpg
/media/5/Wallpapers/Dog_wet.jpg
/media/5/Wallpapers/Do_Not_Panic.jpeg
/media/5/Wallpapers/froggy_jump_1024.jpg

I execute it and my mouse pointer turns to a double + ... a few click later:
abwrgQyL.jpg

maybe "nitrogen" is interfering?

Offline

#4904 2013-03-04 07:47:29

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

@sector11
May-be the text file not there:

"/home/sector11/bin/wallbydesk"

But there in ~/.config ?
It's strange...

Offline

#4905 2013-03-04 08:09:08

Sector11
77345 ¡#
From: SR11 Cockpit
Registered: 2010-05-05
Posts: 9,902
Website

Re: The New Monster Conky Thread

ragamatrix wrote:

@sector11
May-be the text file not there:

"/home/sector11/bin/wallbydesk"

But there in ~/.config ?
It's strange...

put "wallbydesk" in ~/.config

changed:

##wallfiles = "/home/sector11/bin/wallbydesk"
wallfiles = "~/.config/wallbydesk"

and to:

##wallfiles = "/home/sector11/bin/wallbydesk"
##wallfiles = "~/.config/wallbydesk"
wallfiles = "/home/sector11/.config/wallbydesk"

and still get the same error:

 04 Mar 13 | 05:07:14 ~
         $ WallByDesk.py
/home/sector11/bin/WallByDesk.py: line 27: wallpainter: command not found
/home/sector11/bin/WallByDesk.py: line 31: wallfiles: command not found
/home/sector11/bin/WallByDesk.py: line 36: syntax error near unexpected token `('
/home/sector11/bin/WallByDesk.py: line 36: `file = open(wallfiles, "r")'
 
 04 Mar 13 | 05:07:32 ~
         $ 

Offline

#4906 2013-03-04 11:30:10

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

@Sector11
I made a test and it's working fine. I don't understand what's the problem.
x11 mouse theme ?

Offline

#4907 2013-03-04 11:54:43

Sector11
77345 ¡#
From: SR11 Cockpit
Registered: 2010-05-05
Posts: 9,902
Website

Re: The New Monster Conky Thread

ragamatrix wrote:

@Sector11
I made a test and it's working fine. I don't understand what's the problem.
x11 mouse theme ?

Mouse is an x mouse cursor: Crystal Grayscale.

How do you start WallByDesk.py?

In a terminal or from ~/.config/openbox/autostart.sh ?

Offline

#4908 2013-03-04 12:25:48

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

At the moment I'm testing differents stuffs, so I drop it or "slide" in the terminal or launch simply. Not in the autostart. Things I'd like to do before will take time because jpdipsy is on work on scripts (I can't do that) to display different citys weather on each desktop background...

/home/climatix/.config/openbox/WallByDesk.py

Last edited by ragamatrix (2013-03-04 12:26:54)

Offline

#4909 2013-03-04 12:33:18

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

Sector11 wrote:
ragamatrix wrote:

@Sector11
I made a test and it's working fine. I don't understand what's the problem.
x11 mouse theme ?

Mouse is an x mouse cursor: Crystal Grayscale.

How do you start WallByDesk.py?

In a terminal or from ~/.config/openbox/autostart.sh ?

The mouse cursor works on every windows (web browser; desktop and window manager) ?
I'm with openbox with the voyager 12.04 distro and it seems that my default cursor was in the xfce config... When I try another extra mouse theme(settings lxappearance) it doesn't work "properly"....
I've change theme and it works.

Last edited by ragamatrix (2013-03-04 14:49:25)

Offline

#4910 2013-03-04 15:54:27

PackRat
#! Die Hard
From: USA
Registered: 2011-03-03
Posts: 1,097

Re: The New Monster Conky Thread

@Sector11

the error message:

/home/sector11/bin/WallByDesk.py: line 27: wallpainter: command not found
/home/sector11/bin/WallByDesk.py: line 31: wallfiles: command not found

seems to indicate that you don't have feh installed - but you say that you do; as well as nitrogen.

The script works for me and I used hsetroot instead of feh (I don't have feh installed)

##Indiquez ici la commande servant à modifier le fond d'écran.
## wallpainter = "feh --bg-fill"
wallpainter = "hsetroot -center"
##Indiquez ici l'adresse du fichier contenant vos préférences
wallfiles = "/home/packrat/wallpaper/pytextfile"
##Ce fichier doit contenir l'adresse des images à utiliser, par ligne
## (première ligne => premier bureau et ainsi de suite)

Maybe try substituting the appropriate command for nitrogen. I started the script in a terminal:

WallByDesk.py

Edit - I added it to my startup script (fluxbox) and it works just fine as long as I run it before starting conky.

Last edited by PackRat (2013-03-04 16:02:02)


"It does not require many words to speak the truth." - Chief Joseph, Nez Perce tribe

Offline

#4911 2013-03-04 16:42:19

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

something like: "nitrogen --restore"

Offline

#4912 2013-03-04 18:13:57

PackRat
#! Die Hard
From: USA
Registered: 2011-03-03
Posts: 1,097

Re: The New Monster Conky Thread

ragamatrix wrote:

something like: "nitrogen --restore"

That restores the previous wallpaper set by nitrogen. It should be something like:

nitrogen --scale /wallpaper/mountains.jpg

I don't have it installed, so I can't check the man page.


"It does not require many words to speak the truth." - Chief Joseph, Nez Perce tribe

Offline

#4913 2013-03-05 20:43:30

sevensage
#! CrunchBanger
Registered: 2012-11-10
Posts: 134

Re: The New Monster Conky Thread

need a little help, I'm running wcs's battery script, problem I'm having is when starting my netbook or on reboot it suspends. I have substituted the pm-hibernate script with pm-suspend instead but can't figure why conky is running the suspend on each startup, any help would be appreciated.


dig +short txt crunchbang.wp.dg.cx

Offline

#4914 2013-03-06 10:01:30

wizard10000
#! Member
Registered: 2013-02-24
Posts: 80

Re: The New Monster Conky Thread

I added a battery monitor that only displays if the battery is less than fully charged and a wireless monitor that only shows up if you're connected to an AP.  Pretty basic stuff compared to some of the stuff here but I like it  smile

${if_match "${battery_short}" != "F"}battery:  ${battery_percent}%$alignr${battery_time}
$alignr${battery_bar 3,150}${endif}
${if_existing /proc/net/route wlan0}wireless bitrate:$alignr${wireless_bitrate wlan0}
$alignr${wireless_link_bar 3,150 wlan0}
link quality:$alignr${wireless_link_qual_perc wlan0}%${endif}

we see things not as they are, but as we are.
  -- anais nin

Offline

#4915 2013-03-06 19:42:38

ragamatrix
#! CrunchBanger
From: Horgen Switzerland
Registered: 2012-12-05
Posts: 215

Re: The New Monster Conky Thread

May be soon you should be inspired with these kind of script: video
What I'd like is to manage differents citys config on each background....
For instance it's one background on every desktop.--->screen
and traduce in English... It's interesting for the olds computers like mine.... Archeologic find  recovery... : (Intel(R) Pentium(R) 4 CPU 3.00GHz)
To be continued....
Bigger

Last edited by ragamatrix (2013-03-06 19:45:11)

Offline

#4916 2013-03-07 20:21:18

ansem_of_nexus
#! CrunchBanger
Registered: 2012-09-19
Posts: 199

Re: The New Monster Conky Thread

I wanted to make sure this didn't get missed just because it was in mrpeachy's "HOW TO : using lua scripts in conky"

Gordon wrote:

Hi mrpeachy,

I am trying to follow your howto and have come across a problem that I have no idea how to fix it or what it is. this is what I get when I run conky in terminal

gordon@crunchbang:~$ conky
WARNING: gnome-keyring:: couldn't connect to: /home/gordon/.cache/keyring-f9X7tR/pkcs11: No such file or directory
Conky: missing text block in configuration; exiting
***** Imlib2 Developer Warning ***** :
	This program is calling the Imlib call:

	imlib_context_free();

	With the parameter:

	context

	being NULL. Please fix your program.

and this is what I have in lua

-- this is a lua script for use in conky

require 'cairo'

function conky_main()  -- start of 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)
cr = cairo_create(cs)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then -- start of updates
-- ####################################
ptint ('hello world')
-- ####################################
end -- if updates
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr = nil
end  -- of main function

which is what I think you say is the minimum that you need. What have I got wrong please ?


You can find my work here

Make everything ok button

Offline

#4917 2013-03-08 00:44:14

zezhyrule
New Member
Registered: 2013-01-29
Posts: 9

Re: The New Monster Conky Thread

th_2013-03-07-152310_1366x768_scrot_zps30f77a1f.png

Config:

background yes
cpu_avg_samples 5
net_avg_samples 5
out_to_console no
own_window_transparent yes
own_window_argb_visual true
own_window_argb_value 0
own_window_type desktop
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
use_xft yes
xftfont Dina:size=8
xftalpha 0.8
update_interval 2
own_window yes
double_buffer yes
draw_shades no
draw_outline no
draw_borders no
stippled_borders no
border_width 1
default_color white
default_shade_color black
default_outline_color white
alignment top_middle
gap_x 0
gap_y 250
maximum_width 500
use_spacer yes
no_buffers yes
uppercase no
# stuff after 'TEXT' will be formatted on screen
TEXT
${color 1e90ff}               +                ${color 1e90ff}OS: ${color lightgrey}Arch Linux ${exec uname -m}
${color 1e90ff}               \#                ${color 1e90ff}Hostname: ${color lightgrey}$nodename
${color 1e90ff}              \#\#\#               ${color 1e90ff}Uptime: ${color lightgrey}$uptime
${color 1e90ff}             \#\#\#\#\#              ${color 1e90ff}Kernel: ${color lightgrey}$kernel
${color 1e90ff}             \#\#\#\#\#\#             ${color 1e90ff}Shell: ${color lightgrey}${exec echo $SHELL}
${color 1e90ff}            ; \#\#\#\#\#;            ${color 1e90ff}Packages: ${color lightgrey}${exec ls /var/lib/pacman/local/ | wc -l }
${color 1e90ff}           +\#\#.\#\#\#\#\#            ${color 1e90ff}${exec ~/.conky/wmorde.sh xxx}: ${color lightgrey}${exec ~/.conky/wmorde.sh}
${color 1e90ff}          +\#\#\#\#\#\#\#\#\#\#           ${color 1e90ff}CPU: ${color lightgrey}${exec cat /proc/cpuinfo | grep "model name" | head -n 1 | sed 's/^.*: //g' | sed 's/  //g' | sed 's/\@.*$//g'}
${color 1e90ff}         \#\#\#\#\#\#${color 4682b4}\#\#\#\#\#${color 1e90ff}\#\#;         ${color 1e90ff}CPU Usage: ${color lightgrey}${cpu}%
${color 1e90ff}        \#\#\#${color 4682b4}\#\#\#\#\#\#\#\#\#\#\#\#${color 1e90ff}+        ${color 1e90ff}RAM: ${color lightgrey}$mem / $memmax $membar
${color 1e90ff}       \#${color 4682b4}\#\#\#\#\#\#   \#\#\#\#\#\#\#        ${color 1e90ff}Home: ${color lightgrey}${fs_used /home} / ${fs_size /home} ${fs_bar 6 /home}
${color 4682b4}     .\#\#\#\#\#\#;     ;\#\#\#;`".      ${color 1e90ff}Root: ${color lightgrey}${fs_used /} / ${fs_size /} ${fs_bar 6 /}
${color 4682b4}    .\#\#\#\#\#\#\#;     ;\#\#\#\#\#.       
${color 4682b4}    \#\#\#\#\#\#\#\#\#.   .\#\#\#\#\#\#\#\#`     
${color 4682b4}   \#\#\#\#\#\#'           '\#\#\#\#\#\#    
${color 4682b4}  ;\#\#\#\#                 \#\#\#\#;   
${color 4682b4}  \#\#'                     '\#\#   
${color 4682b4} \#'                         `\#  

from this. inspired by archey, which I love~

Last edited by zezhyrule (2013-03-08 03:28:33)

Offline

#4918 2013-03-08 02:05:07

dkeg
#! Die Hard
From: Mid-Atlantic Grill
Registered: 2011-12-05
Posts: 716

Re: The New Monster Conky Thread

^What a great idea.....thanks for sharing!


grill it | the rocky path may just be the best path

Offline

#4919 2013-03-08 05:09:32

arclance
#! Die Hard
Registered: 2012-03-29
Posts: 861

Re: The New Monster Conky Thread

ansem_of_nexus wrote:

I wanted to make sure this didn't get missed just because it was in mrpeachy's "HOW TO : using lua scripts in conky"

Gordon wrote:

Hi mrpeachy,

I am trying to follow your howto and have come across a problem that I have no idea how to fix it or what it is. this is what I get when I run conky in terminal

which is what I think you say is the minimum that you need. What have I got wrong please ?

This

Conky: missing text block in configuration; exiting

would be caused by not having a

TEXT

after the settings at the top of your .conkyrc.
You have to have one even if it is empty when using Lua scripts.
The "Imlib2" error cannot be diagnosed with a broken .conkyrc and could be caused by it.

Offline

#4920 2013-03-08 08:50:48

ansem_of_nexus
#! CrunchBanger
Registered: 2012-09-19
Posts: 199

Re: The New Monster Conky Thread

So I have been working on a new lua and I ran into a interesting problem. The script runs fine, but there is a process that goes just mad and hold around 10% on my cpu (/usr/bin/x11/x -nolisten tcp -auth /var/run/slim.auth vt07). Htop says it is a root process and I don't see normally. Does anyone know what this is about?


You can find my work here

Make everything ok button

Offline

#4921 2013-03-08 10:59:10

dk75
#! CrunchBanger
Registered: 2012-06-14
Posts: 244

Re: The New Monster Conky Thread

You've upset XServer  wink
Post the code.


Debian Sid (Minted) x86_64/3.12-10, Conky 2.0_pre, Xorg 7.7/1.15.0, KDE 4.11.5, Intel X3100
Lenovo T61, HITACHI HTS722010K9SA00 100GB, WDC_WD5000BEVT 500GB
Linux user No.: 483055 | Conky Pitstop

Offline

#4922 2013-03-08 18:23:18

ansem_of_nexus
#! CrunchBanger
Registered: 2012-09-19
Posts: 199

Re: The New Monster Conky Thread

what is XServer / how is it connected to conky?

the lua I have been working on is a multi-conky set and uses my table lua
conky left:  640x450 bottom_left
conky center: 400x800 bottom_middle
conky right: 650x450 bottom_right
this is the main lua script

--this lua script for use in conky
require 'cairo'


function conky_interface_center()
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)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then
--################################
-- Strings
--################################
d_math=math.pi/180
cpu=tonumber(conky_parse("${cpu}"))
if cpu == nil then cpu=0 end
cpu1=tonumber(conky_parse("${cpu cpu1}"))
cpu2=tonumber(conky_parse("${cpu cpu2}"))
topname1=conky_parse("${top name 1}")
topcpu1=conky_parse("${top cpu 1}")
toppid1=conky_parse("${top pid 1}")
topmem1=conky_parse("${top mem 1}")
toptime1=conky_parse("${top time 1}")
topname2=conky_parse("${top name 2}")
topcpu2=conky_parse("${top cpu 2}")
toppid2=conky_parse("${top pid 2}")
topmem2=conky_parse("${top mem 2}")
toptime2=conky_parse("${top time 2}")
topname3=conky_parse("${top name 3}")
topcpu3=conky_parse("${top cpu 3}")
topname4=conky_parse("${top name 4}")
topcpu4=conky_parse("${top cpu 4}")
--################################
-- Main Body
--################################
--border
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,4,90,100,0,(90*d_math))
cairo_arc(cr,4,490,100,(270*d_math),0)
cairo_arc(cr,404,490,100,(180*d_math),(270*d_math))
cairo_arc(cr,404,90,100,(90*d_math),(180*d_math))
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.3,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
--cpu arc
transition_arc(
204,290,160,130,
135,405,
cpu1,100,
.2,.2,1,.2,
.3,.3,1,1,
.5,.5,1,
75,
1,.3,.3
)
transition_arc(
204,290,130,100,
135,405,
cpu2,100,
.2,.2,1,.2,
.3,.3,1,1,
.5,.5,1,
75,
1,.3,.3
)
--cpu info
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,204,290,75,0,(360*d_math))
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.2,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
for i=1,7 do
x={186,171,190,184,194,184,194}
y={240,260,280,305,320,340,355}
s={20,15,15,13,11,13,11}
t={"CPU","Average",""..cpu.."%","Cpu 1",""..cpu1.."%","Cpu 2",""..cpu2.."%"}
cairo_move_to(cr,x[i],y[i])
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_select_font_face (cr,"mono",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr,s[i])
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
--top list
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,204,290,100,(55*d_math),(125*d_math))
cairo_arc(cr,204,290,160,(127*d_math),(127*d_math))
cairo_line_to(cr,113,475)
cairo_line_to(cr,296,475)
cairo_arc(cr,204,290,160,(53*d_math),(53*d_math))
cairo_close_path(cr)
if i == 3 then
cairo_set_source_rgba(cr,.2,.2,.2,.75)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
for i=1,8 do
x={130,215,130,215,130,215,130,215}
y={405,405,425,425,445,445,465,465}
t={topname1,""..topcpu1.."%",topname2,""..topcpu2.."%",topname3,""..topcpu3.."%",topname4,""..topcpu4.."%"}
cairo_move_to(cr,x[i],y[i])
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_select_font_face (cr,"mono",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr,13)
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
--top 1
if cpu >= 50 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,100,510)
cairo_line_to(cr,70,550)
cairo_line_to(cr,70,590)
cairo_line_to(cr,100,630)
cairo_line_to(cr,310,630)
cairo_line_to(cr,340,590)
cairo_line_to(cr,340,550)
cairo_line_to(cr,310,510)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.2,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
cairo_set_line_width(cr,1)
cairo_arc(cr,90,570,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,230,570,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.1,.1,.1,1)
cairo_fill(cr)
cairo_arc(cr,90,570,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,(90+(((230-90)/100)*topcpu1)),570,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.2,.2,1,.5)
cairo_fill_preserve(cr)
cairo_set_source_rgba(cr,0,0,0,0)
cairo_stroke(cr)
for i=1,5 do
b2w=(1/5)*i
line=8-(i*2)
cairo_set_line_width(cr,line)
cairo_arc(cr,90,570,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,230,570,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,b2w,b2w,1,b2w)
cairo_stroke(cr)
end
x={110,250,245,100,100}
y={540,540,577,600,620}
s={17 ,13 ,20 ,15 ,15 }
t={topname1,toppid1,""..topcpu1.."%","Mem:"..topmem1.."%","Time up:"..toptime1..""}
for i=1,5 do
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_move_to(cr,x[i],y[i])
cairo_set_font_size (cr,s[i])
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
end
--top 2
if cpu >= 75 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,100,660)
cairo_line_to(cr,70,700)
cairo_line_to(cr,70,740)
cairo_line_to(cr,100,780)
cairo_line_to(cr,310,780)
cairo_line_to(cr,340,740)
cairo_line_to(cr,340,700)
cairo_line_to(cr,310,660)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.2,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
cairo_set_line_width(cr,1)
cairo_arc(cr,90,720,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,230,720,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.1,.1,.1,1)
cairo_fill(cr)
cairo_arc(cr,90,720,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,(90+(((230-90)/100)*topcpu1)),720,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.2,.2,1,.5)
cairo_fill_preserve(cr)
cairo_set_source_rgba(cr,0,0,0,0)
cairo_stroke(cr)
for i=1,5 do
b2w=(1/5)*i
line=8-(i*2)
cairo_set_line_width(cr,line)
cairo_arc(cr,90,720,10,(90*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,230,720,10,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,b2w,b2w,1,b2w)
cairo_stroke(cr)
end
x={110,250,245,100,100}
y={690,690,727,750,770}
s={17 ,13 ,20 ,15 ,15 }
t={topname2,toppid2,""..topcpu2.."%","Mem:"..topmem2.."%","Time up:"..toptime2..""}
for i=1,5 do
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_move_to(cr,x[i],y[i])
cairo_set_font_size (cr,s[i])
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
end
--################################
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end conky interface center
--################################
--################################
--################################
function conky_interface_left()
if conky_window == nil then return end
if conky_window == nil then interface_left=0 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)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then
--################################
-- Strings
--################################
d_math=math.pi/180
wireless_name=conky_parse("${wireless_essid wlan0}")
ip_wire=conky_parse("${addr}")
ip_wireless=conky_parse("${addr wlan0}")
down_wire=conky_parse("${downspeedf}")
down_wireless=conky_parse("${downspeedf wlan0}")
up_wire=conky_parse("${upspeedf}")
up_wireless=conky_parse("${upspeedf wlan0}")
signal_perc=tonumber(conky_parse("${wireless_link_qual_perc wlan0}"))
if signal_perc == nil then signal_perc=0 end
link_qual=tonumber(conky_parse("${wireless_link_qual wlan0}"))
link_qual_max=tonumber(conky_parse("${wireless_link_qual_max wlan0}"))
bitrate=conky_parse("${wireless_bitrate wlan0}")

--################################
-- Main Body
--################################
--border
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,550,630,600,(205*d_math),(270*d_math))
cairo_line_to(cr,650,105)
cairo_arc_negative(cr,650,455,200,(270*d_math),(180*d_math))
cairo_line_to(cr,50,455)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.3,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
--################################
-- Network
--################################
--no network
if ip_wireless == "No Address" and ip_wire == "No Address" then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
--left
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,110,325)
cairo_line_to(cr,60,400)
cairo_line_to(cr,160,400)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,0,0,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,110,350)
cairo_line_to(cr,110,380)
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,110,385)
cairo_line_to(cr,110,390)
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
--right
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,375,325)
cairo_line_to(cr,325,400)
cairo_line_to(cr,425,400)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,0,0,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,375,350)
cairo_line_to(cr,375,380)
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_move_to(cr,375,385)
cairo_line_to(cr,375,390)
cairo_set_source_rgba(cr,1,.25,.25,br_alpha)
cairo_stroke(cr)
end
cairo_set_source_rgba(cr,1,.2,.2,1)
cairo_select_font_face (cr,"mono",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
cairo_move_to(cr,167,370)
cairo_set_font_size (cr,25)
cairo_show_text(cr,"No Network")
cairo_stroke(cr)
end-- no network
--wire
if ip_wire ~= "No Address" then
--border
for i=1,5 do
br_alpha=((1/5)*(i))
br_line=10-(i*2)
cairo_set_line_width(cr,br_line)
cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND)
cairo_move_to(cr,130,428)
cairo_line_to(cr,355,428)
cairo_set_source_rgba(cr,.6,.6,1,br_alpha)
cairo_stroke(cr)
cairo_arc(cr,110,370,60,(30*(math.pi/180)),(330*(math.pi/180)))
cairo_arc(cr,375,370,60,(210*(math.pi/180)),(150*(math.pi/180)))
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.2,.4)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.6,.6,1,br_alpha)
cairo_stroke(cr)
end
cairo_set_line_cap(cr,CAIRO_LINE_CAP_BUTT)
cairo_set_line_join(cr,CAIRO_LINE_JOIN_MITER)
cairo_set_line_width(cr,1)
--down arrow
down_x=180
down_y=350
ie=10
for i=1,ie do
cairo_set_line_width(cr,1)
cairo_move_to(cr,((down_x-ie)+i),(down_y+i))
cairo_line_to(cr,down_x,(down_y+ie))
cairo_line_to(cr,((down_x+ie)-i),(down_y+i))
cairo_line_to(cr,down_x,((down_y+(ie*2))-i))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.3,.3,1,((1/ie)*i))
cairo_stroke(cr)
end
--up arrow
up_x=305
up_y=370
for i=1,ie do
cairo_move_to(cr,up_x,(up_y+i))
cairo_line_to(cr,((up_x-ie)+i),((up_y+(ie*2))-i))
cairo_line_to(cr,up_x,(up_y+ie))
cairo_line_to(cr,((up_x+ie)-i),((up_y+(ie*2))-i))
cairo_close_path(cr)
cairo_set_source_rgba(cr,0,1,0,((1/ie)*i))
cairo_stroke(cr)
end
--text
x={200,200,190}
y={365,390,420}
t={down_wire,up_wire,ip_wire}
for i=1,3 do
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_move_to(cr,x[i],y[i])
cairo_set_font_size (cr,15)
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
--down graph











limiter=0



if wired_down_table[1] >=1000 then wired_down_table_data1=1000 else wired_down_table_data1=wired_down_table[1] end
if wired_down_table[2] >=1000 then wired_down_table_data2=1000 else wired_down_table_data2=wired_down_table[2] end
if wired_down_table[3] >=1000 then wired_down_table_data3=1000 else wired_down_table_data3=wired_down_table[3] end
if wired_down_table[4] >=1000 then wired_down_table_data4=1000 else wired_down_table_data4=wired_down_table[4] end
if wired_down_table[5] >=1000 then wired_down_table_data5=1000 else wired_down_table_data5=wired_down_table[5] end
x={
(((30/100)*(wired_down_table_data1-limiter))*alternating_table[3]),
(((30/100)*(wired_down_table_data2-limiter))*alternating_table[2]),
(((30/100)*(wired_down_table_data3-limiter))*alternating_table[3]),
(((30/100)*(wired_down_table_data4-limiter))*alternating_table[2]),
(((30/100)*(wired_down_table_data5-limiter))*alternating_table[3])}
cairo_move_to(cr,110,315)
for i = 1,5 do
diff=425-315
interval=diff/6
cairo_set_line_width(cr,1)
cairo_line_to(cr,(110+x[i]),(315+(interval*i)))
end
cairo_line_to(cr,110,425)
cairo_set_source_rgba(cr,.4,.4,1,1)
cairo_stroke(cr)
--up graph

if wired_up_table[1] >=1000 then wired_up_table_data1=1000 else wired_up_table_data1=wired_up_table[1] end
if wired_up_table[2] >=1000 then wired_up_table_data2=1000 else wired_up_table_data2=wired_up_table[2] end
if wired_up_table[3] >=1000 then wired_up_table_data3=1000 else wired_up_table_data3=wired_up_table[3] end
if wired_up_table[4] >=1000 then wired_up_table_data4=1000 else wired_up_table_data4=wired_up_table[4] end
if wired_up_table[5] >=1000 then wired_up_table_data5=1000 else wired_up_table_data5=wired_up_table[5] end
x={
(((30/100)*(wired_up_table_data1-limiter))*alternating_table[3]),
(((30/100)*(wired_up_table_data2-limiter))*alternating_table[2]),
(((30/100)*(wired_up_table_data3-limiter))*alternating_table[3]),
(((30/100)*(wired_up_table_data4-limiter))*alternating_table[2]),
(((30/100)*(wired_up_table_data5-limiter))*alternating_table[3])}
cairo_move_to(cr,375,315)
for i = 1,5 do
diff=425-315
interval=diff/6
cairo_set_line_width(cr,1)
cairo_line_to(cr,(375+x[i]),(315+(interval*i)))
end
cairo_line_to(cr,375,425)
cairo_set_source_rgba(cr,.25,1,.25,1)
cairo_stroke(cr)
end--wired
--wireless
if ip_wireless ~= "No Address" and ip_wire == "No Address" then
--border
for i=1,5 do
br_alpha=((1/5)*(i))
br_line=10-(i*2)
cairo_set_line_width(cr,br_line)
cairo_set_line_cap(cr,CAIRO_LINE_CAP_ROUND)
cairo_set_line_join(cr,CAIRO_LINE_JOIN_ROUND)
cairo_arc_negative(cr,110,370,60,(360*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,345,370,60,(270*(math.pi/180)),(360*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.2,.2,.2,.1)
cairo_fill(cr)
cairo_arc(cr,115,370,60,(270*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,345,370,60,(270*(math.pi/180)),(358*(math.pi/180)))
cairo_set_source_rgba(cr,.6,.6,1,br_alpha)
cairo_stroke(cr)
cairo_arc(cr,110,370,60,(90*(math.pi/180)),(360*(math.pi/180)))
cairo_arc(cr,400,400,30,(270*(math.pi/180)),(90*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.2,.2,.2,.1)
cairo_fill_preserve(cr)
cairo_set_source_rgba(cr,.6,.6,1,br_alpha)
cairo_stroke(cr)

end
cairo_set_line_cap(cr,CAIRO_LINE_CAP_BUTT)
cairo_set_line_join(cr,CAIRO_LINE_JOIN_MITER)
cairo_set_line_width(cr,1)
--signal indicator
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,370,10,0,(360*d_math))
if i == 1 then if signal_perc > 0 then
cairo_set_source_rgba(cr,.25,.25,1,.75)
cairo_fill_preserve(cr)
else
cairo_set_source_rgba(cr,1,.3,.3,.75)
cairo_fill_preserve(cr)
end end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
if signal_perc >= 25 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,370,20,(110*d_math),(250*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_arc_negative(cr,110,370,20,(70*d_math),(290*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
end
if signal_perc >= 50 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,370,30,(110*d_math),(250*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_arc_negative(cr,110,370,30,(70*d_math),(290*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
end
if signal_perc >= 75 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,370,40,(110*d_math),(250*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_arc_negative(cr,110,370,40,(70*d_math),(290*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
end
if signal_perc >= 90 then
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,370,50,(110*d_math),(250*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
cairo_set_line_width(cr,br_line)
cairo_arc_negative(cr,110,370,50,(70*d_math),(290*d_math))
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
end
--down arrow
ie=10
down_x=350
down_y=375
for i=1,ie do
cairo_set_line_width(cr,1)
cairo_move_to(cr,((down_x-ie)+i),(down_y+i))
cairo_line_to(cr,down_x,(down_y+ie))
cairo_line_to(cr,((down_x+ie)-i),(down_y+i))
cairo_line_to(cr,down_x,((down_y+(ie*2))-i))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.3,.3,1,((1/ie)*i))
cairo_stroke(cr)
end
-- up arrow
up_x=350
up_y=405
for i=1,ie do
cairo_move_to(cr,up_x,(up_y+i))
cairo_line_to(cr,((up_x-ie)+i),((up_y+(ie*2))-i))
cairo_line_to(cr,up_x,(up_y+ie))
cairo_line_to(cr,((up_x+ie)-i),((up_y+(ie*2))-i))
cairo_close_path(cr)
cairo_set_source_rgba(cr,0,1,0,((1/ie)*i))
cairo_stroke(cr)
end
--text
if signal_perc < 100 then signal=""..signal_perc.."%" else signal=signal_perc end
x={180,180,360,360,98 ,160,175,181,210}
y={395,415,390,420,420,330,332,330,330}
s={15 ,15 ,11 ,11 ,13 ,13 ,20 ,13 ,13 }
t={wireless_name,ip_wireless,down_wireless,up_wireless,signal,link_qual,"/",link_qual_max,"Bandwidth: "..bitrate..""}
for i=1,9 do
cairo_set_source_rgba(cr,.8,.8,.8,1)
cairo_move_to(cr,x[i],y[i])
cairo_set_font_size (cr,s[i])
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
end-- wireless
--################################
-- End of Network
--################################















--################################
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end conky interface left
--################################
--################################
--################################
function conky_interface_right()
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)
local updates=tonumber(conky_parse('${updates}'))
if updates>5 then
--################################
-- Strings
--################################
d_math=math.pi/180







--################################
-- Main Body
--################################
--border
for i=1,4 do
br_alpha=((1/4)*(i))
br_line=8-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,110,630,600,(270*d_math),(335*d_math))
cairo_line_to(cr,610,455)
cairo_arc_negative(cr,10,455,200,(360*d_math),(270*d_math))
cairo_line_to(cr,10,105)
cairo_close_path(cr)
if i == 1 then
cairo_set_source_rgba(cr,.2,.2,.3,.5)
cairo_fill_preserve(cr)
end
cairo_set_source_rgba(cr,.3,.3,1,br_alpha)
cairo_stroke(cr)
end
conky_drive(420,280)




--################################
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end conky interface right
--################################
--################################
--Functions
--################################
function conky_drive(center_x,center_y)
if (center_x) == nil then center_x=100 end
if (center_y) == nil then center_y=100 end
partition_location1="/boot"
partition_location2="/"
partition_location3="/home"
partition_location4="swap"
partition1=.5
partition2=10
partition3=285
partition4=5
drive_size=partition1+partition2+partition3+partition4
part1=tonumber(conky_parse("${fs_used_perc "..partition_location1.."}"))
part2=tonumber(conky_parse("${fs_used_perc "..partition_location2.."}"))
part3=tonumber(conky_parse("${fs_used_perc "..partition_location3.."}"))
part4=tonumber(conky_parse("${swapperc}"))
if part4 == nil then part4=0 end
point_math=360/drive_size
point1=point_math*partition1
point2=(point_math*partition2)+point1
point3=(point_math*partition3)+point2
outer_radius=80
diskio=conky_parse("${diskio}")
if diskio == nil then diskio="Error" end
part1_used=conky_parse("${fs_used "..partition_location1.."}")
part2_used=conky_parse("${fs_used "..partition_location2.."}")
part3_used=conky_parse("${fs_used "..partition_location3.."}")
part4_used=conky_parse("${swap}")
part1_size=conky_parse("${fs_size "..partition_location1.."}")
part2_size=conky_parse("${fs_size "..partition_location2.."}")
part3_size=conky_parse("${fs_size "..partition_location3.."}")
part4_size=conky_parse("${swapmax}")
cairo_select_font_face (cr,"mono",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr,11)
--border
for i=1,5 do
br_alpha=((1/5)*(i))
br_line=10-(i*2)
cairo_set_line_width(cr,br_line)
cairo_arc(cr,((center_x)-50),((center_y)-50),40,(180*(math.pi/180)),(270*(math.pi/180)))
cairo_arc(cr,((center_x)+50),((center_y)-50),40,(270*(math.pi/180)),(360*(math.pi/180)))
cairo_line_to(cr,((center_x)+90),((center_y)+130))
cairo_line_to(cr,((center_x)+60),((center_y)+160))
cairo_line_to(cr,((center_x)-60),((center_y)+160))
cairo_line_to(cr,((center_x)-90),((center_y)+130))
cairo_close_path(cr)
cairo_set_source_rgba(cr,.2,.2,.2,.1)
cairo_fill_preserve(cr)
cairo_set_source_rgba(cr,.6,.6,1,br_alpha)
cairo_stroke(cr)
end
--partition 1
transition_arc(
center_x,center_y,outer_radius,(outer_radius/3),
0,point1,
part1,100,
.2,.2,.2,.2,
.7,.7,1,1,
.25,.25,1,
75,
1,.3,.3
)
--partition 2
transition_arc(
center_x,center_y,outer_radius,(outer_radius/3),
point1,point2,
part2,100,
.2,.2,.2,.2,
.7,.7,1,1,
.25,.25,1,
75,
1,.3,.3
)
--partition 3
transition_arc(
center_x,center_y,outer_radius,(outer_radius/3),
point2,point3,
part3,100,
.2,.2,.2,.2,
.7,.7,1,1,
.25,.25,1,
75,
1,.3,.3
)
--partition 4
transition_arc(
center_x,center_y,outer_radius,(outer_radius/3),
point3,360,
part4,100,
.2,.2,.2,.2,
.7,.7,1,1,
.25,.25,1,
75,
1,.3,.3
)
cairo_set_line_width(cr,1)
cairo_arc(cr,(center_x),(center_y),(outer_radius/3),0,(360*(math.pi/180)))
cairo_set_source_rgba(cr,.4,.4,.4,.75)
cairo_fill(cr)
cairo_move_to (cr,((center_x)-20),((center_y)+4))
cairo_select_font_face (cr,"mono",CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
cairo_set_font_size (cr,11)
cairo_set_source_rgba (cr,.8,.8,.8,1)
cairo_show_text (cr,diskio)
cairo_stroke (cr)
for i=1,8 do
x_i={0,75,0,75,0,75,0,75}
x=(((center_x)-75)+(x_i[i]))
y_i={0,0,15,15,30,30,45,45}
y=(((center_y)+95)+(y_i[i]))
t={"SDA1:"..part1.."%",""..part1_used.."/"..part1_size.."",
"SDA2:"..part2.."%",""..part2_used.."/"..part2_size.."",
"SDA3:"..part3.."%",""..part3_used.."/"..part3_size.."",
"SDA4:"..part4.."%",""..part4_used.."/"..part4_size.."",
}
cairo_move_to(cr,x,y)
cairo_show_text(cr,t[i])
cairo_stroke(cr)
end
end
function transition_arc (x,y,outer_radius,inner_radius,start_degree,end_degree,value,scale,bgr,bgg,bgb,bga,brr,brg,brb,bra,ir,ig,ib,alert_level,ar,ag,ab)
if (value) == nil then value=0 end
cairo_set_line_width(cr,2)
cairo_arc(cr,x,y,(outer_radius),((start_degree)*(math.pi/180)),((end_degree)*(math.pi/180)))
cairo_arc_negative(cr,x,y,(inner_radius),((end_degree)*(math.pi/180)),((start_degree)*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,bgr,bgg,bgb,bga)
cairo_fill(cr)
i_end=(((end_degree)-(start_degree))/(scale))*(value)
for i=1,i_end do
position1=((start_degree)*(math.pi/180))+((i-2)*(math.pi/180))
position2=((start_degree)*(math.pi/180))+(i*(math.pi/180))
alpha=(1/i_end)*i
cairo_arc(cr,x,y,(outer_radius),position1,position2)
cairo_arc_negative(cr,x,y,(inner_radius),position2,position1)
cairo_close_path(cr)
if (value) > (alert_level) then
cairo_set_source_rgba(cr,(ar),(ag),(ab),alpha)
else
cairo_set_source_rgba(cr,(ir),(ig),(ib),alpha)
end
cairo_fill(cr)
end--for end
cairo_arc(cr,x,y,(outer_radius),((start_degree)*(math.pi/180)),((end_degree)*(math.pi/180)))
cairo_arc_negative(cr,x,y,(inner_radius),((end_degree)*(math.pi/180)),((start_degree)*(math.pi/180)))
cairo_close_path(cr)
cairo_set_source_rgba(cr,brr,brg,brb,bra)
cairo_stroke(cr)
end--function end

this is the tables lua script

require 'cairo'
function conky_tables()
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)
local updates=tonumber(conky_parse('${updates}'))
if updates == 4 then
cpu_average_table={}
cpu_core1_table={}
cpu_core2_table={}
wired_down_table={}
wired_up_table={}
wireless_down_table={}
wireless_up_table={}
diskio_table={}
alternating_table={}
end
if updates > 5 then
cpu=tonumber(conky_parse("${cpu}"))
cpu_core1=tonumber(conky_parse("${cpu cpu1}"))
cpu_core2=tonumber(conky_parse("${cpu cpu2}"))
wired_down=tonumber(conky_parse("${downspeedf}"))
wired_up=tonumber(conky_parse("${upspeedf}"))
wireless_down=tonumber(conky_parse("${downspeedf wlan0}"))
wireless_up=tonumber(conky_parse("${upspeedf wlan0}"))
table_length=10
--cpu_average_table={}
if cpu == nil then cpu=0 end
for i = 1, tonumber(table_length) do
            if cpu_average_table[i+1]==nil then cpu_average_table[i+1]=0 end
cpu_average_table[i]=cpu_average_table[i+1]
            if i==table_length then
            cpu_average_table[table_length]=cpu
            end
end
--cpu_core1_table={}
if cpu_core1 == nil then cpu_core1=0 end
for i = 1, tonumber(table_length) do
            if cpu_core1_table[i+1]==nil then cpu_core1_table[i+1]=0 end
cpu_core1_table[i]=cpu_core1_table[i+1]
            if i==table_length then
            cpu_core1_table[table_length]=cpu_core1
            end
end
--cpu_core2_table={}
if cpu_core2 == nil then cpu_core2=0 end
for i = 1, tonumber(table_length) do
            if cpu_core2_table[i+1]==nil then cpu_core2_table[i+1]=0 end
cpu_core2_table[i]=cpu_core2_table[i+1]
            if i==table_length then
            cpu_core2_table[table_length]=cpu_core2
            end
end
--wired_down_table={}
if wired_down == nil then wired_down=0 end
for i = 1, tonumber(table_length) do
            if wired_down_table[i+1]==nil then wired_down_table[i+1]=0 end
wired_down_table[i]=wired_down_table[i+1]
            if i==table_length then
            wired_down_table[table_length]=wired_down
            end
end
--wired_up_table={}
if wired_up == nil then wired_up=0 end
for i = 1, tonumber(table_length) do
            if wired_up_table[i+1]==nil then wired_up_table[i+1]=0 end
wired_up_table[i]=wired_up_table[i+1]
            if i==table_length then
            wired_up_table[table_length]=wired_up
            end
end
--wireless_down_table={}
if wireless_down == nil then wireless_down=0 end
for i = 1, tonumber(table_length) do
            if wireless_down_table[i+1]==nil then wireless_down_table[i+1]=0 end
wireless_down_table[i]=wireless_down_table[i+1]
            if i==table_length then
            wireless_down_table[table_length]=wireless_down
            end
end
--wireless_up_table={}
if wireless_up == nil then wireless_up=0 end
for i = 1, tonumber(table_length) do
            if wireless_up_table[i+1]==nil then wireless_up_table[i+1]=0 end
wireless_up_table[i]=wireless_up_table[i+1]
            if i==table_length then
            wireless_up_table[table_length]=wireless_up
            end
end
--alternating_table={}
if updates > 5 then if alternating_table[3] == 1 then alternating=-1 else if alternating_table[3] == -1 then alternating=1 end end end
for i = 1,3 do
if alternating_table[i+1]==nil then alternating_table[i+1]=1 end
alternating_table[i]=alternating_table[i+1]
if i==3 then alternating_table[i]=alternating end
if alternating_table[3] == nil then alternating_table[3]=1 end
end
end-- if updates>5
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end-- end main function

as soon as I get this little matter cleared up I want to finish it

Last edited by ansem_of_nexus (2013-03-08 18:34:34)


You can find my work here

Make everything ok button

Offline

#4923 2013-03-08 22:23:46

dk75
#! CrunchBanger
Registered: 2012-06-14
Posts: 244

Re: The New Monster Conky Thread

ansem_of_nexus wrote:

what is XServer / how is it connected to conky?

How to put this... it's some outdated, over complicated, buggy and slow "the thing" that do a display thingy...
It should be better with Wayland... when it arrive.
You can kill it if you want... many, many, many servers run without graphics display with terminal output only, and there is terminal Conky version too devil


ansem_of_nexus wrote:

the lua I have been working on is a multi-conky set and uses my table lua
conky left:  640x450 bottom_left
conky center: 400x800 bottom_middle
conky right: 650x450 bottom_right

I have one Conky only and XServer is oscillating between 3% to 7%.
If you wan't to fight with it, then run one Conky at a time and check which one cause of the highest "X" usage.
After that make forensic analysis of what over extensive drawing you do in that particular script.

Sorry that I don't do anything more, but currently I've lack of time.


Debian Sid (Minted) x86_64/3.12-10, Conky 2.0_pre, Xorg 7.7/1.15.0, KDE 4.11.5, Intel X3100
Lenovo T61, HITACHI HTS722010K9SA00 100GB, WDC_WD5000BEVT 500GB
Linux user No.: 483055 | Conky Pitstop

Offline

#4924 2013-03-08 23:58:19

ansem_of_nexus
#! CrunchBanger
Registered: 2012-09-19
Posts: 199

Re: The New Monster Conky Thread

@dk75 oh so it's the graphic environment process, that explains it, because this new lua is rather graphic intensive.


You can find my work here

Make everything ok button

Offline

Be excellent to each other!

#4925 2013-03-09 08:19:06

Gordon
#! CrunchBanger
From: Blackpool, Lancashire, UK
Registered: 2012-05-22
Posts: 238

Re: The New Monster Conky Thread

Hi Folks

@ ansem_of_nexus,

Thanks for moving my query to here, wasn't sure where I should put. Guess I chose the wrong place  devil

@ arclance,

Thanks for that. Guess I will have to sort out conky first then.

One and all

I get the following

WARNING: gnome-keyring:: couldn't connect to: /home/gordon/.cache/keyring-f9X7tR/pkcs11: No such file or directory

Where do I find the keyring mentioned or do I just go to the .cashe and make it ?


Cheers smile smile
Gordon
Using Janice Testing at present also sid and systemd and  VSIDO
A7N8X delux motherboard, 1 GB ram, AMD ATHLON XP 2800+ ( 2255 Mhz ), Nvidia Geforce PNY 62000 graphics card

Offline

Board footer

Powered by FluxBB

Copyright © 2012 CrunchBang Linux.
Proudly powered by Debian. Hosted by Linode.
Debian is a registered trademark of Software in the Public Interest, Inc.

Debian Logo