[kde - plasmoid] Documents récents (Résolu)

Xorg, Compiz, KDE / Gnome / Xfce / Fluxbox / e17 / fvwm ... GDM/KDM/XDM...
Répondre
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

[kde - plasmoid] Documents récents (Résolu)

Message par Pafrapé »

Bonsoir,

Je cherche un plasmoid sous kde qui puisse afficher l'historique des documents consultés.
Dans le menu kickoff, il y a bien un un onglet "utilisé récemment", mais je cherche quelque chose de similaire où je puisse choisir avec quel logiciel le document sera ouvert, ce qui n'est pas le cas de kickoff qui lance le document avec le logiciel par défaut.

Malgré mes recherches, je n'ai pas pu trouver ce genre de plasmoid.

Si celui-ci existe, ou du moins quelque chose de similaire, merci de me communiquer son nom.
Dernière modification par Pafrapé le lun. 23 mai 2011, 19:25, modifié 3 fois.
Pafrapé, car il faudrait être frappé pour... :paf:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [kde - plasmoid] Documents récents

Message par FoolEcho »

Je ne connais pas de plasmoïde(s) spécifique(s) pour ça.
Il y a Lancelot... qui te fournira un comportement similaire à ce que tu trouves dans Kickoff... donc niet.
Par contre, tu peux utiliser le plasmoïde "Vue de dossier" et le faire pointer vers /home/TOI/.kde4/share/apps/RecentDocuments/ pour pouvoir ouvrir les documents avec d'autres applications que celles par défaut, ça devrait te convenir. D'ailleurs: http://forum.kde.nl/brainstorm.php#idea85441_page1 . :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

Re: [kde - plasmoid] Documents récents

Message par Pafrapé »

Je te remercie de ta réponse.

C'est effectivement la seule solution que j'ai trouvé pour pouvoir accéder rapidement à mes documents récents et les ouvrir avec l'application que je veux.

Je trouve que c'est un peu dommage que kde soit resté sur le système classique : on ouvre une application et on va chercher le document, plutôt que de mettre le document au centre du système : j'ai mon document et j'en fait ce que je veux.

Il y a bien un système qui met le document au centre du système : c'est " étoilé ", mais il est sur Aur et je ne sais pas trop ce que devient le logiciel.
Pafrapé, car il faudrait être frappé pour... :paf:
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

Re: [kde - plasmoid] Documents récents

Message par Pafrapé »

Néanmoins, il y a une limite en créant un plasmoïde " Vue de dossier " et le faire pointer vers /home/TOI/.kde4/share/apps/RecentDocuments/.
Les fichiers qui s'affichent ont toujours un " .desktop " à la fin de leur nom.

Résultat, le plasmoïde me propose systématiquement d'ouvrir mes fichiers avec un logiciel de traitement de texte du type kate, kwrite et autres, même s'il s'agit de documents en.pdf, .jpeg,...
Certes, je peux ouvrir avec d'autres logiciels en faisant " ouvrir avec autre ", mais c'est dommage qu'il ne propose pas des logiciels correspondant avec la véritable extension du fichier.

De plus, on ne peut avoir aucun aperçu du fichier, l'aperçu étant celui du texte correspondant à l'extension " .desktop ".

Il faudrait réussir pour que ce soit parfait que le plasmoîd fasse abstraction du " .desktop ".
Mais comme à mon habitude, je ne sais pas faire et je ne sais même pas si cela peut se faire.

Merci de votre aide si vous avez une idée.
Pafrapé, car il faudrait être frappé pour... :paf:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [kde - plasmoid] Documents récents

Message par FoolEcho »

Pafrapé a écrit :Résultat, le plasmoïde me propose systématiquement d'ouvrir mes fichiers avec un logiciel de traitement de texte du type kate, kwrite et autres, même s'il s'agit de documents en.pdf, .jpeg,...
C'est inexact. Si tu cliques une fois dessus il te l'ouvre avec la dernière application utilisée pour ce fichier.
Pafrapé a écrit :Résultat, le plasmoïde me propose systématiquement d'ouvrir mes fichiers avec un logiciel de traitement de texte du type kate, kwrite et autres, même s'il s'agit de documents en.pdf, .jpeg,...
Certes, je peux ouvrir avec d'autres logiciels en faisant " ouvrir avec autre ", mais c'est dommage qu'il ne propose pas des logiciels correspondant avec la véritable extension du fichier.
Le problème est que le fichier .desktop est un fichier texte, avec l'url du fichier et d'autres informations... donc...

... faut que je teste un truc plus tard... :idea:
«The following statement is not true. The previous statement is true.» :nage:
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

Re: [kde - plasmoid] Documents récents

Message par Pafrapé »

FoolEcho a écrit :
Pafrapé a écrit :Résultat, le plasmoïde me propose systématiquement d'ouvrir mes fichiers avec un logiciel de traitement de texte du type kate, kwrite et autres, même s'il s'agit de documents en.pdf, .jpeg,...
C'est inexact. Si tu cliques une fois dessus il te l'ouvre avec la dernière application utilisée pour ce fichier.
Pafrapé a écrit :Résultat, le plasmoïde me propose systématiquement d'ouvrir mes fichiers avec un logiciel de traitement de texte du type kate, kwrite et autres, même s'il s'agit de documents en.pdf, .jpeg,...
Certes, je peux ouvrir avec d'autres logiciels en faisant " ouvrir avec autre ", mais c'est dommage qu'il ne propose pas des logiciels correspondant avec la véritable extension du fichier.
Le problème est que le fichier .desktop est un fichier texte, avec l'url du fichier et d'autres informations... donc...

... faut que je teste un truc plus tard... :idea:
Dans le premier cas, tu as raison. Si tu cliques sur le document celui-ci sera ouvert avec la dernière application utilisisée pour le fichier.
Mais moiu je parlais des logiciels proposés. Là, il ne s'agit que de logiciels de traitement de texte, ce qui est normal vu que l'extension est .desktop.

Si tu ou une personne aurait une solution pour faire abstraction de ce .desktop, je pense que ce serait vraiment une évolution. Les derniers documents pourraient ainsi devenir un élément central de kde au même titre que les applications.

Merci.
Pafrapé, car il faudrait être frappé pour... :paf:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [kde - plasmoid] Documents récents

Message par FoolEcho »

Je n'ai pas eu le temps de me pencher sur la question, mais j'ai bien compris ce que tu veux. :)

J'y ai réfléchi un peu aussi.
Je pense que le plus simple reste d'utiliser le plasmoïde "vue de dossier" qui a le comportement d'ensemble que tu veux.
Ensuite pour la gestion des documents récents, la solution de facilité qui me vient serait une tâche de fond qui observe les changements dans le répertoire des documents récents de kde (ou autre) et qui générerait des liens symboliques à partir du contenu des .desktop -- des raccourcis quoi -- dans un dossier prévu à cette effet (on pourrait aussi envisager une association de fichiers entre le type x-desktop et une application qui gérerait une ouverture différente... mais je trouve ça un peu lourd).
Un lien symbolique a le comportement que tu veux à priori: ouverture avec l'application par défaut (mais pas nécessairement la dernière utilisée du coup si rien n'est fait en plus) ou tout autre.

... pour Arch, un script quelconque (bash par exemple) à lancer au démarrage de la session kde pourrait suffire du coup. Ce n'est pas très satisfaisant mais je n'ai aucune connaissance en qt pour pouvoir faire un machin pur kde utilisable partout... encore un truc pour lequel je n'ai pas de temps et pas assez d'envie... et c'est bien bête car il doit bien être possible de récupèrer directement l'événement "ouverture d'un document" dans kde pour le traiter comme on veut (kde sait bien remplir son RecentDocuments... )... ça serait nettement plus efficace... si quelqu'un sait, je suis preneur... ... ... ... ou si quelqu'un a de meilleures idées dans l'intervalle. :chinois:
«The following statement is not true. The previous statement is true.» :nage:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [kde - plasmoid] Documents récents

Message par FoolEcho »

Bon... ça n'est pas un plasmoïde et ça n'est pas parfait, mais c'est une solution approchante, via un script bash. :?
(en plus ça fait bien longtemps que je n'ai plus fait de script... :mrgreen: )

Comme j'ai dit précédemment, le script principal par défaut t'analyse les documents récents de kde4 et tient à jour une liste de raccourcis dans un autre dossier (par défaut ~/Kde/RecentDocuments , en le créant au besoin). Donc, inutile d'espèrer lancer le dernier document avec la dernière application en date... par contre, on retrouve le menu "ouvrir avec" approprié.

Cas d'usage: un répertoire contenant des .desktop avec URL... (je me couvre :mrgreen: )
Le script nécessite python, le 3 par défaut (ou le 2, mais il faut décommenter la ligne appropriée).

desktopfilelinker.sh

Code : Tout sélectionner

#!/bin/sh

desktopdir="$HOME/.kde4/share/apps/RecentDocuments"
linkdir="$HOME/Kde/RecentDocuments"
doc=

#URL extraction from a .desktop (if any)
#$1: filename
getUrl() {
    echo "try to catch the url from "$1
#la valeur attribuée à URL
    uri=$(cat $1|grep ^URL|sed "s/.*=\(.*\)/\1/")
#on enlève le protocole
#interprétation des variables d'environnement... $HOME classiquement
    link=
    eval "link=${uri#file://}"
#traitement des %xx ... passe la main à qui sait faire proprement :P
#    echo $link
#python 2
#    doc="$(echo "$link"|python2 -c 'import sys,urllib;sys.stdout.write(urllib.unquote(sys.stdin.read()))')"
#python 3
    doc="$(echo "$link"|python -c 'import sys,urllib.parse;sys.stdout.write(urllib.parse.unquote(sys.stdin.read()))')"
    echo "Recent document :"$doc
}

update() {
#actualisation: on ne se fatigue pas... on refait l'ensemble des liens...
    rm $linkdir/*
    for i in $desktopdir/*;
    do 
	getUrl $i
	ln -s "$doc" $linkdir
    done
}



#args
#$1: répertoire des .desktop (source) 
#$2: répertoire pour vue de dossier (destination)
while [ $# -gt 0 ]
do
    case "$1" in
        -i) 
	    desktopdir="$2"
	    shift;;
	-o) 
	    linkdir="$2"; 
	    shift;;
	--)	
	    shift; 
	    break;;
	--help) 
	    echo >&2 \
	    "usage: $0 [-i .DESKTOP_DIRECTORY = ~/.kde4/share/apps/RecentDocuments] [-o SIM_LINKS_DIRECTORY = ~/Kde/RecentDocuments]"
	    exit 1;;
	*)  break;;
    esac
    shift
done

echo "where found .desktop:  "$desktopdir
echo "where found sym links: "$linkdir

if [ ! -d $linkdir ] 
then
    mkdir -p $linkdir
    update
fi

#ce qui a changé depuis la dernière fois
if test $linkdir -ot $desktopdir;
then
    echo "update recent document(s)"
    update
else
    echo "nothing to do"
fi
Je n'ai pas trouvé (et pas cherché de trop non plus) s'il y avait moyen de surveiller le dossier via kde et d'appeler ce script dans ce cas, ce qui serait nettement mieux... donc, méthode barbare: un script supplémentaire pour faire une vérification toutes les 3 secondes... :(

verifier.sh (à adapter, notamment pour le dossier de sortie)

Code : Tout sélectionner

#!/bin/sh

while sleep 3
do
    ~/bin/desktopfilelinker.sh -o ~/Kde/RecentDocuments -i ~/.kde4/share/apps/RecentDocuments
done
Tu peux placer les deux scripts dans un ~/bin (dans ton propre PATH aussi, si tu veux) et les rendre exécutables (chmod a+x).

A lancer au démarrage de ta session kde. A rajouter via le panneau de kde>Administration>Démarrage et arrêt>Démarrage automatique>ajouter le script verifier.sh (au démarrage).

Ensuite, tu peux utiliser le plasmoïde "Vue de dossier" et le positionner sur ~/Kde/RecentDocuments (par défaut) et tu devrais retrouver ce que tu cherches (enfin un truc proche).

En attendant mieux (par exemple, la partie dans Lancelot qui serait un plasmoïde à part... ou la capacité à l'intègrer via un vrai module kde... ou simplement savoir si on pouvait chopper l'évenement par dbus ou autre pour éviter cette répétition stupide du script... ou une application autre pour gèrer le mime-type "x-desktop" ).
«The following statement is not true. The previous statement is true.» :nage:
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

Re: [kde - plasmoid] Documents récents

Message par Pafrapé »

J'ai finalement réussi à trouver une solution à peu près (je dis bien à peu près similaire) en utilisant timeline.
Cela me donne un calendrier qui me permet de retrouver mes documents en fonction d'une date.
Seul inconvénient, seuls les documents créés ou modifiés apparaissent, contrairement au répertoire "recentdocument" ou tous les documents consultés apparaissent.
Ce n'est pas tout à fait ce que je voulais, mais c'est déjà mieux que rien.
Pafrapé, car il faudrait être frappé pour... :paf:
Pafrapé
Chu Ko Nu
Messages : 413
Inscription : mar. 29 juin 2010, 09:24

Re: [kde - plasmoid] Documents récents (Résolu)

Message par Pafrapé »

Après plusieurs semaines d'utilisation de ma méthode, celle-ci ne me convient finalement pas, car seuls les documents modifiés ou créés apparaissent.
J'ai donc créé un script comme indiqué ci dessus. Je peux ainsi ouvrir mes documents récents avec l'application sélectionnée. Malheureusement, une fois l'application lancée, j'ai droit à un super message d'erreur du type ne eux pas ouvrir le fichier *.desktop.
Je pense qu'il doit manquer quelque chose dans le script pour que cela puisse marcher.
Merci de ton aide.
Pafrapé, car il faudrait être frappé pour... :paf:
Avatar de l’utilisateur
FoolEcho
Maître du Kyudo
Messages : 10711
Inscription : dim. 15 août 2010, 11:48
Localisation : Basse-Normandie

Re: [kde - plasmoid] Documents récents (Résolu)

Message par FoolEcho »

Pafrapé a écrit :Malheureusement, une fois l'application lancée, j'ai droit à un super message d'erreur du type ne eux pas ouvrir le fichier *.desktop.
Je ne comprends pas ce que tu veux dire: il faudrait que tu décrives un peu mieux... :|
«The following statement is not true. The previous statement is true.» :nage:
Répondre