Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/09/2021, à 14:43

Hizoka

[Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Bonjour,

suite à la demande de https://forum.ubuntu-fr.org/viewtopic.php?id=2066741, je me suis repenché sur les possibilités offertes pas KDE et les service-menus.

Je vais donc vous faire un retour d'expérience smile


Mes fichiers :
J'ai créé un dépôt ppa avec tous mes services.
Il également possible de télécharger les sources pour récupérer les scripts et les desktop.
Je mets également à disposition un zip qui contient tout.


PPA :
Installation du ppa et mise à jour des paquets.

sudo add-apt-repository ppa:hizo/service-menus

Il ne reste plus qu'à installer les paquets voulus.


Sources :
Elles sont toutes dispo sur le ppa : https://launchpad.net/~hizo/+archive/ub … /+packages
De même, il est possible de télécharger les fichiers deb directement.


Fichier zip :
Le fichier zip contient tous les scripts et les fichiers desktop.
Il a également un fichier install qui copiera tous les fichiers aux bons emplacements locaux (n'hésitez pas à regarder son code).
Seul le binaire keneric doit être déplacé en sudo.


Infos générales :
Les scripts doivent être dans un dossier du PATH :

echo "$PATH"

Les fichiers desktop doivent être dans un dossier de config kde5 :

kf5-config --path services

Tous les services sont regroupés dans un menu appelé Hizo Service Menus.

Pour connaitre le mimetype d'un élément (important pour la création des fichiers desktop).

mimetype ELEMENT

Tous mes scripts sont bien commentés, alors faites vous plaisir et jetez-y un oeil wink


Description des paquets et fichiers :
- keneric :
Ce sont les sources de Keneric sur le ppa.
Et c'est le binaire dans le fichier zip.
Il est possible de compiler depuis les sources sur lesquelles je me suis basées : https://github.com/yodor/keneric

Le fichier keneric.so doit se trouver dans le dossier "/usr/lib/x86_64-linux-gnu/qt5/plugins/"

Keneric est une idée géniale, permette de gérer les vignettes via un script (bash, python...).
Ça permet donc beaucoup de choses sans compétences poussées.

Voici son fonctionnement :
01.png
- Dolphin fait appelle à Keneric (via un desktop de type ThumbCreator).
- Keneric exécute le script bash nommé stripPicture (qui se trouve dans un dossier du PATH).
- stripPicture fait tout le traitement et en ressort une image.
- Keneric récupère l'image de stripPicture.
- Dolphin affiche la vignette.

Exemple d'un fichier desktop type :

[Desktop Entry]
Type=Service

# Nom qui sera affiché dans le menu des vignettes de Dolphin
Name=Dossier à une seule vignette (Keneric)

# Type spécifique aux vignettes
X-KDE-ServiceTypes=ThumbCreator

# Concerne tous les dossiers
MimeType=inode/directory;

# Utilisation de la libraire Keneric
X-KDE-Library=keneric

# Autorise la mise en cache des vignettes
CacheThumbnail=true

Code de base du script stripPicture :

#!/bin/bash

# Utilisation : stripPicture FullName mime exportPicture

# Nom du fichier pour lequel on veut une vignette
FullName="$1"

# Mimetype du fichier
MimeType="$2"

# URL de l'image attendue par Keneric
ExportPicture="$3"


# Fonction permettant de déterminer le nom final de la vignette qui diffère de ExportPicture
# Pas d'obligation de l'utiliser
function url_encode
{
    # $1 : url du fichier sans file://

    # Si aucune url donnée
    [[ -z "${1}" ]] && return 1

    local LANG=C i Char Thumb

    # Traite les caractères de l'url
    for (( i = 0; i < ${#1}; i++ ))
    do
        Char="${1:i:1}"

        # Si c'est un caractère à ne pas modifier
        if [[ "${Char}" == [[:alnum:]-.,_~/:\(\)\&\!@\[\]] ]]
        then
            Thumb+="${Char}"

        # S'il faut encoder le caractère
        else
            Thumb+=$(printf '%%%02X' "'${Char}")
        fi
    done

    # Encodage de l'url
    Thumb="$(echo -n "file://${Thumb}" | md5sum)"

    # Renvoie l'url encodée
    echo "${Thumb%%[[:space:]]*}"

    return 0
}


# En fonction du type des fichiers
case "${MimeType}" in
    XXX) ...
esac

- hizo-keneric :
Dépendances : keneric imagemagick jq mkvtoolnix
Facultatives : ffmpegthumbnailer rsvg-convert

Ajoute 2 lignes dans les aperçus de Dolphin.
Pensez à décocher l'aperçu des dossiers de base.
02mini.png

Les dossiers utiliseront la 1ere image de type (folder|front|cover|icon\).(jpg|png|jpeg|webp) comme icône au dessus de celle par défaut.
Si le fichier s'appelle icon.png, je ne réalise pas de diminution du nombre de couleur ni d'encadré autour de l'image, je l'applique directement afin qu'elle garde sa transparence.

Ce qui donne :
06.png


Pour les vignettes des fichiers MKV, je recherche les images attachées, je privilégie les fichiers s’appelant (cover|front|dvd) sinon, j'affiche la 1ere image trouvée.
Dans le cas où il n'y a pas d'image, on utilise ffmepgthumbnailers et si pas présent, on ne fait rien.

Avec pour résultat :
03.png


- hizo-service-menus :
Contient le script de base nécessaire au bon fonctionnement des autres qui doivent se trouver au même emplacement que ce 1er.
Le fichier hizo-service-menus doit être exécutable.


- hizo-mkv :
Dépendances : hizo-service-menus kdialog mkvtoolnix imagemagick qdbus jq

Service : MKV : Utiliser une image attachée comme vignette
Permet de choisir quelle image, interne au fichier MKV, utiliser comme vignette.
Pour cela, le script extrait les images attachées au fichier MKV et les affiches dans une fenêtre.

Ce qui donne :
04mini.png

05mini.png

Montant mon dossier .cache (qui contient les vignettes) en ram, je perds son contenu à chaque reboot, de ce fait, j'ai ajouté l'utilisation d'un fichier ${HOME}/.config/HizoServiceMenus.cfg qui peut garder en mémoire les choix.
Le fichier n'est créé que si le dossier .cache est monté en ram.


Service : MKV : Supprimer les fichiers attachés
Menu permettant de supprimer tous les fichiers attachés à un fichier MKV avec demande de confirmation.
07.png


- hizo-remove-thumbnails :
Dépendances : hizo-service-menus

Menu supprimant les vignettes des éléments concernés du dossier .cache/thumbnails.


- hizo-url-copy :
Dépendances : hizo-service-menus qdbus|xlcip

Menu envoyant dans le presse papier les adresses des éléments sélectionnés.
Contrairement à un copié puis un collé dans un fichier texte, les adresses ne commencent pas par file://.


- hizo-tmdb :
Dépendances : hizo-service-menus kdialog qdbus jq curl

Menu récupérant les posters des films depuis le site The Movie Data Base.
Plus de détails en message 7.


Je continuerai de poster si j'en crée d'autres smile


Sites inintéressants :
la doc : https://doc.ubuntu-fr.org/service_menus

https://www.kubuntuforums.net/showthrea … -Previews/ (à partir des pages 2 ou 3)
https://forum.kde.org/viewtopic.php?f=224&t=156241
https://api.kde.org/frameworks/kio/html … eator.html
https://github.com/yodor/keneric


N’hésitez pas à me faire des retours et à partager vos service-menus !

Dernière modification par Hizoka (Le 23/09/2021, à 17:15)

Hors ligne

#2 Le 22/09/2021, à 16:44

Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Refonte complète du 1er message.

Hors ligne

#3 Le 22/09/2021, à 21:05

gibkristen

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Salut
Le lien pour le fichier .zip n'est pas bon  https://hizo.fr/linux/hizo-service-menu … -menus.zio
Merci pour ton boulot wink


11 septembre 2008, je découvre et adopte GNU/Linux avec Ubuntu 8.04 LTS ("The Hardy Heron")
Actuellement avec Debian Bullseye XFCE4

Hors ligne

#4 Le 22/09/2021, à 21:11

Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Oups, c'est .zip pas .zio smile

Hors ligne

#5 Le 22/09/2021, à 21:28

abecidofugy

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Ça m’a l’air cool. Je pense que ça passe aussi pour KDE neon ?


[Soignons nos posts] comprendre que lorsqu’on fait une demande d’aide, ou apporte une aide, on la joue collectif et on œuvre pour l’humanité en quelque sorte.
Kubuntu et KDEneon en VM dans host W10 / KDEneon en double-boot avec W10 / Ubuntu 20.04 serveur sur machines dédiées.
Agence de communication en Alsace · web · print

Hors ligne

#6 Le 22/09/2021, à 21:39

Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Ouais tout à fait, je suis sous Neon smile

EDIT : Je finalise un système qui télécharge toutes les affiches de films depuis TMDB smile

Dernière modification par Hizoka (Le 22/09/2021, à 23:50)

Hors ligne

#7 Le 23/09/2021, à 17:13

Hizoka

Re : [Tuto] Personnaliser les vignettes des fichiers/dossiers dans Dolphin

Je viens de faire quelques mini mises à jour.

Et surtout, je viens d'intégrer le service menu : hizo-tmdb - Vidéos : Télécharger les posters depuis le site TMDB

Son principe est de rechercher sur le super site The Movie Data Base les posters de films.

J'ai mis à jour la 1ere page, le zip est OK, le dépôt va mettre un peu de temps à créer tous les paquets.

Présentation :
Lors du 1er lancement, il y a besoin de quelques configs :
08.png

Le plus important est le jeton d'accès (token) :
09.png

Sa validité est testé :
10.png

Les langues disponibles vont être recherchées :
11.png

Il faut choisir les langues des posters qu'on veut, perso je prends : aucune, anglais, français et japonnais :
12.png

Et il ne reste plus qu'à définir la taille max des images affichées lors du choix du film :
13.png
Attention, ça définit le nombre de film affiché par la suite (plus les images sont grandes, moins on peut en afficher).

On en arrive à la partie la plus chouette smile
Il demande la liste des films à chercher, de base il reprend les noms des fichiers :
14.png
Dans cet exemple, je sais ce que je veux, du coup cela fera sauter l'étape de la sélection des films (si plusieurs films ne portent pas ce nom).

Ici, je ne suis pas trop sûr, du coup, j'utilise des * :
17.png
Du coup, il est pratiquement sûr que plusieurs films correspondent à la recherche.

La recherche se fait plus ou moins rapidement (comme toutes les actions avec TMDB) et il affiche les films correspondant :
18.png
Cette fenêtre n'est pas affichée s'il n'y a qu'un seul résultat.

Le téléchargement des posters se fait, cela peut aller très vite et d'autres fois, il bloque un peu :
15.png

Et on a le droit à un petit recap facultatif :
16.png

Franchement le résultat est pas mal je trouve.
Y a des fois, ça ne va prendre que 10s pour télécharger 50 images et d'autres fois il faudra 1 min pour 10 images.
C'est très dépendant de l'api de TMDB.

Malheureusement, je me trouvé bloqué par Kdialog :
- Le bug qui ne met pas d'icone avec la progressbar
- L'impossibilité d'afficher plus d'infos.
- L'impossibilité de rassembler les fenêtres.
- L'impossibilité d'afficher plus de pochette sans que la fenêtre ne devienne inexploitable.
...

Tout ça va surement me pousser à repartir faire mumuse en pyqt et essayé de pondre un vrai petit soft... quand j'aurais un peu plus de temps tongue

Hors ligne