Bulles de notification sur différents environnements

Salut,

Je suis à la recherche des différentes manières d’afficher des bulles de notification (les mieux intégrées possible, et passives si possible) en fonction de l’environnement graphique de l’utilisateur.

Le but est de fournir des “plugins” de notification pour le truc sur lequel je bosse (portage-freewifi-manager-sous-linux-t35731.html), afin d’informer l’utilisateur qu’il a bien été connecté / reconnecté / déconnecté du hotspot. Rien de très important en somme, d’où le fait que ces notifications soient optionnelles et qu’il faut qu’elles soient les moins intrusives possible.

Pour KDE4 j’ai déjà ce qu’il faut :

Exemple :

$ kdialog --passivepopup "ça marche même sur plusieurs lignes" 5 --title "essai"

Je suis donc preneur de l’équivalent pour KDE3 (j’ai su faire, mais je n’ai plus rien pour tester), Gnome 2, Gnome 3, XFCE (quelles versions ?), LXDE (quelles versions ?), ou n’importe quel autre environnement. Bref, envoyez tout ce que vous (s)avez ! :smiley:

Et tant qu’à faire si vous avez aussi, un moyen relativement fiable de détecter si l’appel de cette commande fonctionnera correctement (à minima, est-ce que l’utilisateur courant est bien dans une session de cet environnement ?).
Exemple toujours pour kdialog / KDE4 :

# KDE4 if [ -x "$(which kdialog)" ] && [ "$KDE_FULL_SESSION" = "true" ] && [ "$KDE_SESSION_VERSION" = "4" ]; then kdialog --passivepopup "$MESSAGE" $TEMPS --title "$TITRE" fi

Merci d’avance. :wink:

Résumé des suggestions jusqu’à présent :
[ul][li] linuxlogo : fonctionne en pull et non pas en push, donc l’intégration serait plutôt à faire du côté de linuxlogo (faisable avec l’option –status de mon soft)[/li]
[li] xmessage | recode : fonctionnera pour l’ascii et le latin1 mais quid des langues “exotiques” (japonais etc) ?[/li]
[li] notify-send[/li]
[li] zenity[/li]
[li] Xdialog[/li]
[li] statnot[/li][/ul]

Salut,

J’utilise linuxlogo :slightly_smiling:

Super ce truc, je ne connaissais pas :023
Si on le place dans un script, je suppose que ça n’est valable que pour ceux qui sont sous le bureau KDE4 ?
Gérard, ton truc est plus généraliste, pour tous les bureaux ?

Ça affiche une notification uniquement sur la session utilisateur en cours.
Par exemple si tu lances une commande root dans un terminal X (su, sudo ou super) ça n’affichera pas la notification passive normale mais ça bloquera le script pendant le temps défini ($TEMPS) avec le message qui s’affiche au milieu de l’écran.

Par contre rien ne t’empêche, en bricolant un peu, d’arriver à récupérer des infos d’un programme su(do/per) et les afficher en notification. Suffit d’un peu d’imagination :

[code]$ cat > script-utilisateur <<EOF
#!/bin/sh
kdialog --passive-popup “$(super script-root)” 5 --title "Un titre"
EOF

cat > script-root <<EOF

#!/bin/sh
if TRUC; then
echo "truc !"
else
echo "machin !"
fi
EOF[/code]

À priori c’est un programme console, j’ai du mal à voir comment ça pourrait s’intégrer aux différents bureaux sous X…
À moins que j’aie loupé quelque chose dû à une recherche trop superficielle ?

Salut,

[quote=“ricardo”]Super ce truc, je ne connaissais pas :023
Si on le place dans un script, je suppose que ça n’est valable que pour ceux qui sont sous le bureau KDE4 ?
Gérard, ton truc est plus généraliste, pour tous les bureaux ?[/quote]

Même les consoles de ssh :slightly_smiling:

Après recherche un peu plus approfondie, je confirme : ça n’a rien à voir avec ce que je demande. :laughing:
Tu nous parles d’un logiciel pour afficher une bannière texte à l’ouverture d’un terminal, alors que je veux des moyens d’afficher des notifications en temps réel (des notifications, quoi).

Dieu que ce vendredi s’annonce d’ores et déjà d’une longueur insoutenable… :005 :laughing-rolling:

Re,

Je prends note de ne plus t’importuner avec mes à-peu-près.
Personnellement Linuxlogo s’affiche chaque fois que je lance yakuake par la F12 et me donne ainsi en temps réel des choses tel que la machine sur laquelle je suis, son uptime, le kernel lancé :laughing: :laughing: :laughing: au lieu de subir à un instant que je n’aurais pas aimé une information dont je n’avais aucun besoin :006

Y’a pas de mal, je disais pas ça méchamment de toutes façons. :wink:

Ça tombe bien, ces notifications temps réel seront optionnelles ! :mrgreen:
Bon du coup c’est malin, ça m’a fait penser à un truc en plus que j’avais pas prévu : afficher le statut à un moment T, à la demande. Bon ben j’ai plus qu’à y retourner. :laughing:

Bonjour,

Il y a également notify-send.
En moins connu, il y a zenity avec ses options non documentées.
J’avais écrit un petit script exploitant l’une de ces options.

Merci Totor, je regarderai ça dès que je j’aurai monté une VM (tellement de trucs à tester, hors de question de faire ça directement sur ma machine). :wink:

xmessage ne convient pas de manière générale??

Après avoir testé : ne supporte pas l’UTF-8, donc pas de caractères accentués et autres. :confused:

Dommage ça aurait pu être une bonne roue de secours sinon, bien qu’il soit moche et que ça soit une fenêtre à part entière (donc intrusive pour l’utilisateur).

J’ai quand même rajouté la précision « (les mieux intégrées possible, et passives si possible) » dans mon message initial pour clarifier, et :

dialog/Xdialog peut être??

http://ftp.traduc.org/doc-vf/gazette-linux/html/2004/101/lg101-P.html

Sympa en graphique :023

Et neutre en plus pour ceux qui, comme moi, n’utilisent pas d’environnements de bureau comme Gnome ou KDE

[quote=“syam”]Après avoir testé : ne supporte pas l’UTF-8, donc pas de caractères accentués et autres. :confused:

xmessage `echo "ça va" | recode u8..latin1` résout ton problème

j’utilise statnot (github.com/halhen/statnot) dans dwm (dwm.suckless.org)

Merci à tous, ça fait déjà pas mal de backends possibles, je m’occuperai de l’intégration proprement dite dès que mon code sera un peu stabilisé.

En attendant si d’autres personnes ont encore des suggestions elles sont les bienvenues. :wink:

Y’a rien de spécifique à Gnome ou XFCE pour les notifications passives (ça m’étonne un peu) ?

Salut,

Je me demandais - si je comprend bien ton problème - pourquoi n’utilises-tu pas les outils basés sur les spécifications Freedesktop.org ?
Je ne suis pas expert, mais il me semble que c’est ainsi que s’y prennent diverses applications : elles s’appuient sur une bibliothèque cliente pour envoyer des messages au daemon installé sur le système (c’est celui-ci qui se charge d’afficher la pop-up de notif’).

En bibliothèques clientes :

  • libnotify1 (C et C++)
  • python-notify (binding Python de la première) EDIT : j’crois que c’est lui que tu cherchais, j’viens de voir ton projet sur Github :wink:
  • etc…

En utilitaire client (facilement exploitable dans un script shell) :

  • notify-send (contenu dans le paquet libnotify-send)

Et les daemons derrière ça peuvent être (ton application n’a pas à s’en occuper de toute manière) :

  • notification-daemon (le daemon de GNOME par défaut)
  • notification-daemon-xfce (pareil que le précédent mais sans les dépendances sur GNOME)
  • xfce4-notifyd (le daemon par défaut de Xfce)
  • notify-osd (installé sur Ubuntu par défaut)
  • colibri (alternative au daemon par défaut de KDE4 - pas trouvé le nom de ce dernier d’ailleurs)
    Sachant qu’un seul peut être installé sur le système (sur Debian ils fournissent tous le faux-paquet ‘notification-daemon’).

Salut et merci Keldath !!

C’est effectivement exactement l’information ce que je recherchais : je savais pas que toutes les notifications répondaient au même protocole FreeDesktop.org. :blush:

python-notify serait l’idéal, mais… il n’est pas dispo pour Python 3 dans les dépôts Debian. :confused:
Cela dit notify-send me semble très bien, il suffit de dépendre sur le paquet “libnotify-bin”.

Je considère le problème comme résolu. :slightly_smiling: