Forum général.cherche-logiciel Presse-papier directement visible à l’écran pour tuto’vidéos

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
1
15
fév.
2021

Bonjour,

Je prépare des vidéos tuto’ GNU/linux.

J’ai de quoi mettre en évidence le curseur de la souris (Compiz particules) de quoi faire apparaître les touches du clavier pressées… (Keymon).

Mais je cherche à présent à faire apparaître dynamiquement, à l’écran le contenu du presse-papier (“Clipboard”, Ctrl+C ou V).

J’ai déjà "trouvé" ClipIt. Mais ce n’est pas suffisant car il faut cliquer droit dessus pour voir le contenu du presse-papier. Le "spectateur" ne comprendra pas forcément le lien.

Existe-t-il un logiciel qui reste ouvert dans une fenêtre et montre le contenu du presse-papier lorsqu’il change ?

Aussi, pour mes vidéos, je n’ai pas besoin de l’historique de ce qui passe dans le presse-papier, c’est une "complexité" superflue. Je cherche quelque chose de simple.

Merci d’avance :)

  • # KDE ?

    Posté par  . Évalué à 1 (+0/-0).

    Dans KDE la fenêtre du presse papier peut être épinglée pour rester affichée et la mise à jour est dynamique.

    Mais la surface utilisée est assez importante.

    • [^] # Re: KDE ?

      Posté par  . Évalué à 2 (+0/-0).

      Bonjour,

      tu as gpaste qui fait la même chose avec gnome3

  • # Précisions, Manjaro MATE :/

    Posté par  (site Web personnel) . Évalué à 3 (+1/-0). Dernière modification le 15/02/21 à 18:09.

    Merci pour vos réponses, KDE et gpaste, …

    Donc je dois préciser que la particularité des mes vidéos tuto’ sera que j’utilise Manjaro MATE (pour une première série en tout cas).

    J’ai installé gpaste :
    - la fenêtre n’est pas redimensionnable :(
    - il y a un historique dont je n’ai pas besoin et qui prend énormément de place au finale :(

    Je cherche quelque chose de vraiment sobre, genre une fenêtre d’une* seule ligne, sans décoration, ni menu, … *: ou le nombre de lignes nécessaires avec un nombre maximum de lignes.

    Je me demande si ça ne serait pas vite fait de le coder en Python ?

    Alors je trouve https://pypi.org/project/clipboard/ et https://pypi.org/project/pyperclip/

    Mais peut-être auriez-vous alors une solution plus simple à me proposer ?

    Merci d’avance.

    • [^] # Re: Précisions, Manjaro MATE :/

      Posté par  (site Web personnel) . Évalué à 1 (+0/-0).

      Je ne sais pas ce que tu vas utiliser pour capturer ton écran mais si tu utilise OBS tu pourras redimensionner, rogner et appliquer des filtres à la fenêtre en question.
      Avec les filtres tu peux arriver à faire de la transparence.
      Ça peut donner des pistes.

  • # En python

    Posté par  (site Web personnel) . Évalué à 4 (+2/-0).

    J'ai bricolé ça en Python/tk. C'est pas parfait mais ça fait ce que tu demandes, et tu peux adapter le code comme bon te semble.

    #!/usr/bin/env python3
    from tkinter import *
    
    def updateLabel(w, content):
        clipboard = w.clipboard_get()
        if content.get() != clipboard: #La condition est peut-être inutile
            content.set(clipboard)
        w.after(200, updateLabel, w, content) #Récupère le presse-papier toutes les 200ms
    
    def move_event(event):
        w.geometry('+{0}+{1}'.format(event.x_root, event.y_root))
    
    def close(event):
        w.quit()
    
    w = Tk()
    w.overrideredirect(True) #Cacher les décorations de fenêtre
    content = StringVar()
    updateLabel(w, content)
    label=Label(w, textvariable = content)
    label.pack(side =TOP, padx =2, pady =2)
    w.bind('<B1-Motion>', move_event) #Clic gauche pour bouger la fenêtre
    w.bind("<Button-3>", close) #Clic droit pour quitter
    w.mainloop()

    Un LUG en Lorraine : https://enunclic-cappel.fr

    • [^] # Re: En python

      Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

      Tout y est comme dans mes plus beaux rêves de la nuit dernière :)

      C’est magnifique.

      Un tout Grand MERCI donc et à très bientôt avec mes vidéo’ tuto’, je suis presque prêt à présent et grâce à toi.

      Je vais juste essayer de modifier le code :
      - pour ajouter des retour à la ligne automatique en fonction d”une largeur maximum.

      • [^] # Re: En python

        Posté par  (site Web personnel) . Évalué à 2 (+0/-0).

        Voici ma version actuelle, pour ceux qui passent par ici et que cela pourrait intéresser. (je sais pas faire un git pour l’instant, mais faites, faites…)

        Attention que j’apprends le Python par la même occasion et qu’il m’en a fallu du temps et des recherches pour améliorer le code de ted (encore merci ted). Ce n’est donc peut-être plus aussi élégant et optimal :/

        Ce qui nous manque, c’est une limitation en taille, nombre de lignes maximum, et largeur maximum également, avec insertion de retours à la ligne automatiques…

        #!/usr/bin/env python3
        from tkinter import *
        
        def updateLabel(w, content):
            try:
                clipboard = w.clipboard_get()
            except:
                clipboard = "Le presse-papier est vide :)"
            if content.get() != clipboard: #La condition est peut-être inutile
                content.set(clipboard)
            w.after(200, updateLabel, w, content) #Récupère le presse-papier toutes les 200ms
        
        def move(w):
            x = cx - ( w.winfo_width() / 2 )
            y = cy - ( w.winfo_height() / 2 )
            if x != w.winfo_x() or y != w.winfo_y() :
                w.geometry('+{0}+{1}'.format( int(x), int(y) ))
            w.after(50, move, w )
        
        def move_event(event):
            global cx, cy
            cx = event.x_root
            cy = event.y_root
        
        def close(event):
            w.quit()
        
        w = Tk()
        cx = w.winfo_screenwidth()/2
        cy = w.winfo_screenheight()/2
        w.overrideredirect(True) #Cacher les décorations de fenêtre
        
        content = StringVar()
        updateLabel(w, content)
        label=Label(w, textvariable = content, font=("Sans", 12), bg="#eeeeee" )
        label.pack(side =TOP, padx =1, pady =1)
        w.bind('<B1-Motion>', move_event) #Clic gauche pour bouger la fenêtre
        w.bind("<Button-3>", close) #Clic droit pour quitter
        move(w)
        w.mainloop()
  • # Clipboard indicator

    Posté par  . Évalué à 1 (+0/-0).

    Pour ma part j'utilise ceci sous gnome shell, je ne sais pas si ça peut être compatible MATE.
    https://extensions.gnome.org/extension/779/clipboard-indicator/
    Contrairement a ce que montre la capture d'écran, il y a une option pour afficher la dernière entrée du presse papier constamment dans la barre du haut.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n’en sommes pas responsables.