#1 Le 15/03/2006, à 14:16
- toma222
[HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Il existe désormais un article sur le wiki concernant Adesklets donc je vous conseille de vous y fier, ce tutoriel n'étant plus mis à jour.
Je poste ce sujet en complément du sujet sur l'installation de adesklets sous Breezy.
Je ne reviendrais pas sur les qualités de ce logiciel.
Installation
Par les dépôts :
Sous Dapper, vous pouvez utiliser la version (0.5.0) disponible dans les dépôts.
sudo apt-get install adesklets
Pour utiliser certains desklets (System Monitor en particulier), il vous faudra également les paquets suivant :
sudo apt-get install libstatgrab6 python-statgrab
Compilation manuelle :
Il vous faudra les paquets suivants :
sudo apt-get install python-dev libncurses5-dev libreadline5-dev libimlib2 libimlib2-dev xlibs-dev build-essential libstatgrab6 python-statgrab
Les paquets en -dev et le paquet build-essential ne servent qu'à la compilation, vous pourrez les désinstaller après si vous souhaitez économiser de la place.
Si vous souhaitez avoir la dernière version (0.6.1), téléchargez-la ici.
Décompressez l'archive dans votre home par exemple. Dans un terminal, vous vous placer dans le répertoire créé
cd /home/votre_nom/adesklets-0.6.1
par exemple.
Ensuite,
./configure
make
sudo make install
Une fois tous vos desklets enregistrés (se reporter au post concernant la configuration des desklets), il suffit de taper :
adesklets --nautilus
Pour qu'il se lance au démarrage, dans le menu Système/Préférences/Sessions, onglet «programmes au démarrage» il faut ajouter adesklets --nautilus. Vu que pour moi il ne se lançait toujours pas, j'ai mis adesklets --nautilus -d X (ou X est un délais en secondes, 2s semblant juste, mettre 10 ou 15).
Note : si vous utilisez les pilotes béta Nvidia avec Beryl, les desklets apparaîtront sur fond noir. Ils'agit d'un bug connu qui n'a pas de solution pour le moment.
Merci à Syfou pour ses conseils.
Dernière modification par toma222 (Le 01/08/2007, à 17:59)
Hors ligne
#2 Le 01/04/2006, à 10:03
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Nouvelle version 0.6.1 qui apporte des corrections mineures.
Hors ligne
#3 Le 20/04/2006, à 20:36
- skateinmars
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Merci, j'avais pas vu que libstatgrab etait integre a la distrib
Hors ligne
#4 Le 25/06/2006, à 15:40
- JamesXB
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Bonjour,
j'ai cette erreur en compilant:
james@james:~$ cd /home/james/Desktop/adesklets-0.6.1
james@james:~/Desktop/adesklets-0.6.1$ ./configure make sudo make install
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
configure: WARNING: you should use --build, --host, --target
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for make-gcc... no
checking for gcc... no
checking for make-cc... no
checking for cc... no
checking for cc... no
checking for make-cl... no
checking for cl... no
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
james@james:~/Desktop/adesklets-0.6.1$
merci de votre aide.
Hors ligne
#5 Le 25/06/2006, à 15:45
- Stemp
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
./configure make sudo make install
???
C'est
./configure
puis
make
puis
sudo make install
Mais avant tout, tu n'as pas de compilateur. Installe donc le paquet build-essential.
«La violence n'a jamais rien réglé» Gengis Khan 1162-1227
Blog | Crunchbang Linux | Arch Linux
Hors ligne
#6 Le 27/06/2006, à 18:47
- JamesXB
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Merci stemp
j'ai encore une petite erreur a resoudre ici: http://pastebin.com/733434
ces surement pas grand chose
Sympa de votre aide.
Dernière modification par JamesXB (Le 27/06/2006, à 18:47)
Hors ligne
#7 Le 27/06/2006, à 19:20
- Stemp
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Il te manque probablement le paquet python-dev
«La violence n'a jamais rien réglé» Gengis Khan 1162-1227
Blog | Crunchbang Linux | Arch Linux
Hors ligne
#8 Le 06/07/2006, à 12:30
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
J'ai modifier un peu le tuto afin de ne pas installer toutes les dépendances si on utilise la version des dépôts.
Hors ligne
#9 Le 06/07/2006, à 18:08
- tiεuM
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
J'espère que c'est bien ici qu'il faut poster pour ses problèmes...parce que j'en ai malgré le tuto (que j'ai suivi à la trace).
je vous envoie ce que j'obtiens. Au début j'avais pas mal de no et j'ai installé tous les packages qu'i demandait...enfin j'espère
En tout cas s'il y avait une bonne volonté pour m'aider ça m'arrangerait grandement.
~/adesklets-0.6.1$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for style of include used by make... GNU
checking for gcc... gcc
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ANSI C... none needed
checking dependency style of gcc... gcc3
checking how to run the C preprocessor... gcc -E
checking for gcc... (cached) gcc
checking whether we are using the GNU C compiler... (cached) yes
checking whether gcc accepts -g... (cached) yes
checking for gcc option to accept ANSI C... (cached) none needed
checking dependency style of gcc... (cached) gcc3
checking for flex... flex
checking for yywrap in -lfl... yes
checking lex output file root... lex.yy
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for a BSD-compatible install... /usr/bin/install -c
checking for a Python interpreter with version >= 2.3... python
checking for python... /usr/bin/python
checking for python version... 2.4
checking for python platform... linux2
checking for python script directory... ${prefix}/lib/python2.4/site-packages
checking for python extension module directory... ${exec_prefix}/lib/python2.4/site-packages
checking for Python include path... /usr/include/python2.4
checking for Python library path... /usr/lib/python2.4/config
checking python extra libraries...
checking for sigprocmask... yes
checking for perl... /usr/bin/perl
checking for perl version greater than or equal to 5.8.2... ok
checking for perl module IPC::Open3... ok
checking for help2man... /usr/bin/help2man
checking for tidy... /usr/bin/tidy
checking for doxygen... /usr/bin/doxygen
checking for ISO C99 warnings generation... yes
checking for egrep... grep -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking stdio.h usability... yes
checking stdio.h presence... yes
checking for stdio.h... yes
checking stdarg.h usability... yes
checking stdarg.h presence... yes
checking for stdarg.h... yes
checking errno.h usability... yes
checking errno.h presence... yes
checking for errno.h... yes
checking fcntl.h usability... yes
checking fcntl.h presence... yes
checking for fcntl.h... yes
checking signal.h usability... yes
checking signal.h presence... yes
checking for signal.h... yes
checking time.h usability... yes
checking time.h presence... yes
checking for time.h... yes
checking math.h usability... yes
checking math.h presence... yes
checking for math.h... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for sys/types.h... (cached) yes
checking for sys/stat.h... (cached) yes
checking grp.h usability... yes
checking grp.h presence... yes
checking for grp.h... yes
checking pwd.h usability... yes
checking pwd.h presence... yes
checking for pwd.h... yes
checking libgen.h usability... yes
checking libgen.h presence... yes
checking for libgen.h... yes
checking dirent.h usability... yes
checking dirent.h presence... yes
checking for dirent.h... yes
checking iconv.h usability... yes
checking iconv.h presence... yes
checking for iconv.h... yes
checking for debugging symbols generation... no
checking for sigkill timeout... yes
checking for polling frequency... checking for bc... yes
checking for lock files directory setting... yes
checking for control modifier on context menu... no
checking for legacy fake root window detection code... no
checking for frontend shell driver... yes
checking for date... (cached) yes
checking for uname... (cached) yes
checking for tputs in -lncurses... yes
checking for readline in -lreadline... yes
checking for add_history in -lhistory... yes
checking for free_history_entry in -lhistory... yes
checking for history max command lenght... yes
checking for pkg-config... /usr/bin/pkg-config
checking for fontconfig... no
configure: WARNING:
-----------------------------------------------------
`fontconfig' was not found on your system.
Although `adesklets' will work anyway system-wide
automatic font detection will not occur:
it is therefore quite possible that only the
default font provided with the package will display.
-----------------------------------------------------
checking for fork... yes
checking for X... libraries /usr/X11R6/lib, headers
checking for XOpenDisplay in -lX11... yes
checking for imlib2-config... /usr/bin/imlib2-config
checking for imlib2 - version >= 1.1.2... yes
checking for imlib2... checking for imlib2 - version >= 1.2.0... yes
checking for imlib2 program linking with ad-hoc flags... yes
checking for uint typedef in standard library... yes
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating data/Makefile
config.status: creating utils/Makefile
config.status: creating doc/Makefile
config.status: creating doc/adesklets_checkin.1
config.status: creating doc/adesklets_submit.1
config.status: creating doc/htmldoc.sh
config.status: creating doc/imlib2/Makefile
config.status: creating scripting/Makefile
config.status: creating scripting/protoize.sh
config.status: creating scripting/python/Makefile
config.status: creating scripting/python/config.h
config.status: creating scripting/python/setup.py
config.status: creating scripting/perl/Makefile
config.status: creating scripting/perl/Makefile.PL
config.status: creating scripting/perl/updateproto.pl
config.status: creating utils/adesklets_frontend.sh
config.status: creating src/config.h
config.status: executing depfiles commands
Mieux vaut être belle et rebelle
que moche et re-moche
Hors ligne
#10 Le 06/07/2006, à 18:12
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Bonjour,
Je ne vois pas de soucis dans le log que tu nous as mis. Tu as fait le make ensuite ?
Hors ligne
#11 Le 06/07/2006, à 18:15
- tiεuM
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
oups j'ai oublié de préciser...c'est l'histoire du fontconfig qui me tracassait...
parce que quand je regarde dans synaptic il est bien installé (d'ailleurs je l'ai réinstallé pour la peine)
Dernière modification par tiεuM (Le 06/07/2006, à 18:16)
Mieux vaut être belle et rebelle
que moche et re-moche
Hors ligne
#12 Le 06/07/2006, à 18:43
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Pas de soucis, il s'agit uniquement d'un warning. Au pire tu auras à changer les polices VeraBd en Vera pour tes desklets.
Hors ligne
#13 Le 09/07/2006, à 10:20
- Kdenc
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Bonjour, j'ai installer simplement adesklets via synaptic, et quand je tape la commande adesklets --nautilus rien ne se passe.
Pourriez vous m'éclairer ?
Merci d'avance
#14 Le 09/07/2006, à 12:22
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Bonjour,
Question bête, tu as installé des desklets ? Dans le cas contraire vas voir le poste concernant la configuration des desklets (tu trouveras le lien dans le tuto de la première page).
Hors ligne
#15 Le 12/07/2006, à 17:46
- kryss
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
bon j ai essayé gdesklets, j arrivais pas a mettre un affichages des flux rss sur le bureau (erreur : pas de capteur rss grab, je sais pas ce que ca veut dire et j ai pas compris comment resoudre le probleme). j ai donc decidé de passer a adesklets, je suis ce que vous avez mis en haut pas a pas, c est cool tout marche sauf que j arrive pas a le lancer. comme le monsieur d en haut, Kdenc. j ai installé des desklets avec desklets installer mais comme j arrive pas a lancer adesklets...
bref, je sais pas si quelqu un peut m aider, tout ce que je voulais c etait eviter de passer par liferea ou blam feed reader pour gerer mes flux rss, juste les avoir deja affiché sur le bureau.
inutile de preciser que je suis au bord du gouffre
merci a tous!
Hors ligne
#16 Le 12/07/2006, à 18:04
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Salut,
En fait le truc c'est que quand tu lances adesklets, tu n'as rien (à part les desklets). Je veux dire qu'il n'y a pas d'interface comme sous gdesklets.
J'imagine que tu as installé newsfeed. Je ne l'ai jamais utilisé alors on va y aller étape par étape.
J'ai regardé le readme, déjà il te faut feedparser (python-feedparser dans Synaptic).
Ensuite il te faudra le configurer en éditant le fichier config.txt :
gedit ~/.desklets/newsfeed-0.0.4/config.txt
Hors ligne
#17 Le 13/07/2006, à 00:06
- kryss
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
j ai pas de fichier config.txt mais un newsfeed.py
et le contenu de ce fichier est le suivant :
#! /usr/bin/env python
"""
--------------------------------------------------------------------------------
Copyright (C) 2005 Alessio Carenini <farquaad@users.sourceforge.net>
for the code
Released under the GPL, version 2.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies of the Software and its documentation and acknowledgment shall be
given in the documentation and software packages that this Software was
used.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
--------------------------------------------------------------------------------
RSS/ATOM news feed desklets
Tested on adesklet-0.4.0 with python-2.3.4
Required feedparser.py from www.feedparser.org
Just run this script from its final location on you disk to start the desklet.
--------------------------------------------------------------------------------
"""
#-------------------------------------------------------------------------------
import adesklets
from os import getenv, system
from os.path import join, dirname
import feedparser
import textwrap
#-------------------------------------------------------------------------------
class Config(adesklets.ConfigFile):
"""
This is newsfeed.py desklet configuration file; for each desklet,
you only have to write down the minimal delay between updates
(in seconds: less than 300 will be ignored), the URL of the feed
and the size of the desklet
Details:
sizeX,sizeY: width and height
head_font, head_font_height: font for news title
item_font, item_font_height: font for news details
url: rss/atom newsfeed url
line_spacing: pixels between two lines
borderX, borderY: area reserved to borders
interactive: if True, enables highlighting of news details and calling
selected browser
browser: browser to call for viewing selected news
"""
cfg_default = {
'sizeX':400,
'sizeY':600,
'delay':600,
'url':'http://slashdot.org/index.rss',
'head_font':'VeraBd',
'head_font_height':8,
'head_font_color':'ffff00',
'item_font':'Vera',
'item_font_height':8,
'item_font_color':'02c601',
'selected_font_color':'ffffff',
'title_font':'VeraBd',
'title_font_height':12,
'title_font_color':'ffe600',
'line_spacing':5,
'interactive':False,
'browser':'firefox',
'managed':True,
'borderX':7,
'borderY':7
}
def __init__(self,id,filename):
adesklets.ConfigFile.__init__(self,id,filename)
def color(self,string):
colors = [eval('0x%s' % string[i*2:i*2+2]) for i in range(len(string)/2)]
if (len(colors) != 4): colors += [255]
return colors
#-------------------------------------------------------------------------------
class Events(adesklets.Events_handler):
def __init__(self, basedir):
if len(basedir)==0:
self.basedir='.'
else:
self.basedir=basedir
self.w = None
self.buffer= None
self.id= None
self.delay=None
self.item_pos=None
self.selected_item=None
self.feed=None
self.modified=None
self.error_flag=0
adesklets.Events_handler.__init__(self)
def __del__(self):
adesklets.Events_handler.__del__(self)
def ready(self):
# Real initialisation take place here
self.config=Config(adesklets.get_id(),
join(self.basedir,'config.txt'))
if self.config['delay']<300:
self.config['delay']=300
self.x=self.config['sizeX']
self.y=self.config['sizeY']
self.url=self.config['url']
# Font config
self.h_font=self.config['head_font']
self.h_font_height=self.config['head_font_height']
self.h_font_color=self.config.color(self.config['head_font_color'])
self.i_font=self.config['item_font']
self.i_font_height=self.config['item_font_height']
self.i_font_color=self.config.color(self.config['item_font_color'])
self.sel_font_color=self.config.color(self.config['selected_font_color'])
self.t_font=self.config['title_font']
self.t_font_height=self.config['title_font_height']
self.t_font_color=self.config.color(self.config['title_font_color'])
self.line_spacing=self.config['line_spacing']
self.interactive=self.config['interactive']
self.borderX=self.config['borderX']
self.borderY=self.config['borderY']
self.browser=self.config['browser']
adesklets.add_path_to_font_path(join(self.basedir))
self.buffer=adesklets.create_image(self.x,self.y)
# Set the window property
adesklets.window_resize(self.x,self.y)
adesklets.window_set_transparency(True)
if (self.config['managed']):
adesklets.window_reset(adesklets.WINDOW_MANAGED)
adesklets.menu_add_separator()
adesklets.menu_add_item('Configure')
adesklets.menu_add_item('Update feed')
adesklets.window_show()
def alarm(self):
self.block()
self.feed=self.update_feed()
self._display()
self.unblock()
# One second adjustment to make sure everything will be fine
return self.config['delay']+1
def menu_fire(self, delayed, menu_id, item):
if item=='Configure':
editor=getenv('EDITOR')
if editor:
system('xterm -e %s %s/config.txt &' % (editor, self.basedir))
if item=='Update feed':
self.block()
self.feed=self.update_feed()
self._display()
self.unblock()
def _display(self):
self.set_buffer_image()
if self.feed.bozo==1:
self.error_flag=1
self.draw_error_info()
else:
self.error_flag=0
self.draw_info()
self.copy_to_desklet()
def set_buffer_image(self):
# Reset the whole buffer image in transparent black
adesklets.context_set_image(self.buffer)
adesklets.context_set_color(0,0,0,0)
adesklets.context_set_blend(False)
adesklets.image_fill_rectangle(0,0,self.x,self.y)
adesklets.context_set_blend(True)
self.draw_borders()
#--------------- Item selection and viewing ---------------
def fire_browser(self,item):
system(self.browser+' '+self.feed['items'][self.selected_item].link)
def button_release(self, delayed, x, y, button):
if (button==1)&(self.interactive):
self.select_item(x,y)
self.fire_browser(self.selected_item)
def select_item(self,x,y):
prev_selected=self.selected_item
for i in range(len(self.item_pos)):
if (self.item_pos[i]!=[]):
y_start=self.item_pos[i][0]
y_end=self.item_pos[i][1]
if (y>y_start)&(y<y_end):
self.selected_item=i
if (prev_selected!=self.selected_item):
if (prev_selected>-1):
self.redraw_news_content(prev_selected,0)
self.redraw_news_content(self.selected_item,1)
def motion_notify(self, delayed, x, y):
if (self.error_flag==0):
if (not delayed)&(self.interactive):
self.select_item(x,y)
def leave_notify(self, delayed, x, y):
if (self.error_flag==0):
self.selected_item=-1
self._display()
#------------- Drawing functions -------------
def draw_info(self):
self.item_pos=[]
total_feeds=len(self.feed['items'])-1
if total_feeds>20: total_feeds=20
self.item_pos=[[] for i in range (total_feeds)]
self.y_current=self.draw_title()
for item in range(total_feeds):
if (self.draw_news_header(item)==0):
if (item==self.selected_item):
ret=self.draw_news_content(item,1)
else:
ret=self.draw_news_content(item,0)
if (ret==1):
return
else:
return
def copy_to_desklet(self):
# Copy everything from the buffer image to the real foreground image
adesklets.context_set_image(0)
adesklets.context_set_blend(False)
adesklets.blend_image_onto_image(self.buffer,1,0,0,self.x,self.y,0,0,self.x,self.y)
adesklets.context_set_blend(True)
# Free all fonts used
adesklets.fonts_reset_all()
def draw_error_info(self):
adesklets.context_set_font(adesklets.load_font(self.t_font+'/'+str(self.t_font_height)))
adesklets.context_set_color(*self.h_font_color)
adesklets.text_draw(45,15,'News: Error fetching news!')
icon=adesklets.load_image(join(self.basedir,'img/news.png'))
adesklets.blend_image_onto_image(icon,1,0,0,68,60,11,10,30,30)
adesklets.free_image(icon)
adesklets.context_set_font(adesklets.load_font('VeraBd/8'))
adesklets.context_set_color(*self.t_font_color)
adesklets.text_draw(12,40,'Error: '+str(self.feed.bozo_exception))
def draw_news_header(self,item):
adesklets.context_set_font(adesklets.load_font(self.h_font+'/'+str(self.h_font_height)))
feed_title=str(self.feed['items'][item]['title'])
text_x=12
text_y=self.line_spacing+self.y_current
adesklets.context_set_color(*self.h_font_color)
if ((text_y+self.line_spacing+self.h_font_height)<self.y):
adesklets.text_draw(text_x,text_y,feed_title)
return 0
else:
return 1
def redraw_news_content(self,item,selected):
if (selected==0):
image=adesklets.load_image(join(self.basedir,'img/dark.png'))
header_space=self.line_spacing+self.h_font_height
xstart=self.borderX
ystart=self.item_pos[item][0]+1.5*header_space
width=self.x-2*self.borderX
height=self.item_pos[item][1]-self.item_pos[item][0]-header_space
adesklets.blend_image_onto_image(image,0,0,0,80,80,xstart,ystart,width,height)
adesklets.free_image(image)
adesklets.context_set_color(*self.i_font_color)
else:
adesklets.context_set_color(*self.sel_font_color)
current=0
header_space=self.line_spacing+self.h_font_height
adesklets.context_set_font(adesklets.load_font(self.i_font+'/'+str(self.i_font_height)))
feed_content=str(self.feed['items'][item]['description'])
feed_lines= self.string_to_paragraph(feed_content)
for i in range(len(feed_lines)):
text_x=15
text_y=header_space+self.item_pos[item][0]+self.line_spacing+(self.line_spacing+self.i_font_height)*current
if ((text_y+self.line_spacing+self.i_font_height)<self.y):
adesklets.text_draw(text_x,text_y,feed_lines[i])
current+=1
else:
return 1
def draw_news_content(self,item,selected):
last=0
if (selected==0):
adesklets.context_set_color(*self.i_font_color)
else:
adesklets.context_set_color(*self.selected_font_color)
current=0
header_space=self.line_spacing+self.h_font_height
adesklets.context_set_font(adesklets.load_font(self.i_font+'/'+str(self.i_font_height)))
feed_content=str(self.feed['items'][item]['description'])
feed_lines= self.string_to_paragraph(feed_content)
for i in range(len(feed_lines)):
text_x=15
text_y=header_space+self.y_current+self.line_spacing+(self.line_spacing+self.i_font_height)*current
if ((text_y+self.line_spacing+self.i_font_height)<self.y):
adesklets.text_draw(text_x,text_y,feed_lines[i])
current+=1
else:
self.item_pos[item].append(self.y_current)
self.item_pos[item].append(self.y-self.borderY)
return 1
y_start,self.y_current=self.calculate_bounds(self.y_current,feed_lines)
self.item_pos[item].append(y_start)
self.item_pos[item].append(self.y_current)
return 0
def draw_title(self):
adesklets.context_set_font(adesklets.load_font(self.t_font+'/'+str(self.t_font_height)))
adesklets.context_set_color(*self.t_font_color)
adesklets.text_draw(45,15,'News: '+str(self.feed['feed']['title']))
icon=adesklets.load_image(join(self.basedir,'img/news.png'))
adesklets.blend_image_onto_image(icon,1,0,0,68,60,11,10,30,30)
adesklets.free_image(icon)
return 45
def draw_borders(self):
image=adesklets.load_image(join(self.basedir,'img/dark.png'))
adesklets.blend_image_onto_image(image,1,0,0,80,80,0,0,self.x,self.y)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/e-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,10,
self.x-self.borderX,self.borderY,
self.borderX,self.y-(2*self.borderY))
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/w-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,10,
0,self.borderY,
self.borderX,self.y-(2*self.borderY))
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/n-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,10,9,
self.borderX,0,
self.x-(2*self.borderX),self.borderY)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/ne-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,9,
self.x-self.borderX,0,
self.borderX,self.borderY)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/nw-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,9,
0,0,
self.borderX,self.borderY)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/sw-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,9,
0,self.y-self.borderY,
self.borderX,self.borderY)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/s-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,10,9,
self.borderX,self.y-self.borderY,
self.x-(2*self.borderX),self.borderY)
adesklets.free_image(image)
image=adesklets.load_image(join(self.basedir,'img/se-light.png'))
adesklets.blend_image_onto_image(image,1,0,0,15,9,
self.x-self.borderX,self.y-self.borderY,
self.borderX,self.borderY)
adesklets.free_image(image)
#-------------- Utility methods -----------------
def string_to_paragraph(self,string):
string_size=adesklets.get_text_size(string)
char_per_line=(self.x-2*self.borderX)/adesklets.get_text_size('x')[0]
lines=len(string)/char_per_line
limit=char_per_line
result=[]
result=textwrap.wrap(string,char_per_line)
return result
def calculate_bounds(self,y_start,paragraph):
item_space=len(paragraph)*(self.line_spacing+self.i_font_height)
header_space=self.line_spacing+self.h_font_height
return y_start,y_start+item_space+header_space
def update_feed(self):
# Parse url
if (self.modified==None):
return feedparser.parse(self.url)
else:
temp_feed=feedparser.parse(self.url,modified=self.feed.modified)
if (temp_feed.status=='304'):
return self.feed
else:
return temp_feed
#-------------------------------------------------------------------------------
if hasattr(adesklets,'version_check'):
Events(dirname(__file__)).pause()
else:
raise RuntimeError, 'You need adesklets >= 0.4.0. See README.'
je sais pas si ca t aide...
Hors ligne
#18 Le 13/07/2006, à 10:05
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Heu non, pas vraiment (pense à mettre des balises Code pour limiter la taille).
Le fichier config.txt va apparaître lorsque tu auras lancé le desklet pour la première fois.
Donc dans ton terminal :
cd ~/.desklets/newsfeed-0.0.4/config.txt
./newsfeed.py
Ensuite tu fais t pour test et tu auras sans doute une belle erreur. Mais ton fichier config.txt sera créé.
Hors ligne
#19 Le 13/07/2006, à 10:16
- kryss
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
fallait enlever le config.txt a la fin je suppose
donc voila ce que ca me donne dans le terminal :
Do you want to (r)egister this desklet or to (t)est it? t
Now testing...
============================================================
If you do not see anything (or just an initial flicker
in the top left corner of your screen), try `--help',
and see the FAQ: `info adesklets'.
============================================================
Traceback (most recent call last):
File "./newsfeed.py", line 419, in ?
Events(dirname(__file__)).pause()
File "./newsfeed.py", line 109, in __init__
adesklets.Events_handler.__init__(self)
File "/usr/lib/python2.4/site-packages/adesklets/events_handler.py", line 158, in __init__
self._alarm()
File "/usr/lib/python2.4/site-packages/adesklets/events_handler.py", line 296, in _alarm
timeout=self.alarm()
File "./newsfeed.py", line 157, in alarm
self._display()
File "./newsfeed.py", line 180, in _display
self.draw_info()
File "./newsfeed.py", line 238, in draw_info
ret=self.draw_news_content(item,0)
File "./newsfeed.py", line 313, in draw_news_content
feed_lines= self.string_to_paragraph(feed_content)
File "./newsfeed.py", line 394, in string_to_paragraph
char_per_line=(self.x-2*self.borderX)/adesklets.get_text_size('x')[0]
File "/usr/lib/python2.4/site-packages/adesklets/commands.py", line 516, in ge t_text_size
return comm.out()
File "/usr/lib/python2.4/site-packages/adesklets/commands_handler.py", line 10 3, in out
raise ADESKLETSError(4,message)
adesklets.error_handler.ADESKLETSError: adesklets command error - syntax error
a coté, une fenetre bleue s est creee puis s est refermée
Hors ligne
#20 Le 13/07/2006, à 10:26
- kryss
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
et sinon mon fichier config a bien ete crée. le voici :
# -*- coding: ASCII -*-
#
#This is newsfeed.py desklet configuration file; for each desklet,
#you only have to write down the minimal delay between updates
#(in seconds: less than 300 will be ignored), the URL of the feed
#and the size of the desklet
#Details:
# sizeX,sizeY: width and height
# head_font, head_font_height: font for news title
# item_font, item_font_height: font for news details
# url: rss/atom newsfeed url
# line_spacing: pixels between two lines
# borderX, borderY: area reserved to borders
# interactive: if True, enables highlighting of news details and calling
# selected browser
# browser: browser to call for viewing selected news
#
id0 = {'borderX': 7,
'borderY': 7,
'browser': 'firefox',
'delay': 600,
'head_font': 'VeraBd',
'head_font_color': 'ffff00',
'head_font_height': 8,
'interactive': False,
'item_font': 'Vera',
'item_font_color': '02c601',
'item_font_height': 8,
'line_spacing': 5,
'managed': True,
'selected_font_color': 'ffffff',
'sizeX': 400,
'sizeY': 600,
'title_font': 'VeraBd',
'title_font_color': 'ffe600',
'title_font_height': 12,
'url': 'http://slashdot.org/index.rss'}
il me semble que je t ai pas remercié de te pencher sur mon cas...
merci!
Hors ligne
#21 Le 13/07/2006, à 12:58
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
De rien . Par contre j'ai une mauvaise nouvelle, je n'arrive pas à faire fonctionner ce desklet. J'ai la même erreur que toi et je n'arrive pas à la corriger.
En se reportant à ce post, il semblerait que nous ne soyons pas les seuls. Tu peux essayer les solutions proposées (changer les VeraBd en Vera dans le config.txt), mais chez moi ça n'a rien changé.
Hors ligne
#22 Le 14/07/2006, à 07:59
- shiønn
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
petite question: il fonctionne sous XGL ?
personnelement il ne se lance pas
How many people can read hex, if only me dead people can read hex ?
Hors ligne
#23 Le 14/07/2006, à 09:46
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Salut,
Oui il n'y a pas de problème avec Xgl. Ton problème vient sans doute d'ailleurs.
Hors ligne
#24 Le 14/07/2006, à 12:27
- kryss
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
heu... qu est ce que c est xgl?
j ai remplacé la police VeraB par Vera et ca marche toujours pas...
je vois pas du tout ce qui peut marcher la. tout ce que je voulais c etait avoir mes flux rss sur le bureau, moi
Hors ligne
#25 Le 14/07/2006, à 12:35
- toma222
Re : [HOW TO] adesklets : installation sous Ubuntu Dapper et Edgy
Xgl c'est ce qui permet d'avoir ce genre de choses.
Désolé de pas pouvoir t'aider pour ton problème, je ne vois pas de solution. Tu pourrais demander de l'aide à Syfou (le développeur de adesklets) mais malheureusement ce n'est pas lui qui a écrit ce desklet et il a l'air également impuissant sur ce problème.
Donc j'imagine qu'il va falloir que tu trouves d'autres solutions.
Hors ligne