documentation on themes ----------------------- SPECIAL NOTE FOR THE IMPATIENT: copy your themes to either /usr/local/share/asclock/ or /usr/share/asclock/ a theme consists of 8 xpms and a position file called 'config'. all tiles within the same xpm must have the same width or height, except the colon which has half the width of the other digits. the xpm's should have the following names: clock.xpm - the groundplate in the backhround. If the groundplate has transparent areas, this pixmap should also have a mask bitmap as defined by the XPM standard. Look at one of the examples coming along with this package for infos on how this exactly looks like. asclock will open a window with the size of this pixmap. date.xpm - contains the numbers for the calendar. format: '1234567890:' led.xpm - contains the numbers for the time display. A colon needs to be here after the numbers, which should have at most half the width of the numbers. format: '0123456789:(am)(pm)' the colon needs to have half the width of the digits. the 'am' and 'pm' part have 1.5 times the size of a digit. month.xpm - contains the month names. this will go away and will be replaced by an alphabet, from which the month names will be assembled. format: 'Jan' 'Feb' 'Mar' 'Apr' 'May' 'Jun' 'Jul' 'Aug' 'Sep' 'Oct' 'Nov' 'Dec' weekday.xpm - contains the weekday names. this will go away and will be replaced by an alphabet, from which the month names will be assembled. format: 'Mon' 'Tue' 'Wed' 'Thr' 'Fri' 'Sat' 'Sun' hour.xpm - contains an hour pointer for analog clocks. 12 o'clock is asumed. minute.xpm - contains a minute pointer for analog clocks. 12 o'clock is asumed. second.xpm - contains the seconds pointer for analog clocks. 12 o'clock is asumed. Here comes the tricky part - the config file: config - this is an ascii file, specifying the positions of the pixmaps. It can be linked against asclock for default themes, and therefore must be a C- compilable file. If you want to do a theme with time or calendar part only, you could specify a 0 as position. The pixmap will not be displayed then. variable names that can be defined in 'config': booleans:: ( 0==no, 1==yes ) led_visible : time active week_visible : weekday pixmap active cal_visible : calendar day active month_visible : month pixmap active analog_visible : use analog clock features hour_visible : show the hour pointer min_visible : show the minute pointer sec_visible : show the second pointer integers:: led_elem_width : time digit width led_elem_height : time digit height led_24h_hour_x1 : x position of hour digit 1 in 24h format led_24h_hour_x2 : x position of hour digit 2 in 24h format led_24h_colon_x : x position of colon in 24h format led_24h_min_x1 : x postion of minute digit 1 in 24h format led_24h_min_x2 : x position of minute digit 2 in 24h format led_24h_topy : y top line of all time digits in 24h format led_12h_hour_x1 : x position of hour digit 1 in 12h format led_12h_hour_x2 : x position of hour digit 2 in 12h format led_12h_colon_x : x position of colon in 12h format led_12h_min_x1 : x postion of minute digit 1 in 12h format led_12h_min_x2 : x position of minute digit 2 in 12h format led_ampm_x : x position of am/pm led led_ampm_width : width of am/pm led led_12_topy : y top line of all time digits in 12h format week_elem_width : weekday element width week_elem_height: weekday element height week_x : weekday x position week_y : weekday top y position cal_elem_width : calendar element width cal_elem_height : calendar element height cal_x1 : x position of calendar digit 1 cal_x2 : x position of calendar digit 2 cal_topy : y top line of calendar digits comment: if there is only one calendar digit, the position of the digit is (x1+x2)/2 month_elem_width: month element width month_elem_height: month element height month_x : x position of month element month_y : y top line of month element hour_center_x : center x position on clock.xpm hour_center_y : center y position on clock.xpm hour_rot_x : rotation origin x pos on hour.xpm hour_rot_y : rotation origin y pos on hour.xpm min_center_x : center x position on clock.xpm min_center_y : center y position on clock.xpm min_rot_x : rotation origin x pos on min.xpm min_rot_y : rotation origin y pos on min.xpm sec_center_x : center x position on clock.xpm sec_center_y : center y position on clock.xpm sec_rot_x : rotation origin x pos on sec.xpm sec_rot_y : rotation origin y pos on sec.xpm See the different themes directories for examples!!! To make new themes it usually helps to just copy a similar one and gradually replace it's elements. Enjoy.