Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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 lol


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 sad

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 tongue


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?! yikes
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 smile


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?? yikes

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 tongue

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? tongue)


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