seduction
 Language:
Welcome, Guest. Please login or register.
Did you miss your activation email?
2018/12/19, 08:47:57


Help

Author [EN] [PL] [ES] [PT] [IT] [DE] [FR] [NL] [TR] [SR] [AR] [RU] Topic: Desktop-Foto  (Read 50296 times)

0 Members and 1 Guest are viewing this topic.

Offline devil

  • Administrator
  • User
  • *****
  • Posts: 4.298
Re: Desktop-Foto
« Reply #195 on: 2018/02/20, 18:56:38 »
Schicke Sache das :)


Offline unklarer

  • User
  • Posts: 429
Re: Desktop-Foto
« Reply #196 on: 2018/03/05, 23:06:37 »
Danke für deine guten Worte, devil.   ;)

Vor zwei Tagen kam in siduction Conky in Version 1.10.8 'rein und damit ist mir doch quasi als "Präsentation" für die CLT der "Einbau" eines Lua-Wetter-Script gelungen, was ich bisher für nicht möglich hielt. 
Da kommt man wirklich ins Schwitzen...   :P





Habe das alles versucht hier zusammenzutragen.

Edit: @devil, du bist schneller als ich.   ;D   Ich muß an @melmarker's Worte denken (sehr zutreffend beschrieben): "Silver Geek", das merkt man deutlich.   ;)    :P
« Last Edit: 2018/03/06, 11:51:09 by unklarer »

Offline devil

  • Administrator
  • User
  • *****
  • Posts: 4.298
Re: Desktop-Foto
« Reply #197 on: 2018/03/06, 10:54:24 »
Das sollten wir in Chemnitz auf den Demo-PC packen, macht richtig was her.

Offline unklarer

  • User
  • Posts: 429
Re: Desktop-Foto
« Reply #198 on: 2018/03/06, 14:22:20 »
OK
Mit der "Präsentation" war von mir eigentlich als Scherz gemeint...    ;D
Das artet dann richtig in Arbeit aus, ops. Ich will es dir aber so einfach, wie möglich machen. Sei dir bewußt, @damo ist Conky-Oberklasse!   ::)

Es wird für die zwei Conky folgendes benötigt;

Pakete:
conky-all
lm-sensors
jq
-zur Ermittlung des Standortes: http://bulk.openweathermap.org/sample/city.list.json.gz
-für Chemnitz wäre das die ID=6548487 (habe ich in der Konfiguration überall eingetragen    ;)   )

Fonts:
Dustismo
Liberation
Monofur
Avantgarde
Birdman

Die zwei bereits gezeigten Konfigurationen. Mit diesen (wegen Chemnitz) Änderungen nach
conky.text = [[  für das Wetter ist zu verändern:
Code: [Select]
};

conky.text = [[
${execpi 300 bash /home/unklarer/damo-weather/lua-weather.sh Chemnitz,DE}\
${color0}${voffset 180} #${alignc}${font monofur bold:size=12}${time %H:%M}
#${alignc}${font monofur bold:size=8}${time %a.%d. %b}
${alignc -30}${font monofur bold:size=7}Chemnitz${font}
]];

und
conky.text = [[  für den rainmeter-Conky
Code: [Select]
};

conky.text = [[
${color}${font AvantGarde LT ExtraLight:pixelsize=150}${alignr}${time %H}
${voffset -65}${alignr}${color3}${time %M}
${voffset -90}${color}${font AvantGarde LT ExtraLight:pixelsize=20}${alignr}${time %A}  |  ${alignr}${time %d.%B %Y}
${voffset 20}${color}${font}ram ${alignr}${mem} / ${memmax}
cpu ${alignr}${cpu cpu0}%
cpu temp ${alignr}${color}${hwmon 1 temp 2} °C
GPU ${alignr}${hwmon 2 temp 1} °C
fs  ${alignr}${fs_used_perc /}% / ${fs_size /}
${voffset 30}${alignr}${kernel}
${hr}
${font Birdman}Siduction  ${alignr} W E A T H E R













#${goto 40}${font liberation mono:size=9}${execi 600 curl 'wttr.in/leipzig?q?0?T'}${font}
${hr}
${font Birdman}Linux News DE  ${alignr}F E E D
${font AvantGarde LT ExtraLight:pixelsize=14}${rss http://feeds.feedburner.com/linuxnewsde/ 15 item_titles 4 2}
#${rss https://forum.siduction.org/index.php?action=.xml;type=rss/ 15 item_titles 3 2}
#${color}${font AvantGarde LT ExtraLight:pixelsize=14}${voffset 2}${execi 300 $HOME/.conky/damo/elegance-atomfeed.sh}
${hr}
]];

das lua-weather-script
lua-weather.sh
Code: [Select]
#!/bin/bash
#
## lua-weather.sh by <damo> July 2016
## Adapted from bunsenweather.sh, which was based on ideas from
## weatherbang.sh version 1.0, 2013 by Ryan Fantus
##
## Requires:
##          'jq' (sudo apt-get install jq);
##          API Key from http://openweathermap.org/api
##
## USAGE: Call this script from Conky with ( replace "<t>" with the update interval)
##          ${execpi <t> /path/to/lua-weather.sh [location]}


#### User configurables:  ##############################################

# Get API KEY by registering for one at http://openweathermap.org/api
api="cbcdd9a40999d5d68afc55145f756764"

# Either set the location manually here, or by passing it as a script parameter in the Conky.
# "yourlocation" must be a name (which doesn't have spaces), or a numeric id.
#
# id's can be obtained from http://bulk.openweathermap.org/sample/city.list.json.gz
# Download and extract the json file, then simply search for an id with grep.
#   For example:   grep "New York" city.list.json
#
# If $place is not set, then the script attempts to get a geolocation from the IP address.

place="$1"              # Get $place from script parameter.
place="6548487"   # Uncomment and add name or id. NB If the name has spaces, then you must use the id.

# Choose fahrenheit/Imperial or Celcius/metric:
#metric='imperial'
metric='metric'

# data file
datafile="/home/unklarer/tmp/weather.txt"

#########################################################################
connectiontest() {
    local -i i attempts=${1-0}
    for (( i=0; i < attempts || attempts == 0; i++ )); do
        if wget -O - 'http://ftp.debian.org/debian/README' &> /dev/null; then
            return 0
        fi
        if (( i == attempts - 1 )); then # if last attempt
            return 1
        fi
    done
}

placeholder() {
    if (( $1 == 1 )) &>/dev/null;then
        echo "No internet connection"
        echo "Weather information unavailable"
    else
        echo "No API key"
        echo "Weather information unavailable"
    fi
}

if [[ $metric == metric ]] &>/dev/null;then
    scaleT="°C"
    scaleV="m/s"
else
    scaleT="°F"
    scaleV="mph"
fi

if [[ -z "$api" ]] &>/dev/null;then
    placeholder 0 && exit 1
else
    connectiontest 10
   
    # If latlong is preferred then don't set a value for $place
    if (( $? == 0 )) &>/dev/null;then
        if [[ -z $place ]] &>/dev/null;then
            # Geolocate IP:
            ipinfo=$(curl -s ipinfo.io)
            latlong=$(echo "$ipinfo" | jq -r '.loc')
            # Parse the latitude and longitude
            lat=${latlong%,*}
            long=${latlong#*,}
            location="lat=$lat&lon=$long"
        else
            # check if numeric id, or placename is being used
            [[ ${place##*[!0-9]*} ]] &>/dev/null && location="id=$place" || location="q=$place"
        fi

        # get json data from openweathermap:
        weather=$(curl -s http://api.openweathermap.org/data/2.5/weather\?APPID=$api\&"$location"\&units=$metric)
        city=$(echo "$weather" | jq -r '.name') # In case location has spaces in the name
        weather_desc=$(echo "$weather" | jq -r '.weather[0].description')   # In case description has spaces in the name

        # load values into array:
        all=($(echo "$weather" | jq -r '.coord.lon,.coord.lat,.weather[0].main,.main.temp,.main.pressure,.main.temp_min,.main.temp_max,.wind.speed,.wind.deg,.clouds.all,.sys.sunrise,.sys.sunset'))
        #                   ARRAY INDEX  0          1          2                3          4              5              6              7           8         9           10           11

        longitude=$(printf '%06.1f' ${all[0]})
        latitude=$(printf '%+.1f' ${all[1]})
        condition="${all[2]}"
        temperature=$(printf '%+.1f%s' ${all[3]} $scaleT)
        pressure=$(printf '%.f %s' ${all[4]} mb)
        temperature_min=$(printf '%+.1f%s' ${all[5]} $scaleT)
        temperature_max=$(printf '%+.1f%s' ${all[6]} $scaleT)
        cloud_cover=$(printf '%d%s' ${all[9]} %)
        sunrise=$(date -d @${all[10]} +"%R")
        sunset=$(date -d @${all[11]} +"%R")
        description="$weather_desc"
        winddir=$(printf '%3.f%s' ${all[8]} °)
       
        winddir=${all[8]}
        echo ${winddir%.*} > "$datafile"
        windspeed=$(echo ${all[7]}*1.9 | bc)
        windspeed=$(printf '%01.1f %s' "$windspeed" "kn")
        echo "$windspeed" >> "$datafile"
        echo "$sunrise" | sed 's/://' >> "$datafile"
        echo "$sunset" | sed 's/://'>> "$datafile"
        temp_degrees=$(printf '%.1f' ${all[3]})
        echo "$temp_degrees" >> "$datafile"
        echo "$city" >> "$datafile"
        echo "$description" >> "$datafile"

    else
        placeholder 1
    fi
fi

exit
Der API-Schlüssel war eine Zugabe von damo, er funktioniert noch immer   :)   und, du mußt den Pfad zur tmp-Datei entsprechend anpassen.


Offline unklarer

  • User
  • Posts: 429
Re: Desktop-Foto
« Reply #199 on: 2018/03/06, 14:23:52 »
ops, mir wurde gerade gezeigt, mein Beitrag habe die 20000 Zeichen erreicht...    :P

das lua1-weather.lua  (die 1, weil hier meine Änderungen enthalten sind)
lua1-weather.lua
Code: [Select]
--[[
lua-weather.lua, written by <damo>, July 2016

---------------------------------------------
Use this in a conky with

    lua_load /path/to/lua-weather.lua
    lua_draw_hook_pre conky_main

In the conky, get the weather data from lua-weather.sh with

TEXT
${execi <interval> /path/to/lua-weather.sh}

---------------------------------------------]]

require 'cairo'

-- set default font
--fontface="Dustismo"
fontface="Liberation"

function conky_main()
    if conky_window==nil then return end
    cs=cairo_xlib_surface_create(conky_window.display,
                                        conky_window.drawable,
                                        conky_window.visual,
                                        conky_window.width,
                                        conky_window.height)
    cr=cairo_create(cs)
   
    xW=180      -- x pos wind dial centre
    yW=90       -- y pos wind dial centre
    radiusW=55  -- radiusW wind dial
    xT=30       -- x pos temp bar (top)
    yT=10       -- y pos temp bar (top)
    wT=6        -- width temp bar
    hT=150      -- height temp bar
    xSun=180    -- x pos sun dial centre
    ySun=90     -- y pos sun dial centre
    radiusSun=80-- radius sun dial
    datafile="/home/unklarer/tmp/weather.txt"  -- textfile to hold lua-weather.sh output
   
    direction,windS,temperature,sunrise,sunset,loc,wx = get_vals()
   
    local updates=conky_parse('${updates}')
    update_num=tonumber(updates)

-- Edit this for concentric dials ---------------------------------

    concentric = 0  --<-- Change to "1" to display concentric rings

    if ( concentric == 1 ) then
        xSun = 300
        ySun = 100
        radiusSun = 90
        xW = xSun
        yW = ySun
        radiusW = 0.7*radiusSun
    end
------------------------------------------------------------------------

    if update_num>1 then
        draw_widgets()
    end

    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
end

--  Choose the widgets to be displayed:
function draw_widgets()
    draw_thermometer(cr,xT,yT,wT,hT)
    draw_wind_rose()
    draw_sun_ring()
end

-- read values from datafile
function get_vals()
    local path = datafile
    local file = io.open( path)
    local array = {}
    local i=0
   
    if (file) then
        -- read all contents of file into array
        for line in file:lines() do
            i=i+1
            array[i]=line
        end
        file:close()

        dir=tostring(array[1]) -- get wind direction, convert to value required
        winddir=-math.pi*(tonumber(dir))/180
        wind_speed=tostring(array[2])  -- windspeed knots
        temperature=tonumber(array[5])
        sunrise=array[3]
        sunset=array[4]
        location=array[6]
        weather=array[7]

        return winddir,wind_speed,temperature,sunrise,sunset,location,weather
    else
        print("datafile " .. datafile .. " not found")
    end
end

-- convert degree to rad
function angle_to_position(start_angle, current_angle)
    local pos = start_angle + current_angle
    return pos * math.pi/180
end

function draw_sun_ring()
--    local hours=20
--    local mins=0
   
    local hours=os.date("%H")
    local mins=os.date("%M")
    current_time=(hours .. mins)

    mins_arc = 360/60*mins
    hours_arc = (360/24*hours + mins_arc/24) + 90
   
    start_angle = 90    -- south
    end_angle = 360
    start_arc = 0
    stop_arc = 0

    -- get times and angle position from function sun_rise_set()
    sunrise,sunset,sun_rise,sun_set = sun_rise_set()

    local border_pat=cairo_pattern_create_linear(xSun,ySun-radiusSun*1.25,xSun,ySun+radiusSun*1.25)
   
    cairo_pattern_add_color_stop_rgba(border_pat,0,1,1,0,0.7)
    cairo_pattern_add_color_stop_rgba(border_pat,0.4,0.9,0.9,0.2,0.6)
    cairo_pattern_add_color_stop_rgba(border_pat,0.55,0.9,0.2,0,0.6)
    cairo_pattern_add_color_stop_rgba(border_pat,0.7,0,0.1,1,0.7)
    cairo_set_source(cr,border_pat)
    -- draw ring, starting at south position ( = midnight/00hrs)
    cairo_arc(cr, xSun, ySun, radiusSun, angle_to_position(start_angle, 0), angle_to_position(start_angle, end_angle))
--  set width of ring
    cairo_set_line_width(cr,radiusSun*0.06)
    cairo_stroke(cr)
    cairo_pattern_destroy (pat)

    -- draw sun
    -- get position on circumference ( = time from midnight (south), 24hr clock)
    sun_pos=angle_to_position(start_angle,hours_arc)
    local sunx=xSun - (math.sin(-sun_pos)*radiusSun)
    local suny=ySun - (math.cos(-sun_pos)*radiusSun)
    -- set colour & alpha, for day/night
    if ( tonumber(current_time) > tonumber(sunrise) ) and ( tonumber(current_time) < tonumber(sunset) ) then
        r,g,b,a = 1,1,0,0.7 --day
    else
        r,g,b,a = 0.5,0.5,0.5,0.7 --night
    end
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_arc(cr,sunx,suny,radiusSun*0.09,0,360)
    cairo_fill(cr)
   
    local r,g,b,a = 1,1,0,0.7
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_set_line_width(cr,2)
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)

    -- draw sunrise mark
    local sunrise_x=xSun - (math.sin(-sun_rise)*radiusSun*1.05)
    local sunrise_y=ySun - (math.cos(-sun_rise)*radiusSun*1.05)
    local sunrise_xc=xSun - (math.sin(-sun_rise)*radiusSun*0.95)
    local sunrise_yc=ySun - (math.cos(-sun_rise)*radiusSun*0.95)
    cairo_move_to(cr,sunrise_x,sunrise_y)
    cairo_line_to(cr,sunrise_xc,sunrise_yc)
    cairo_stroke(cr)
    -- draw sunset mark
    local sunset_x=xSun - (math.sin(-sun_set)*radiusSun*1.05)
    local sunset_y=ySun - (math.cos(-sun_set)*radiusSun*1.05)
    local sunset_xc=xSun - (math.sin(-sun_set)*radiusSun*0.95)
    local sunset_yc=ySun - (math.cos(-sun_set)*radiusSun*0.95)
    local r,g,b,a = 1,0,0,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_move_to(cr,sunset_x,sunset_y)
    cairo_line_to(cr,sunset_xc,sunset_yc)
    cairo_stroke(cr)
--  print sunrise/sunset text
    sun_text(sunrise_x,sunrise_y,sunset_x,sunset_y)
end

function sun_text(xr,yr,xs,ys)
    -- display sunrise time
    sunrise1 = string.sub(sunrise,1,2)
    sunrise2 = string.sub(sunrise,3,4)
    sunset1 = string.sub(sunset,1,2)
    sunset2 = string.sub(sunset,3,4)
   
    local sunrise = ( sunrise1 .. ":" .. sunrise2 )
    local sunset = ( sunset1 .. ":" .. sunset2 )
    local r,g,b,a = 1,1,0,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    print_text(cr,sunrise,xr-4,yr,4,12)
    print_text(cr,"sunrise",xr-4,yr+8,4,10)
   
    -- display sunset time
    local r,g,b,a = 1,0,0,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    print_text(cr,sunset,xs,ys+10,0,12)
    print_text(cr,"sunset",xs,ys+18,0,10)
   
--    print("concentric= " .. concentric)
    if ( concentric == 0 ) then
        -- display time
--[[        local current_time = os.date("%H:%M")
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.6
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
        cairo_set_font_size (cr,24)
        local xt,yt = position_text(cr,current_time,xSun,ySun-6,2)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,current_time)
        cairo_stroke (cr)
       
        -- display date
        local cal = os.date("%a %d %b")
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.6
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
        cairo_set_font_size (cr,12)
        local xt,yt = position_text(cr,cal,xSun,ySun+10,1)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,cal)
        cairo_stroke (cr)
       
    --  print location
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.7
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
        cairo_set_font_size (cr,10)
        local xt,yt = position_text(cr,loc,xSun,ySun+25,1)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,loc)
--]]        cairo_stroke (cr)
    else
        print_location_text(xSun,ySun+1.4*radiusSun)
    end

end

function print_location_text(x,y)
   -- display time
    local current_time = os.date("%H%M")
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,24)
    local xt,yt = position_text(cr,current_time,x,y,2)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,current_time)
    cairo_stroke (cr)
   
    -- display date
    local cal = os.date("%a %d %b")
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,12)
    local xt,yt = position_text(cr,cal,x,y+10,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,cal)
    cairo_stroke (cr)
   
--  print location
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.7
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr,10)
    local xt,yt = position_text(cr,loc,x,y+25,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,loc)
    cairo_stroke (cr)
end

function sun_rise_set()
    sunupH = string.sub(sunrise,1,2)
    sunupM = string.sub(sunrise,3,4)
    sundownH = string.sub(sunset,1,2)
    sundownM = string.sub(sunset,3,4)

    minSR_arc = 360/60*sunupM
    hourSR_arc = (360/24*sunupH + minSR_arc/24) + 90
    pos_SR = angle_to_position(start_angle,hourSR_arc)

    minSS_arc = 360/60*sundownM
    hourSS_arc = (360/24*sundownH + minSS_arc/24) + 90
    pos_SS = angle_to_position(start_angle,hourSS_arc)

    return sunrise,sunset,pos_SR,pos_SS
end

function draw_thermometer(cr,x,y,wT,hT)
    local alpha=0.7
    HT = y+hT
    pat = cairo_pattern_create_linear (x,y,wT,HT)
    cairo_pattern_add_color_stop_rgba (pat, 1,   0,  0, 1, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0.4, 1,0.8, 0, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0.3, 1,0.3, 0, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0, 1,0, 0, alpha)

    cairo_rectangle (cr, x,y,wT,HT)
    cairo_set_source (cr, pat)
    cairo_fill (cr)
    cairo_pattern_destroy (pat)

    draw_temperature(cr,x,y,hT,temperature)
end

function draw_temperature(cr,x,y,hT,Tdegrees)
    local range=hT/100
    local zero = y + range*60
    local T = Tdegrees*range
    t = tostring(Tdegrees)
    t = ( t .. "°C" )
    cairo_set_source_rgba (cr,1,1,1,0.7)
    cairo_set_line_width(cr,1)

    for i = 0,100,10 do -- draw 10 degree marks
        local l = 3
        local xT = x-1
        if ( i == 60 ) then -- longer mark for freezing point
            xT = x-6
            l = -12
        end
        cairo_move_to (cr,xT,y)
        cairo_rel_line_to (cr,-l,0)
        cairo_stroke (cr)
        y = y + range*10
    end

    cairo_set_source_rgba (cr,1,1,1,0.7)
    cairo_set_line_width(cr,3)
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)
    cairo_move_to(cr,x-1,zero-T)    -- temperature indicator
    cairo_rel_line_to(cr,10,0)

    -- temperature text
    print_text(cr,t,x+28,zero-T,1,10)
    -- zero degrees text
    print_text(cr,"0",x-12,zero,1,12)
end

function draw_wind_rose()
    draw_marks(cr,xW,yW,radiusW)
    draw_WindArrow(cr,xW,yW,50,direction,radiusW-8)
    draw_NESW(cr,xW,yW,radiusW,10)
   
--  print windspeed
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,17)
    local xt,yt = position_text(cr,windS,xW,yW,2)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,windS)
    cairo_stroke (cr)

--  print weather conditions
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.6
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr,11)
    local xt,yt = position_text(cr,wx,xW,yW+10,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,wx)
    cairo_stroke (cr)
end

function draw_WindArrow(cr,x, y, length, bearing,radiusW)
    -- startpoint x, startpoint y, length of side, compass bearing
    local head_ratio = 1.05 -- ratio of side to overall length
    local head_angle = 0.02 -- proportion 0 - 0.5 (straight, at right angle to direction)
   
    local x1=x- (math.sin(bearing)*radiusW)
    local y1=y- (math.cos(bearing)*radiusW)
    --arrow body
    local angle = bearing
    local x0 = x1 + (math.sin(angle) * length)
    local y0 = y1 + (math.cos(angle) * length)
    local xtext = x1 + (math.sin(angle) * 0.25*length)
    local ytext = y1 + (math.cos(angle) * 0.25*length)

    --arrow head left
    angle = bearing - (head_angle * math.pi)
    x2 = x0 - (math.sin(angle) * length * head_ratio)
    y2 = y0 - (math.cos(angle) * length * head_ratio)

    --arrow head right
    angle = bearing + (head_angle * math.pi)
    x3 = x0 - (math.sin(angle) * length * head_ratio)
    y3 = y0 - (math.cos(angle) * length * head_ratio)
   
    start_x=(x0+x2+x3)/3
    start_y=(y0+y2+y3)/3
   
    cairo_set_source_rgba (cr,1,1,1,0.7)
    cairo_move_to (cr,start_x,start_y)
    cairo_line_to (cr,x2,y2)
    cairo_line_to (cr,x1,y1)
    cairo_line_to (cr,x3,y3)
    cairo_close_path (cr)
    cairo_fill(cr)
    cairo_stroke (cr)
   
    return true
end

--  display compass points
function draw_NESW(cr,x,y,rt,font_size)
    local compass={0,90,180,270}
    local cpoints={"N","E","S","W"}
    radiusW=rt+12
   
    for i = 1,4,1 do
        compass_point=-math.pi*(tonumber(compass[i]))/180
        local x1=x - (math.sin(compass_point)*radiusW)
        local y1=y - (math.cos(compass_point)*radiusW)
        local t = cpoints[i]
        print_text(cr,t,x1,y1,1,font_size)
    end
end

--  draw compass rose graduations
function draw_marks(cr,x,y,r)
    local angle=0
    local inner=r-2
    local outer=r+2

    local r,g,b,a=1,1,1,0.7
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_set_line_width(cr, 1)

    for i = 0,36,1 do   -- draw small ticks, every 10 deg
        compass_arc=(-2*math.pi/360)*angle
        local x0 = x - (math.sin(compass_arc) * inner)
        local y0 = y - (math.cos(compass_arc) * inner)
        local endx = x - (math.sin(compass_arc) * outer)
        local endy = y - (math.cos(compass_arc) * outer)
       
        if ( (i/3) - math.floor(i/3) ~= 0 ) then -- don't draw every third tick
            cairo_move_to (cr,x0,y0)
            cairo_line_to(cr,endx,endy)
            cairo_stroke(cr)
        end
        angle=angle+10
    end
   
    angle=0 -- re-set angle
   
    for i = 0,12,1 do       -- draw large ticks, every 30 deg
        compass_arc=(-2*math.pi/360)*angle
        x0 = x - (math.sin(compass_arc) * (inner-5))
        y0 = y - (math.cos(compass_arc) * (inner-5))
        endx = x - (math.sin(compass_arc) * outer)
        endy = y - (math.cos(compass_arc) * outer)
       
        cairo_move_to (cr,x0,y0)
        cairo_line_to(cr,endx,endy)
        cairo_stroke(cr)
        angle=angle+30
    end
end

function print_text(cr,t,xT,yT,posT,font_size)
--  align text, using text area extents
    -- posT:        0 = none
    --              1 = align both
    --              2 = horizontal
    --              3 = vertical
    --              4 = left
    cairo_set_font_size (cr,font_size)
    if ( posT == 0 ) then
        xt = xT
        yt = yT
    else
        xt,yt = position_text(cr,t,xT,yT,posT)
    end
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,t)
    cairo_stroke (cr)
end

function position_text(cr,t,text_x,text_y,pos)
    -- adjust text position
    -- get text area (x_bearing,y_bearing,width,height,x_advance,y_advance)
    te=cairo_text_extents_t:create()
    cairo_text_extents(cr,t,te)
    xtext = text_x
    ytext = text_y
   
    if ( pos == 1 ) then    -- centre text
        xtext = text_x - te.width/2
        ytext = text_y + te.height/2
    elseif ( pos == 2 ) then    -- horizontal align
        xtext = text_x - te.width/2
    elseif ( pos == 3 ) then    -- vertical align
        ytext = text_y + te.height/2
    elseif ( pos == 4 ) then    -- set right edge of text to pos
        xtext = text_x - te.width
    end

    return xtext,ytext
end

meine Auflösung des Desk: 1680x1050

Ich wünsche dir/euch Erfolg.   8)

Offline unklarer

  • User
  • Posts: 429
Re: Desktop-Foto
« Reply #200 on: 2018/04/10, 20:16:07 »
Die Idee ist von hier.
Das Wetter von hier, dabei habe ich Teo's Version ".conkyrc_1_weatherfont_simpler" zweckentfremdet,   ;D  weil das originale Yahoo-Wetter für mich eine Katastrophe war.



Meine .conkyrc10
Code: [Select]
-- pkill -xf "conky -c /Test/S11TESTconky10" &
-- 2017-04-02 unklar
conky.config = {
own_window = true,
own_window_type = 'normal',
own_window_transparent = true,
own_window_hints = 'skip_taskbar,skip_pager,below,undecorated',
--own_window_colour 000000
--own_window_argb_visual yes
--own_window_argb_value 80
own_window_class = 'Conky',
--own_window_title = 'Grey Clock',

override_utf8_locale = true,
use_xft = true,
font = 'Open Sans Light:size=9',
--font = 'Birdman:size=13',
--xftfont Roboto Condensed:size=12
--xftfont Liberation Mono:bold:size=11
--xftfont Fantasque Sans Mono:bold:size=12
--xftfont Monofur:bold:size=12
--xftfont DejaVu Sans Mono:bold:size=10
--xftfont Fira Mono:bold:size=11
xftalpha = 1.0,

draw_borders = false,
border_inner_margin = 0,
border_outer_margin = 0,

background = false,
use_spacer = 'none',
no_buffers = true,
double_buffer = true,

update_interval = 1,

--#################################################################
minimum_width = 287, minimum_height = 682,
--maximum_width = 287,
gap_x = 15,
gap_y = 105,

draw_shades = false,
default_shade_color = '#292421',
draw_outline = false,
draw_borders = false,

stippled_borders = 0,
--border_inner_margin 30
--border_outer_margin 0
draw_graph_borders = false,
border_width = 0,

--alignment top_left
alignment = 'top_right',
--alignment bottom_left
--alignment bottom_right

imlib_cache_size = 0,

color1 = '#323232',
color2 = '#323232',
color3 = '#000000',
color4 = '#6b6b6b',
color5 = '#6db9d5',
color6 = '#000000',
color7 = '#000000',

};

conky.text = [[

${image $HOME/Conky-eOS/.conky-weather-icons/background.png -p 0,0 -s 287x682}\
${image $HOME/Conky-eOS/.conky-weather-icons/box.png -p 10,163 -s 267x64}\
${image $HOME/Conky-eOS/.conky-weather-icons/separator.png -p 1,262 -s 285x2}\
${image $HOME/Conky-eOS/.conky-weather-icons/online.png -p 218,135 -s 48x23}\
#${image $HOME/Conky-eOS/.conky-weather-icons/offline.png -p 218,135 -s 48x23}
${image $HOME/Conky-eOS/.conky-weather-icons/separator.png -p 1,370 -s 285x2}\
${image $HOME/Conky-eOS/.conky-weather-icons/separator.png -p 1,560 -s 285x2}\
${texeci 1800 bash $HOME/1_accuweather/1_accuweather -f}\
${voffset 5}${goto 20}${color6}${font conkyweather:size=50}${execi 600  sed -n '22p' $HOME/1_accuweather/curr_cond}${alignr}${font monofur:size=45}${execpi 600 sed -n '2p' $HOME/1_accuweather/curr_cond}°
${voffset -20}${goto 16}${color5}${font monofur:size=10}CURRENTLY: ${color6}${alignc}${execpi 600  sed -n '4p' $HOME/1_accuweather/curr_cond}
${goto 16}${color5}WIND: ${color6}${alignc}${execpi 600 sed -n '6p' $HOME/1_accuweather/curr_cond}
${goto 16}${color5}PRESSURE: ${color6}${alignc}${execpi 600 sed -n '8p' $HOME/1_accuweather/curr_cond}
${voffset 7}${goto 25}${execpi 600 sed -n '8p' $HOME/1_accuweather/first_days}${goto 130}${execpi 600  sed -n '13p' $HOME/1_accuweather/first_days}${goto 230}${execi 600  sed -n '18p' $HOME/1_accuweather/first_days}
${goto 30}${font conkyweather:size=22}${execi 600  sed -n '27p' $HOME/1_accuweather/first_days}${goto 130}${execi 600  sed -n '28p' $HOME/1_accuweather/first_days}${goto 230}${execi 600  sed -n '29p' $HOME/1_accuweather/first_days}
${voffset -15}${goto 45}${font monofur:size=10}${execpi 600  sed -n '9p' $HOME/1_accuweather/first_days}${goto 150}${execpi 600  sed -n '14p' $HOME/1_accuweather/first_days}${goto 250}${execi 600  sed -n '19p' $HOME/1_accuweather/first_days}

${goto 20}${color5}${font monofur:size=14}${execpi 600 sed -n '6p' $HOME/1_accuweather/first_days|cut -c1-3}${goto 130}${color6}${execpi 600 sed -n '11p' $HOME/1_accuweather/first_days|cut -c1-3}${goto 230}${execpi 600 sed -n '16p' $HOME/1_accuweather/first_days|cut -c1-3}
${font Droid Sans:pixelsize=9}${if_existing /proc/net/route wlan0}
${goto 14}${color5}Up:${color1} ${color3}${upspeed wlan0}${color1}${alignr}${goto 190}${color5}Down:${color1} ${color3}${downspeed wlan0}${color1}
${goto 14}${upspeedgraph wlan0 50,120 6db9d5 6db9d5}${alignr}${goto 160}${downspeedgraph wlan0 50,120 6db9d5 6db9d5}
${goto 14}${color5}Sent:${color1} ${color2}${totalup wlan0}${color1}${alignr}${goto 190}${color5}Received:${color1} ${color2}${totaldown wlan0}${color}1
${else}${if_existing /proc/net/route eth0}
${goto 14}${color5}Up:${color1} ${color3}${upspeed eth0}${color1}${alignr}${goto 190}${color5}Down:${color1} ${color3}${downspeed eth0}${color}
${goto 14}${upspeedgraph eth0 50,120 6db9d5 6db9d5}${alignr}${goto 160}${downspeedgraph eth0 50,120 6db9d5 6db9d5}
${goto 14}${color5}Sent:${color1} ${color2}${totalup eth0}${color1}${alignr}${goto 190}${color5}Received:${color} ${color2}${totaldown eth0}${color1}
${else}${if_existing /proc/net/route eth1}
${goto 14}${color5}Up:${color1} ${color3}${upspeed eth1}${color}${alignr}${goto 190}${color5}Down:${color1} ${color3}${downspeed eth1}${color1}
${goto 14}${upspeedgraph eth1 50,120 6db9d5 6db9d5}${alignr}${goto 160}${downspeedgraph eth1 50,120 6db9d5 6db9d5}
${goto 14}${color5}Sent:${color1} ${color2}${totalup eth1}${color1}${alignr}${goto 190}${color5}Received:${color1} ${color2}${totaldown eth1}${color1}
${else}${if_existing /proc/net/route ppp0}
${goto 14}${color5}Up:${color1} ${color1}${upspeed ppp0}${color}${alignr}${goto 160}${goto 190}${color5}Down:${color1} ${color1}${downspeed ppp0}${color}
${goto 14}${upspeedgraph ppp0 50,120 6db9d5 6db9d5}${alignr}${goto 160}${downspeedgraph ppp0 50,120 6db9d5 6db9d5}

${goto 14}${color5}Sent:${color1} ${color2}${totalup ppp0}${color1}${alignr}${goto 190}${color5}Received:${color1} ${color2}${totaldown ppp0}${color1}
${else}
   Network disconnected
${color3}   Connect to a network to see statistics${color1}
${voffset 50}
${endif}${endif}${endif}${endif}${voffset -15}


${goto 50}${font Open Sans Light:size=15}Processors/Memory
${goto 14}${color5}${font Droid Sans:pixelsize=9}CPU 1: ${color1}${alignc}${freq_g 0} ${color1}Ghz ${goto 14}${color2}${alignr}${goto 254}${cpu cpu0}${color1}%
${goto 14}${color5}${font Droid Sans Light:pixelsize=9}CPU 2: ${color1}${alignc}${freq_g 1} ${color1}Ghz ${goto 14}${color2}${alignr}${goto 254}${cpu cpu1}${color1}%
#${goto 14}${color5}${font Droid Sans:pixelsize=9}CPU 3: ${color1}${alignc}${freq_g 2} ${color1}Ghz ${color2}${alignr}${goto 254}${cpu cpu2}${color1}%
#${goto 14}${color5}${font Droid Sans:pixelsize=9}CPU 4: ${color1}${alignc}${freq_g 3} ${color1}Ghz ${color2}${alignr}${goto 254}${cpu cpu3}${color1}%
${goto 14}${alignr}${goto 14}${loadgraph 50,266 6db9d5 6db9d5 -l}

${goto 14}${color5}${font Droid Sans:pixelsize=9}RAM: ${color1}${alignc 10}${mem}
${goto 14}${color5}${font Droid Sans:pixelsize=9}TOTAL: ${color1}${alignc 10}${memmax}

${goto 74}${color1}${font Open Sans Light:size=15}Top Processes
${goto 14}${color1}${font Droid Sans:pixelsize=9}${color5}${top_mem name 1}${color1}${alignc -10}${top_mem mem_res 1}${color2}${alignr}${goto 234}${top_mem mem 1}${color1} %
${goto 14}${color1}${font Droid Sans:pixelsize=9}${color5}${top_mem name 2}${color1}${alignc -10}${top_mem mem_res 2}${color2}${alignr}${goto 234}${top_mem mem 2}${color1} %
${goto 14}${color1}${font Droid Sans:pixelsize=9}${color5}${top_mem name 3}${color1}${alignc -10}${top_mem mem_res 3}${color2}${alignr}${goto 234}${top_mem mem 3}${color1} %
${goto 14}${color1}${font Droid Sans:pixelsize=9}${color5}${top_mem name 4}${color1}${alignc -10}${top_mem mem_res 4}${color2}${alignr}${goto 234}${top_mem mem 4}${color1} %
${goto 14}${color1}${font Droid Sans:pixelsize=9}${color5}${top_mem name 5}${color1}${alignc -10}${top_mem mem_res 5}${color2}${alignr}${goto 234}${top_mem mem 5}${color1} %

]];

Offline unklarer

  • User
  • Posts: 429
Re: Desktop-Foto
« Reply #201 on: 2018/04/24, 22:31:40 »
Wegen des Rechtsklick(-Menü) auf das Conky-Fenster in lxde-openbox hier gespielt. Es funktioniert (nicht immer   ???  und der bunsen-user scheint auch kein Interesse mehr zu haben) Naja   ;D