[twmn] Un système de notification adapté au tiling.

Autres projets et contributions
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

@shyne : C'est disponible, voir l'option --aot de twmnc, qui écrase l'option always_on_top du fichier de configuration. Deux valeurs possibles : true ou false. Quand true il passe au dessus des applications plein écran, quand false il passe au Z suivant. Mais comme j'ai dit, ça risque de dépendre du WM, en tout cas ça fonctionne sous WMFS.
Avatar de l’utilisateur
shyne
Hankyu
Messages : 32
Inscription : ven. 10 avr. 2009, 22:24

Re: [twmn] Un système de notification adapté au tiling.

Message par shyne »

Oui impek, ça fonctionne aussi sous Openbox.

Merci encore.
erufu
Hankyu
Messages : 12
Inscription : jeu. 18 août 2011, 10:23

Re: [twmn] Un système de notification adapté au tiling.

Message par erufu »

Super système j'adopte :).

Par contre je voit pas trop comment l'intégrer avec notify-send ... Actuellement j'utilise xfce4-notifyd ...

Merci.
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Remplace seulement le processus xfce4-notifyd par twmnd.
Socketubs
newbie
Messages : 1
Inscription : lun. 26 juil. 2010, 17:02

Re: [twmn] Un système de notification adapté au tiling.

Message par Socketubs »

Bonjour,

Merci pour ce projet fort sympathique !

Cela dit, j'ai testé sous awesome et wmfs, et je rencontre le même soucis de placement de la notification.
Voici un screenshot pour appuyer le problème.
Le soucis était quasi similaire sous awesome au niveau du placement de la notification.
Les autres placements disponible (top_left, bottom_left, bottom_right) sont tout aussi incohérent dans leur placement.

Je précise que je suis en Dual screen.

http://ompldr.org/vYTE1ZQ
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Hum. Le dual screen est un soucis en effet. Je devine où afficher en fonction de la taille de l'écran courant, donc en dual screen on peut avoir des trucs bizarres.

Je vais rajouter une option permettant de donner une position absolue.
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Une nouveauté attendue : Plusieurs notifications.

Étant donné que twmn a été concu pour afficher un slide unique, il n'est pas possible d'avoir plusieurs notifications visible en même temps, donc grâce à des raccourcis clavier/souris il est possible de se déplacer parmi les notifications en attente.
Si l'utilisateur ne touche à rien (pas de raccourci clavier), les notifications s'afficheront normalement, chacune pendant le temps qui lui est imparti. Comme actuellement, sauf que le slide n'ira pas se cacher pour réapparaitre, ce qui fait ~1.5 secondes de gagnées.

Les raccourcis sont paramétrables via /home/$USER/.config/twmn/twmn.conf, comme pratiquement toute l'application.
Voici ceux que j'ai défini par défaut :
- Notification suivante : Alt + J. Molette bas.
- Notification précédente : Alt + K. Molette haut.
- Activation de notification : Alt + Return. Clic gauche. Exécute la commande du paramètre --ac de twmnc, ou la valeur activate_command du fichier de configuration.
- Fermer la notification : Alt+x. Clic droit.

J'ai corrigé le soucis lié au dual screen en rajoutant une clé absolute_position au fichier de configuration. Précisez la position exacte du slide en plus de l'endroit où il est.
Avec l'arrivée de absolute_position de nouveaux usages peuvent être imaginés, donc j'ajouterai 3 nouveaux types de "position" :
- center. Une animation adaptée pour afficher la notification au milieu de l'écran.
- top_center. Adaptée pour afficher la notification en haut, au milieu de l'écran.
- bottom_center. Adaptée pour afficher la notification en bas, au milieu de l'écran.
C'est possible de le faire déjà mais avec les animations existantes c'est laid.
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [twmn] Un système de notification adapté au tiling.

Message par GuilouV »

Bonjour, bonjour,

Question bête... y'aurait-il un moyen que ce super programme twmn prennent en charge la notification d'insertion de clé usb?
En effet, lorsque j'insère une clé usb (avec thunar lancé) j'ai une notification qui apparaît sur mon écran et twmn ne réagit pas à l'insertion de ma clé.

