Notifications sans image

Fermé
Diablo76 - 14 mars 2023 à 20:11
mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 - 5 avril 2023 à 14:24

Bonjour,

Je viens de m'apercevoir que lorsque je recois des notifications, je n'ai pas d'image mais juste un cercle vide.

Contrairement aux autres OS.

Budgie 10.6.1

Ubuntu 22.04.1 LTS

Et je ne vois rien dans les paramètres de notifications...
Linux / Opera 95.0.0.0

A voir également:

9 réponses

mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 7 750
15 mars 2023 à 13:40

Bonjour,

Peux-tu préciser quel environnement de bureau tu utilises (Gnome Shell, unity, KDE, ...).

Que se passe-t'il avec notify-send (voir ces exemples) ?

notify-send "Message" -i /usr/share/pixmaps/gksu.png 

Bonne chance

0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
16 mars 2023 à 11:25

Merci de ta réponse mon environnement est : Budgie:GNOME

Et notify-send me fait la même chose, peu importe le png... 

0
mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 7 750
16 mars 2023 à 12:54

Bonjour,

Je pense que dropbox ou autres se contentent d'utiliser notify-send et donc c'est plus à ce niveau qu'il faut essayer de comprendre ce qui cloche.

1) Selon ce lien, notify-send attend :

  • soit des icônes 32x32 (en fait le(s) dossier(s) d'icônes sont organisés par résolution et que ce choix dépend du thème gnome, comme indiqué dans ce lien), soit localisées dans des dossiers et avec un suffixe bien précis ;
  • soit en passant le chemin absolu vers l'icône.
    • Selon ce lien, on peut utiliser l'option --icon pour passer un chemin absolu. As-tu essayé ?

Peux-tu essayer d'adapter les exemples évoqués dans message vers des icônes qui existent dans ton cas et nous dire si du coup elles s'affichent ?

2) Est-ce que les icônes qui ne s'affichent pas ne sont simplement pas présentent dans la résolution attendues par le thème ?

3) Est-ce du coup, quand tu changes les paramètres liés aux icônes de ton thème, tu as de meilleurs résutats ?

Je ne peux pas vraiment t'aider beaucoup plus car je n'utilise pas gnome :s

Bonne chance

0
Diablo76 Messages postés 155 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 27 avril 2024 40
28 mars 2023 à 08:14

Salut,

Merci de ta réponse, j'ai tenté ton tes liens mais rien n'y fait, du coup je ne suis sur de rien.

Ma base c'est un script Python et PyQT5, je vais donc proposer un exemple de notification et voir les retours des membres utilisant Linux.

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 7 750
Modifié le 28 mars 2023 à 14:02

Bonjour, peux-tu partager ton script (une version minimale qui met le problème en évidence) ?

0

Salut,

Le code:

import sys
from PyQt5.QtGui import QIcon, QPixmap
from PyQt5.QtWidgets import (
    QApplication,
    QMainWindow,
    QPushButton,
    QSystemTrayIcon,
    QWidget
)

class MainTrayIcon(QMainWindow):
    def __init__(self):
        super().__init__()
        self.tray = QSystemTrayIcon()
        self.tray.setVisible(True)
        title = "Test Notification"

        # A remplacer par un PNG au choix
        self.icon = QIcon(QPixmap("/Diablo.png"))
        #------------------------------------------------------
        
        self.setWindowTitle(title)
        self.setFixedSize(310, 65)
        centralwidget = QWidget(self)
        button_png = QPushButton(centralwidget)
        button_png.setGeometry(20, 10, 113, 32)
        button_png.setText("Icone PNG ")
        button_png.clicked.connect(lambda: self.show_message(title, self.icon, "Icone PNG"))
        button_sys = QPushButton(centralwidget)
        button_sys.setGeometry(180, 10, 113, 32)
        button_sys.setText("Icone SYS ")
        button_sys.clicked.connect(
            lambda: self.show_message(title, QSystemTrayIcon.Warning, "Icone SYS")
        )
        self.setCentralWidget(centralwidget)

    def show_message(self, title, icon, message, duration=3000):
        self.tray.showMessage(
            title,
            message,
            icon,
            duration,
        )

app = QApplication(sys.argv)
main = MainTrayIcon()
main.show()
sys.exit(app.exec_())

Par contre, les icônes internes de QSystemTrayIcon s'affichent bien.

Édit : Peut-être à déplacer dans le forum Python.

0
mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 7 750
3 avril 2023 à 14:18

Bonjour,

J'ai testé ton code et voici ce que j'ai observé :

  • en cliquant sur "icône PNG", je n'ai pas d'icône
    • Note qu'à moins que ton icône soit dans / (ce qui est peu probable), le chemin me paraît étrange.
    • J'ai remplacé chez moi par un chemin d'icône valide (genre /usr/share/icons/breeze/applets/22/car.svg)
    • J'ai observé qu'un emplacement d'icône était réservé au niveau des icônes à côté de l'horloge (boîtes à miniatures)
  • en cliquant sur "icône SYS", j'ai une icône

J'ai observé que l'application ne se fermait pas correctement quand on clique sur la croix. Si j'ai bien compris ta question, le but est donc d'avoir un icône dans la boite de dialogue qui apparaît quand on clique sur "icône PNG" ?

Bonne chance

0

Merci de ta réponse,

Effectivement pour le chemin, c'est une erreur.

Oui le but est d'avoir une icône personnalisée à partir d'un PNG dans la notification.

Sur MAC :

Sur Windows :

0
mamiemando Messages postés 33084 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 29 avril 2024 7 750
5 avril 2023 à 14:24

Bonjour,

Quelques éléments : d'après ce lien

  • soit tu utilises une des icônes pré-définies (c'est ce que tu as fait avec SYS) et tu la spécifies avec setIcon
    def show_message2(title, text):
        msg = QMessageBox()
        icon = QMessageBox.Icon(1)
        msg.setIcon(icon)
        msg.setText(text)
        msg.setWindowTitle(title)
        retval = msg.exec_()
    Note que setIcon attend un objet de type QMessageBox.Icon (si tu passes une QIcon, tu auras une erreur), or ce type ne semble pas permettre pas d'utiliser une icône personnalisée. Je suspecte que c'est parce que c'est prévu pour utiliser des icônes fournies par le système et rien d'autre.
     
  • soit tu utilises une icône personnalisée, mais dans ce cas il faut utiliser setIconPixmap
    from PyQt5.QtGui import QPixmap
    
    ICON_FILENAME = "/usr/share/icons/breeze-dark/apps/22/plasma.svg"
    
    def show_message3(title, text):
        msg = QMessageBox()
        pixmap = QPixmap(ICON_FILENAME)
        msg.setIconPixmap(pixmap)
        msg.setText(text)
        msg.setWindowTitle(title)
        retval = msg.exec_()
     L'icône apparaît bien, mais malheureusement la notification devient une fenêtre popup...

Bonne chance

0