با استفاده از fribidi میتوانید در خط فرمان، و در نتیجه در کانکی از فارسی بهره ببرید.
echo ﺖﺳﺍ ﯽﺳﺭﺍﺎﻓ ﻦﺘﻣ ﮏﯾ ﻦﯾﺍ | fribidi
این یک متن فارسی است
به عنوان مثال حاصل کد زیر را در کانکی ببینید:
${font dastnevis:size=20}${alignc}${exec jdate +%W|grep -o --color=never -e ^....|fribidi --ltr}${offset 2}،${offset 2}${exec jdate +%V|fribidi --ltr}${offset 2}${exec jdate +%W|grep -o --color=never -e ..$|fribidi --ltr}${offset 2}،${offset 2}${exec jdate +%G|fribidi --ltr}
پیکربندی کامل این کانکی به این صورته ( برای اوبونتو بهتره طبق
این صفحه جلو برید که خیلی راحتتره.):
۱- بستههای مورد نیاز از AUR: این بستهها conky-lua و conkywx و jcal
۲-
قلمهای مورد نیاز و قلم
دستنویس (در شکل جدید از قلمی استفاده کردهام که نمیتوانم به صورت عمومی منتشر کنم (برای فارسی). قلم رو باید خودتون در تنظیم کانکی عوض کنید و قلمی رو قرار بدید که در سیستمتون وجود داره).
۳- پروندهها:
~/.conkyrc
# Conky settings #
#background no
update_interval 2
cpu_avg_samples 2
net_avg_samples 2
override_utf8_locale yes
double_buffer yes
no_buffers yes
text_buffer_size 2048
#imlib_cache_size 0
temperature_unit fahrenheit
# Window specifications #
own_window yes
own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager
own_window_argb_visual yes
own_window_argb_value 100
own_window_transparent yes
# Window specifications #
default_color DDF2FF
draw_borders no
#border_margin 10
draw_graph_borders yes
draw_outline no
draw_shades no
minimum_size 260 250
maximum_width 260
alignment tr
gap_x 0
gap_y 0
# Text settings #
use_xft yes
xftfont DroidSans:size=8.75
xftalpha 0.1
uppercase no
# color defs - change as required
color0 White #FFFFFF
color1 Ivory #FFFFF0
color2 Ivory2 #EEEEE0
color3 Ivory3 #CDCDC1
color4 1793d1 #0b79ac
color5 Tan2 #EE9A49
color6 Gray #7E7E7E
color7 AntiqueWhite4 #8B8378
color8 DimGray #696969
color9 Tomato #FF6347
####
## Add spaces to keep things from moving around?
## Only affects certain objects.
#
#use_spacer right
#####
## Load Lua for shading (optional)
## Set the path to your script here.
#
lua_load ~/.conky/draw_bg.lua
lua_draw_hook_pre draw_bg
####
## Load Lua for bargraphs (required)
## Set the path to your script here.
#
lua_load ~/.conky/bargraph_small.lua
lua_draw_hook_post main_bars
####
## Define the locations of Conkywx files (required)
## Set the path to your .confs, seds, and templates here.
## Tips n' Tricks: seds files must be marked as executable, e.g. have execute permissions.
#
TEXT
##################################
## LOGO ##
##################################
## Uncomment for hard-coded ID (static)
#${voffset 5}${font OpenLogos:size=40}${color4}B${font}${voffset -30}${font UbuntuTitleBold:size=19.6}$alignc arch${offset 7}Linux${font}
${voffset -4}${image ~/.conky/archlogo.png -p 0,0 -s 180x50}
## Uncomment for soft-coded ID (dynamic)
# ${voffset -80}${font OpenLogos:size=103}${color3}v${font}${voffset -76}${goto 179}${font UbuntuTitleBold:size=19.6}${color4}${pre_exec cat /etc/*release | grep 'RELEASE' | awk -F'=' '{print $2}'}${font}
####
## Additional ID (branch version, code name, release date, etc.)
#${voffset -1}${goto 188}${font Ubuntu-B:size=8.1}${color4}alpha 1${font}
##################################
## SYSTEM ##
##################################
${voffset 40}${font DroidSans:bold:size=8.25}${color4}SYSTEM${offset 8}${color8}${voffset -2}${hr 2}${font}
# ${voffset 4}${font OpenLogos:size=10}${color3}u${voffset -4}${font DroidSans:size=8.6}${color3}${offset 5}${pre_exec lsb_release -sd || cat /etc/*release}${font}
${voffset 2}${offset -2}${font OpenLogos:size=12}${color3}B${voffset -4}${font DroidSans:size=8.6}${color3}${offset 3}${sysname}${offset 3}${kernel}${alignr}${font DroidSans:size=8.3}${machine}${font}
#${voffset 2}${font StyleBats:size=10}${color3}d${voffset -2}${font DroidSans:size=8.6}${color3}${offset 5}nVidia GeForce 7600 GT${alignr}${font DroidSans:size=8.3}${pre_exec dpkg --status nvidia-current | grep Version | cut -f 1 -d '-' | sed 's/[^.,0-9]//g'}${font}
${voffset 2}${font StyleBats:size=10}${color3}A${voffset -1}${font DroidSans:size=8.6}${color3}${offset 5}AMD$alignc${alignr 1}${font DroidSans:size=8.3}${freq_g cpu}${offset 1}GHz${font}
${voffset 2}${font StyleBats:size=10}${color3}O${voffset -1}${font DroidSans:size=8.6}${color3}${offset 5}Temp$alignc${alignr 1}${font DroidSans:size=8.3}${hwmon 0 temp 1}°F${offset 1}-${hwmon 1 temp 1}°F${font}
#${voffset 2}${offset -2}${font StyleBats:size=10}${color3}O${voffset -4}${font DroidSans:size=8.6}${color3}${offset 5}Temp${alignc}${alignr 1}${font DroidSans:size=8.3}${hwmon 0 temp 1}°C${offset 1}-${offset 1}${hwmon 1 temp 1}°CC${font}
${voffset 2}${font StyleBats:size=10}${color3}q${voffset -1}${font DroidSans:size=8.6}${color3}${offset 5}System${offset 3}Uptime${alignr}${font DroidSans:size=8.3}${uptime_short}${font}
##################################
## PROCESSORS ##
##################################
#${voffset 2}${font DroidSans:bold:size=8}${color4}PROCESSORS${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 2}${font StyleBats:size=9.9}${color3}k${voffset -2}${font DroidSansFallback:size=8.39}${color3}${offset 2}CPU${offset 5}${font DroidSans:size=8.3}${cpu cpu}%${font}
#${voffset 2}${font StyleBats:size=9.9}${color3}k${voffset -2}${font DroidSansFallback:size=8.39}${color3}${offset 2}CPU2${offset 5}${font DroidSans:size=8.3}${cpu cpu2}%${font}
#${voffset 2}${font StyleBats:size=9.9}${color3}k${voffset -2}${font DroidSansFallback:size=8.39}${color3}${offset 2}CPU3${offset 5}${font DroidSans:size=8.3}${cpu cpu3}%${font}
##################################
## MEMORY ##
##################################
#${voffset 5}${font DroidSans:bold:size=8}${color4}MEMORY${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font StyleBats:size=10}${color3}l${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 3}RAM${goto 97}${font DroidSans:size=8.3}${mem}${goto 133}/${offset 5}${memmax}${alignr}${memperc}%${font}
##################################
## HDD ##
##################################
#${voffset 15}${font DroidSans:bold:size=8}${color4}HDD${offset 8}${color8}${voffset -2}${hr 2}${font}
#${voffset 6}${font StyleBats:size=9.9}${color3}x${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}ROOT${goto 95}${font DroidSans:size=8.3}${fs_used /}${goto 133}/${offset 5}${fs_size /}${alignr}${fs_free_perc /}%${font}
${voffset 20}${font StyleBats:size=9.9}${color3}x${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}HOME${goto 95}${font DroidSans:size=8.3}${fs_used /home}${goto 133}/${offset 5}${fs_size /home}${alignr}${fs_free_perc /home}%${font}
${voffset 20}${font StyleBats:size=9.9}${color3}x${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}Personal${goto 95}${font DroidSans:size=8.3}${fs_used /media/Personal}${goto 133}/${offset 5}${fs_size /media/Personal}${alignr}${fs_free_perc /media/Personal}%${font}
#${voffset 15}${font StyleBats:size=9.9}${color3}4${voffset -2}${font DroidSansFallback:size=8.3}${color3}${offset 4}SWAP${goto 95}${font DroidSans:size=8.3}${swap}${goto 133}/${offset 5}${swapmax}${alignr}${swapperc}%${font}
##################################
## NETWORK ##
##################################
${voffset 15}${font DroidSans:bold:size=8}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset 4}${font PizzaDudeBullets:size=9.5}${color6}T${font DroidSans:size=8.65}${color3}${offset 5}Download${goto 120}${font DroidSans:size=8.3}${downspeed wlp2s0}${alignr}${font DroidSans:size=8.3}${totaldown wlp2s0}${font}
${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}N${font DroidSans:size=8.65}${color3}${offset 5}Upload${goto 120}${font DroidSans:size=8.3}${upspeed wlp2s0}${alignr}${font DroidSans:size=8.3}${totalup wlp2s0}${font}
${voffset 4}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color3}${offset 5}Private${offset 3}IP${goto 123}${font DroidSansFallback:size=8.3}${addr wlp2s0}${alignr}${font DroidSans:size=8.5}WiFi${font}
#${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color3}${offset 5}Private${offset 3}IP${goto 123}${font DroidSansFallback:size=8.5}LAN${alignr}${font DroidSans:size=8.3}${addr eth0}${font}
${voffset 0}${font PizzaDudeBullets:size=9.5}${color6}a${font DroidSans:size=8.65}${color3}${offset 5}Public${offset 7}IP${goto 121}${font DroidSansFallback:size=8.3}${execi 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}${alignr}${font DroidSans:size=8.5}WAN${font}
##################################
## TIME ##
##################################
${voffset 4}${font DroidSans:bold:size=8}${color4}TIME${offset 8}${color8}${voffset -2}${hr 2}${font}
${voffset -4}${font RadioSpace:size=32}${color3}${if_match ${time %l}<=9}${alignc 7}${time %l:%M%p}${else}${if_match ${time %l}>=10}${alignc -1}${time %l:%M%p}${endif}${endif}${font}
${voffset 0}${font :size=10}${alignc}${color orange}GMT ${color3}${tztime GMT %H:%M} ${font :size=10}${alignc}${color orange}PST ${color3}${tztime PST8PDT %H:%M}${font}
${voffset 0}${font :bold:size=12}${color3}${alignc}${time %A, %d %b. %Y}${font}
${voffset 10}${font AZar:size=20}${alignc}${exec jdate +%W|grep -o --color=never -e ^....|fribidi --ltr}${offset 2}،${offset 2}${exec jdate +%V|fribidi --ltr}${offset 2}${exec jdate +%W|grep -o --color=never -e ..$|fribidi --ltr}${offset 2}،${offset 2}${exec jdate +%G|fribidi --ltr}
##################################
## CONKYWX WEATHER ##
##################################
${voffset -5}${font DroidSans:bold:size=8}${color4}Weather${offset 8}${color8}${voffset -2}${hr 2}${font}
${execpi 900 conkywx -c ~/.conky/conkywx.conf -t ~/.conky/wx-wu-font-slim-template.sh}
~/.conky/conkywx.conf
# -----------------------------------------------------------------------
# Wund Weather Config File
# -----------------------------------------------------------------------
# THIS PROGRAM IS FOR PERSONAL AND PRIVATE USE ONLY
# CONTACT WUNDERGROUND.COM FOR PROFESSIONAL SOLUTIONS
# CAVEAT: No guarantee that this program will work on all platforms,
# Use At Your Own Risk.
# -----------------------------------------------------------------------
# Use XML data from wunderground
# -----------------------------------------------------------------------
# NOTE: If enabled, you must supply the XML ID of the station (below)
# [0] no
# [1] yes
#use_xml=1
# use_xml=
# -----------------------------------------------------------------------
# xml_ID
# -----------------------------------------------------------------------
# You can use the xml data which is provided at wunderground
# If station is rapid fire then this xml is updated every 2.5 seconds or
# there about - so one gets pretty much real-time weather data. Though the
# data contained is current and all predictive and astro data for sun and
# moon and 7 day forecast comes from the main web page for your Location.
#
# To get this xml_ID you need to visit the location of your interest
# which will give you the *Location* url [US] or number [rest of the world]
# at the bottom of the page you have a listing of private weather station
# feeding wunderground
#
# You will also notice a lot of them - under Type column have Rapid Fire in green -
# ideally one of these would make a good choice and you can select one closest to your
# location. The last part of the url is the number after the ID=. infact if you hover
# your mouse over the station name on the main page you will see a popup with the link
# url which has like this ID=I00020B4 - you can see examples below
# # Folsom
#xml_ID=KCAFOLSO16
# Morristown area
# xml_ID=I00020B4
# Near warnbro WA
# xml_ID=IWESTERN36
# tampa florida
# xml_ID=KFLTAMPA46
# Tehran
# xml_ID=OIII
# -----------------------------------------------------------------------
# Location settings
# -----------------------------------------------------------------------
# Enter the location number from weather underground web page url
# + most locations have a location number - BUT some do not - like the US sites!!!
# + in which case use the URL and set Location to url
# + Location=url
# + OR
# + Location=number
# + Use only one location per config file!
# + for more than one location - create a new config file and give the path
# + to it with a -c command line option
# + there are some test cases listed below - just ensure only one location is uncommented.
# If you cannot figure the number just use the full url to that page.
# # Folsom
Location=95630
## Tehran
Location=40754
# -----------------------------------------------------------------------
# Test location settings
# -----------------------------------------------------------------------
# Testing URL - to test the various locations - a Location can be
#+ uncommented it will override the Location above
#+
# New delhi Palam
# Location=42181
# Paris France
# Location=07157
# perth western australia
# Location=94610
# Location=95608
# Location="http://www.wunderground.com/cgi-bin/findweather/getForecast?query=-32.33395004,115.74904633&sp=IWESTERN36"
# Morristown, NJ USA
# Location=http://www.wunderground.com/US/NJ/Morristown.html
# Reykjavik, Iceland
# Location=04030
# Cape town South Africa
# Location=68816
# Gloucestershire, United Kingdom
# Location=03633
# Dubai UAE
# Location=41194
# Prospect Creek, Alaska
# Location=http://www.wunderground.com/q/zmw:99726.18.99999
# Svalbard, Norway
# Location=http://www.wunderground.com/cgi-bin/findweather/getForecast?query=zmw:00000.1.01008
# Dresden Germany
# Location=10488
# Location=http://www.wunderground.com/cgi-bin/findweather/getForecast?query=zmw:00000.1.10488
# Location=http://www.wunderground.com/cgi-bin/findweather/getForecast?query=02155
# Hawaii national park
# Location=http://www.wunderground.com/q/zmw:96718.1.99999
# Tampa Location and Tampa university data
# Location=http://www.wunderground.com/cgi-bin/findweather/getForecast?query=zmw:33606.1.99999
# -----------------------------------------------------------------------
# Units to use and Downloaded
# -----------------------------------------------------------------------
# Enter the units to get and use, centigrade or Fahrenheit
# [SI] metric
# [IM] imperial/english
Units_to_Use=SI
Units_downloaded=IM
# -----------------------------------------------------------------------
# Show units, use short date, show notification
# -----------------------------------------------------------------------
# [0] disable
# [1] enable
Units_show=1 # if you want to see units like km/h etc in conky
use_short_date=1 # Sunday, 27 will become Sun 27
show_notification=1 # Every update a popup notification shows
# -----------------------------------------------------------------------
# Path/image to back ground image
# -----------------------------------------------------------------------
path_to_background_image="$cwxpath/images/bgrounds"
# -----------------------------------------------------------------------
# How do you want the present conditon to look like
# -----------------------------------------------------------------------
# [0] Capitalize The First Letter Of All Words, In The Present Condition
# [1] All UPPERCASE
# [2] all lowercase
# [3] Capitilize the first letter/first word only, in the present condition
pc_what_case=0
# -----------------------------------------------------------------------
# use blacklist to shorten Present Condition text
# -----------------------------------------------------------------------
# [0] no
# [1] yes
use_pcondition_blacklist=1
# -----------------------------------------------------------------------
# Add words you want to remove from Present Condition text in this list
# -----------------------------------------------------------------------
#+ Separate words with space, if two words together then quote the words
#+ with " character.
#+ To replace words use format "orginaltext:newtext" and quote text with " character
#+ To replace everything use format "*orginaltext*:newtext" and quote text
#+ with " character
#+ The list is not case sensitive.
#+ output will be based on pc_what_case
#+ To use this blacklist you must set use_pcondition_blacklist=1
pcondition_blacklist=( "light:lt" "heavy:hvy" "Severe:svr" "Widespread:ws" pellets pellet Freezing "Thunderstorms:t-storms" "Thunderstorm:t-storms" "with:+" "and:+" "Patches of" "Low Drifting" Small Precipitation )
# -----------------------------------------------------------------------
# Process the final template before showtime
# -----------------------------------------------------------------------
# [0] no
# [1] yes
use_template_cleanup=1
# -----------------------------------------------------------------------
# Process the final template before showtime
# -----------------------------------------------------------------------
#+ Separate groups with space, separate what you want to change with change
#+ data to change with : character ex:- 'Calm km/h:${offset 8}Calm'
#+ - make sure it is in single quotes
#+ to remove some part completely end of the word group put a colon '0.0 mm:'
template_cleanup=( 'Calm km/h:${offset 8}Calm' 'Calm mph:${offset 8}Calm' 'NonFedAWOS SAFDARJUNG IN IN SUPERAWOS:Safdarjung MADIS' 'IDELHINE8:Delhi GK2 pws' 'Emerson St. Across from Police Station:Emerson St.' 'New Delhi / Safdarjung:Safdarjung Airport' )
# -----------------------------------------------------------------------
# Use UPPERCASE or lowercase AM PM or am pm for 12 hour time format
# -----------------------------------------------------------------------
# [0] ALL UPPERCASE (EXAMPLE: 03:00 PM)
# [1] all lowercase (example: 03:00 pm) [Default]
# [2] Hide am pm (example: 03:00)
# [3] all lowercase with no padding/spacing (example: 3:00pm)
# [4] Use custom time format. State the format in custom_time_format
# NOTE: This will only work if Time_format=12 (below)
show_lowercase_ampm=1
# -----------------------------------------------------------------------
# Set custom time format - see man date in a terminal to get more options
# -----------------------------------------------------------------------
# NOTE: Be sure to quote the time format in single quotes as shown
custom_time_format='+%_I:%M'
# -----------------------------------------------------------------------
# Today date format - used in last fetch
# -----------------------------------------------------------------------
today_date_format="%A %b, %d %Y" # [Default]
# -----------------------------------------------------------------------
# Time format to use 12 or 24 hour format
# -----------------------------------------------------------------------
# [12] AM or PM (example: 03:00 PM)
# [24] 24 hour format (example: 15:00) [Default]
Time_format=12
# -----------------------------------------------------------------------
# show deg symbol in forecast temps,
# -----------------------------------------------------------------------
# [0] Hide all deg symbols (example: 95/63)
# [1] Show all deg symbols (example: 95°/63°)
# [2] Show all deg symbols, depending on Unit_to_Use (metric: 35°/17°) (imperial: 95°/63°)
# [3] Show deg symbol ONLY, after forecast pair (example: 95/63°)
# [4] Show deg symbol AND unit, after forecast pair (example: 95/63°F) [Default]
show_degsym_fc_temp=4
# -----------------------------------------------------------------------
# characters to use for forecast trends
# -----------------------------------------------------------------------
# characters to use for forecast trends - qoute in single ' quotes
#+ you can use unicode fonts in you script like DejaVu Sans ...
#+ if you want to change these values - test them first in terminal as
#+ example echo -e '\u2194'
# Unicode fonts code
# risingtrend='\u2191'
# fallingtrend='\u2193'
# steadytrend='\u2194'
# Arrows font code
risingtrend='c'
# risingtrend='x'
fallingtrend='d'
# fallingtrend='v'
steadytrend='RQ'
# -----------------------------------------------------------------------
# Choose weather icon set
# -----------------------------------------------------------------------
# [1] Enable conkywx icon set org 12 by bharathp666 complete set redone by me 24 icons
# [2] Enable icon set origin not known
# [3] Enable icon set tick weather icons by xiao4
# [4] Enable icon set Sticker Weather Icons by Kortoik
wx_iconset=1
# -----------------------------------------------------------------------
# Moon font characters with or without outline ring
# -----------------------------------------------------------------------
# default so far has been simple without outline ring
# [0] Disable outline and use simple
# [1] Enable outline and disable simple
moon_outline=1
# -----------------------------------------------------------------------
# Allow Conkywx to check for latest version release
# -----------------------------------------------------------------------
# [0] Never check for a new version of Conkywx
# [1] Check for a new version, every 24 hours
enable_new_version_check=1
# -----------------------------------------------------------------------
# Minimum time the script allows the wesite to be polled
# -----------------------------------------------------------------------
# NOTE: This setting MUST BE LESS THAN the fetch frequency in your Conky script.
#
# Uncomment for Conky scripts that fetch data every 900 seconds (15 minutes).
minimum_fetch_time=3600
#
# Uncomment for testing purposes. Fetches fresh data every time Conky is restarted.
# minimum_fetch_time=0
# -----------------------------------------------------------------------
# --- DO NOT TOUCH SECTION ---
# URLs used in this program
# -----------------------------------------------------------------------
main_url="http://www.wunderground.com/global/stations/"
xml_url="http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID="
~/.conky/draw_bg.lua
--[[ Background by londonali1010 (2009)
VinDSL Background Hack (2010-2011)
This script draws a background to the Conky window. It covers the whole of the Conky window, but you can specify rounded corners, if you wish.
To call this script in Conky, use (assuming you have saved this script to ~/scripts/):
lua_load ~/scripts/draw_bg.lua
lua_draw_hook_pre draw_bg
Changelog:
+ v3.1 VinDSL Hack (12.01.2011) Added more shading example(s).
+ v3.0 VinDSL Hack (01.28.2011) Killed memory leak.
+ v2.4 VinDSL Hack (01.25.2011) Declared all variables in local.
+ v2.3 VinDSL Hack (12.31.2010) Added shading example(s).
+ v2.2 VinDSL Hack (12.30.2010) Cleaned up the code a bit.
+ v2.1 VinDSL Hack (12.24.2010) Added cairo destroy function(s).
+ v2.0 VinDSL Hack (12.21.2010) Added height adjustment variable.
+ v1.0 Original release (07.10.2009)
]]
--------------START OF PARAMETERS ------------
-- Change these settings to affect your background:
-- "corner_r" is the radius, in pixels, of the rounded corners. If you don't want rounded corners, use 0.
local corner_r = 13
-- Set the colour and transparency (alpha) of your background (0.00 - 0.99).
-- (Light Shading Example)
-- local bg_colour = 0x4d4d4d
-- local bg_alpha = 0.01
-- (Medium Shading Example)
-- local bg_colour = 0x222222
-- local bg_alpha = 0.08
-- (Dark Shading Example)
-- local bg_colour = 0x000000
-- local bg_alpha = 0.05
-- (Brown Shading Example)
-- local bg_colour = 0x330000
-- local bg_alpha = 0.07
-- (Ivory Black Shading Example)
local bg_colour = 0x292421
local bg_alpha = 0.05
-- (Metallic Gold Shading Example)
-- local bg_colour = 0xd4af37
-- local bg_alpha = 0.01
-- (Navy Blue Shading Example)
-- local bg_colour = 0x33339F
-- local bg_alpha = 0.11
-- (Olive Green Shading Example)
-- local bg_colour = 0x333319
-- local bg_alpha = 0.08
-- (Silver Shading Example)
-- local bg_colour = 0xc0c0c0
-- local bg_alpha = 0.01
-- Tweaks the height of your background, in pixels. If you don't need to adjust the height, use 0.
-- (Default Setting)
-- local vindsl_hack_height = 0
local vindsl_hack_height = -2
---------------END OF PARAMETERS -------------
require 'cairo'
local cs, cr = nil
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_draw_bg()
if conky_window == nil then return end
if cs == nil then cairo_surface_destroy(cs) end
if cr == nil then cairo_destroy(cr) end
local w = conky_window.width
local h = conky_window.height
local v = vindsl_hack_height
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)
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+v-corner_r)
cairo_curve_to(cr,w,h+v,w,h+v,w-corner_r,h+v)
cairo_line_to(cr,corner_r,h+v)
cairo_curve_to(cr,0,h+v,0,h+v,0,h+v-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(bg_colour,bg_alpha))
cairo_fill(cr)
cairo_surface_destroy(cs)
cairo_destroy(cr)
end
~/.conky/bargraph_small.lua
--[[
BARGRAPH WIDGET
v2.1 by wlourf (07 Jan. 2011)
this widget draws a bargraph with different effects
http://u-scripts.blogspot.com/2010/07/bargraph-widget.html
To call the script in a conky, use, before TEXT
lua_load /path/to/the/script/bargraph.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:
x,y - coordinates of the starting point of the bar, default = middle of the conky window
cap - end of cap line, ossibles values are r,b,s (for round, butt, square), default="b"
http://www.cairographics.org/samples/set_line_cap/
angle - angle of rotation of the bar in degress, default = 0 (i.e. a vertical bar)
set to 90 for an horizontal bar
skew_x - skew bar around x axis, default = 0
skew_y - skew bar around y axis, default = 0
blocks - number of blocks to display for a bar (values >0) , default= 10
height - height of a block, default=10 pixels
width - width of a block, default=20 pixels
space - space between 2 blocks, default=2 pixels
angle_bar - this angle is used to draw a bar on a circular way (ok, this is no more a bar !) default=0
radius - for cicular bars, internal radius, default=0
with radius, parameter width has no more effect.
Colours below are defined into braces {colour in hexadecimal, alpha}
fg_colour - colour of a block ON, default= {0x00FF00,1}
bg_colour - colour of a block OFF, default = {0x00FF00,0.5}
alarm - threshold, values after this threshold will use alarm_colour colour , default=max
alarm_colour - colour of a block greater than alarm, default=fg_colour
smooth - (true or false), create a gradient from fg_colour to bg_colour, default=false
mid_colour - colours to add to gradient, with this syntax {position into the gradient (0 to1), colour hexa, alpha}
for example, this table {{0.25,0xff0000,1},{0.5,0x00ff00,1},{0.75,0x0000ff,1}} will add
3 colours to gradient created by fg_colour and alarm_colour, default=no mid_colour
led_effect - add LED effects to each block, default=no led_effect
if smooth=true, led_effect is not used
possibles values : "r","a","e" for radial, parallel, perdendicular to the bar (just try!)
led_effect has to be used with theses colours :
fg_led - middle colour of a block ON, default = fg_colour
bg_led - middle colour of a block OFF, default = bg_colour
alarm_led - middle colour of a block > ALARM, default = alarm_colour
reflection parameters, not available for circular bars
reflection_alpha - add a reflection effect (values from 0 to 1) default = 0 = no reflection
other values = starting opacity
reflection_scale - scale of the reflection (default = 1 = height of text)
reflection_length - length of reflection, define where the opacity will be set to zero
values from 0 to 1, default =1
reflection - position of reflection, relative to a vertical bar, default="b"
possibles values are : "b","t","l","r" for bottom, top, left, right
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 (10 Feb. 2010) original release
v1.1 (13 Feb. 2010) numeric values can be passed instead conky stats with parameters name="", arg = numeric_value
v1.2 (28 Feb. 2010) just renamed the widget to bargraph
v1.3 (03 Mar. 2010) added parameters radius & angle_bar to draw the bar in a circular way
v2.0 (12 Jul. 2010) rewrite script + add reflection effects and parameters are now set into tables
v2.1 (07 Jan. 2011) Add draw_me parameter and correct memory leaks, thanks to "Creamy Goodness"
-- 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'
----------------START OF PARAMETERS ----------
function conky_main_bars()
local bars_settings={
{ --[ Graph for CPU1 ]--
name="cpu",
arg="cpu",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=70,y=142,
blocks=64,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Memory ]--
name="memperc",
arg="",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=25,y=170,
blocks=79,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
{ --[ Graph for Home ]--
name="fs_used_perc",
arg="/home",
max=100,
alarm=50,
alarm_colour={0xFF0000,0.72},
bg_colour={0xFFFFFF,0.25},
fg_colour={0x00FF00,0.55},
mid_colour={{0.45,0xFFFF00,0.70}},
x=25,y=205,
blocks=79,
space=1,
height=2,width=5,
angle=90,
smooth=true
},
}
-----------END OF PARAMETERS--------------
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)
--prevent segmentation error when reading cpu state
if tonumber(conky_parse('${updates}'))>3 then
for i in pairs(bars_settings) do
draw_multi_bar_graph(bars_settings[i])
end
end
cairo_destroy(cr)
cairo_surface_destroy(cs)
cr=nil
end
function draw_multi_bar_graph(t)
cairo_save(cr)
--check values
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
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'")
return
end
if t.name==nil then t.name="" end
if t.arg==nil then t.arg="" end
--set default values
if t.x == nil then t.x = conky_window.width/2 end
if t.y == nil then t.y = conky_window.height/2 end
if t.blocks == nil then t.blocks=10 end
if t.height == nil then t.height=10 end
if t.angle == nil then t.angle=0 end
t.angle = t.angle*math.pi/180
--line cap style
if t.cap==nil then t.cap = "b" end
local cap="b"
for i,v in ipairs({"s","r","b"}) do
if v==t.cap then cap=v end
end
local delta=0
if t.cap=="r" or t.cap=="s" then delta = t.height end
if cap=="s" then cap = CAIRO_LINE_CAP_SQUARE
elseif cap=="r" then
cap = CAIRO_LINE_CAP_ROUND
elseif cap=="b" then
cap = CAIRO_LINE_CAP_BUTT
end
--end line cap style
--if t.led_effect == nil then t.led_effect="r" end
if t.width == nil then t.width=20 end
if t.space == nil then t.space=2 end
if t.radius == nil then t.radius=0 end
if t.angle_bar == nil then t.angle_bar=0 end
t.angle_bar = t.angle_bar*math.pi/360 --halt angle
--colours
if t.bg_colour == nil then t.bg_colour = {0x00FF00,0.5} end
if #t.bg_colour~=2 then t.bg_colour = {0x00FF00,0.5} end
if t.fg_colour == nil then t.fg_colour = {0x00FF00,1} end
if #t.fg_colour~=2 then t.fg_colour = {0x00FF00,1} end
if t.alarm_colour == nil then t.alarm_colour = t.fg_colour end
if #t.alarm_colour~=2 then t.alarm_colour = t.fg_colour end
if t.mid_colour ~= nil then
for i=1, #t.mid_colour do
if #t.mid_colour[i]~=3 then
print ("error in mid_color table")
t.mid_colour[i]={1,0xFFFFFF,1}
end
end
end
if t.bg_led ~= nil and #t.bg_led~=2 then t.bg_led = t.bg_colour end
if t.fg_led ~= nil and #t.fg_led~=2 then t.fg_led = t.fg_colour end
if t.alarm_led~= nil and #t.alarm_led~=2 then t.alarm_led = t.fg_led end
if t.led_effect~=nil then
if t.bg_led == nil then t.bg_led = t.bg_colour end
if t.fg_led == nil then t.fg_led = t.fg_colour end
if t.alarm_led == nil then t.alarm_led = t.fg_led end
end
if t.alarm==nil then t.alarm = t.max end --0.8*t.max end
if t.smooth == nil then t.smooth = false end
if t.skew_x == nil then
t.skew_x=0
else
t.skew_x = math.pi*t.skew_x/180
end
if t.skew_y == nil then
t.skew_y=0
else
t.skew_y = math.pi*t.skew_y/180
end
if t.reflection_alpha==nil then t.reflection_alpha=0 end
if t.reflection_length==nil then t.reflection_length=1 end
if t.reflection_scale==nil then t.reflection_scale=1 end
--end of default values
local function rgb_to_r_g_b(col_a)
return ((col_a[1] / 0x10000) % 0x100) / 255., ((col_a[1] / 0x100) % 0x100) / 255., (col_a[1] % 0x100) / 255., col_a[2]
end
--functions used to create patterns
local function create_smooth_linear_gradient(x0,y0,x1,y1)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_smooth_radial_gradient(x0,y0,r0,x1,y1,r1)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(t.fg_colour))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(t.alarm_colour))
if t.mid_colour ~=nil then
for i=1, #t.mid_colour do
cairo_pattern_add_color_stop_rgba (pat, t.mid_colour[i][1], rgb_to_r_g_b({t.mid_colour[i][2],t.mid_colour[i][3]}))
end
end
return pat
end
local function create_led_linear_gradient(x0,y0,x1,y1,col_alp,col_led)
local pat = cairo_pattern_create_linear (x0,y0,x1,y1) ---delta, 0,delta+ t.width,0)
cairo_pattern_add_color_stop_rgba (pat, 0.0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1.0, rgb_to_r_g_b(col_alp))
return pat
end
local function create_led_radial_gradient(x0,y0,r0,x1,y1,r1,col_alp,col_led,mode)
local pat = cairo_pattern_create_radial (x0,y0,r0,x1,y1,r1)
if mode==3 then
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_alp))
cairo_pattern_add_color_stop_rgba (pat, 0.5, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
else
cairo_pattern_add_color_stop_rgba (pat, 0, rgb_to_r_g_b(col_led))
cairo_pattern_add_color_stop_rgba (pat, 1, rgb_to_r_g_b(col_alp))
end
return pat
end
local function draw_single_bar()
--this fucntion is used for bars with a single block (blocks=1) but
--the drawing is cut in 3 blocks : value/alarm/background
--not zvzimzblr for circular bar
local function create_pattern(col_alp,col_led,bg)
local pat
if not t.smooth then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, 0,t.width/2,-t.height,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, -t.height/2, 0, t.width/2,-t.height/2,t.height/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if bg then
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
else
pat = create_smooth_linear_gradient(t.width/2, 0, t.width/2,-t.height)
end
end
return pat
end
local y1=-t.height*pct/100
local y2,y3
if pct>(100*t.alarm/t.max) then
y1 = -t.height*t.alarm/100
y2 = -t.height*pct/100
if t.smooth then y1=y2 end
end
if t.angle_bar==0 then
--block for fg value
local pat = create_pattern(t.fg_colour,t.fg_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,0,t.width,y1)
cairo_fill(cr)
cairo_pattern_destroy(pat)
-- block for alarm value
if not t.smooth and y2 ~=nil then
pat = create_pattern(t.alarm_colour,t.alarm_led,false)
cairo_set_source(cr,pat)
cairo_rectangle(cr,0,y1,t.width,y2-y1)
cairo_fill(cr)
y3=y2
cairo_pattern_destroy(pat)
else
y2,y3=y1,y1
end
-- block for bg value
cairo_rectangle(cr,0,y2,t.width,-t.height-y3)
pat = create_pattern(t.bg_colour,t.bg_led,true)
cairo_set_source(cr,pat)
cairo_pattern_destroy(pat)
cairo_fill(cr)
end
end --end single bar
local function draw_multi_bar()
--function used for bars with 2 or more blocks
for pt = 1,t.blocks do
--set block y
local y1 = -(pt-1)*(t.height+t.space)
local light_on=false
--set colors
local col_alp = t.bg_colour
local col_led = t.bg_led
if pct>=(100/t.blocks) or pct>0 then --ligth on or not the block
if pct>=(pcb*(pt-1)) then
light_on = true
col_alp = t.fg_colour
col_led = t.fg_led
if pct>=(100*t.alarm/t.max) and (pcb*pt)>(100*t.alarm/t.max) then
col_alp = t.alarm_colour
col_led = t.alarm_led
end
end
end
--set colors
--have to try to create gradients outside the loop ?
local pat
if not t.smooth then
if t.angle_bar==0 then
if t.led_effect=="e" then
pat = create_led_linear_gradient (-delta, 0,delta+ t.width,0,col_alp,col_led)
elseif t.led_effect=="a" then
pat = create_led_linear_gradient (t.width/2, -t.height/2+y1,t.width/2,0+t.height/2+y1,col_alp,col_led)
elseif t.led_effect=="r" then
pat = create_led_radial_gradient (t.width/2, y1, 0, t.width/2,y1,t.width/1.5,col_alp,col_led,2)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
else
if t.led_effect=="a" then
pat = create_led_radial_gradient (0, 0, t.radius+(t.height+t.space)*(pt-1),
0, 0, t.radius+(t.height+t.space)*(pt),
col_alp,col_led,3)
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(col_alp))
end
end
else
if light_on then
if t.angle_bar==0 then
pat = create_smooth_linear_gradient(t.width/2, t.height/2, t.width/2,-(t.blocks-0.5)*(t.height+t.space))
else
pat = create_smooth_radial_gradient(0, 0, (t.height+t.space), 0,0,(t.blocks+1)*(t.height+t.space),2)
end
else
pat = cairo_pattern_create_rgba (rgb_to_r_g_b(t.bg_colour))
end
end
cairo_set_source (cr, pat)
cairo_pattern_destroy(pat)
--draw a block
if t.angle_bar==0 then
cairo_move_to(cr,0,y1)
cairo_line_to(cr,t.width,y1)
else
cairo_arc( cr,0,0,
t.radius+(t.height+t.space)*(pt)-t.height/2,
-t.angle_bar -math.pi/2 ,
t.angle_bar -math.pi/2)
end
cairo_stroke(cr)
end
end
local function setup_bar_graph()
--function used to retrieve the value to display and to set the cairo structure
if t.blocks ~=1 then t.y=t.y-t.height/2 end
local value = 0
if t.name ~="" then
value = tonumber(conky_parse(string.format('${%s %s}', t.name, t.arg)))
--$to_bytes doesn't work when value has a decimal point,
--https://garage.maemo.org/plugins/ggit/browse.php/?p=monky;a=commitdiff;h=174c256c81a027a2ea406f5f37dc036fac0a524b;hp=d75e2db5ed3fc788fb8514121f67316ac3e5f29f
--http://sourceforge.net/tracker/index.php?func=detail&aid=3000865&group_id=143975&atid=757310
--conky bug?
--value = (conky_parse(string.format('${%s %s}', t.name, t.arg)))
--if string.match(value,"%w") then
-- value = conky_parse(string.format('${to_bytes %s}',value))
--end
else
value = tonumber(t.arg)
end
if value==nil then value =0 end
pct = 100*value/t.max
pcb = 100/t.blocks
cairo_set_line_width (cr, t.height)
cairo_set_line_cap (cr, cap)
cairo_translate(cr,t.x,t.y)
cairo_rotate(cr,t.angle)
local matrix0 = cairo_matrix_t:create()
tolua.takeownership(matrix0)
cairo_matrix_init (matrix0, 1,t.skew_y,t.skew_x,1,0,0)
cairo_transform(cr,matrix0)
--call the drawing function for blocks
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
if t.reflection=="t" or t.reflection=="b" then cairo_translate(cr,0,-t.height) end
else
draw_multi_bar()
end
--dot for reminder
--[[
if t.blocks ~=1 then
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,t.height/2,3,0,2*math.pi)
cairo_fill(cr)
else
cairo_set_source_rgba(cr,1,0,0,1)
cairo_arc(cr,0,0,3,0,2*math.pi)
cairo_fill(cr)
end]]
--call the drawing function for reflection and prepare the mask used
if t.reflection_alpha>0 and t.angle_bar==0 then
local pat2
local matrix1 = cairo_matrix_t:create()
tolua.takeownership(matrix1)
if t.angle_bar==0 then
pts={-delta/2,(t.height+t.space)/2,t.width+delta,-(t.height+t.space)*(t.blocks)}
if t.reflection=="t" then
cairo_matrix_init (matrix1,1,0,0,-t.reflection_scale,0,-(t.height+t.space)*(t.blocks-0.5)*2*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,-(t.height+t.space)*(t.blocks),t.width/2,(t.height+t.space)/2)
elseif t.reflection=="r" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,delta+2*t.width,0)
pat2 = cairo_pattern_create_linear (delta/2+t.width,0,-delta/2,0)
elseif t.reflection=="l" then
cairo_matrix_init (matrix1,-t.reflection_scale,0,0,1,-delta,0)
pat2 = cairo_pattern_create_linear (-delta/2,0,delta/2+t.width,-0)
else --bottom
cairo_matrix_init (matrix1,1,0,0,-1*t.reflection_scale,0,(t.height+t.space)*(t.reflection_scale+1)/2)
pat2 = cairo_pattern_create_linear (t.width/2,(t.height+t.space)/2,t.width/2,-(t.height+t.space)*(t.blocks))
end
end
cairo_transform(cr,matrix1)
if t.blocks==1 and t.angle_bar==0 then
draw_single_bar()
cairo_translate(cr,0,-t.height/2)
else
draw_multi_bar()
end
cairo_set_line_width(cr,0.01)
cairo_pattern_add_color_stop_rgba (pat2, 0,0,0,0,1-t.reflection_alpha)
cairo_pattern_add_color_stop_rgba (pat2, t.reflection_length,0,0,0,1)
if t.angle_bar==0 then
cairo_rectangle(cr,pts[1],pts[2],pts[3],pts[4])
end
cairo_clip_preserve(cr)
cairo_set_operator(cr,CAIRO_OPERATOR_CLEAR)
cairo_stroke(cr)
cairo_mask(cr,pat2)
cairo_pattern_destroy(pat2)
cairo_set_operator(cr,CAIRO_OPERATOR_OVER)
end --reflection
pct,pcb=nil
end --setup_bar_graph()
--start here !
setup_bar_graph()
cairo_restore(cr)
end
~/.conky/wx-wu-font-slim-template.sh
# background image
#${image [PTBI]/slim-brown-rnd-light.png -p -5,7 -s 300x347}
# Station
${voffset 0}${goto 10}${color3}[SN]
#${goto 10}${color3}Last Update: ${color3}[LU]
#${goto 10}${color3}Last Fetch: ${color3}[LF] LT${font}
${voffset 10}${goto 10}${font ConkyWeather:size=30}${color3}[PIF]${font}
${voffset -50}${goto 70}${font DejaVu Sans Mono:style=Bold:size=20}${color3}[PT]${font}${voffset -10}${font Arrows:size=24} [FCTTF]${font}
${goto 70}${color3}[CT]
${goto 70}${color3}Feels like: ${color3}[FL]
${font ConkyWindNESW:size=40}${color3}[BF]${font}
${voffset -45}${goto 70}${color3}Wind: ${color3}[WS], [WG]
${goto 70}${color3}Visibility: ${color3}[VI]
${goto 70}${color3}UV: ${color3}[UV] - [UVT]
${goto 70}${color3}Rain: ${color3}[RF]
${goto 70}${color3}Pressure: ${color3}[BR]${font Arrows:size=14} [FCTPF]${font}
${font DroidSans:bold:size=8}${color4}Forecast${offset 8}${color8}${voffset -2}${hr 2}${font}
${goto 10}${color3}[D1D]${goto 75}[D2D]${goto 140}[D3D]${goto 205}[D4D]
${voffset 1}${goto 10}${font ConkyWeather:size=30}${color3}[D1F]${goto 75}${color3}[D2F]${goto 140}${color3}[D3F]${goto 205}${color3}[D4F]${font}
${voffset 3}${goto 10}${color3}[D1T]${goto 75}[D2T]${goto 140}[D3T]${goto 205}[D4T]${font}
${voffset 3}${goto 20}${color3}[D1P]${goto 90}[D2P]${goto 150}[D3P]${goto 220}[D4P]${font}
${color8}${hr 2}${font}
برای پیکربندی آبوهوا و پیشبینی به
این نشانی بروید و شهر خود را جستجو کنید و صفحه مربوط به شهر خود را باز کنید. در قسمت آدرس شمارهای میبینید (xxxxx.html). شمارهی xxxxx را در خط ۶۶ پروندهی conkywx.conf به شکل Location=xxxxx بنویسید (برای تهران 40754).