Contenu | Rechercher | Menus

Annonce

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 15/11/2021, à 15: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, à 15: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, à 16: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, à 17: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, à 17: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, à 17: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, à 20:10

xunil2003

Re : Obtenir avec python des rensignements de l'interface graphique utilise

re,

pseudofab :  a écrit :

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.

pseudofab :  a écrit :

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.

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 ?

Merci.

Dernière modification par xunil2003 (Le 15/11/2021, à 20: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, à 23:27

Compte supprimé

Re : Obtenir avec python des rensignements de l'interface graphique utilise

xunil2003 a écrit :
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 wink

....

Dernière modification par Compte supprimé (Le 15/11/2021, à 23:29)

#8 Le 16/11/2021, à 18:43

kamaris

Re : Obtenir avec python des rensignements de l'interface graphique utilise

pseudofab a écrit :

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, à 19: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, à 14:07

Compte supprimé

Re : Obtenir avec python des rensignements de l'interface graphique utilise

Bonjour,

xunil2003 a écrit :

dans une fenêtre principal avec canvas et scroolbar vertical,

Pourquoi un canvas? que va t'il contenir?

#11 Le 17/11/2021, à 15:28

serged

Re : Obtenir avec python des rensignements de l'interface graphique utilise

Chez moi, j'ai :

$ echo $TERM
xterm-256color

alors que mon terminal est "terminator"
Alors ?


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, à 16: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" wink

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, à 08: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, à 14: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, à 14: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, à 15: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, à 10:26

Vobul

Re : Obtenir avec python des rensignements de l'interface graphique utilise

@Amiralgaby, ça fonctionne sous Archlinux également smile


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, à 14:12

Compte supprimé

Re : Obtenir avec python des rensignements de l'interface graphique utilise

Bonjour,
en passant...

xunil2003 a écrit :
    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, à 14:13)