#1026 Le 07/05/2009, à 20:21
- ljere
Re : [plus maintenu] Manipulation des USplash
cool je suis dans les starting block pour faire des usplash pour smo
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1027 Le 07/05/2009, à 23:03
- philarmonie
Re : [plus maintenu] Manipulation des USplash
@ smo: voilà le nouveau code
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from ctypes import *
from optparse import OptionParser
def own_version():
"""
return the usplash version installed on disk
"""
headerFile = open('/usr/include/usplash-theme.h')
content = headerFile.read()
headerFile.close()
return int(content[content.find('THEME_VERSION') + 14])
class usplash_font(Structure):
_fields_ = [("name", c_char_p),
("height", c_int),
("index_mask", c_int),
("offset", POINTER(c_int)),
("index", c_char_p),
("content", c_uint),
("default_char", c_wchar)]
class usplash_pixmap(Structure):
_fields_ = [("width", c_int),
("height", c_int),
("ncols", c_int),
("transparent", c_int),
("palette", POINTER(c_char * 3)),
("data", c_char_p)]
def get_image(self):
palette = [self.palette[i] for i in range(self.ncols)]
palette = [(ord(r), ord(g), ord(b)) for (r,g,b) in palette]
data = [ord(i) for i in self.data]
return [palette[i] for i in data]
class usplash_theme(Structure):
pass
usplash_theme._fields_ = [("version", c_int),
("next", POINTER(usplash_theme)),
("ratio", c_int),
("usplash_pixmap", POINTER(usplash_pixmap)),
("usplash_font", POINTER(usplash_font)),
("theme_width", c_short),
("theme_height", c_short),
("pixmap_x", c_short),
("pixmap_y", c_short),
("background", c_short),
("progressbar_background", c_short),
("progressbar_foreground", c_short),
("text_background", c_short),
("text_foreground", c_short),
("text_success", c_short),
("text_failure", c_short),
("progressbar_x", c_short),
("progressbar_y", c_short),
("progressbar_width", c_short),
("progressbar_height", c_short),
("text_x", c_short),
("text_y", c_short),
("text_width", c_short),
("text_height", c_short),
("line_height", c_short),
("line_length", c_short),
("status_width", c_short),
("init", c_void_p),
("clear_screen", c_void_p),
("clear_progressbar", c_void_p),
("clear_text", c_void_p),
("animate_step", c_void_p),
("draw_progress_bar", c_void_p),
("draw_text", c_void_p),
("draw_status", c_void_p)]
class Theme_lib:
def __init__(self, path):
CDLL('libusplash.so', RTLD_GLOBAL)
self.lib = CDLL(path)
self.name = path
self.bar_bg = usplash_pixmap.in_dll(self.lib, 'pixmap_throbber_back')
self.bar_fg = usplash_pixmap.in_dll(self.lib, 'pixmap_throbber_fore')
self.theme_list = [usplash_theme.in_dll(self.lib, 'usplash_theme')]
self.resolution_list = []
self.version = self.theme_list[0].version
while self.theme_list[-1].next:
pix = self.theme_list[-1].usplash_pixmap.contents
self.resolution_list.append((pix.width, pix.height))
self.theme_list.append(self.theme_list[-1].next.contents)
else:
pix = self.theme_list[-1].usplash_pixmap.contents
self.resolution_list.append((pix.width, pix.height))
def is_compatible(self):
return own_version() == self.version
def get_preview(self, width, height):
if (width, height) not in self.resolution_list:
print "%dx%d is not supported by %s" % (width, height, self.name)
return
index = self.resolution_list.index((width, height))
back_image = self.theme_list[index].usplash_pixmap.contents.get_image()
bar_image = self.bar_bg.get_image()
pos_x = self.theme_list[index].progressbar_x
pos_y = self.theme_list[index].progressbar_y
bar_width = self.bar_bg.width
bar_height = self.bar_bg.height
for i, pixel in enumerate(bar_image):
x, y = i % bar_width, i / bar_width
x += pos_x
y += pos_y
back_image[y * width + x] = pixel
return back_image
if __name__ == '__main__':
parser = OptionParser(usage='usage: %prog [options] file')
parser.add_option('-i', '--info', action = 'store_true', default = False,
help = 'print versions and resolutions informations')
parser.add_option('-p', '--preview', metavar = 'RES',
help = "RES is a resolution in form WIDTHxHEIGHT, and "
"print the data theme preview in that resolution")
(options, args) = parser.parse_args()
if not args:
parser.error('you have to give an usplash theme file')
if not (options.info or options.preview):
parser.error('you have to choose at least one option')
lib = Theme_lib(args[0])
if options.info:
print 'Versions Informations :'
print '-----------------------\n'
print 'Usplash version in use : %d\n' % own_version()
print 'Usplash version of that theme : %d\n' % lib.version
print 'Resolutions supported by theme :'
print '--------------------------------\n'
for res in lib.resolution_list:
print '%dx%d' % res
print ''
if options.preview:
res = options.preview.split('x')
print lib.get_preview(*[int(i) for i in res])
Pour l'utiliser
script -i mon_theme.so
te donne les informations de version et de résolution, exemple
Versions Informations :
-----------------------
Usplash version in use : 4
Usplash version of that theme : 4
Resolutions supported by theme :
--------------------------------
640x480
800x600
1024x600
1024x640
1024x768
1280x1024
1280x720
1280x800
1440x900
1600x1200
1680x1050
et
script -p 1024x768 mon_theme.so
te donne une image d'aperçu pour la résolution 1024x768 sous forme d'un tableau à une dimension où chaque valeur est la couleur d'un pixel sous forme d'un triplet (rouge, vert, bleu) (pas d'exemple c'est trop long comme sortie ^^)
script -h
t'affiche l'aide du script
Usage: script.py [options] file
Options:
-h, --help show this help message and exit
-i, --info print versions and resolutions informations
-p RES, --preview=RES
RES is a resolution in form WIDTHxHEIGHT, and print
the data theme preview in that resolution
Dernière modification par philarmonie (Le 07/05/2009, à 23:09)
#1028 Le 10/05/2009, à 18:44
- philarmonie
Re : [plus maintenu] Manipulation des USplash
Petite mise à jour de Usplash Manager:
- plus de bug des options bloquées à l'ouverture d'un projet
- prévisualisation des thèmes installés lorsque l'on veut changer de thème à utiliser
Pour la prévisualisation ça peut être un peu long à s'afficher si la taille est grande, j'ai essayé d'optimiser le plus que j'ai pu, je ne pense pas pouvoir faire plus rapide. Si vous trouvez ça trop long, je le retirerai, ou chercherai un autre moyen de le faire.
#1029 Le 10/05/2009, à 19:11
- ljere
Re : [plus maintenu] Manipulation des USplash
et les boites de texte?
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1030 Le 10/05/2009, à 19:52
- philarmonie
Re : [plus maintenu] Manipulation des USplash
toujours pas trouvé la raison
Dernière modification par philarmonie (Le 10/05/2009, à 19:52)
#1031 Le 10/05/2009, à 20:04
- ljere
Re : [plus maintenu] Manipulation des USplash
et si tu les rendais invisible
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1032 Le 10/05/2009, à 22:19
- atichu
Re : [plus maintenu] Manipulation des USplash
mise a jour et bug..
python UsplashManager.py
[sudo] password for atichu:
Traceback (most recent call last):
File "UsplashManager.py", line 20, in <module>
import libreader
File "/home/atichu/usplash-manager/usplash-manager-data/libreader.py", line 134, in <module>
lib = Theme_lib('/usr/lib/usplash/usplash-theme-essai2.so')
File "/home/atichu/usplash-manager/usplash-manager-data/libreader.py", line 98, in __init__
self.lib = CDLL(path)
File "/usr/lib/python2.5/ctypes/__init__.py", line 348, in __init__
self._handle = _dlopen(self._name, mode)
OSError: /usr/lib/usplash/usplash-theme-essai2.so: Ne peut ouvrir le fichier d'objet partagé: Aucun fichier ou dossier de ce type
on répare coment??? svp
edit: il manque: paquet imagemagick
Dernière modification par atichu (Le 11/05/2009, à 01:32)
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1033 Le 10/05/2009, à 22:28
- philarmonie
Re : [plus maintenu] Manipulation des USplash
Arf c'était une ligne de test que j'ai oublié d'enlever ^^
Je retire ça de suite et je remets à jour
@ ljere: oui si on met la taille de la zone de texte à zéro elle n'apparait plus, par contre mon code actuel ne semble pas permettre de choisir cette taille, je regarderai demain pour rendre cela possible.
Edit: remis à jour.
Dernière modification par philarmonie (Le 10/05/2009, à 22:30)
#1034 Le 10/05/2009, à 23:55
- atichu
Re : [plus maintenu] Manipulation des USplash
bonjour
merci sa marche
j'ai trouver une image pour tester format 800*600 renomé avec gimp a l'enregistrement en png et mis en 256 couleur
taille 560k
elle se charge pas.. et le programme ne fait rien.
j'ai pris sur gnome-look une image de usplash en aperçu pour tester.
et rien... pourtant elle devrait être au bon format?
bon.. j'ai ouvert dans un ternimal ...
nouveau projet
Traceback (most recent call last):
File "UsplashManager.py", line 137, in on_project_new_activate
gproject.ProjectWindow(action='new')
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 387, in __init__
self.on_tool_new_clicked(None)
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 1035, in on_tool_new_clicked
self.project = project.create_project(name, image)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 91, in create_project
if name in get_project_list():
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 60, in get_project_list
project_list = [f for f in os.listdir(PROJECT_DIR)
OSError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/atichu/.usplash-manager-themes'
au moment de valide la création du projet.
j'ai créé le dossier..
Traceback (most recent call last):
File "UsplashManager.py", line 137, in on_project_new_activate
gproject.ProjectWindow(action='new')
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 387, in __init__
self.on_tool_new_clicked(None)
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 1035, in on_tool_new_clicked
self.project = project.create_project(name, image)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 100, in create_project
return UsplashProject(path, True)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 145, in __init__
shutil.copy('%s/throbber_back.png' % path, '%s/back.png' % path)
File "/usr/lib/python2.5/shutil.py", line 85, in copy
copyfile(src, dst)
File "/usr/lib/python2.5/shutil.py", line 51, in copyfile
fsrc = open(src, 'rb')
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/atichu/.usplash-manager-themes/test/throbber_back.png'
je créé un fichier vierge throbber_back.png.
après il me dit que test est deja crée...
donc je fais ouvrir.
Traceback (most recent call last):
File "UsplashManager.py", line 146, in on_project_open_activate
gproject.ProjectWindow(action='open', name=dial.choice)
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 390, in __init__
self.project = project.open_project(name)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 113, in open_project
return UsplashProject(path)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 124, in __init__
img = libmaker.background_list(path)[-1]
File "/home/atichu/usplash-manager/usplash-manager-data/libmaker.py", line 205, in background_list
while len(bg_list[-1]) == 19:
IndexError: list index out of range
Dernière modification par atichu (Le 11/05/2009, à 00:15)
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1035 Le 11/05/2009, à 00:17
- philarmonie
Re : [plus maintenu] Manipulation des USplash
Merde j'ai même pas mis un test pour voir si le dossier existe?!
Je vais corriger ça
En attendant il te suffit de faire
mkdir /home/atichu/.usplash-manager-themes
Dernière modification par philarmonie (Le 11/05/2009, à 00:17)
#1036 Le 11/05/2009, à 00:21
- atichu
Re : [plus maintenu] Manipulation des USplash
j'ai fai un créé dossier renommé avec nautilus...
quand on peut évité la ligne de commance.. mais sa bug .. voir message au dessus
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1037 Le 11/05/2009, à 00:24
- philarmonie
Re : [plus maintenu] Manipulation des USplash
edit: ok je viens de lire, je regarde et te répond
Dernière modification par philarmonie (Le 11/05/2009, à 00:26)
#1038 Le 11/05/2009, à 00:38
- philarmonie
Re : [plus maintenu] Manipulation des USplash
Je ne vois pas trop où est l'erreur.
Tu peux effacer ton projet test puis tout recommencer et me donner la sortie complète si ça plante.
#1039 Le 11/05/2009, à 00:45
- atichu
Re : [plus maintenu] Manipulation des USplash
j'ai nettoyer le dossier .usplash..... ccar il rester le dossier test.
Traceback (most recent call last):
File "UsplashManager.py", line 137, in on_project_new_activate
gproject.ProjectWindow(action='new')
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 387, in __init__
self.on_tool_new_clicked(None)
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 1035, in on_tool_new_clicked
self.project = project.create_project(name, image)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 100, in create_project
return UsplashProject(path, True)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 145, in __init__
shutil.copy('%s/throbber_back.png' % path, '%s/back.png' % path)
File "/usr/lib/python2.5/shutil.py", line 85, in copy
copyfile(src, dst)
File "/usr/lib/python2.5/shutil.py", line 51, in copyfile
fsrc = open(src, 'rb')
IOError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/atichu/.usplash-manager-themes/test/throbber_back.png'
au cas ou j'ai créé le fichier throbber_back.png
Traceback (most recent call last):
File "/home/atichu/usplash-manager/usplash-manager-gui-gtk/UMProject.py", line 1047, in on_tool_open_clicked
self.project = project.open_project(dial.choice)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 113, in open_project
return UsplashProject(path)
File "/home/atichu/usplash-manager/usplash-manager-data/project.py", line 124, in __init__
img = libmaker.background_list(path)[-1]
File "/home/atichu/usplash-manager/usplash-manager-data/libmaker.py", line 205, in background_list
while len(bg_list[-1]) == 19:
IndexError: list index out of range
je suis en révision 40 et j'ai un ubuntu minimun de paquet..
Dernière modification par atichu (Le 11/05/2009, à 00:46)
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1040 Le 11/05/2009, à 01:07
- philarmonie
Re : [plus maintenu] Manipulation des USplash
D'accord je vois
sudo apt-get install imagemagick
mais tu n'as pas du me donner TOUS les messages d'erreur
#1041 Le 11/05/2009, à 01:13
- atichu
Re : [plus maintenu] Manipulation des USplash
merci... me souvient.. un sudo apt-get autoremove me la viré quand j'ai voulu faire marché skype.
merci de ton aide.. bonne nuit ..
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1042 Le 11/05/2009, à 01:28
- philarmonie
Re : [plus maintenu] Manipulation des USplash
De rien.
Mais la prochaine fois donne tous les retours que tu as en console, là il devait y avoir un message te disant qu'il ne trouvait pas la commande convert, ça m'aurai permis de comprendre plus rapidement.
@Hizo: si tu passes dans le coin, tu pourrai rajouter dans le premier message qu'il faut installer le paquet imagemagick?
Dernière modification par philarmonie (Le 11/05/2009, à 01:29)
#1043 Le 11/05/2009, à 08:51
- ljere
Re : [plus maintenu] Manipulation des USplash
je me suis permis d'ajouter qu'il faut installer imagemagick à la place d'hizoka
ancien PC Toshiba satellite_c670d-11 / Linux Mint 21 Vanessa
Nouveau PC ASUS TUF GAMING A17 GPU RTX 4070 CPU AMD Ryzen 9 7940HS w/ Radeon 780M Graphics / Linux Mint 21.2 Victoria / Kernel: 6.4.8-1-liquorix / Desktop: Cinnamon
Hors ligne
#1044 Le 11/05/2009, à 16:49
- Hizoka
Re : [plus maintenu] Manipulation des USplash
ok merci
KDE Neon 64bits
Tous mes softs (MKVExtractorQt, HizoSelect, HizoProgress, Qtesseract, Keneric, Services menus...) sont sur github
Hors ligne
#1045 Le 11/05/2009, à 17:04
- philarmonie
Re : [plus maintenu] Manipulation des USplash
J'ai mis à jour pour que l'on puisse définir la taille de la zone de texte à zéro, chez moi ça « résout » le bug d'affichage de la zone de texte.
#1046 Le 11/05/2009, à 17:40
- atichu
Re : [plus maintenu] Manipulation des USplash
question..
Il y a aucune possibilité de mettre un usplash au démarrage diférent de la fermeture?
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1047 Le 11/05/2009, à 17:47
- philarmonie
Re : [plus maintenu] Manipulation des USplash
Si c'est possible mais je ne l'ai pas mis en place, et à chaque mise à jour du noyau il faudra le refaire.
Tu peux toujours le faire à la main en faisant
sudo update-alternatives --config usplash-artwork.so
Puis tu choisis le numéro du thème que tu veux à la fermeture.
Par contre il faut faire cela, une fois que ton thème de démarrage est défini comme tu veux.
Et à chaque fois que tu changeras ton thème de démarrage il faudra le refaire.
Dernière modification par philarmonie (Le 11/05/2009, à 17:47)
#1048 Le 11/05/2009, à 18:08
- atichu
Re : [plus maintenu] Manipulation des USplash
j'ai suprimer usplash-artwork.so
XD
je savais pas a quoi il servé..
Dernière modification par atichu (Le 11/05/2009, à 18:08)
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne
#1049 Le 11/05/2009, à 18:19
- philarmonie
Re : [plus maintenu] Manipulation des USplash
tu fais souvent des trucs comme ça sur ton système??
sudo ln -s /etc/alternatives/usplash-artwork.so /usr/lib/usplash/usplash-artwork.so
#1050 Le 11/05/2009, à 21:02
- atichu
Re : [plus maintenu] Manipulation des USplash
j'ai enlevé tout les .SO que j'ai tester pour faire de laplace.. penser que sa servé pas
1)pour la fenêtre si on farfouille avec les autre fenêtre et le bureau impossible de la retrouver.. pas encore prévu de la faire aparaitre en bas comme firefox? ou un autre programme?
sinon je kill avec le monitor mais bon..
2) trouver une autre question
j'ai mis la barre de progressions sur toute la longeur. mais pendant le test elle se racourci ... et donc prend pas tout l'image..
il y a une solution? )
et en largeur le bas touche mais pas le haut... bug?^^
Dernière modification par atichu (Le 11/05/2009, à 21:23)
Je ne suis pas un geek ni un informaticien mais j'aime linux/ubuntu.
acer aspire5741G (unity 12.04))+une vieillebousse(xfce 12.04)
+teste de la version instable
Hors ligne