.
.
Last edited by ITdrummer; July 20th, 2007 at 08:22 PM.
Intel Q6600 - 2.4GHz, 2x2GB RAM, nVidia GeForce GTX 260, SoundBlaster Audigy SE 7.1
Dual-boot: Windows 7 64-bit & Ubuntu 10.04
So I have a conky question. I'm trying to integrate a calendar into my conky but it looks terrible (see attachment) because the columns don't line up (see the attachment).
I am using ${execi 60 cal -3 | cut -c23-64} for my calendar, seen here and elsewhere on the net. What can I do to get the columns to align. FWIW here's my conkyrc header:
Can anyone help? Or maybe point me in the right direction?Code:own_window yes own_window_hints undecorated,below,skip_taskbar background no double_buffer yes use_spacer yes use_xft yes update_interval 2.0 minimum_size 200 5 maximum_width 270 draw_shades yes draw_outline no draw_borders no draw_graph_borders no uppercase no border_margin 4 border_width 1 default_color white default_shade_color black default_outline_color white own_window_transparent yes alignment top_right gap_x 10 gap_y 10 override_utf8_locale no xftfont Terminus:size=8 xftalpha 0.8
Thanks!!!
EDIT: I've traced it down, I think, to use_xft yes. If I change use_xft to no then the text lines up but the font looks terrible. If I keep "use-xft on" and change xftfont to Arial the font changes appropriately but the calendar text still doesn't line up. So it's definitely to do with "use_xft yes". But why? Or... what can I do to keep the nice looking xft font and get the columns to align?
Last edited by psyopper; July 22nd, 2007 at 01:38 AM.
.conkyrc
acpi.shCode:# Create own window instead of using desktop (required in nautilus) own_window yes own_window_type override own_window_transparent yes own_window_hints undecorated,below,sticky,skip_taskbar,skip_pager # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # fiddle with window use_spacer yes use_xft no # Update interval in seconds update_interval 1.0 # Minimum size of text area # minimum_size 250 5 # Draw shades? draw_shades no # Text stuff draw_outline no # amplifies text if yes draw_borders no font arial uppercase no # set to yes if you want all text to be in uppercase # Stippled borders? stippled_borders 3 # border margins border_margin 0 # border width border_width 0 # Default colors and also border colors, grey90 == #e5e5e5 #default_color slate grey default_color white own_window_colour brown own_window_transparent yes # Text alignment, other possible values are commented alignment top_left #alignment top_right #alignment bottom_left #alignment bottom_right # Gap between borders of screen and text gap_x 7 gap_y 17 # set to 1 to diable cpu_avg_samples 2 # 994F10 # stuff after 'TEXT' will be formatted on screen TEXT ${color #9E4E10} ${color #E6CEAA}kNote${color #9E4E10} / ${color #E6CEAA}CPU0: ${cpu cpu1}% - CPU1: ${cpu cpu2}%${color #9E4E10} / ${color #E6CEAA}Processes: $processes- $running_processes ${color #9E4E10}${stippled_hr 1} ${color #E6CEAA}RAM: $memperc% ${color #9E4E10}/${color #E6CEAA} Disk: ${fs_free_perc /} % ${color #9E4E10}/${color #E6CEAA} Battery: ${execi 10 ~/scripts/acpi.sh} ${color #9E4E10}/${color #E6CEAA} ${execi 5 ~/scripts/acpi_charged.sh}${execi 5 ~/scripts/acpi_time.sh} ${color #9E4E10}/${color #E6CEAA} ${execi 30 acpi -B -t -f | cut -c21-25}F ${color #9E4E10}${stippled_hr 1} ${color #E6CEAA}Weather: ${execi 1800 ~/.conky/weather/weather.sh}
acpi_time.shCode:#!/bin/bash acpi_output="$(acpi -b)" if echo $acpi_output | grep -q discharging then if echo $acpi_output | grep -q 100 then echo $acpi_output | cut -c25-28 else echo $acpi_output | cut -c25-27 fi else if echo $acpi_output | grep -q 100 then echo $acpi_output | cut -c22-25 else echo $acpi_output | cut -c22-24 fi fi
weather.shCode:#!/bin/bash acpi_output="$(acpi -b)" if echo $acpi_output | grep -q charged, then time="+00:00" elif echo $acpi_output | grep -q information then time="*00:00" elif echo $acpi_output | grep -q discharging then if echo $acpi_output | grep -q 100; then time="-$(echo $acpi_output | cut -c31-35)" else time="-$(echo $acpi_output | cut -c30-34)" fi elif echo $acpi_output | grep -q charging then time="+$(echo $acpi_output | cut -c27-31)" fi echo $time
weather.xsltCode:#!/bin/sh # # Grab weather data from weather.com and format it according to the given XSLT # Script written by boojit # Modified by Hellf[i]re # The orignal script and xslt can be downloaded from http://pondol.com/weather.tar.gz # Usage: # ${execi 1800 /path/to/weather/weather.sh location} # Usage Example: # ${execi 1800 /home/user/weather/weather.sh 03833} # your Location ID: use http://xoap.weather.com/search/search?where=[yourcity] to find it # U.S. users can just use their zip code; doubt that works for anyone else though (YMMV) LOCID=GMXX0020 # s=standard units, m=metric units UNITS=s # where this script and the XSLT lives RUNDIR=/home/kevin/.conky/weather # there's probably other stuff besides CURL that will work for this, but i haven't # tried any others. # you can get curl at http://curl.haxx.se/ CURLCMD=/usr/bin/curl # get it at http://xmlsoft.org/XSLT/ XSLTCMD=/usr/bin/xsltproc # you probably don't need to modify anything below this point.... # CURL url. Use cc=* for current forecast or dayf=10 to get a multi-day forecast CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2" #CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2" # The XSLT to use when translating the response from weather.com # You can modify this xslt to your liking XSLT=$RUNDIR/weather.xslt #filter (if you want to convert stuff to lower-case or upper case or something) #FILTER="|gawk '{print(tolower(\$0));}'" ##### eval "$CURLCMD \"$CURLURL\" 2>/dev/null| $XSLTCMD $XSLT - $FILTER"
wasn't satisfied with the acpi variable outputs so i went a bit crazy with the if's.. oh well..Code:<!-- This XSLT is used to translate an XML response from the weather.com XML API. You can format this file to your liking. Two things you may feel like doing: 1) Modify the layout of the fields or static text already defined 2) Add other fields from the XML response file that aren't referenced in this XSLT. You can grab a full list by just doing a: wget "http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS" (change $LOCID and $UNITS to suit your needs) --> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" > <xsl:output method="text" disable-output-escaping="yes"/> <xsl:template match="weather"> <xsl:apply-templates select="cc"/> <xsl:apply-templates select="dayf/day[@d='1']"/> </xsl:template> <xsl:template match="cc"> <!--<xsl:text>Darmstadt - </xsl:text>--> <xsl:text></xsl:text><xsl:value-of select="tmp"/><xsl:value-of select="/weather/head/ut"/> <xsl:if test="tmp != flik"><!--<xsl:text>, Feels Like </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/head/ut"/>--></xsl:if> <xsl:text>, </xsl:text><xsl:value-of select="t"/><!--<xsl:text> - WIND: </xsl:text> <xsl:choose> <xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when> <xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise> </xsl:choose> <xsl:value-of select="/weather/head/us"/> <xsl:choose> <xsl:when test="wind/s = 'calm'"><xsl:text>(0mph)</xsl:text></xsl:when> <xsl:otherwise><xsl:text> (</xsl:text><xsl:value-of select="round(wind/s * 0.6214)"/><xsl:text>mph)</xsl:text></xsl:otherwise> </xsl:choose> <xsl:text> (</xsl:text><xsl:value-of select="wind/t"/> <xsl:text>)</xsl:text>--> </xsl:template> <xsl:template match="dayf/day[@d='1']"> <xsl:text> > </xsl:text><xsl:value-of select="low"/><xsl:value-of select="/weather/head/ut"/> <xsl:text> to </xsl:text><xsl:value-of select="hi"/><xsl:value-of select="/weather/head/ut"/> <xsl:text>, </xsl:text><xsl:value-of select="part[@p='d']/t"/> <xsl:text></xsl:text><xsl:value-of select="/weather/swa/a/t"/> <xsl:text></xsl:text> </xsl:template> </xsl:stylesheet>
Last edited by walkerk; July 22nd, 2007 at 07:11 PM.
Screen Bottom aligned system stats with Amarok track info support
.conkyrc
amarok.shCode:# Use Desktop own_window no # Use double buffering (reduces flicker, may not work for everyone) double_buffer yes # Draw shades? draw_shades no # Update interval in seconds update_interval 3.0 # Default colors and also border colors, grey90 == #e5e5e5 default_color black # Text alignment alignment bottom_left # Gap between borders of screen and text gap_y 30 # Minimum size of text area minimum_size 1380 TEXT ${stippled_hr} ${color}Hello ${exec whoami}. Today is ${color darkred}${time %A %d %B %k:%M:%S}${alignr}${color red}${sysname}${color} - ${color red}${kernel}${color} on ${color red}${machine}${color white} | ${alignr}${color red}${nodename} ${color}at ${color blue}${addr eth1} ${color white} | ${color}Wireless ${color blue}${linkstatus eth1}${color}%${color white} | ${color}In: ${color blue}${upspeed eth1}${color}k/s Out: ${color blue}${downspeed eth1}${color}k/s ${alignr}${color}CPU: ${color blue}${cpu cpu0}${color}%${color darkgrey} ${cpubar cpu0 5, 100} ${color white} | ${color}Mem: ${color blue}${mem}${color darkgrey} ${membar 5, 100} ${color blue}${memmax}${color white} | ${color}Swap: ${color blue}${swap}${color darkgrey} ${swapbar 5, 100} ${color blue}${swapmax}${color white} | ${color darkgreen}/ ${color blue}${fs_free /} ${color darkgray}${fs_bar 5, 100 /} ${color blue}${fs_size /}${color white} | ${color darkgreen}/home ${color blue}${fs_free /home} ${color darkgray}${fs_bar 5, 100 /home} ${color blue}${fs_size /home} ${stippled_hr} ${if_running amarokapp}${color}Artist: ${color blue}${execi 10 ~/.conky/amarok.sh artist}${color white} | ${color}Album: ${color blue}${execi 10 ~/.conky/amarok.sh album}${color white} | ${color}Title: ${color blue}${execi 10 ~/.conky/amarok.sh title}${else}Amarok is not running${endif}
[Hint: should be placed into ~/.conky/ otherwise change script path in .conkyrc]
[Note: Script was originally written by someone else in current post several pages above (don't remember now the author).]
Code:#! /usr/bin/env bash # amaroK info display script by eirc <eirc.eirc@gmail.com> case "$1" in # Now Playing Info artist) dcop amarok player artist ;; title) dcop amarok player title ;; album) dcop amarok player album ;; year) dcop amarok player year ;; genre) dcop amarok player genre ;; progress) curr=`dcop amarok player trackCurrentTime` tot=`dcop amarok player trackTotalTime` if (( $tot )); then expr $curr \* 100 / $tot fi ;; esac
Got the calendar thing figured out. Screenshot is updated!
This is actually running 2 conky scripts plus a starter script, one for the real time stuff and another for the calendar.
Code:own_window yes own_window_hints undecorated,below,skip_taskbar background no double_buffer yes use_spacer yes use_xft yes update_interval 2.0 minimum_size 200 5 maximum_width 270 draw_shades yes draw_outline no draw_borders no draw_graph_borders no uppercase no border_margin 4 border_width 1 default_color white default_shade_color black default_outline_color white own_window_transparent yes alignment top_right gap_x 10 gap_y 10 override_utf8_locale no xftfont Terminus:size=8 #xftalpha 0.8 # ${execi 60 cal -3 | cut -c23-64} TEXT ${color }${time %a, %e %B %G}${alignr}${time %T %Z} / ${tztime UTC %T} UTC ${color lightgrey}System uptime: ${color #ddaa00}${uptime} ${color }Ubuntu 7.04 Feisty Fawn${alignr}${kernel} ${machine} ${color slate grey}Processor: ${color }${execi 1000 cat /proc/cpuinfo | grep "model name" | cut -c14-36} ${color lightgrey}${tab 20}Freqency: ${color }${freq_g cpu0}Ghz ${color lightgrey}${tab 20}Temperature: ${color #ddaa00}${acpitemp}C ${color }(${acpitempf}F) ${color lightgrey}${tab 20}Load: ${color #ddaa00}${cpu}%${alignr }${color }${cpubar 6,175} ${color lightgrey}${tab 20}CPU History ${color }${tab 47}${cpugraph cpu0 10,175 000000 ffffff} ${color lightgrey}${tab 20}Processes Running: ${color }${running_processes} ${color lightgrey}${tab 20}Processes Sleeping: ${color }${processes} ${color lightgrey}${tab 20}Top CPU Processes: $alignr CPU% ${color #ddaa00}${tab 40}${top name 1}$alignr${top cpu 1} ${color }${tab 40}${top name 2}$alignr${top cpu 2} ${color }${tab 40}${top name 3}$alignr${top cpu 3} ${color slate grey}Memory: ${color }${tab 20}Real: ${memmax} total / ${mem} in use ${color lightgrey}${tab 20}Used: ${color #ddaa00}${memperc}%${alignr}${color }${membar 6,175} ${color }${tab 20}Swap: ${swapmax} total / ${swap} in use ${color lightgrey}${tab 20}Used: ${color #ddaa00}${swapperc}%${alignr}${color }${swapbar 6,175} ${color lightgrey}${tab 20}Top Memory Processes: $alignr MEM% ${color #ddaa00}${tab 40}${top_mem name 1}$alignr${top_mem mem 1} ${color }${tab 40}${top_mem name 2}$alignr${top_mem mem 2} ${color }${tab 40}${top_mem name 3}$alignr${top_mem mem 3} ${color slate grey}Video: ${color }${execi 30 nvclock -i | grep 'Card:' | cut -c9-27} ${color lightgrey}${tab 20}Temperature: ${color #ddaa00}${execi 30 nvclock -T | grep temperature | cut -c21-23} ${color lightgrey}${tab 20}GPU: ${tab 4}${color }${execi 30 nvclock -i | grep 'Architecture:' | cut -c16-22}$alignr${execi 30 nvclock -i | grep 'GPU clock:' | cut -c13-23} ${color lightgrey}${tab 20}Mem: ${color }${execi 30 nvclock -i | grep 'Amount:' | cut -c10-15} ${execi 30 nvclock -i | grep 'Type:' | cut -c16-18} $alignr ${execi 30 nvclock -i | grep 'Clock:' | cut -c10-21} ${color slate grey}Disk: ${color }/dev/hda3 Linux (ext3) ${color lightgrey}${tab 20}Total: ${color }${fs_size} ${color lightgrey}${tab 20}Used: ${color }${fs_used} ${color lightgrey}${tab 20}Available: ${color }${fs_free} ${color lightgrey}${tab 20}Free: ${color #ddaa00}${fs_free_perc}%${tab 45}${color }${alignr}${fs_bar 6,175} ${color lightgrey}${tab 20}I/O History: ${tab 47}${diskiograph 10,175 000000 ffffff} ${color slate grey}Network: ${color lightgrey}${tab 20}IP: ${color }${addr eth0} ${color lightgrey}${tab 20}D ${color #ddaa00}${downspeedf eth0}kb/s$alignr ${downspeedgraph eth0 10,175 000000 ffffff} ${color lightgrey}${tab 20}U ${color #ddaa00}${upspeedf eth0}kb/s$alignr ${upspeedgraph eth0 10,175 000000 ffffff} ${color lightgrey}${tab 20}Connections ${alignr} Service/Port ${color } ${tab 20}${tcp_portmon 32768 61000 rhost 0} ${alignr} ${tcp_portmon 32768 61000 rservice 0} ${tab 20}${tcp_portmon 32768 61000 rhost 1} ${alignr} ${tcp_portmon 32768 61000 rservice 1} ${tab 20}${tcp_portmon 32768 61000 rhost 2} ${alignr} ${tcp_portmon 32768 61000 rservice 2} ${tab 20}${tcp_portmon 32768 61000 rhost 3} ${alignr} ${tcp_portmon 32768 61000 rservice 3} ${tab 20}${tcp_portmon 32768 61000 rhost 4} ${alignr} ${tcp_portmon 32768 61000 rservice 4} ${tab 20}${tcp_portmon 32768 61000 rhost 5} ${alignr} ${tcp_portmon 32768 61000 rservice 5}Code:own_window yes own_window_hints undecorated,below,skip_taskbar background no double_buffer yes use_spacer yes update_interval 2.0 minimum_size 500 maximum_width 500 draw_shades yes draw_outline no draw_borders no draw_graph_borders no uppercase no border_margin 4 border_width 1 default_color white default_shade_color black default_outline_color white own_window_transparent yes alignment top_right gap_x 10 gap_y 10 override_utf8_locale no use_xft yes xftalpha 0.8 font courier new-r-m TEXT ${execi 1000 cal -3 | cut -c0-21} ${execi 1000 cal -3 | cut -c23-43} ${execi 1000 cal -3 | cut -c45-64}The first sleep in the starter is to accomodate loading Compiz Fusion on session start. The second sleep is to get the calendar to load after the first for blocking/layering reasons.Code:#!/bin/bash sleep 3 && conky -d -c /home/brad/.conkyrc && sleep 1 && conky -d -c /home/brad/.conkyrc-cal & exit
i installed xmms-info pipe, but it's not making the /tmp/xmms-info file. it's just making xmms_username.0
any ideas why?
Any special scripts or packages/dev packages need to be installed for these conky calendars to work? I've been looking for this for the longest time. Thanks for any info. =]The first sleep in the starter is to accomodate loading Compiz Fusion on session start. The second sleep is to get the calendar to load after the first for blocking/layering reasons.
Originally Posted by *snip*
Do you have infopipe activated in XMMS?
.conkyrc
weather.shCode:own_window yes own_window_hints undecorated,below,skip_taskbar background no own_window_type override double_buffer yes use_spacer yes use_xft yes update_interval 1.0 minimum_size 200 5 maximum_width 270 draw_shades yes draw_outline no draw_borders no draw_graph_borders yes uppercase no border_margin 4 border_width 1 default_color grey default_shade_color black default_outline_color white own_window_transparent yes alignment top_left gap_x 10 gap_y 10 override_utf8_locale no xftfont Terminus:size=8 TEXT +--Date/Time | | | +--${time %a, } ${color }${time %B %e %G} | +--${time %I:%M:%S %P} | +--System | | | +--cpu1 - ${cpu cpu1}%, ${color }${cpugraph cpu1 8,60 000000 000000} | +--cpu2 - ${cpu cpu2}%, ${color }${cpugraph cpu2 8,60 000000 000000} | +--ram - $mem/$memmax - $memperc% | +--Network | | | +--down - ${downspeed eth0} k/s ${downspeedgraph eth0 8,60 000000 000000} | +--up - ${upspeed eth0} k/s ${upspeedgraph eth0 8,60 000000 000000} | +--XMMS | | | +--Status: ${execi 1 cat /tmp/xmms-info | grep Status: | cut -d ":" -f2} | +--Artist: ${execi 1 xmmsctrl title | cut -d "-" -f1} | +--Song : ${execi 1 xmmsctrl title | cut -d "-" -f2} | +--Time : ${execi 1 xmmsctrl print %m%n} ( ${execi 25 xmmsctrl print %M%n}) | +--Weather | +--${execi 150 /home/shawn/.local/weather.sh 98374}
weather.xsltCode:#!/bin/sh # # Grab weather data from weather.com and format it according to the given XSLT # Script written by boojit # Modified by Hellf[i]re # The orignal script and xslt can be downloaded from http://pondol.com/weather.tar.gz # Usage: # ${execi 1800 /path/to/weather/weather.sh location} # Usage Example: # ${execi 1800 /home/user/weather/weather.sh 03833} # your Location ID: use http://xoap.weather.com/search/search?where=[yourcity] to find it # U.S. users can just use their zip code; doubt that works for anyone else though (YMMV) LOCID=$1 # s=standard units, m=metric units UNITS=s # where this script and the XSLT lives RUNDIR=/home/shawn/.local # there's probably other stuff besides CURL that will work for this, but i haven't # tried any others. # you can get curl at http://curl.haxx.se/ CURLCMD=/usr/bin/curl # get it at http://xmlsoft.org/XSLT/ XSLTCMD=/usr/bin/xsltproc # you probably don't need to modify anything below this point.... # CURL url. Use cc=* for current forecast or dayf=10 to get a multi-day forecast CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2" # The XSLT to use when translating the response from weather.com # You can modify this xslt to your liking XSLT=$RUNDIR/weather.xslt #filter (if you want to convert stuff to lower-case or upper case or something) #FILTER="|gawk '{print(tolower(\$0));}'" ##### eval "$CURLCMD \"$CURLURL\" 2>/dev/null| $XSLTCMD $XSLT - $FILTER"
Code:<!-- This XSLT is used to translate an XML response from the weather.com XML API. You can format this file to your liking. Two things you may feel like doing: 1) Modify the layout of the fields or static text already defined 2) Add other fields from the XML response file that aren't referenced in this XSLT. You can grab a full list by just doing a: wget "http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS" (change $LOCID and $UNITS to suit your needs) --> − <xsl:stylesheet version="1.0"> <xsl:output method="text" disable-output-escaping="yes"/> − <xsl:template match="weather"> <xsl:apply-templates select="loc"/> <xsl:apply-templates select="cc"/> <xsl:apply-templates select="dayf/day[@d='1']"/> </xsl:template> − <xsl:template match="loc"> <xsl:text>City: </xsl:text> <xsl:value-of select="dnam"/> </xsl:template> − <xsl:template match="cc"> − <!-- <xsl:text>City: </xsl:text><xsl:value-of select="obst"/> --> <xsl:text> </xsl:text> <xsl:text> Temp: </xsl:text> <xsl:value-of select="tmp"/> <xsl:value-of select="/weather/head/ut"/> − <xsl:if test="tmp != flik"> <xsl:text> (FL: </xsl:text> <xsl:value-of select="flik"/> <xsl:value-of select="/weather/head/ut"/> <xsl:text>)</xsl:text> </xsl:if> <xsl:text> Cond: </xsl:text> <xsl:value-of select="t"/> <xsl:text> Wind: </xsl:text> − <xsl:choose> − <xsl:when test="wind/s = 'calm'"> <xsl:text>0</xsl:text> </xsl:when> − <xsl:otherwise> <xsl:value-of select="wind/s"/> </xsl:otherwise> </xsl:choose> <xsl:value-of select="/weather/head/us"/> − <!-- <xsl:choose> <xsl:when test="wind/s = 'calm'"><xsl:text>(0mph)</xsl:text></xsl:when> <xsl:otherwise><xsl:text> (</xsl:text><xsl:value-of select="round(wind/s * 0.6214)"/><xsl:text>mph)</xsl:text></xsl:otherwise> </xsl:choose> --> <xsl:text> (</xsl:text> <xsl:value-of select="wind/t"/> <xsl:text>)</xsl:text> </xsl:template> − <xsl:template match="dayf/day[@d='1']"> <xsl:text> Tomorrow: </xsl:text> <xsl:value-of select="low"/> <xsl:value-of select="/weather/head/ut"/> <xsl:text> to </xsl:text> <xsl:value-of select="hi"/> <xsl:value-of select="/weather/head/ut"/> <xsl:text> </xsl:text> <xsl:text> Forecast: </xsl:text> <xsl:value-of select="part[@p='d']/t"/> <xsl:text/> <xsl:value-of select="/weather/swa/a/t"/> <!-- <xsl:text> </xsl:text> --> </xsl:template> </xsl:stylesheet>
Last edited by PurposeOfReason; July 25th, 2007 at 07:34 PM.
Bookmarks