Merci et encore bravo pour le boulot.
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Thunar utilise libnotify pour envoyer un événement, avec un backend KDE c'est Solid, bref c'est le bordel.
Je ne l'intègre pas dans twmn parce que c'est trop spécifique, mais je te pond un petit script Python qui récupère ce qu'il faut et l'envoie à l'API de twmn.
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [twmn] Un système de notification adapté au tiling.

Message par GuilouV »

T'es trop fort, c'est sympa. :bravo:

Et donc j'ai une nouvelle question simplette (j'en fait une spécialité ^^) : quelles types de notifications sont naturellement prises en charge par twmn ?

Merci
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Ce qui est pris en charge c'est ce qui vient de notify-send et twmnc.
Donc org.freedesktop.Notifications, le reste c'est du superflu, à mes yeux en tout cas. De toutes façons il est toujours possible de rediriger vers twmn comme j'ai fait ici.
Voilà :

Code : Tout sélectionner

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import dbus
import gobject
import socket

title="Nouveau péripherique détecté"
twmnd_port=9797
twmnd_host='127.0.0.1'

class DeviceAddedListener:
    def __init__(self):
        self.bus = dbus.SystemBus()
        self.hal_manager_obj = self.bus.get_object(
                                              "org.freedesktop.Hal", 
                                              "/org/freedesktop/Hal/Manager")
        self.hal_manager = dbus.Interface(self.hal_manager_obj,
                                          "org.freedesktop.Hal.Manager")
        self.hal_manager.connect_to_signal("DeviceAdded", self._filter)

    def _filter(self, udi):
        device_obj = self.bus.get_object ("org.freedesktop.Hal", udi)
        device = dbus.Interface(device_obj, "org.freedesktop.Hal.Device")

        if device.QueryCapability("volume"):
            return self.do_something(device)
    
    def do_something(self, volume):
        device = volume.GetProperty("block.device")
        label = volume.GetProperty("volume.label")
        #fstype = volume.GetProperty("volume.fstype")
        #mounted = volume.GetProperty("volume.is_mounted")
        #mount_point = volume.GetProperty("volume.mount_point")
        try:
            size = volume.GetProperty("volume.size")
        except:
            size = 0
	
        #print "  device_file: %s" % device_file
        #print "  label: %s" % label
        #print "  fstype: %s" % fstype
        size = float(size) / 1024**3
        content = str(label) + '(' + device + ' - ' + ('%.2fGb' % size ) + ')'
        s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
        s.connect((twmnd_host, twmnd_port))
        mount_dir = "/media/";
	if len(label):
	    mount_dir = mount_dir + label
	else:
	    mount_dir = mount_dir + device.split('/')[2]
        s.send("<root><title>" + title + "</title><content>" + content + "</content>"
	   "<ac></ac></root>")

if __name__ == '__main__':
    from dbus.mainloop.glib import DBusGMainLoop
    DBusGMainLoop(set_as_default=True)
    loop = gobject.MainLoop()
    DeviceAddedListener()
    loop.run()
Tu n'a qu'à lancer ce script et tu aura des notifications au branchement d'un volume. Il faut avoir hal et dbus lancé.
- Tu peux améliorer en ajoutant une icône : balise 'icon', personnellement comme c'est ça me suffit amplement.
- Une commande pour monter ton périphérique à l'activation de la notification entre la balise 'ac'. (typiquement 'udisks --mount /dev/sdx')
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [twmn] Un système de notification adapté au tiling.

Message par GuilouV »

Merci !

Quelle réactivité !!!
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Avatar de l’utilisateur
Ypnose
Maître du Kyudo
Messages : 1363
Inscription : sam. 01 mai 2010, 13:17

Re: [twmn] Un système de notification adapté au tiling.

Message par Ypnose »

Bah dis-donc mec, t'es impressionnant.
Avatar de l’utilisateur
Rolinh
Chu Ko Nu
Messages : 392
Inscription : sam. 15 août 2009, 09:15
Localisation : Suisse

Re: [twmn] Un système de notification adapté au tiling.

Message par Rolinh »

Ouep, belle réactivité. Après avoir un peu plus testé, je trouve vraiment sympa mais sur Awesome ça fait un peu double emploi avec naugthy.
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [twmn] Un système de notification adapté au tiling.

Message par GuilouV »

Utilisant awesome je suis d'accord mais ça reste très interessant pour d'autre wm et puis naughty ne gère pas non plus les notifications de montage de volumes alors que le script de Boli y parvient.
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Avatar de l’utilisateur
oloꟼ
Chu Ko Nu
Messages : 381
Inscription : sam. 23 oct. 2010, 21:30

Re: [twmn] Un système de notification adapté au tiling.

Message par oloꟼ »

bonjour bonjour,

boli je l'ai définitivement adopté. Je m'en sers avec weechat et http://mayrhofer.eu.org/dvcs-autosync et c'est excellent. Merci beaucoup.
oloꟼ aka ewloni
boli
Hankyu
Messages : 20
Inscription : ven. 07 janv. 2011, 23:11

Re: [twmn] Un système de notification adapté au tiling.

Message par boli »

Bonjour, ça fait plaisir.

Sinon des nouvelles du projet :
L'intégration d'un patch de kiooeht qui permet de gérer très simplement le dual-head, une amélioration de la documentation et un nouvel exemple toujours en Python grâce au travail de orftz. Et moi ben ... j'ai résolu quelques bugs par-ci par là et j'ai fait du refactoring. Le prochain morceau c'est une intégration de widgets dans les notifications mais je suis mitigé. J'ai pas envie de passer du temps à implémenter cette fonctionnalité complexe pour que ça déplaise ou que ce soit inutile parce qu'une notification c'est une notification hein, pas besoin d'un truc qui fait le café. En plus ça fait double usage avec la possibilité de lancer une commande à l'activation de la notification.

Je vous demande donc votre avis :
L'idée que j'ai en tête, c'est de donner la possiblité d'ajouter des widgets (slider, boutton, lineEdit) directement dans la notification, toujours en gardant ce principe de 'ligne unique'. Les usages qu'on peut y voir sont multiples, par exemple si je me restreint aux exemples fournis :
- MPD : Trois boutons. Précédent, Suivant, Toggle.
- Mail : Un bouton pour ouvrir la boite mail.
- Périphérique : Un bouton pour monter le périphérique, un autre pour se rendre dans le répertoire de montage par exemple.
- La possibilité d'exécuter carrément n'importe quelle action depuis une notification, un lineEdit pouvant être utilisé pour entrer une commande par exemple.
Sachant que les propriétés d'un widget sont scriptables au format XML(commande, image, icône, action à réaliser à l'activation ...), que les widgets communiquent entre eux et que le tout reste contrôlable au clavier.
Si vous pensez que ça vaut le coup d'implémenter ça faites le moi savoir s'il vous plaît, sinon je risque de ne pas me prendre la tête avec ça.
Avatar de l’utilisateur
GuilouV
Elfe
Messages : 539
Inscription : jeu. 25 nov. 2010, 15:34

Re: [twmn] Un système de notification adapté au tiling.

Message par GuilouV »

Personnellement l'idée me séduit... je pense que ça permettrait a twmn d'être complet sans pour autant faire doublon ou proposer des fonctionnalités inutiles.
[ Vaio S (VJS131X0211B) ]==[ Arch64 i3 Bépo ]==[ KISS spirit ]
Avatar de l’utilisateur
Nic0
Chu Ko Nu
Messages : 454
Inscription : dim. 11 janv. 2009, 03:16
Localisation : Calvados (14)

Re: [twmn] Un système de notification adapté au tiling.

Message par Nic0 »

boli a écrit :ou que ce soit inutile parce qu'une notification c'est une notification hein, pas besoin d'un truc qui fait le café.
Pour moi, tu as bien résumé ici, en tiling, chacun a déjà ses raccourcis défini, et généralement pas trop fan des click-click sur des boutons (si j'ai bien compris ce que tu voulais faire). En tout cas, si tu l'implémentes, je serai d'avis qu'il ne soit pas activé par défaut.

Félicitation pour cette belle initiative en tout cas. :chinois:
~ Yet Another DevOps Blog ~
Avatar de l’utilisateur
Rolinh
Chu Ko Nu
Messages : 392
Inscription : sam. 15 août 2009, 09:15
Localisation : Suisse

Re: [twmn] Un système de notification adapté au tiling.

Message par Rolinh »

Même avis que Nic0. Faut rester KISS quoi :P
Répondre