#26 Le 16/09/2014, à 07:06
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Ouais, c'et pour dpluzz. Et il n'y a pas une commande pour trouver les logiciels qui ouvrent les .mkv ?
ici j'ai trouvé ça:
grep -i "player" *.desktop | grep -i video | grep -iv ";audio;" | awk -F ".desktop" '{print $1}' | sort | uniq
parole
smplayer
smplayer_enqueue
totem
vlc
xine
Mais il doit bien exister qlq chose de plus "propre"...
=· /
EDIT:
j'avais zappé le besoin de récursivité pour ton système
=· /
donc j'ai trouvé une commande qui fonctionne sur mon système... faut voir ce que ça donne sur le tien... ( et une fois encore y a pt-être plus simple/propre mais j'ai trouvé que ça...):
find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilq ";audio;" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
je développe:
find /usr/share/applications/ -name "*.desktop" → pour ne travailler que sur les *.desktop ( j'ai un *.cache ici, notamment mimeinfo.cache )
-exec grep -il "player" {} \; → on recherche les players
sort → suis un peu psychorigide par moment ( en fait surtout quand ça m'arrange ^^ ) donc tri par ordre alphabétique
while IFS=$'\n' read APPLI → c'est pour récupérer la sortie de find ligne par ligne , car sinon elle est traitée d'un seul bloc
grep -ilq ";audio;" "$APPLI" || echo "$(basename "${APPLI%.*}")" → on recherche dans les players ceux qui ne font que "audio" et on ne les affiche pas...
Dernière modification par bishop.sad.clown (Le 16/09/2014, à 08:17)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#27 Le 16/09/2014, à 08:26
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Merci bishop.sad.clown, voilà ce que ça donne chez moi:
$ find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilq ";audio;" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
kmplayer
xbmc
A voir sur l'ordi de melixgaro, mais chez moi vlc n'apparait pas.
Les .desktop ne sont sont pas évidents à interpréter !
@melixgaro:
Les types MIME ne sont pas très fiables en effet.
$ xdg-mime query default "video/x-matroska"
vlc.desktop
Et la seconde commande m'ouvre vlc. Mais les deux autres lecteurs sont ignorés... donc je pense que cette piste n'est pas utilisable.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#28 Le 16/09/2014, à 08:32
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Très juste pour VLC ! j'avais pas vu qu'il était passsé à la trappe
=· /
on y est presque ; on va trouver ! on va trouver !
je retourne chercher ^^
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#29 Le 16/09/2014, à 08:44
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Oui, car vlc est aussi un lecteur audio, donc il est filtré !
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#30 Le 16/09/2014, à 08:48
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilqw "video" "$APPLI" && echo "$(basename "${APPLI%.*}")" ; done
parole
smplayer
smplayer_enqueue
totem
vlc
xine
ici de cette façon j'ai "tout" bon...
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#31 Le 16/09/2014, à 08:57
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
$ find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilqw "video" "$APPLI" && echo "$(basename "${APPLI%.*}")" ; done
amarok_containers
kmplayer
vlc
xbmc
Bien ouèj, merci. Maintenant faut voir si ça convient à melixgaro, car il y a encore quelques "déchets": smplayer_enqueue, amarok_containers
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#32 Le 16/09/2014, à 08:59
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Pour les enlever, c'est possible de détecter cette ligne ?
NoDisplay=true
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#33 Le 16/09/2014, à 09:20
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
pour amarok, je fini de tester deux trois autres trucs et je l'installe pour voir si on peut aussi le filtrer...
pour ce qui est de smplayer_enqueue faut voir si c'est un déchet... il permet de mettre la vidéo à lire à la suite ; des fois qu'il y ait déjà une lecture en cours...
pour filtrer sur "NoDisplay=true" voir si ceci fonctionne:
find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilqw "video" "$APPLI" && echo "$APPLI" ; done | while IFS=$'\n' read APPLI ; do grep -iql "nodisplay=true" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
parole
smplayer
totem
vlc
xine
EDIT:
Pour chaque nouveau filtre désiré, on intercale un "étage" de test "while /grep" avant la mise en forme finale → echo "$(basename "${APPLI%.*}")"
Dernière modification par bishop.sad.clown (Le 16/09/2014, à 09:23)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#34 Le 16/09/2014, à 09:29
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Oui ça fonctionne, génial !
~$ find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilqw "video" "$APPLI" && echo "$APPLI" ; done | while IFS=$'\n' read APPLI ; do grep -iql "nodisplay=true" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
kmplayer
smplayer
vlc
xbmc
(Je viens d'installer smplayer)
pour ce qui est de smplayer_enqueue faut voir si c'est un déchet... il permet de mettre la vidéo à lire à la suite ; des fois qu'il y ait déjà une lecture en cours...
Oui mais pour le logiciel (ici), c'est pour sélectionner un lecteur qui lira le contenu téléchargé (ou en cours de téléchargement), avec un bouton "Aperçu de la vidéo". Donc il n'y a qu'une vidéo à la fois, normalement.
Dernière modification par Gaara (Le 16/09/2014, à 09:33)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#35 Le 16/09/2014, à 09:33
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
donc c'bien un "déchet"
=· þ
Et du coup, si tu as déjà testé c'pas la peine que j'installe amarok, si ?
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#36 Le 16/09/2014, à 09:37
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
Ben non, t'embête pas, car du coup ça fonctionne nickel ! (surtout que ça installe pleins de dépendances Kde)
Merci beaucoup pour ton aide !
Maintenant il faut que j'insère tout ça dans mon script python, ça ne va pas faire très propre (sauf si je "traduis") mais bon... c'est un début !
Dernière modification par Gaara (Le 16/09/2014, à 09:39)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#37 Le 16/09/2014, à 09:55
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
j'ai pas assez de connaissances en python mais à l'époque où j'avais un petit peu mis les mains dedans pour modifier du script déjà existant, j'avais opté pour une roadmap du style lister les applis dispos ( avec la commande qu'on vient de voir ) , puis un coup de zenity / case pour lancer l'appli qui va bien en fonction du choix, le tout inclu dans le *.py
Mais à ce niveau, je ne peux plus vraiment te filer la main... Comme déjà dit pas assez de connaissances, et j'connais pas ton cahier des charges... Du coup vais rester en retrait mais je garde un oeil ici, pour voir si y a de nouvelles contributions enrichissantes
=· D
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#38 Le 16/09/2014, à 10:09
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
T'inquiète pas, c'est déjà une grande aide que tu m'as apporté. Je n'utilise pas zenity car comme j'ai une interface GTK, je l'intégrerais dans ma fenêtre, pas de soucis.
Pour l'intégration, j'utilise un pipe pour intégrer des commandes bash, mais je vais voir pour la traduction, si c'est possible.
Exemple, avec la ligne que j'avais trouvé hier:
p = subprocess.Popen(['grep', '-rl', 'AudioVideo;Player', '/usr/share/applications/'], stderr=subprocess.STDOUT, stdout=subprocess.PIPE)
a = p.communicate ()
print a
Mais avec cette ligne d'un km de long, la ligne python en fera 2...
L'avantage de ton code c'est qu'il renvoie directement le nom des applis, et non leur chemin. Ce sera plus facile pour moi par la suite.
A voir aussi avec melixgaro si ça fonctionne chez lui, à suivre donc..
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#39 Le 16/09/2014, à 10:28
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
T'inquiète pas, c'est déjà une grande aide que tu m'as apporté. ...
Pas d'quoi ! Ça m'fait plaiZ' et puis ça me permet d'en apprendre aussi ^^
...à suivre donc..
Ce que je vais faire
=· þ
@++
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#40 Le 16/09/2014, à 11:23
- melixgaro
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
salut,
la commande en #34 me donne
banshee
clementine
devede
exmplayer
gnome-mplayer
minitube
mplayer
parole
smplayer
vlc
xbmc
xnoise
Pas tout à fait bon : banshee et clementine ne font que l'audio je pense ; devede est un logiciel de création pas un lecteur ; minitube, j'ai déjà dit plus haut ; xnoise, je ne sais pas ce que c'est... Dommage ! en tout cas, chapeau pour la ligne de commande qui a bien réduit la liste...
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#41 Le 16/09/2014, à 11:26
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
peux-'tu me faire une archive à télécharger contenant les *.desktop concernés ? ( ou même l'intégralité de /usr/share/applications c'est pas gênant )
ça me permettrait d'essayer d'adapter la commande sans avoir à installer les applis...
Dernière modification par bishop.sad.clown (Le 16/09/2014, à 11:27)
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#42 Le 16/09/2014, à 11:30
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
xnoise, je ne sais pas ce que c'est
lol ! ça à l'air d'être un media-player: http://www.xnoise-media-player.com/
Mais on se rapproche du but !
Il faudrait regarder les .desktop des applis pour voir s'il n'y a pas un mot clé à filtrer..
De mon côté, j'essaie de traduire le code en python, j'y suis presque, il n'y a que la récursion qui me pose problème.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#43 Le 16/09/2014, à 12:59
- melixgaro
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
au temps pour moi, banshee lit les vidéos :s
xnoise aussi
voici les .desktop (j'ai la flemme defaire un tar et de trouver une plateforme pour l'y verser)
clementine.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Clementine
GenericName=Clementine Music Player
GenericName[pt]=Reprodutor de músicas Clementine
Comment=Plays music and last.fm streams
Comment[pt]=Reprodução de músicas e emissões last.fm
Exec=clementine %U
TryExec=clementine
Icon=application-x-clementine
Terminal=false
Categories=AudioVideo;Player;Qt;
StartupNotify=false
MimeType=application/ogg;application/x-ogg;application/x-ogm-audio;audio/aac;audio/mp4;audio/mpeg;audio/mpegurl;audio/ogg;audio/vnd.rn-realaudio;audio/vorbis;audio/x-flac;audio/x-mp3;audio/x-mpeg;audio/x-mpegurl;audio/x-ms-wma;audio/x-musepack;audio/x-oggflac;audio/x-pn-realaudio;audio/x-scpls;audio/x-speex;audio/x-vorbis;audio/x-vorbis+ogg;audio/x-wav;video/x-ms-asf;x-content/audio-player;x-scheme-handler/zune;x-scheme-handler/itpc;x-scheme-handler/itms;x-scheme-handler/feed;
X-Ayatana-Desktop-Shortcuts=Play;Pause;Stop;Previous;Next;
devede.desktop
[Desktop Entry]
X-MultipleArgs=false
Type=Application
Name=DeVeDe
GenericName=DVD/CD Video Creator
X-GNOME-FullName=DeVeDe DVD/CD Video Creator
X-GNOME-FullName[ca]=DeVeDe creador de CD/DVDs de vídeo
X-GNOME-FullName[es]=DeVeDe creador de CD/DVDs de vídeo
X-GNOME-FullName[gl]=DeVeDe creador de CD/DVDs de vídeo
X-GNOME-FullName[pl]=DeVeDe tworzenie wideo na CD/DVD
X-GNOME-FullName[it]=DeVeDe creatore di video CD/DVD
Comment=Allows to create video CDs and DVDs, suitable to be reproduced in home DVD players
Comment[ca]=Permet crear CDs i DVDs de vídeo, que poden reproduir-se en reproductors domèstics
Comment[es]=Permite crear video CDs y DVDs, que pueden reproducirse en reproductores domésticos
Comment[gl]=Permite crear video CDs e DVDs, que poden reproducirse en reproductores domésticos
Comment[pl]=Pozwala stworzyć wideo na płytach CD lub DVD, do otwarzania w domowych odtwarzaczach DVD
TryExec=devede
Exec=devede
Categories=AudioVideo;
Icon=devede
minitube.desktop
[Desktop Entry]
Name=Minitube
Name[en]=Minitube
Comment=Watch YouTube videos
Comment[es]=Vea los videos de YouTube
Comment[gl]=Vexa os vídeos de YouTube
Comment[it]=Guarda i video di YouTube
Comment[tr]=YouTube videoları izleyin
GenericName=YouTube app
GenericName[en]=YouTube app
GenericName[es]=Cliente de YouTube
GenericName[gl]=Cliente de YouTube
GenericName[it]=Applicazione per YouTube
GenericName[tr]=YouTube istemcisi
Exec=minitube
Terminal=false
Type=Application
Icon=minitube
Categories=AudioVideo;Player;Qt;
StartupNotify=false
Actions=TogglePlaying;Next;Previous;
[Desktop Action TogglePlaying]
Name=Play/Pause
Exec=minitube --toggle-playing
[Desktop Action Next]
Name=Next
Exec=minitube --next
[Desktop Action Previous]
Name=Previous
Exec=minitube --previous
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#44 Le 16/09/2014, à 13:15
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
avec ca exit mintube et devede:
find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilq ";video/" "$APPLI" && echo "$APPLI" ; done | while IFS=$'\n' read APPLI ; do grep -iql "nodisplay=true" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
pour clementine:
dans les type MIME supporté on peut lire: video/x-ms-asf
ce qui crorresponr d'après wikipedia à ceci:
L'Advanced Systems Format (ASF, anciennement Advanced Streaming Format et Active Streaming Format) est un format conteneur multimédia propriétaire développé par Microsoft, très utilisé en streaming. Le format ASF appartient au framework Windows Media.
du coup, on garde ou on garde pas ?
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#45 Le 16/09/2014, à 13:19
- melixgaro
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
avec ca exit mintube et devede:
en effet ! bravo !
pour clementine, je ne sais pas pourquoi il y a ce type MIME dans le .desktop. Est-ce qu'il existe des fichiers audio purs mais reconnu comme video/x-ms-asf ?
je dirais qu'il faut enlever clementine de la liste.
Linux depuis ~2007. Xubuntu seulement.
Hors ligne
#46 Le 16/09/2014, à 13:48
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
je reviens avec le code python, (clementine et devede devrait sortir, j'ai pas regardé les messages récents)
#!/usr/bin/env python
# coding: utf8
import os
import fnmatch
apps = [] # créer la liste des applis
for root, dirs, files in os.walk('/usr/share/applications/'): # pour tous les fichiers dans ce rep et les sous repertoires
for filename in files: # pour chaque nom de fichier dans la liste
if ".desktop" in filename: # si le nom du fichier est sous la forme '.desktop'
with open(os.path.join(root, filename), "r") as auto: # ouvrir le fichier
a = auto.read(50000) # lire le fichier, les 50000 premiers caractères (il y a peut-être mieux mais ça marche)
if "layer" in a and "ideo" in a and "edia" in a: # détecter les mots clés inclus (pas mis la première lettre, avec ou sans majuscules...)
if "NoDisplay=true" not in a: # détecter les mots clés exclus
app = filename.replace(".desktop", "") # enlever .desktop
apps.append(app) # ajouter l'appli à la liste
print apps # afficher la liste
Dernière modification par Gaara (Le 16/09/2014, à 13:59)
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#47 Le 16/09/2014, à 13:55
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
ligne du post #44:
~$ find /usr/share/applications/ -name "*.desktop" -exec grep -il "player" {} \; | sort | while IFS=$'\n' read APPLI ; do grep -ilq ";video/" "$APPLI" && echo "$APPLI" ; done | while IFS=$'\n' read APPLI ; do grep -iql "nodisplay=true" "$APPLI" || echo "$(basename "${APPLI%.*}")" ; done
kmplayer
smplayer
vlc
XBMC à été enlevé !
Sinon, si clementine ne lit pas de vidéo, autant l'enlever.
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne
#48 Le 16/09/2014, à 13:55
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
j'viens de fouiller un peu le web à la recherche d'infos sur clementine et la lecture de vidéo et... RIEN. j'en viens à me demander si y pas eu une coquille qlq part lors de l'empaquetage...
Du coup pt-être bien ajouter "clementine" dans la partie " # détecter les mots clés exclus "
J'vais quand même aller récupérer qlqs paquets d'autres distros ( rpm ; tgz and co' ) pour voir si ca se situe à ce niveau ou à un autre niveau ( compilation, source etc )... Je ne me souviens plus quand les .desktop sont créés
=· /
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#49 Le 16/09/2014, à 13:56
- bishop.sad.clown
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
envoie le .desktop d'xbmc
@++ , Rob'
→ Trusty x64
Je n'ai pas toujours les réponses mais je les cherche en même temps que vous... =· þ
Hors ligne
#50 Le 16/09/2014, à 14:01
- Gaara
Re : [python GTK] Faire choisir une application à un utilisateur (résolu)
.desktop xbmc:
[Desktop Entry]
Version=1.0
Name=XBMC Media Center
GenericName=Media Center
Comment=Manage and view your media
Exec=xbmc
Icon=xbmc
Terminal=false
Type=Application
Categories=AudioVideo;Video;Player;TV;
Actions=Fullscreen;Standalone;
[Desktop Action Fullscreen]
Name=Open in fullscreen
Exec=xbmc -fs
OnlyShowIn=Unity;
[Desktop Action Standalone]
Name=Open in standalone mode
Exec=xbmc --standalone
OnlyShowIn=Unity;
Kubuntu 18.04 x64
Un terminal tactile Raspberry Pi et Odroid
<code>zenity --question --title "Alert" --text "Microsoft Windows has been found! Would you like to remove it?"</code>
Hors ligne