Lua-Skript in conky einbinden

Nordmende

Semiprofi
Thread Starter
Mitglied seit
03.05.2006
Beiträge
2.054
Ort
Terra Incognita
Hallo !

Versuche derzeit mein conky mit einem Lua-Skript optisch aufzuwerten, nur leider gibt es ein Problem. Das Lua-Skript will ums verrecken nicht funktionieren.

So sieht conky aus, darum soll ein einfacher Rahmen gezeichnet werden.



Das Lua-Skript:

function conky_rahmen()

if conky_window==nil then return end

local boxes_settings={

{ corners={ {"",0},{"",0}, {"circle",15}, {"circle",15}},
border= 3
}
}

end

Die conkyrc

alignment top_middle
short_units
use_xft yes
xftfont Monospace:size=9
gap_y 5
xftalpha 0.8
update_interval 10
double_buffer yes
own_window_transparent yes
own_window_argb_visual yes
lua_load ~/.rahmen.lua
lua_draw_hook_pre conky_rahmen

TEXT
....

Conky ist mit der Lua/cairo Option richtig kompiliert (wird mit conky -v angezeigt)

Weiß jemand rat ?
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
das hier malt einen rahmen um das conky-fenster:

rahmen.lua
Code:
corner_r=15             -- Eckenradius
main_bg_colour=0xFFFFFF -- Rahmenfarbe
main_bg_alpha=1         -- Deckung/Transparenz
require 'cairo'
local function rgb_to_r_g_b(colour,alpha)
return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
end
function conky_rahmen()
if conky_window==nil then return end
local w=conky_window.width
local h=conky_window.height
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
local cr=cairo_create(cs)
cairo_set_line_width(cr,3)  -- Strichstärke (mit Conky Border abstimmen)
cairo_move_to(cr,corner_r,0)
cairo_line_to(cr,w-corner_r,0)
cairo_curve_to(cr,w,0,w,0,w,corner_r)
cairo_line_to(cr,w,h-corner_r)
cairo_curve_to(cr,w,h,w,h,w-corner_r,h)
cairo_line_to(cr,corner_r,h)
cairo_curve_to(cr,0,h,0,h,0,h-corner_r)
cairo_line_to(cr,0,corner_r)
cairo_curve_to(cr,0,0,0,0,corner_r,0)
cairo_close_path(cr)
cairo_set_source_rgba(cr,rgb_to_r_g_b(main_bg_colour,main_bg_alpha))
cairo_stroke(cr)
cairo_destroy(cr)
end

... ich kann nur'n bissle mit cairo pfuschen...
 
Zuletzt bearbeitet:
Danke, so geht es schonmal, nur wird ein Rahmen um den ganzen Desktop gezogen oO
Da muss ich mich jetzt erstmal in die cairo syntach reinfuchsen ;)
 
geht dein conky über den ganzen desktop?

weil: eigentlich frage ich die conky fenstergröße im script ab:

local w=conky_window.width
local h=conky_window.height


bei mir geht der rahmen auch nur um das conky fenster.

meine fensterconfig in der conkyrc:

Code:
own_window yes
own_window_type override
own_window_transparent yes
maximum_height 400
maximum_width 640
 
Ach das hatt ich gar nicht in der config stehen.... jetzt geht es !
Wie kann ich einstellen, dass ich an der oberen Seite keine Linie habe sondern nur links, unten und rechts ?

Was bedeuten die Einzelrnen Parameter in der Klammer bei z.b. "cairo_curve_to(cr,w,0,w,0,w,corner_r)" ?
 
cr, w und corner_r sind globale bzw. lokale Variabeln die im Skript definiert wurden (Ok cr braucht dann noch cs und cs noch h):
gbm31 schrieb:
corner_r=15
local w=conky_window.width
local h=conky_window.height
local cs=cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, w, h)
local cr=cairo_create(cs)
damit sollte es klar sein ansonsten: Paths
 
Zuletzt bearbeitet:
danke neuli!

eigentlich hätte ich das script noch so umschreiben sollen, daß alle variablen local oder global sind, bei mir gibts halt noch mehrere unterfunktionen...

nordmende, du musst einfach den pfad anders gehen - z.b. oben links starten, runter bis ende fenster - radius, viertelkreis, nach rechts bis ende fenster - radius, viertelkrei, nach oben.

versuchs mal, kriegst du hin, ansonsten gib bescheid. ich bin grad viel unterwegs und mit dem handy code tippen macht keinen spaß.
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh