Tunea tu Linux – con conky lua

Otro post de la seccion «Tunea tu linux«. Recuerdo que tu tambien puedes enviar tu escritorio de linux tuneado para que lo publiquemos. Puedes usar el formulario de contacto cuyo enlace esta en la parte superior del blog y despues de una rapida revision tu escritorio sera publicado en la pagina principal y tambien podra ser visto siempre desde la seccion https://paraisolinux.com/tag/tunea-tu-linux. A todos aquellos que estan enviando sus escritorios les pido por favor que envien tutos completos. La idea como ya repeti muchas veces no es mostrar escritorios sino como lograr esos escritorios. Y como siempre para que se inspiren algunas paginas utiles:

Let’s start…

Escritorio limpio
Escritorio sucio

Paso 1: Instalar tint2 (yaourt -S tint2) y conky-lua (yaourt -S conky-lua). Si lo van a hacer en openbox van a necesitar instalar tambien nitrogen (yaourt -S nitrogen) para poder cambiar el fondo de pantalla y obconf (yaourt -S obconf) para instalar el theme de openbox.

Paso 2: Bajar el theme de openbox con extension .obt e instalarlo con obconf

Paso 3: Bajar el theme de gtk comprimido. Luego descomprimirlo y copiar la carpeta descomprimida dentro de HOME/.themes

Luego de eso el theme estara instalado, solo hara falta seleccionarlo con la herramienta habitual que utilice su distro para instalar themes gtk.

Paso 4: Bajar el pack de iconos comprimido. Luego descomprimirlo y copiar la carpeta descomprimida dentro de HOME/.icons

Si la carpeta .icons no exite crearla.

Luego de eso los iconos estaran instalados, solo hara falta seleccionarlos con la herramienta habitual que utilice su distro para el proposito. Por lo general es la misma que la que se usa para seleccionar el theme gtk.

Paso 5: con su editor de archivos preferido(el mio es medit) abren (y crean si es que no lo tienen) el archivo .conkyrc que esta en su carpeta HOME, asi:

medit .conkyrc

Y copian esto en ese archivo:

background no
update_interval 1.0
double_buffer yes
no_buffers yes
cpu_avg_samples 2
net_avg_samples 2
text_buffer_size 2048
imlib_cache_size 0
override_utf8_locale yes

# +++++ Window +++++
own_window yes
own_window_type override
own_window_transparent yes
own_window_hints undecorate,sticky,skip_taskbar,skip_pager,below

border_inner_margin 0
border_outer_margin 0

minimum_size 1280 768
maximum_width 1280

alignment bottom_middle
gap_x 0
gap_y 0

# +++++ Styles +++++
draw_shades yes
draw_outline no
draw_borders no
draw_graph_borders yes

# +++++ Colors +++++
default_shade_color 101010
default_color 8F8F8F

lua_load ~/.lua

# +++++ LUA +++++
lua_draw_hook_pre ring_stats

# +++++ Font +++++
use_xft yes
xftfont DejaVu Sans:size=7
xftalpha 0.1
uppercase no

TEXT

${goto 870}CPU2

${goto 816}HOME

${goto 770}ROOT

${goto 425}RAM

${goto 360}CPU1

${alignc}${uptime}

Paso 6: con su editor de archivos preferido(el mio es medit) abren (y crean si es que no lo tienen) el archivo .lua que esta en su carpeta HOME, asi:

medit .lua

Y dentro pegan lo siguiente:

--[[
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.

To call this script in Conky, use the following (assuming that you save this script to ~/scripts/rings.lua):
    lua_load ~/scripts/rings-v1.2.1.lua
    lua_draw_hook_pre ring_stats

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)
]]
conky_background_color = 0x151515
conky_background_alpha = 0

ring_background_color = 0x424242
ring_background_alpha = 0.1
ring_foreground_color = 0x86c113
ring_foreground_color2 = 0x1994d1
ring_foreground_color3 = 0xaa0000
ring_foreground_alpha = 0.3

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='time',
        -- "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='%I.%M',
        -- "max" is the maximum value of the ring. If the Conky variable outputs a percentage, use 100.
--        max=12,
        -- "bg_colour" is the colour of the base ring.
--        bg_colour=ring_background_color,
        -- "bg_alpha" is the alpha value of the base ring.
--        bg_alpha=ring_background_alpha,
        -- "fg_colour" is the colour of the indicator part of the ring.
--        fg_colour=ring_foreground_color,
        -- "fg_alpha" is the alpha value of the indicator part of the ring.
--        fg_alpha=ring_foreground_alpha,
        -- "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=26, y=25,
        -- "radius" is the radius of the ring.
--        radius=10,
        -- "thickness" is the thickness of the ring, centred around the radius.
--        thickness=6,
        -- "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='cpu1',
        max=100,
        bg_colour=ring_background_color,
        bg_alpha=ring_background_alpha,
        fg_colour=ring_foreground_color,
        fg_alpha=ring_foreground_alpha,
        x=680, y=360,
        radius=360,
        thickness=66,
        start_angle=-120,
        end_angle=-60
    },
    {
        name='cpu',
        arg='cpu2',
        max=100,
        bg_colour=ring_background_color,
        bg_alpha=ring_background_alpha,
        fg_colour=ring_foreground_color2,
        fg_alpha=ring_foreground_alpha,
        x=580, y=360,
        radius=360,
        thickness=66,
        start_angle=60,
        end_angle=120
    },
    {
        name='fs_used_perc',
        arg='/home/fede/',
        max=100,
        bg_colour=ring_background_color,
        bg_alpha=ring_background_alpha,
        fg_colour=ring_foreground_color,
        fg_alpha=ring_foreground_alpha,
        x=580, y=360,
        radius=290,
        thickness=40,
        start_angle=60,
        end_angle=120
    },
    {
        name='memperc',
        arg='',
        max=100,
        bg_colour=ring_background_color,
        bg_alpha=ring_background_alpha,
        fg_colour=ring_foreground_color2,
        fg_alpha=ring_foreground_alpha,
        x=680, y=360,
        radius=290,
        thickness=40,
        start_angle=-120,
        end_angle=-60
    },
    {
        name='fs_used_perc',
        arg='/',
        max=100,
        bg_colour=ring_background_color,
        bg_alpha=ring_background_alpha,
        fg_colour=ring_foreground_color2,
        fg_alpha=ring_foreground_alpha,
        x=580, y=360,
        radius=240,
        thickness=26,
        start_angle=60,
        end_angle=90
    }
}

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 conky_round_rect(cr, x0, y0, w, h, r)
    if (w == 0) or (h == 0) then return end
    local x1 = x0 + w
    local y1 = y0 + h
    if w/2 < r then
        if h/2 < r then
            cairo_move_to  (cr, x0, (y0 + y1)/2)
            cairo_curve_to (cr, x0 ,y0, x0, y0, (x0 + x1)/2, y0)
            cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1)/2)
            cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0)/2, y1)
            cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1)/2)
        else
            cairo_move_to  (cr, x0, y0 + r)
            cairo_curve_to (cr, x0 ,y0, x0, y0, (x0 + x1)/2, y0)
            cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + r)
            cairo_line_to (cr, x1 , y1 - r)
            cairo_curve_to (cr, x1, y1, x1, y1, (x1 + x0)/2, y1)
            cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- r)
        end
    else
        if h/2 < r then
            cairo_move_to  (cr, x0, (y0 + y1)/2)
            cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + r, y0)
            cairo_line_to (cr, x1 - r, y0)
            cairo_curve_to (cr, x1, y0, x1, y0, x1, (y0 + y1)/2)
            cairo_curve_to (cr, x1, y1, x1, y1, x1 - r, y1)
            cairo_line_to (cr, x0 + r, y1)
            cairo_curve_to (cr, x0, y1, x0, y1, x0, (y0 + y1)/2)
        else
            cairo_move_to  (cr, x0, y0 + r)
            cairo_curve_to (cr, x0 , y0, x0 , y0, x0 + r, y0)
            cairo_line_to (cr, x1 - r, y0)
            cairo_curve_to (cr, x1, y0, x1, y0, x1, y0 + r)
            cairo_line_to (cr, x1 , y1 - r)
            cairo_curve_to (cr, x1, y1, x1, y1, x1 - r, y1)
            cairo_line_to (cr, x0 + r, y1)
            cairo_curve_to (cr, x0, y1, x0, y1, x0, y1- r)
        end
    end
    cairo_close_path (cr)
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

cs, cr = nil -- initialize our cairo surface and context to nil
function conky_ring_stats()
    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)

    if cs == nil or cairo_xlib_surface_get_width(cs) ~= conky_window.width or cairo_xlib_surface_get_height(cs) ~= conky_window.height then
        if cs then cairo_surface_destroy(cs) end
        cs = cairo_xlib_surface_create(conky_window.display, conky_window.drawable, conky_window.visual, conky_window.width, conky_window.height)
    end
    if cr then cairo_destroy(cr) end
    cr = cairo_create(cs)

    local updates=conky_parse('${updates}')
    update_num=tonumber(updates)

    if update_num>5 then
        conky_round_rect(cr, 3, 0, conky_window.width-6, conky_window.height-3, 15)
        cairo_set_source_rgba(cr, rgb_to_r_g_b(conky_background_color, conky_background_alpha))
        cairo_fill(cr)
        for i in pairs(settings_table) do
            setup_rings(cr,settings_table[i])
        end
    end
    cairo_destroy(cr)
    cr = nil
end

function conky_cairo_cleanup()
    cairo_surface_destroy(cs)
    cs = nil
end

Aqui deberan modificar la linea 87 y cambiarlo por su carpeta HOME.

Paso 7: con su editor de archivos preferido(el mio es medit) abren (y crean si es que no lo tienen) el archivo .tint2rc que esta en su carpeta HOME/config/tint2, asi:

medit ~/.config/tint2/tint2rc

Y dentro pegan lo siguiente:

#---------------------------------------------
# TINT2 CONFIG FILE
#---------------------------------------------

#---------------------------------------------
# BACKGROUND AND BORDER
#---------------------------------------------
rounded = 0
border_width = 1
background_color = #000000 40
border_color = #ffffff 10

rounded = 2
border_width = 0
background_color = #ffffff 20
border_color = #ffffff 20

rounded = 2
border_width = 0
background_color = #ffffff 10
border_color = #ffffff 10

#---------------------------------------------
# PANEL
#---------------------------------------------
panel_monitor = all
panel_position = bottom center
panel_size = 100% 30
panel_margin = 0 0
panel_padding = 2 0
font_shadow = 0
panel_background_id = 1
wm_menu = 0

#---------------------------------------------
# TASKBAR
#---------------------------------------------
#taskbar_mode = multi_desktop
taskbar_mode = single_desktop
taskbar_padding = 2 3 2
taskbar_background_id = 0
#taskbar_active_background_id = 1

#---------------------------------------------
# TASKS
#---------------------------------------------
task_icon = 1
task_text = 0
task_maximum_size = 35 35
task_centered = 1
task_padding = 3 3
task_font = sans 7
task_font_color = #ffffff 70
task_active_font_color = #ffffff 85
task_background_id = 3
task_active_background_id = 2

#---------------------------------------------
# SYSTRAYBAR
#---------------------------------------------
systray = 1
systray_padding = 0 4 5
systray_background_id = 0
systray_sort = left2right

#---------------------------------------------
# CLOCK
#---------------------------------------------
time1_format = %H:%M
time1_font = sans 8
#time2_format = %A %d %B
#time2_font = sans 6
clock_font_color = #ffffff 76
clock_padding = 1 0
clock_background_id = 0
#clock_lclick_command = xclock
clock_rclick_command = orage
#clock_tooltip = %A %d %B

#---------------------------------------------
# BATTERY
#---------------------------------------------
battery = 1
battery_low_status = 10
battery_low_cmd = notify-send "battery low"
bat1_font = sans 8
bat2_font = sans 6
battery_font_color = #ffffff 76
battery_padding = 1 0
battery_background_id = 0

#---------------------------------------------
# TOOLTIP
#---------------------------------------------
tooltip = 0
tooltip_padding = 2 2
tooltip_show_timeout = 0.7
tooltip_hide_timeout = 0.3
tooltip_background_id = 1
tooltip_font_color = #OOOOOO 80
tooltip_font = sans 10

#---------------------------------------------
# MOUSE ACTION ON TASK
#---------------------------------------------
mouse_middle = none
mouse_right = close
mouse_scroll_up = toggle
mouse_scroll_down = iconify

Paso 8: ejecutar nitrogen y cambiar el fondo de pantalla por el que les guste, el que yo uso es solo una sugerencia. Si usan Gnome o KDE no hace falta usar nitrogen porque ambos vienen con sus propias herramientas para cambiar el fondo de pantalla.

Eso es todo si ha alguien no le sale que avise asi lo ayudamos.

Actualizacion: aqui les dejo un paquete con las configuraciones de conky y lua. Veo que la de conky no aparece con todos los espacios que tiene que aparecer asi que mejor bajen este archivo.

perro

Ingeniero en Informática. Programador en PHP y Angular. Lo que mas adoro en el mundo es el conocimiento. Y el anime....y Japón...y el running...y bloguear claro y algunas otras cientos de cosas. Sigo buscando la manera de hacer mi primer millón.

20
Comenta!

avatar
Mancuso!
Mancuso!

Hola… Mi pregunta es como haces que en el panel solo te aparezcan los iconos de las ventanas, quisiera hacer eso en ubuntu pero usando lo que tiene si no es mucha molestia.

trackback

[…] Tunea tu Linux – con conky lua […]

Antonio
Antonio

Hola!
Ante todo felicidades por el Blog, ¡lo visito mucho!

Tenía una duda con esta configuración:

tengo Ubuntu 10.04 y he instalado el conky con las opciones que comentais, pero al ejecutarlo, aparece, y antes de mostrar los indicadores de RAM y CPU se cierra.
¿Por qué puede ser?

¡¡Muchas gracias y saludos a todos!! :lol:

Antonio
Antonio

Hola de nuevo!

Solo quería comentar que ya he solucionado mi problema.

Ahora lo que me trae frito es el aspecto.

Los títulos de las barras no están inmediatamente encima de estas.
Sé que para cambiar su posición hay que modificar el archivo .conkyrc, pero no termino de pillarle el truco.

¿Alguna ayuda?

Gracias! :lol:

Faxtron
Faxtron

Podrias decir como lo has solucionado ?

trackback

[…] tuneado tu escritorio al menos 1 […]

trackback

[…] Has tuneado tu escritorio al menos 1 vez. […]

trackback

[…] Has tuneado tu escritorio al menos 1 vez. […]

godlessmen

Estimado . te felicito , un gran blog , me quedo perfect asi q nuevamente gracias ….

trackback

[…] Como saber la cantidad de procesadores que tengo en Linux Posted on 16 julio 2011 by perroTweet var random_number = Math.random(); if (random_number < .5){ } else { } Los ultimos 2 dias estuve jugando con alguna que otra configuracion de conky. Los que no saben que es conky es un monitor para el sistema y se puede tunear para dejarlo muy bonito. […]

Aldoxx
Aldoxx

Hola!
primero que nada mis felicitaciones por tu blog 
necesito preguntar algo 
al colocar el archivo .lua y el archvo .conkyrc me sale el conky
pero no los graficos solo las letras
tienes idea de como puedo solucionarlo?
muchas gracias de antemano.

Anonymous
Anonymous

Tienes instalado conky-lua?

Anonymous
Anonymous

Hola, muchas gracias por el enlace a nuestro blog. Por favor, quisiera que cambiaras el nombre. Es Artescritorio, no ArteEscritorio. Una sola E. El enlace y el nombre del blog suele ponerse equivocado. Mil gracias. 

Juan Manuel Retamozo
Juan Manuel Retamozo

hola como están instale todo lo paso pero cuando ejecuto conkyrc solo me parece una pantalla negra pero no los gráfico la resolución que uso es de 1366 X 768 no se donde tocar o que hacer desde ya agradecería su ayuda.

Juan Manuel Retamozo
Juan Manuel Retamozo

hola ahora me salen los sensores con las imagenes pero no la imagen que dice archlinux y su logo como puedo poner esa imagen?

sefsinalas

Eso es solo un fondo de pantalla. Aqui tienes millones para elegir alguno http://browse.deviantart.com/?q=arch+linux+wallpaper

Juan Manuel Retamozo
Juan Manuel Retamozo

si entiendo que es un fondo pero el fondo de pantalla cuando ejecuto el conky este se pone un cuadrado negro de fondo y atras de eso esta muy fondo lo demas anda todo …