IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ubuntu Discussion :

Xubuntu, afficher l'heure en premier plan (toujours au dessus)


Sujet :

Ubuntu

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Xubuntu, afficher l'heure en premier plan (toujours au dessus)
    Bonjour et merci pour le magnifique travail que vous faite.

    J'ai créer un simple petit script pour affiché l'heure en premier plan (toujours au dessus). Très pratique lorsque l'on utilise le mode plein écran sans devoir descendre la fenêtre à chaque fois que l'on veux voir l'heure.
    J'utilise Voyager Live 18.04 (Xubuntu 18.04 LTS sous le capot), Ordinateur HP (ThinkStation).

    Voici mon script:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    #!/bin/bash -   
     
    sec=$(echo $(date '+%H:%M:%S') | cut -d : -f3 | sed 's/^0//')
     
    sleep $((60 - $sec)) # pour lancer l'affichage de la notification à la première seconde de la prochaine minute.
     
    while true; do
     
    	notify-send " " "$(date '+%a %d %b ') $(date '+%H:%M')" -t 59740 & # -t 59740 (moins de 60 secondes) pour que la notification s'efface avant que la nouvelle s'effectue pour évité qu'elle ne s'affiche sous la précédente.
     
    	sleep 60 # pour afficher l'heure à toute les minutes.
     
    done
    Voilà mon premier problème; souvent l'affichage de la notification ne disparaît pas après le temps accordé (-t 59740) ce qui fait afficher une nouvelle notification sous l'autre, donc 2 notifications une sous l'autre en même temps.
    Et mon deuxième problème; c'est que lorsque mon ordinateur en allumé depuis plusieurs jours, il y à un décalage entre l'heure véritable et celui qui s'affiche dans la notification malgré le sleep de 60 secondes.

    Merci si vous pouvez m'aider et sinon si vous avez d'autres solutions, je suis très ouvert, le but c'est d'afficher l'heure à tout les minutes en popup en haut à droite ou à gauche même en mode plein écran.

  2. #2
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Pour la superposition des notifications je ne sais pas, mais il se peut que le décalage que tu observes sur la longue durée soit dû au temps d'exécution accumulés des notify-send.
    Peut-être qu'en introduisant un correctif au niveau du sleep 60 dans la boucle while ça règlerait le problème.
    En fait, ce correctif serait simplement le sleep $((60 - $sec)) qui figure au-dessus et qui, une fois simplifié, pourrait être intégré à la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    while true; do
      sleep $(( 60 - $(date '+%S') )) # pour afficher l'heure à toute les minutes.
      notify-send " " "$(date '+%a %d %b ') $(date '+%H:%M')" -t 59740 & # -t 59740 (moins de 60 secondes) pour que la notification s'efface avant que la nouvelle s'effectue pour évité qu'elle ne s'affiche sous la précédente.
    done

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    1. Ton script recrée le système de cronjob. Pourquoi ne pas passer par cron simplement ?
    2. Pourquoi passer par le système de notification ? On peut afficher des choses sur un écran sans ce système.
    3. D'après le manuel, Ubuntu ignore l'option "-t".
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
             -t, --expire-time=TIME
                    The duration, in milliseconds, for the notification to appear on screen.  (Ubuntu's Notify OSD and GNOME Shell both ignore this parameter.)
    4. Le vrai besoin est-il de faire une horloge ? Le fait de mettre une horloge "toujours au premier plan" est suffisant pour surpasser le mode plein écran.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Xubuntu, afficher l'heure en premier plan (toujours au dessus)
    Citation Envoyé par balkany Voir le message
    Pour la superposition des notifications je ne sais pas, mais il se peut que le décalage que tu observes sur la longue durée soit dû au temps d'exécution accumulés des notify-send.
    Peut-être qu'en introduisant un correctif au niveau du sleep 60 dans la boucle while ça règlerait le problème.
    En fait, ce correctif serait simplement le sleep $((60 - $sec)) qui figure au-dessus et qui, une fois simplifié, pourrait être intégré à la boucle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #!/bin/bash
     
    while true; do
      sleep $(( 60 - $(date '+%S') )) # pour afficher l'heure à toute les minutes.
      notify-send " " "$(date '+%a %d %b ') $(date '+%H:%M')" -t 59740 & # -t 59740 (moins de 60 secondes) pour que la notification s'efface avant que la nouvelle s'effectue pour évité qu'elle ne s'affiche sous la précédente.
    done


    Merci balkany, j'ai bien compris la différence entre mon script et le tiens, j'ai déjà modifié et mit en fonction, merci encore.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Xubuntu, afficher l'heure en premier plan (toujours au dessus)
    Citation Envoyé par Flodelarab Voir le message
    Bonjour

    1. Ton script recrée le système de cronjob. Pourquoi ne pas passer par cron simplement ?
    2. Pourquoi passer par le système de notification ? On peut afficher des choses sur un écran sans ce système.
    3. D'après le manuel, Ubuntu ignore l'option "-t".
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
             -t, --expire-time=TIME
                    The duration, in milliseconds, for the notification to appear on screen.  (Ubuntu's Notify OSD and GNOME Shell both ignore this parameter.)
    4. Le vrai besoin est-il de faire une horloge ? Le fait de mettre une horloge "toujours au premier plan" est suffisant pour surpasser le mode plein écran.

    Merci Flodelarab,
    1- Pourquoi pas crontab, simplement parce que je veux avoir le choix d'afficher l'heure ou pas avec un raccourcis ajouter sur un tableau de bord, marche ou arrêt.
    2- Je passe par une notification parce que ne connais pas d'autres façons de faire pour afficher l'heure par dessus tout quand je suis en mode plein écran.
    3- Je ne suis pas expert, mais j'utilise Xubuntu, donc Ubuntu avec gestionnaire de bureau xfce4 et xfce utilise xfce4-notifyd et non Notify OSD ou GNOME Shell. Et l'option -t fonctionne à 99% du temps, mais parfois la bulle s'affiche un peu plus longtemps que ce qui était prévu ce qui fait que la nouvelle notification s'affiche en dessus de l'autre et quelque secondes après la notification qui était supposé disparaître, disparaît enfin.

    Je joins une copie d'écran avec l'heure qui s'affiche en haut à droite et c'est ce que j'aimerais avoir, mais sans les bugs. Comme dit plus tôt, je suis ouvert à d'autre solutions. Une image vaut mille mots. Merci pour vos réponses.

    Nom : Capture d’écran_2019-10-15_03-10-08.png
Affichages : 741
Taille : 188,2 Ko

  6. #6
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 730
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 730
    Points : 15 132
    Points
    15 132
    Par défaut
    Bonjour,

    ces décalages temporels apparaissent peut-être à cause des deux appels à date.

    Pourquoi ne pas faire ainsi notify-send " $(date '+%a %d %b %H:%M')" ?

    Ça sera plus concis, plus lisible, et sans doute plus rapide du point de vue appels système.
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par Jipété Voir le message
    Bonjour,

    ces décalages temporels apparaissent peut-être à cause des deux appels à date.

    Pourquoi ne pas faire ainsi notify-send " $(date '+%a %d %b %H:%M')" ?

    Ça sera plus concis, plus lisible, et sans doute plus rapide du point de vue appels système.

    Bonjour et merci Jipété,
    en fait, la vraie ligne de commande que j'utilise est plutôt: notify-send " " "<span color='#57dafd' font='12px'><i><b>$(date '+%a %d %b ')</b></i></span> <span color='#57dafd' font='42px'><i><b>$(date '+%H:%M')</b></i></span>" -t 59740 & , j'avais simplifié ici par soucis d'espace.
    Ce qui permet d'avoir la date en petite police et l'heure en plus grosse police.

  8. #8
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Citation Envoyé par royjeannot Voir le message
    Je passe par une notification parce que ne connais pas d'autres façons de faire pour afficher l'heure par dessus tout quand je suis en mode plein écran.
    Il est là le problème.

    Pour garder une application sur le dessus (always on top), tu peux



    Donc choisis-toi la meilleure horloge et mets-la sur le dessus. En arrêtant de torturer ton système de notifications qui n'est pas fait pour ça.
    Tu peux sans doute obtenir un résultat approchant ta copie d'écran, en utilisant une simple console xfce4-terminal puisqu'elle gère la vraie transparence, une fois l'avoir redimensionnée et enlever les bords.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 10
    Points
    10
    Par défaut Xubuntu, afficher l'heure en premier plan (toujours au dessus)
    Citation Envoyé par Flognarde Voir le message
    Il est là le problème.

    Pour garder une application sur le dessus (always on top), tu peux



    Donc choisis-toi la meilleure horloge et mets-la sur le dessus. En arrêtant de torturer ton système de notifications qui n'est pas fait pour ça.
    Tu peux sans doute obtenir un résultat approchant ta copie d'écran, en utilisant une simple console xfce4-terminal puisqu'elle gère la vraie transparence, une fois l'avoir redimensionnée et enlever les bords.
    Merci Flognarde,
    je regarde tout ça quand je serai chez moi et je vous reviens. Encore merci pour les réponses.
    Voilà après plusieurs recherches, pour ceux que ça intéresse, j'ai trouvé osd_cat (on doit installer xosd-bin), qui offre beaucoup d'option de paramétrages, je n'ai pas fini d'en faire le tour.
    Le script contient une seule ligne maintenant: while true; do date +"%a %d %b %H:%M" | osd_cat -A right -p top -o 100 -i 20 -f -misc-fixed-bold-*-*-*-18-120-*-*-*-*-*-* -c cyan; done &J'ai aussi trouvé d'autre possibilité avec un petit utilitaire semblable qui se nomme aosd_cat (on doit installer aosd-cat), mais avec des options un peu différentes. On trouve un peu d'information sur internet avec osd_cat man et aosd_cat man. Pour ma part c'est résolu et merci pour toute vos réponses rapide et bonne continuation tlm.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Wscript] probleme avec la méthode send
    Par machinTruc dans le forum Windows
    Réponses: 8
    Dernier message: 18/05/2005, 17h30
  2. MAPI->send(je met quoi la?)
    Par noinneh dans le forum MFC
    Réponses: 3
    Dernier message: 14/04/2005, 09h25
  3. [SOCKET] TCP : select devant send();
    Par trois_1 dans le forum Développement
    Réponses: 4
    Dernier message: 02/03/2004, 18h10
  4. [SOCKET C] deux send() pour un recv()
    Par trois_1 dans le forum Développement
    Réponses: 4
    Dernier message: 01/12/2003, 19h13
  5. Etre notifié de l'ajout d'un job dans le spooler
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 12/11/2003, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo