Page 1673 of 2301 FirstFirst ... 6731173157316231663167116721673167416751683172317732173 ... LastLast
Results 16,721 to 16,730 of 23005

Thread: Post your .conkyrc files w/ screenshots

  1. #16721
    Join Date
    Mar 2009
    Beans
    159
    Distro
    Ubuntu 13.04 Raring Ringtail

    Re: Post your .conkyrc files w/ screenshots

    Indeedy! ^^ This was the copy pasta fase, now comes the fun part

    am a bit unclear on the fonts though, is there a special place to download them, like gnome eyecandy or are they special fonts that go into a folder for conky?

  2. #16722
    Join Date
    Aug 2010
    Location
    Arizona USA
    Beans
    2,870
    Distro
    Ubuntu Development Release

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by MarcusA View Post
    [...] am a bit unclear on the fonts though, is there a special place to download them, like gnome eyecandy or are they special fonts that go into a folder for conky?
    You can INSTALL the fonts wherever you normally put them.

    Personally, I install my Conky Fonts in:
    ~/usr/share/fonts/truetype/conkyforecast

    Here's a post concerning font placement:


    BTW, speaking of posts, here's my latest data dump:


    I've been trying to maintain my data dumps, in monthly groupings.

    That way... hopefully... there won't be so many versions trotting around.
    Intel ® P4 Extreme Edition 3.4 (Gallatin) || DFI ® LanParty PRO875B rev B1
    Crucial ® Ballistix Tracer PC4000 1GB || Mountain Mods U2-UFO Opti-1203
    XFX 7600GT 560M AGP (PV-T73A-UDF3) || Corsair HX520W Modular PSU

  3. #16723
    Join Date
    Apr 2007
    Beans
    195

    Re: Post your .conkyrc files w/ screenshots

    THAT is certainly a very interesting question. If you look at the top of any of VinDSL's scripts, whether he did them or someone copied from him, there's this "Installed Fonts (Required)" section. It usually lists all of the fonts and where they came from. Many, but not all, of his fonts he used can be found at dafont.com. Or, as Vin is always putting it, try Google and let the hunt begin.

    We're in the process of convincing him to assemble his fonts into some sort of package for Conky users to nab from either the web or a repository/PPA source of some sort.

    AS to fonts, I don't know specifically which version of Linux you're using so I'll make this as general as possible. Go to your /home directory. Fastest way to get all this next part done is to go to a command prompt or terminal of some flavour. Type this:

    Code:
    cd ~
    mkdir .fonts
    Now, every time you download one or more fonts, unzip them in your /home/user/.fonts folder. Then, type this into a command prompt.

    Code:
    fc-cache -f -v
    To make this easier as time goes on, you'll want an alias within your .bashrc file to shortcut this. LUCKILY! There is a file that the current Ubuntu family of developers built into their custom .bashrc file standard with every install called ".bash_aliases" which you can add this to. You'll want to do this:

    Code:
    sudo (gedit/nano/kate/mousepad/whatever your favourite text editor is) .bash_aliases
    Then add this line to the file:

    Code:
    alias fontreload ='fc-cache -f -v'
    Then the next time you boot into Linux, you will have fast access to reloading all your fonts when you download new ones or have one or more errors with them. And you will, when you get hooked on little tweaks to Conky. Oh, sure, you'll achieve a certain level of satisfaction with your setup, but you'll be visiting this thread some day too, and you'll see a new font that someone has tried and you'll say to yourself "I think I'll try that!" and then twenty updates later, you'll have added 40 fonts from the internet, forgotten what the sun looks like, and wondered where the past day has gone. So, this is a handy command for just such a time!
    Last edited by 42dorian; March 27th, 2011 at 12:25 AM.

  4. #16724
    Join Date
    Sep 2007
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by bfmetcalf View Post
    Code:
    metcalf@metcalf:~$ df -h
    Filesystem            Size  Used Avail Use% Mounted on
    /dev/sda1             220G   14G  195G   7% /
    none                  1.9G  312K  1.9G   1% /dev
    none                  1.9G  264K  1.9G   1% /dev/shm
    none                  1.9G  140K  1.9G   1% /var/run
    none                  1.9G     0  1.9G   0% /var/lock
    /home/metcalf/.Private
                          220G   14G  195G   7% /home/metcalf
    /dev/sdb1             466G  177G  290G  38% /media/BRIANS BOOK
    Your /home isn't on it's own file system (partition) or it would show up as something like /dev/sda2 .... mounted on /home - like the line for /dev/sda1. So it won't show using the conky fs_free etc ..
    The mark of an honest man ... is that he means what he says and knows what he means.
    A.R.

  5. #16725
    Join Date
    Apr 2007
    Beans
    195

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by ddnev45 View Post
    Your /home isn't on it's own file system (partition) or it would show up as something like /dev/sda2 .... mounted on /home - like the line for /dev/sda1. So it won't show using the conky fs_free etc ..
    I'll add to this that it also looks like your /home directory may not be on it's own partition, being that it is still being registered on /dev/sda1, but you do have other partitions that have directories mounted on /dev/sdb1, but their mount points are folders INSIDE /home. If you were to change the monitoring of the /home partition to one of the folders inside it that ARE on other partitions, you would get the correct results.

  6. #16726
    Join Date
    Feb 2011
    Location
    Norway
    Beans
    110
    Distro
    Lubuntu

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by bfmetcalf View Post
    So I am posting my conky files and a screen shot. I have everything working pretty well except that the root and home folders % used numbers are 93% for both, which if you do the math is obviously wrong. The wireless area is also incorrect. The IP numbers and Down/Up bars are both correct just the other info and signal strength is incorrect. Appreciate any help.

    .conkyrc

    Code:
    ##################################
    ## VinDSL | rev. 10-12-30 20:45 ##
    ##################################
    
    ####
    ## Use XFT? Required to Force UTF8 (see below).
    #
    use_xft yes
    xftfont LiberationSans:size=8.85
    xftalpha 0.7
    text_buffer_size 2048
    
    ####
    ## Force UTF8? Requires XFT (see above).
    ## Displays degree symbol, instead of °, etc.
    #
    override_utf8_locale yes
    
    ####
    ## Update interval in seconds.
    #
    update_interval 1.0
    
    ####
    ## This is the number of times Conky will update before quitting.
    ## Set to zero to run forever.
    #
    total_run_times 0
    
    ####
    ## Create own window instead of using desktop (required in nautilus)?
    #
    own_window yes
    #own_window_colour eeeeee
    own_window_type override
    own_window_transparent yes
    
    ###########################
    ##own_window yes
    ##own_window_colour eeeeee
    ##own_window_type override
    ##own_window_transparent yes
    ##own_window_argb_visual yes
    ###########################
    
    ####
    ## Use double buffering? Reduces flicker.
    #
    double_buffer yes
    
    ####
    ## Draw shades?
    #
    draw_shades no
    
    ####
    ## Draw outlines?
    #
    draw_outline no
    
    ####
    ## Draw borders around text?
    #
    draw_borders no
    
    ####
    ## Draw borders around graphs?
    #
    draw_graph_borders no
    
    ####
    ## Print text to stdout?
    ## Print text in console?
    #
    out_to_ncurses no
    out_to_console no
    
    ####
    ## Text alignment.
    #
    alignment top_right
    
    ####
    ## Minimum size of text area.
    #
    minimum_size 0
    
    ####
    ## Gap between text and screen borders.
    #
    gap_x 20
    gap_y 40
    
    ####
    ## Shorten MiB/GiB to M/G in stats.
    #
    short_units yes
    
    ####
    ## Pad % symbol spacing after numbers.
    #
    pad_percents 0
    
    ####
    ## Pad spacing between text and borders.
    #
    border_inner_margin 4
    
    ####
    ## Limit the length of names in "Top Processes".
    #
    top_name_width 10
    
    ####
    ## Subtract file system -/+buffers/cache from used memory?
    ## Set to yes, to produce meaningful physical memory stats.
    #
    no_buffers yes
    
    ####
    ## Set to yes, if you want all text to be in UPPERCASE.
    #
    uppercase no
    
    ####
    ## Number of cpu samples to average.
    ## Set to 1 to disable averaging.
    #
    cpu_avg_samples 2
    
    ####
    ## Number of net samples to average.
    ## Set to 1 to disable averaging.
    #
    net_avg_samples 2
    
    ####
    ## Add spaces to keep things from moving around?
    ## Only affects certain objects.
    #
    use_spacer right
    
    draw_graph_borders yes
    
    ####
    ## My colors (suit yourself).
    #
    color0 White
    color1 Ivory
    color2 Ivory2
    color3 Ivory3
    color4 EE6600
    color5 Tan2
    color6 white
    color7 AntiqueWhite4
    color8 059EFA #DarkSlateGray
    color9 red
    
    ####
    ## Load Lua for shading (optional).
    ## Set the path to your script here.
    #
    lua_load ~/Conky/combined.lua
    lua_load ~/Conky/.bargraph.lua
    lua_draw_hook_pre combined
    lua_draw_hook_post main_bars
    
    
    
    ####
    ## Installed fonts (required).
    #
    # ConkyWeather (Stanko Metodiev)
    # ConkyWindNESW (Stanko Metodiev)
    # Cut Outs for 3D FX (Fonts & Things)
    # Liberation Mono (Ascender Corp)
    # Liberation Sans (Ascender Corp)
    # Moon Phases (Curtis Clark)
    # OpenLogos (Icoma)
    # PizzaDude Bullets (Jakob Fischer)
    # Radio Space (Iconian Fonts)
    # StyleBats (Vinterstille)
    # Ubuntu (Canonical Ltd)
    # Ubuntu Title Bold (Paulo Silva)
    # Weather (Jonathan Macagba)
    # WenQuanYi Micro Hei (Google Corp)
    
    TEXT
    ##################
    ##     LOGO     ##
    ##################
    #${voffset -33}${font OpenLogos:size=103}${color2}v${font}${voffset -76}${goto 178}${font UbuntuTitleBold:size=20}${color4}10.10${font}
    ##################
    ##    SYSTEM    ##
    ##################
    ${voffset 20}${font Ubuntu:bold:size=10}${color4}SYSTEM${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 5}${font StyleBats:size=10}${color2}k${voffset -4}${font}${color6}${offset 5}${sysname}${offset 5}${kernel}${alignr}${machine}
    ${voffset 2}${font StyleBats:size=10}${color2}2${voffset -1}${font}${color6}${offset 5}Hostname${alignr}${nodename}
    ${voffset 2}${font StyleBats:size=10}${color2}A${voffset -1}${font}${color6}${offset 5}AMD${offset 3}Phenom II X4 955${offset 3}Black${offset 3}Edition${alignr}${freq_g cpu}${offset 1}GHz
    ${voffset 2}${font StyleBats:size=10}${color2}M${voffset -1}${font}${color6}${offset 5}RAM${alignr}${memmax}
    ${voffset 2}${font StyleBats:size=10}${color2}q${voffset -1}${font}${color6}${offset 5}Uptime${alignr}${uptime}
    ${voffset 2}${font StyleBats:size=10}${color2}o${voffset -1}${font}${color6}${offset 5}File${offset 3}System${alignr}${fs_type}
    ${voffset 2}${font StyleBats:size=10}${color2}b${voffset -1}${font}${color6}${offset 5}Updates${alignr}${execi 5 aptitude search "~U" | wc -l | tail}  
    ${font}
    ##################
    ##     CPU      ##
    ##################
    ${voffset 5}${font StyleBats:size=10}${color 0A86F2}A${voffset -2}${font}${offset 2}Core1${offset 5}${cpu cpu1}%${color}${color7}${alignr 2}${if_match ${cpu}<=50}${color green}${else}${if_match ${cpu}<=70}${color orange}${else}${if_match ${cpu}>70}${color red}${endif}${endif}${endif}
    ${voffset 2}${font StyleBats:size=10}${color 41C902}A${voffset -2}${font}${offset 2}Core2${offset 5}${cpu cpu2}%${color}${color7}${alignr 2}${if_match ${cpu}<=50}${color green}${else}${if_match ${cpu}<=70}${color orange}${else}${if_match ${cpu}>70}${color red}${endif}${endif}${endif}
    ${font}
    ${voffset 4}${font StyleBats:size=10}${color 8159F0}l${voffset -2}${font}${offset 3}RAM${offset 5}${memperc}%${color}
    ${font}
    ${voffset 4}${font StyleBats:size=10}${color 00FF00}x${voffset -2}${font}${offset 4}ROOT${color}
    ${fs_used /}${offset 3}/${offset 3}${fs_size /}${offset 5}${if_match ${fs_used_perc /}<=60}${color green}${else}${if_match ${fs_used_perc /}<=85}${color orange}${else}${if_match ${fs_used_perc /}>85}${color red}${endif}${endif}${endif}${fs_free_perc /}%
    ${voffset 1}${font StyleBats:size=10}${color 00CC00}x${voffset -2}${font}${offset 4}HOME${color}
    ${fs_used /home}${offset 3}/${offset 3}${fs_size /home}${offset 5}${if_match ${fs_used_perc /home}<=60}${color green}${else}${if_match ${fs_used_perc /home}<=85}${color orange}${else}${if_match ${fs_used_perc /home}>85}${color red}${endif}${endif}${endif}${fs_free_perc /home}%
    ##################
    # TOP PROCESSES ##
    ##################
    ${voffset 3}${font Ubuntu:bold:size=10}${color4}TOP PROCESSES${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color9}${offset 5}${top_mem name 1}${goto 115}${top_mem mem_res 1}${alignr}${top_mem mem 1}%
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6}${offset 5}${top_mem name 2}${goto 115}${top_mem mem_res 2}${alignr}${top_mem mem 2}%
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6}${offset 5}${top_mem name 3}${goto 115}${top_mem mem_res 3}${alignr}${top_mem mem 3}%
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6}${offset 5}${top_mem name 4}${goto 115}${top_mem mem_res 4}${alignr}${top_mem mem 4}%
    ${voffset 2}${font StyleBats:size=10}${color1}h${voffset -3}${font}${color6}${offset 5}${top_mem name 5}${goto 115}${top_mem mem_res 5}${alignr}${top_mem mem 5}%
    Processes: ${alignr}${processes}
    Running: ${alignr}${running_processes}
    ##################
    ##   NETWORK    ##
    ##################
    ${voffset 6}${font Ubuntu:bold:size=10}${color4}NETWORK${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 4}${font PizzaDudeBullets:size=10}${color2}a${font}${color6}${offset 5}Private${offset 3}IP${alignr}${addrs eth1}
    ${font PizzaDudeBullets:size=10}${color2}a${font}${color6}${offset 5}Public${offset 7}IP${alignr}${execi 1800 wget -q -O - checkip.dyndns.org | sed -e 's/[^[:digit:]\|.]//g'}
    
    Interface:${alignr}eth1
    Signal Strength:${alignr}${wireless_link_qual_perc eth1}%
    Bitrate:${alignr}${wireless_bitrate eth1}
    Network:${alignr}${wireless_essid eth1}
    Mode:${alignr}${wireless_mode eth1}
    
    ${voffset 4}${font PizzaDudeBullets:size=10}${color2}T${font}${color6}${offset 5}Down${alignr}${downspeed eth1}
    ${downspeedgraph eth1 20,262 ffffff ffffff 750 }
    ${font PizzaDudeBullets:size=10}${color2}N${font}${color6}${offset 5}Up${alignr}${upspeed eth1}
    ${upspeedgraph eth1 20,262 ffffff ffffff 750 }${font}
    ##################
    ##     TIME     ##
    ##################
    ${voffset 6}${font Ubuntu:bold:size=10}${color4}TIME${offset 8}${color8}${voffset -2}${hr 2}${font}
    ${voffset 3}${voffset -4}${font Tahoma:size=32}${color3}${alignc 7}${time %k:%M}${font}
    combined.lua

    Code:
    --[[
    This script combines the background drawing lua script and the ring drawing lua script
    To call this script in Conky, use the following (assuming that you save this script to ~/scripts/combined.lua):
        lua_load ~/scripts/combined.lua
        lua_draw_hook_pre combined
    ]]
    --SETTINGS FOR BACKGROUND  #######################################################################
    -- 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.
        corner_r = 100
    
    -- Set the colour and transparency (alpha) of your background.
        bg_colour = 0x000000
        bg_alpha = 0.55
    
    -- Tweaks the height of your background, in pixels. If you don't need to adjust the height, use 0.
        vindsl_hack_height = -10
    --##################################################################################################
    --[[
    Ring Meters by londonali1010 (2009)
    
    This script draws percentage meters as rings. It is fully customisable; all options are described in the script.
    
    IMPORTANT: if you are using the 'cpu' function, it will cause a segmentation fault if it tries to draw a ring straight away. The if statement on line 145 uses a delay to make sure that this doesn't happen. It calculates the length of the delay by the number of updates since Conky started. Generally, a value of 5s is long enough, so if you update Conky every 1s, use update_num > 5 in that if statement (the default). If you only update Conky every 2s, you should change it to update_num > 3; conversely if you update Conky every 0.5s, you should use update_num > 10. ALSO, if you change your Conky, is it best to use "killall conky; conky" to update it, otherwise the update_num will not be reset and you will get an error.
    
    Changelog:
    + v1.2.1 -- Fixed minor bug that caused script to crash if conky_parse() returns a nil value (20.10.2009)
    + v1.2 -- Added option for the ending angle of the rings (07.10.2009)
    + v1.1 -- Added options for the starting angle of the rings, and added the "max" variable, to allow for variables that output a numerical value rather than a percentage (29.09.2009)
    + v1.0 -- Original release (28.09.2009)
    ]]
    --SETTINGS FOR RING METER  #######################################################################
    settings_table = {
        {
            -- Edit this table to customise your rings.
            -- You can create more rings simply by adding more elements to settings_table.
            -- "name" is the type of stat to display; you can choose from 'cpu', 'memperc', 'fs_used_perc', 'battery_used_perc'.
            name='cpu',
            -- "arg" is the argument to the stat type, e.g. if in Conky you would write ${cpu cpu0}, 'cpu0' would be the argument. If you would not use an argument in the Conky variable, use ''.
            arg='cpu1',
            -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
            max=100,
            -- "bg_colour" is the colour of the base ring.
            bg_colour=0xffffff,
            -- "bg_alpha" is the alpha value of the base ring.
            bg_alpha=0.15,
            -- "fg_colour" is the colour of the indicator part of the ring.
            fg_colour=0x0A86F2,
            -- "fg_alpha" is the alpha value of the indicator part of the ring.
            fg_alpha=0.8,
            -- "x" and "y" are the x and y coordinates of the centre of the ring, relative to the top left corner of the Conky window.
            x=195, y=200,
            -- "radius" is the radius of the ring.
            radius=30,
            -- "thickness" is the thickness of the ring, centred around the radius.
            thickness=5,
            -- "start_angle" is the starting angle of the ring, in degrees, clockwise from top. Value can be either positive or negative.
            start_angle=0,
            -- "end_angle" is the ending angle of the ring, in degrees, clockwise from top. Value can be either positive or negative, but must be larger (e.g. more clockwise) than start_angle.
            end_angle=360
        },
        {
            name='cpu',
            arg='cpu2',
            max=100,
            bg_colour=0xffffff,
            bg_alpha=0.1,
            fg_colour=0x41C902,
            fg_alpha=0.8,
            x=195, y=200,
            radius=35,
            thickness=5,
            start_angle=0,
            end_angle=360
        },
        {
            name='memperc',
            arg='',
            max=100,
            bg_colour=0xffffff,
            bg_alpha=0.1,
            fg_colour=0x8159F0,
            fg_alpha=0.8,
            x=195, y=200,
            radius=63,
            thickness=12,
            start_angle=-45,
            end_angle=220
        },
        {
            name='fs_used_perc',
            arg='/',
            max=150,
            bg_colour=0xffffff,
            bg_alpha=0.1,
            fg_colour=0x00FF00,
            fg_alpha=8,
            x=195, y=200,
            radius=60,
            thickness=5,
            start_angle=-135,
            end_angle=-50
        },
        {
            name='fs_used_perc',
            arg='/home',
            max=100,
            bg_colour=0xffffff,
            bg_alpha=0.1,
            fg_colour=0x00CC00,
            fg_alpha=8,
            x=195, y=200,
            radius=67,
            thickness=5,
            start_angle=-135,
            end_angle=-50
        },
    }
    
    require 'cairo'
    
    function rgb_to_r_g_b(colour,alpha)
       return ((colour / 0x10000) % 0x100) / 255., ((colour / 0x100) % 0x100) / 255., (colour % 0x100) / 255., alpha
    end
    
    function draw_ring(cr,t,pt)
        local w,h=conky_window.width,conky_window.height
    
        local xc,yc,ring_r,ring_w,sa,ea=pt['x'],pt['y'],pt['radius'],pt['thickness'],pt['start_angle'],pt['end_angle']
        local bgc, bga, fgc, fga=pt['bg_colour'], pt['bg_alpha'], pt['fg_colour'], pt['fg_alpha']
    
        local angle_0=sa*(2*math.pi/360)-math.pi/2
        local angle_f=ea*(2*math.pi/360)-math.pi/2
        local t_arc=t*(angle_f-angle_0)
    
        -- Draw background ring
    
        cairo_arc(cr,xc,yc,ring_r,angle_0,angle_f)
        cairo_set_source_rgba(cr,rgb_to_r_g_b(bgc,bga))
        cairo_set_line_width(cr,ring_w)
        cairo_stroke(cr)
    
        -- Draw indicator ring
    
        cairo_arc(cr,xc,yc,ring_r,angle_0,angle_0+t_arc)
        cairo_set_source_rgba(cr,rgb_to_r_g_b(fgc,fga))
        cairo_stroke(cr)        
    end
    
    function conky_combined()
    --BACKGROUND DRAWING PART##################################################################################
        if conky_window == nil then return end
        if cs == nil then cairo_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_destroy(cr)
    
    --RINGMETER PART OF MAIN FUNCTION  ################################################
        local function setup_rings(cr,pt)
            local str=''
            local value=0
    
            str=string.format('${%s %s}',pt['name'],pt['arg'])
            str=conky_parse(str)
    
            value=tonumber(str)
            if value == nil then value = 0 end
            pct=value/pt['max']
    
            draw_ring(cr,pct,pt)
        end
    
        if conky_window==nil then return end
        local cs=cairo_xlib_surface_create(conky_window.display,conky_window.drawable,conky_window.visual, conky_window.width,conky_window.height)
    
        local cr=cairo_create(cs)    
    
        local updates=conky_parse('${updates}')
        update_num=tonumber(updates)
    
        if update_num>5 then
            for i in pairs(settings_table) do
                setup_rings(cr,settings_table[i])
            end
        end
    end
    .bargraph.lua
    Code:
    --[[ BARGRAPH WIDGET
        v2.0 by wlourf (12.07.2010)
        this widget draws a bargraph with differe,ts effects 
        http://u-scripts.blogspot.com/2010/0...ph-widget.html
        
        
    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 numericla 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, défaut = 0
    skew_y    - skew bar around y axis, défaut = 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, défaut = {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 colurs 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, parallelel, 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 avaimable 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
                          calues 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
    
    
    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 March 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
    ]]
    
    require 'cairo'
    
    ----------------START OF PARAMETERS ----------
    function conky_main_bars()
        bars_settings={    
            {
                name="wireless_link_qual_perc",
                arg="eth1",
                max=100,
                alarm=50,
                angle_bar=3,
                bg_colour={0xFFFFFF,0.25},
                fg_colour={0xFF0000,0.9},
                alarm_colour={0x00FF00,0.9},
                x=95,y=483,
                blocks=45,
                space=1,
                height=2,width=4,
                angle=90,
                smooth=true,
                mid_colour={{0.5,0xFFFF00,0.9}}    
                },
            }
        
    -----------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)
    
    end
    
    
    
    function draw_multi_bar_graph(t)
        cairo_save(cr)
        --check values
        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
        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=nil
            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
                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)
            
                -- 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
                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)))
            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()
            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()
                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
            
            
        end --setup_bar_graph()
    
        
        --start here !
        setup_bar_graph()
        cairo_restore(cr)
    end
    Again, any help would be appreciated.
    hey i am currently using this your conkyrc file but Network doesent work, it shows the public ip but nothing else like up and down speed, is it because i am on wifi? how can i add so it will show my wireless

  7. #16727
    Join Date
    Oct 2009
    Location
    Under a rock
    Beans
    Hidden!

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by gyyug78fg87ogguiioioioioi View Post
    hey i am currently using this your conkyrc file but Network doesent work, it shows the public ip but nothing else like up and down speed, is it because i am on wifi? how can i add so it will show my wireless
    just change any instances of eth1 (VinDSL's network interface) with wahtever your is called... probably something like wlan0 or similar

    ifconfig in a terminal should tell you

    you know, learning to write conkyrc code from scratch not only helps you make better conkys, it also requires you to know a little bit about your hardware and os (which is a good thing)
    Last edited by mrpeachy; March 27th, 2011 at 04:51 AM.

  8. #16728
    Join Date
    Aug 2005
    Location
    Mars
    Beans
    245

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by mrpeachy View Post
    so what would you say was the most frequently asked?

    i would guess maybe
    "how do you get weather in conky?"
    This user copied VinDSL conky and weather was broken....

    In the process we learned simple commands left out may break some systems and yet work on others. In the fix, I found a merge of what was broken and the mobilediesel text scripts that I prefer more than images. I chose what I wanted for conky and took out the rest and it took much time to perfect. If I only had the ability to place two colors together now.

    Quote Originally Posted by 42dorian View Post
    According to my earliest file creation date, I only started Conky 6 months ago.
    I was thinking you were not here 1 year ago and you have done well, grasshopper.



  9. #16729
    Join Date
    Mar 2009
    Beans
    159
    Distro
    Ubuntu 13.04 Raring Ringtail

    Re: Post your .conkyrc files w/ screenshots

    Thanx for the help and links you guys, managed to make it look like this now:



    Pretty much what I want (for now ), except for the weather not showing C for degrees and kmh, perhaps because of the font? I changed the ui's and i's to u's in the weatherforecast but no dice
    Last edited by MarcusA; March 27th, 2011 at 08:40 AM.

  10. #16730
    Join Date
    Apr 2007
    Beans
    195

    Re: Post your .conkyrc files w/ screenshots

    Quote Originally Posted by MarcusA View Post
    Thanx for the help and links you guys, managed to make it look like this now:



    Pretty much what I want (for now ), except for the weather not showing C for degrees and kmh, perhaps because of the font? I changed the ui's and i's to u's in the weatherforecast but no dice
    Okay, I should've said this earlier. WHEN IN DOUBT, POST YOUR SCRIPT! We're Conky ADDICTS here. Even if it's working perfectly, we love a good script. If it's NOT working perfectly, we're always willing to show you where and why it's not.

    Screenshot's nice, but script we can see and show you where you went wrong is better. I never said anything about you doing all this by yourself. We ARE here to help if you need it. When you have one section or another that isn't working quite right, it's easy to point out what's wrong. When an entire script is in tatters, it takes pages and pages of us telling you where each problem is in order to get it fixed. THAT is why it's not recommended to do a direct copy of VinDSL's scripts anymore. Bits and pieces of it at a time is okay. We can give you little pointers to get it fixed so you can move on to the next section you want. But the whole thing at once? That is just too much to help with.

    @BoredOutOfMyMind That's not fair to say! I started out as rocky as any other person, but I have a programming and systems troubleshooting background that I gave up years ago. I already have a foundation to build on, so the structure goes up much faster. A rather large number of these new people that come along (Or have come along since I did.) have usually said "I'm new to Linux, so I'm not sure!" I'm not new to Linux. I've been using Linux almost exclusively going on 7 years now (and the past 4 years completely exclusively.)

Page 1673 of 2301 FirstFirst ... 6731173157316231663167116721673167416751683172317732173 ... LastLast

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •