#1 Le 15/11/2021, à 14:40
- xunil2003
Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
Je voudrais savoir si il est possible avec python de connaître :
1) le gestionnaire de fichier par défaut du système en fonction de l'interface de l'utilisateur (lxde, gnome, xfce, kde, mate, etc...) car le gestionnaire de fichier peut être dolphin, etc...
2) le navigateur internet par défaut du système en fonction de l'interface de l'utilisateur (lxde, gnome, xfce, kde, mate, etc...) car le navigateur peut être firefox, konqueror, etc...
3) l’éditeur de fichier par défaut du système en fonction de l'interface de l'utilisateur (lxde, gnome, xfce, kde, mate, etc...) l'éditeur peut être gedit, kate, medit, etc...
4) le terminal (la console) du système en fonction de l'interface de l'utilisateur( lxde, gnome, xfce, kde, mate, etc..) la console peut être Kconsole, Xterm, lxterm, etc...
j'ai besoin des renseignements pour une application afin que l'appli fonctionne quelque soit l'interface graphique de l'utilisateur
Merci d'avance pour vos réponses, avis et conseils
- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 / Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE
Hors ligne
#2 Le 15/11/2021, à 14:48
- Vobul
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Pour le gestionnaire de fichier je ne sais pas, mais pour le reste, t'as des variables d'environnement (mais sur lesquelles tu ne peux pas trop compter non plus...)
$BROWSER
$EDITOR
$TERM
Et puis y'a des gens (comme moi) qui n'ont pas de Desktop Environment, ni d'applications "par défaut", bonne chance dans ce cas ! Le mieux est donc d'avoir des préférences pour ton app où l'utilisateur définit quels logiciels lancer pour telle ou telle action.
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#3 Le 15/11/2021, à 15:43
- Compte supprimé
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
et pourquoi ne pas tout gérer depuis python? avec par exemple tkinter
ça serait beaucoup plus portable et indépendant de la configuration de la machine.
#4 Le 15/11/2021, à 16:03
- xunil2003
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
donc le mieux est de faire un e condition if elif else genre (exemple pour l'editeur de fichier) :
if editeur == "kate" :
print ("Editeur utilisé : kate")
elif editeur == "gedit":
print ("Editeur utilisé : gedit")
elif editeur == "medit":
print ("Editeur utilisé : medit")
else:
print ("Erreur editeur inconnu : "+editeur)
comment savoir avec python sur quel interface graphique (lxde, gnome, xfce, kde, mate, etc...) est l'utilisateur ?
Merci.
Dernière modification par xunil2003 (Le 15/11/2021, à 16:06)
- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 / Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE
Hors ligne
#5 Le 15/11/2021, à 16:40
- Compte supprimé
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Cette question n'est pas relative à python mais à l'os utilisé.
Si tu sais où le système gère ces informations tu pourras les récuperer depuis un script python .
...
Sinon pour en revenir ma question du post précédant( que tu n'as peut-être pas lu) pourquoi ne pas utiliser exclusivement des outils python. Tu peux configurer créer des boites de dialogue, éditer du texte, lancer des applis... tout cela depuis une interface graphique gérer par python (comme tkinter). Ce sera beaucoup plus portable car pas lié à l'os. Et ça marchera quel que soit l'évolution de l'os ;et avec toutes les bureaux et configurations...
Que souhaites-tu faire au juste?
#6 Le 15/11/2021, à 19:10
- xunil2003
Re : Obtenir avec python des rensignements de l'interface graphique utilise
re,
Sinon pour en revenir ma question du post précédant( que tu n'as peut-être pas lu) pourquoi ne pas utiliser exclusivement des outils python. Tu peux configurer créer des boites de dialogue, éditer du texte, lancer des applis... tout cela depuis une interface graphique gérer par python (comme tkinter). Ce sera beaucoup plus portable car pas lié à l'os. Et ça marchera quel que soit l'évolution de l'os ;et avec toutes les bureaux et configurations...
Que souhaites-tu faire au juste?
Il s'agit d'une appli en python3 Tkinter.
but : la gestion de poste informatique local et distant par sftp et ssh (ssh / sspass), dans une fenêtre principal avec canvas et scroolbar vertical,une frames pour chaque machines (postes) avec un bouton local et externe, lors du clique sur un bouton le gestionnaire de fichier doit s'ouvrir en FTP le problème est l’interface graphique ou ssh dans le terminal.
Cette question n'est pas relative à python mais à l'os utilisé.
Le problème est qu'il y a des postes sous Lubuntu, Xubuntu, Kubuntu et Ubuntu sous divers version.
Si tu sais où le système gère ces informations tu pourras les récuperer depuis un script python .
non je ne sais pas où le système gère ces informations ?
Merci.
Dernière modification par xunil2003 (Le 15/11/2021, à 19:20)
- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 / Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE
Hors ligne
#7 Le 15/11/2021, à 22:27
- Compte supprimé
Re : Obtenir avec python des rensignements de l'interface graphique utilise
pseudofab : a écrit :Si tu sais où le système gère ces informations tu pourras les récuperer depuis un script python .
non je ne sais pas où le système gère ces informations ?
Pour trouver le gestionnaire de fichier utilisé par défaut, essaie cette commande dans un terminal bash:
xdg-mime query default inode/directory
Chez moi cela retourne: caja-folder-handler.desktop ce qui est bien mon gestionnaire de fichier.
....à tester
Si cette commande te satisfait tu peux l'appeler depuis un script python avec le module os:
import os
print(os.popen('xdg-mime query default inode/directory').read())
Pour connaitre le navigateur par défaut, j'ai pensé à l'approche suivante:
( brouillon. à pauffiner )
cat /usr/bin/x-www-browser | grep "MOZ_LIBDIR=/usr/lib/" | cut -d"=" -f2
à tester, c'est peut être une piste à suivre ou pas
....
Dernière modification par Compte supprimé (Le 15/11/2021, à 22:29)
#8 Le 16/11/2021, à 17:43
- kamaris
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Pour trouver le gestionnaire de fichier utilisé par défaut, essaie cette commande dans un terminal bash:
xdg-mime query default inode/directory
Oui voilà, et le type mime est probablement le sens le plus commun de « par défaut » en général.
Pour le navigateur web et l'éditeur de texte :
xdg-mime query default x-scheme-handler/http
xdg-mime query default text/plain
Après ça ne sera pas forcément toujours défini, et pour le terminal c'est moins évident que « par défaut » ait un sens indépendamment de l'environnement de bureau (s'il y en a un, comme a dit Vobul en #2).
Hors ligne
#9 Le 16/11/2021, à 18:26
- Vobul
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Perso je ne comprends pas bien le but de l'outil ni même pourquoi ce serait nécessaire d'avoir toutes ces informations mais bon.... Qu'est-ce qu'on on a à faire du gestionnaire de fichier du poste client ???
but : la gestion de poste informatique local et distant par sftp et ssh (ssh / sspass), dans une fenêtre principal avec canvas et scroolbar vertical,une frames pour chaque machines (postes) avec un bouton local et externe, lors du clique sur un bouton le gestionnaire de fichier doit s'ouvrir en FTP le problème est l’interface graphique ou ssh dans le terminal.
Si tu veux administrer facilement plusieurs machines tu configures ssh et tu utilises ansible, pas besoin de plus IMHO. Mais plus je lis cette description moins c'est clair !
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#10 Le 17/11/2021, à 13:07
- Compte supprimé
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
dans une fenêtre principal avec canvas et scroolbar vertical,
Pourquoi un canvas? que va t'il contenir?
#11 Le 17/11/2021, à 14:28
- serged
Re : Obtenir avec python des rensignements de l'interface graphique utilise
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#12 Le 17/11/2021, à 15:52
- Vobul
Re : Obtenir avec python des rensignements de l'interface graphique utilise
@serged, détecter le terminal n'est pas forcément chose facile...
Par exemple, avec rxvt-unicode ça donne "rxvt", mais une fois dans tmux, "screen"
De toute façon je ne vois toujours pas en quoi c'est utile de connaître le terminal de l'ordi client...
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#13 Le 18/11/2021, à 07:28
- serged
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Sinon, pour avoir l'environnement de bureau, il y a $XDG_CURRENT_DESKTOP :
$ echo $XDG_CURRENT_DESKTOP
X-Cinnamon
LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)
Hors ligne
#14 Le 02/12/2021, à 13:03
- xunil2003
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
je reviens vers vous, j'ai besoin de votre aide pour connaître le nom du gestionnaire de fichier de chacune des versions de Ubuntu (kde, mate, xfce, etc...)
Pouvez vous me retourné le retour de commande de
$ echo $XDG_CURRENT_DESKTOP
en m'indiquant la version utilisé (Ubuntu , Kubuntu, Lubuntu, etc...) avec numéro de version (14.04, 18.04) y compris ancienne et récente version pour les changements
PS :
$ echo $TERM
ne m'indique pas la console utilisé par defaut
Code python 2.7 :
DICT_GESTIONNAIRE_DE_FICHIER = {"KDE": "dolphin", "X-Cinnamon": "", "X-Cinnamon": "", "Nautilus": "", "Thunar": "", "PCManFm": "", "Konqueror": "", "Caja": "", "Peony": "", "Nemo": "", "SpaceFM": ""}
bouton_1 = Button(Frame_Toplevel_3,text=' Gestionnaire de fichier ',command=lambda x=v3: ouvrir_le_gestionnaire_de_fichier_dans_le_dossier_du_point_de_montage(x))
if etat_bouton == "NORMAL":
bouton_1['state'] = NORMAL
elif etat_bouton == "DISABLED":
bouton_1['state'] = DISABLED
def ouvrir_gestionnaire_de_fichier_du_periph_monte():
print ""
print "ouvrir_gestionnaire_de_fichier_du_periph_monte"
print "----------------------------------------------"
CMD1 = "echo $XDG_CURRENT_DESKTOP"
cmd1 = os.popen(CMD1).read()
if (DICT_GESTIONNAIRE_DE_FICHIER.has_key(cmd1) != None):
cmd1 = cmd1.replace("\n", "")
cmd1 = DICT_GESTIONNAIRE_DE_FICHIER[cmd1]
else:
print "erreur"
return cmd1
def ouvrir_le_gestionnaire_de_fichier_dans_le_dossier_du_point_de_montage(dossier):
gestionnaire_de_fichier = ouvrir_gestionnaire_de_fichier_du_periph_monte()
print "gestionnaire_de_fichier : ", gestionnaire_de_fichier
cmd = gestionnaire_de_fichier+" "+dossier+" &"
print "cmd : ",cmd
os.system(cmd)
Merci d'avance pour votre aide.
Dernière modification par xunil2003 (Le 02/12/2021, à 13:22)
- AMD R9 5950x 64 Go Ram / Intel Pentium I7 960 - 12 Go Ram - 6 T0 - Kubuntu 12.04 x64 / Kubuntu 14.04 x64 / Kubuntu 16.04 x64 / Kubuntu 18.04 x64 / Kubuntu 20.04 x64 / Mint
- DreamPlug Multi Boot / Marvel 1.22 Ghz / Architecture ARM / 512 Mo Ram / Carte-sd 16 Go class 10 / 5 Watts / Debian Squeeze 2.6.39.4
- Raspberry PI 1 / Raspberry PI 2 / Raspberry PI 3 / Raspberry PI 4 : 4Gb
JE SUIS CHARLIE
Hors ligne
#15 Le 02/12/2021, à 14:28
- Amiralgaby
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
Que pense-tu de la commande :
grep -E '^Exec=' /usr/share/applications/$(xdg-mime query default inode/directory) | tail -n1 | sed -E 's/(Exec=|%.)//g'
Elle peux fonctionner sur toute variante si je ne dis pas de bêtise
En python j'ai fait ça
import os
commande = "grep -E '^Exec=' /usr/share/applications/$(xdg-mime query default inode/directory) | tail -n1 | sed -E 's/(Exec=|%.)//g'"
default_explorer = os.popen(commande).read()
print(default_explorer)
os.system(default_explorer)
Vive la communauté du Libre !!!
Hors ligne
#16 Le 03/12/2021, à 09:26
- Vobul
Re : Obtenir avec python des rensignements de l'interface graphique utilise
@Amiralgaby, ça fonctionne sous Archlinux également
Vobul
Utilisez le retour utilisable de commandes !!!
J'aime la langue française, mais je parle franglais, deal with it.
RTFM
Hors ligne
#17 Le 03/12/2021, à 13:12
- Compte supprimé
Re : Obtenir avec python des rensignements de l'interface graphique utilise
Bonjour,
en passant...
if (DICT_GESTIONNAIRE_DE_FICHIER.has_key(cmd1) != None): cmd1 = cmd1.replace("\n", "") cmd1 = DICT_GESTIONNAIRE_DE_FICHIER[cmd1] else: print "erreur"
has_key() retourne True ou False mais en aucun cas None, donc ta condition sera toujours vraie.
Dernière modification par Compte supprimé (Le 03/12/2021, à 13:13)