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 16/07/2016, à 09:12

Dyonisos75

Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour à tous smile

L'intitulé du sujet est assez explicite:

Je viens d'une autre distrib. et il était possible par un clic-droit de trouver l'option contextuelle "Formater" (lorsque l'on cliquait sur une clé USB par exemple).

Je ne trouve plus cette commande sous MATE.
Est-il possible de rajouter cette commande au Menu contextuel S.V.P. ?

D'avance, merci pour vos réponses tongue

P.S. Merci de ne PAS me proposer GPARTED comme option.

Hors ligne

#2 Le 16/07/2016, à 10:20

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour,
Il n'y a plus de paquet équivalent à gnome-format qui existait dans les anciennes versions d'Ubuntu. A ma connaissance, il n'y a pas de remplaçant. Une solution est alors de passer par caja-actions et d'y associer un script (ou lanceur?) en ligne de commande en s'appuyant sur la documentation. Il y a très longtemps que je n'ai pas fais ça, depuis l'abandon de gnome2, aussi, recherche de la documentation sur nautilus-actions, ce sera la même procédure pour caja-actions.

Hors ligne

#3 Le 16/07/2016, à 16:02

Dyonisos75

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Re smile

Houlaaaa, c'est ce que je redoutais lol

Cela dépasse mes maigres compétences, mais merci à toi metalux wink

Hors ligne

#4 Le 17/07/2016, à 00:09

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Pourquoi n'utilises-tu pas l'application Disques présente dans Ubuntu-Mate? Tu sélectionnes ton disque sur la gauche et tu tapes le raccourci clavier Ctrl+Maj+F. Vu qu'on ne formate pas tous les jours, cela reste acceptable comme solution, non? Pourquoi souhaites-tu l'avoir au clic droit avec les risques d'erreurs associées? Pour cette raison, je trouve mieux que cette option ne soit pas trop facilement accessible et que l'utilisateur fait la démarche active d'aller dans "disques" lorsqu'il en a besoin. Ça évite la perte de données due à un clic droit malheureux suivi d'une validation. Mais tu as certainement tes raisons......
Si ça ne te conviens pas, dis le moi. Je ne te promets rien mais si j'ai le temps, je regarderai dans les jours à venir pour voir ce qui est possible de faire dans ce cas.

Hors ligne

#5 Le 17/07/2016, à 17:25

Dyonisos75

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Très bon Dimanche à tous et merci à toi metalux pour ta disponibilité smile

Tu as entièrement raison, dans la plupart des cas et pour l'utilisateur "classique" ta solution est largement suffisante.
Mais comme tu l'as deviné et sans entrer dans les détails, je traite de nombreux supports externes (disques durs, clefs USB et autres périphériques exotiques de stockage) de provenances très diverses et bien souvent la première chose à faire pour moi consiste à "formater" pour avoir un support bien propre.

Ayant connu Windows et d'autres distributions Linux qui le permettent, je m'étonnais de ne pas trouver en natif une fonction aussi importante. Après tout, les fonctions "monter/démonter","retirer le volume sans risque" sont bien présentes...

Tu as raison, la fonction "formater" est potentiellement dangereuse...pour ceux qui sont étourdis, mais pas autant je trouve que la fonction "supprimer" sans passer par la corbeille,:D mais c'est très personnel.
Je te rassure, cela ne m'empèchera pas de dormir...ehehe

Dans un autre ordre d'idée j'ai été surpris de ne pas trouver de réglage "Privacy" (ou l'équivalent en français), je ne suis sous MATE que depuis trois jours, j'ai peut-être mal regardé dans le panneau de config.?

Encore merci à toi et oui, si tu as une "astuce" pour le sujet initial, je suis preneur smile

Hors ligne

#6 Le 17/07/2016, à 17:51

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Tu as raison, la fonction "formater" est potentiellement dangereuse...pour ceux qui sont étourdis, mais pas autant je trouve que la fonction "supprimer" sans passer par la corbeille

C'est vrai que autant l'option "par défaut" de l'option 'Formater' n'est pas une bonne idée, autant ne plus avoir gnome-format est un manque pour ceux qui le souhaite. Pour la fonction "Supprimer", je suis d'accord si elle est par défaut, elle ne devrait pas l'être. Ça se retire simplement à partir des préférences de caja mais la logique voudrait plutôt qu'on l'ajoute.

et d'autres distributions Linux qui le permettent

Lesquelles que je regarde?

Dans un autre ordre d'idée j'ai été surpris de ne pas trouver de réglage "Privacy"

Euh, là je ne vois pas. Pour régler quoi?

Encore merci à toi et oui, si tu as une "astuce" pour le sujet initial, je suis preneur

De quels formats as-tu besoin? Fat32, Ntfs et Ext4, est-ce suffisant? Ou faut-il autre chose?
2 solutions:
1-Caja-script rapide à mettre en oeuvre mais non sélectif aux périphériques
2-Caja-actions: un peu moins simple mais plus propre. L'option "Formater" apparaîtra que sur les périphériques. J'ai la solution mais que dans le poste de travail et sur le bureau (en affichant les périphériques montés). Pas de solution pour le panneau latéral de Caja. Est-ce que ça te convient?

Hors ligne

#7 Le 17/07/2016, à 17:53

erresse

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour,

Tu entends quoi par "formater un disque" ?
Pour moi, un disque contient des partitions, éventuellement de formats différents, chacune représentant un volume indépendant dans le système.
Alors, à part pour une clé USB qui ne contient souvent qu'une seule partition en FAT32, je ne vois pas comment "formater" un disque sans utiliser un logiciel de "partitionnement" (comme Gparted, par exemple, que tu ne veux pas te voir proposer).
Peux-tu préciser quel genre de travail devrait effectuer cette fonction "formater" ?
Selon le cas, il sera peut-être possible, comme l'a mentionné metalux, d'ajouter une fonction au menu contextuel via une commande bien paramétrée lancée à travers "caja-actions"...


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#8 Le 18/07/2016, à 12:07

Dyonisos75

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour à tous et très bonnes vacances smile

Merci à metalux et erresse big_smile

@metalux: avant de venir sur MATE, j'ai testé Linux MINT Cinnamon dans sa version 17.3, très agréable et très léger. Le menu contextuel (clic-droit) "Formater" apparait alors lorsque tu pointes le curseur sur un disque dur ou autre clef USB.
@metalux:Par "Privacy" (pardonne moi, j'ai oublié le nom français) j'entends l'option réglable dans le panneau de config. (eheh vieux souvenirs de Windows) qui permet de ne pas garder trace de certains fichiers temporaires (l'option est réglable sous MINT) bon je sais, c'est un peu mon côté parano, ahaha
@metalux: Humm. le FAT32 et le NTFS suffisent mais je ne dirais pas non à exFAT que j'utilise de temps en temps. Je crois que les dernières distribs. Linux reconnaissent ce format désormais.

Quand à la mise en oeuvre de la commande, je te laisse juge, je ne suis encore qu'un débutant. Je maîtrise encore très mal le système de commande ( et dire que j'ai fait mes armes sous CP/M en 1981 sur des vieux Logabax 500)
L'idéal serait de se rapprocher le plus possible de quelque chose d'instinctif. Le plus simple serait le mieux, mais "no stress", ce n'est pas bien contraignant de passer par GPARTED (quel excellent soft par ailleurs).

@erresse: Tu as mis le doigt dessus, c'est exactement cela. Vu que je traite des clefs USB et des disques durs externes, la plupart du temps, une seule partition est suffisante, sauf pour des disques qui dépassent les 4To où il m'arrive de créer plusieurs partitions.

Encore merci à vous wink

Hors ligne

#9 Le 20/07/2016, à 01:52

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bon je m'y suis mis mais c'est bien plus compliqué que je le pensais. sad
J'ai commencé 2 versions, l'une ou il y a la demande du mot de passe, la seconde sans demande de mot de passe pour gagner du temps (que j'ai bientôt finie). Il faudra par contre l'ajouter au sudoers pour qu'elle soit acceptée. Je t'expliquerai en temps voulu.
Les limites:
1-Ne fonctionne que sur les icônes des périphériques affichés sur le Bureau, donc ceux montés uniquement. Ne pas oublier de les afficher dans mate tweak.
2-Les clefs doivent avoir un Label sinon ça ne fonctionnera que si une seule clef est montée. Si il en a 2 ou + et que le périphérique choisi est sans label, la sélection devra se faire dans une liste basée sur les points de montage /media/$USER/, donc autant prendre les bonnes habitudes et attribuer un label.
Les points forts:
1-L'option Formater n'apparaîtra dans le menu que sur un clic droit sur un périphérique à formater qui apparaît sur le Bureau et nul part ailleurs
2-C'est très rapide! un clic droit et c'est parti
3-Un message averti de la fin du formatage et le périphérique se remonte automatiquement avec son nouveau label.
Voici quelques captures:
1468975308.png
1468975356.png
et le message en cas de plusieurs partition montées, et pas de label sur le périphérique:
1468975426.png
Voilà pour ce soir, je finirai plus tard mais le gros est fait.

:Par "Privacy" (pardonne moi, j'ai oublié le nom français) j'entends l'option réglable dans le panneau de config

Installe Dconf-editor et regarde à cette clef: org.gnome.desktop.privacy Je pense que ça te permet de régler ce que tu souhaites.

Hors ligne

#10 Le 20/07/2016, à 02:30

MicP

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour metalux

En fait, il s'agit plutôt d'une application qui re-formate une partition puisqu'elle avait déjà été formatée,
sinon, elle ne pourrait être mountée.

…Les clefs doivent avoir un Label sinon ça ne fonctionnera …

Si la partition n'a pas de label, l'UUID du système de fichiers de la partition sera utilisé comme point de mountage.

… Il faudra par contre l'ajouter au sudoers pour qu'elle soit acceptée.…

Si le paquetage udisks2 est installé (en fonction de ta version ubuntu) Essaye la commande udisksctl (qui ne demande aucun privilèges) :

Quelques exemples :

udisksctl monitor

et branche ou débranche une clef USB (ou un disque dur) sur le connecteur USB de ta machine
Et là, c'est la fête : Plein d'informations détaillées en live concernant les disques et leurs partitions défilent.
Il faudra juste un Ctrl-c pour quitter le monitor d'udisksctl.

=======

udisksctl status

=======

udisksctl mount -b /dev/disk/by-uuid/<UUID de la partition>

ou

udisksctl mount -b /dev/disk/sd<caractère alphabétique><N° de la partition>

avec le label, le path, etc.
Bref tout ce qui est dans /dev/disk/by-... puisque ce sont des liens vers le nom du fichier de périphérique associé à une partition ou a un disque.
Et bien sûr, on peut aussi utiliser le fichier de périphérique de la partition directement, s'il n'est pas déjà mounté par root ou un autre utilisateur du système.

=======

udisksctl unmount -b /dev/disk/by-uuid/<UUID de la partition>

Pour cette dernière commande, fait gaffe à pas oublier le n de unmount

Mais bien sûr, si un système de mountage automatique par le gestionnaire de fichiers (ou autre) est actif en même temps, c'est difficilement utilisable.

Tu remarquera qu'avec ces commandes, le point de mountage est automatiquement créé et détruit.

En espérant que ça puisse t'être utile…

Dernière modification par MicP (Le 20/07/2016, à 09:40)

Hors ligne

#11 Le 20/07/2016, à 08:43

Dyonisos75

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour à tous, les amis smile

Woah, alors là nickel metalux, c'est exac-te-ment ce qu'il me fallait et c'est même plus classieux que ce que j'ai pu voir sur Mint, ahaha.

Merci aussi à MicP qui a l'air d'avoir aussi une bonne connaissance du processus, je sens que ça va l'faire cool

A très bientôt

Hors ligne

#12 Le 20/07/2016, à 10:06

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

@MicP
Bonjour,
Merci pour ton aide. J'utilise déjà udisksctl pour effectuer le remontage de la partition. Par contre je suis obligé d'avoir les privilèges root pour le formatage lui-même, c'est pourquoi soit je relance le script avec gksudo -k, soit je l'ajoute au sudoers. A moins qu'il y ait moyen de faire autrement mais je n'ai pas trop d'idée.

Bref tout ce qui est dans /dev/disk/by-... puisque ce sont des liens vers le nom du fichier de périphérique associé à une partition ou a un disque.

J'ai bien regardé de ce côté mais je ne vois pas comment l'exploiter. La difficulté que je rencontre, c'est comment récupérer les infos sur le périphérique à partir d'un clic droit sur son icône sur le bureau ou dans le poste de travail. C'est pour ça que je suis parti sur le label car les périphériques apparaissent sur le bureau sous l'appellation: label.volume. J'ai ensuite crée une caja-action avec comme condition sur les noms de base: *.volume Aussi tant qu'il y a un label ça fonctionne. Quand il n'y en a pas, pas de souci non plus avec un seul périphérique de monté, je récupère les informations nécessaires dans /media/$USER. Mais comment faire avec une clef ou un disque sans label et plusieurs de montés? Comment savoir à partir duquel on a fait le clic droit?

il s'agit plutôt d'une application qui re-formate

Oui, en effet. Je n'ai pas de clef vierge de disponible pour voir comment elle apparaîtrait. Pour effectuer le clic droit, il faut obligatoirement une icône. A moins que sur Linux Mint, une clef non formaté apparaît dans le poste de travail et c'est possible de le faire à partir de là. Il va falloir que je teste une Linux Mint pour voir.

Si tu as des idées concernant ces interrogations, toute idée est la bienvenue, surtout en ce qui concerne la façon de récupérer les infos sur le périphérique à partir d'un clic droit, c'est sur ça que je butte.

Hors ligne

#13 Le 20/07/2016, à 10:47

erresse

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour,

Je ne crois pas qu'une clé ou un disque non formaté apparaisse dans "media", car on monte seulement des volumes, pas des périphériques...
Lorsqu'un volume n'a pas de label, comme l'a indiqué MicP, il est monté avec son UUID en guise de nom dans "media", on devrait donc pouvoir les différencier s'il y en a plusieurs de montés, non ?


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#14 Le 20/07/2016, à 10:58

MicP

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

… La difficulté que je rencontre, c'est comment récupérer les infos sur le périphérique à partir d'un clic droit sur son icône sur le bureau …
…comment faire avec une clef ou un disque sans label…

Comme le nom de l'icône corresponds soit à l'UUID du système de fichiers,soit au label du système de fichiers,
on peut l'utiliser pour retrouver le nom du fichier de périphérique associé :

$ readlink -f /dev/disk/by-uuid/61ee2071-977d-43fa-a543-0fcbdeec9615
/dev/sde1
$ readlink -f /dev/disk/by-label/partamicp
/dev/sde1

…Je n'ai pas de clef vierge de disponible pour voir comment elle apparaîtrait. …

Elle n'apparaîtra pas sur le bureau puisque tant qu'aucun système de fichiers n'existe sur le disque, il n'y a rien à mounter.
Par contre, le nom du fichier de périphérique d'une clef sans table des partition ou sans système de fichier
apparaîtra d'abord dans le retour de la commande udisksctl monitor
pour ensuite être affichée dans /dev/disk/by-path et /dev/disk/by-id

D'ailleurs, udisksctl monitor liste ces liens en "live" juste après qu'ils aient été créés :

$ udisksctl monitor
Monitoring the udisks daemon. Press Ctrl+C to exit.
11:39:16.335: The udisks-daemon is running (name-owner :1.34).
11:39:22.330: Added /org/freedesktop/UDisks2/drives/USB_DISK_2_2e0_060FF1106022226388900123
  org.freedesktop.UDisks2.Drive:
    CanPowerOff:                true
    Configuration:              {}
    ConnectionBus:              usb
    Ejectable:                  true
    Id:                         USB-DISK-2.0-060FF1106022226388900123
    Media:                      
    MediaAvailable:             true
    MediaChangeDetected:        true
    MediaCompatibility:         
    MediaRemovable:             true
    Model:                      DISK 2.0
    Optical:                    false
    OpticalBlank:               false
    OpticalNumAudioTracks:      0
    OpticalNumDataTracks:       0
    OpticalNumSessions:         0
    OpticalNumTracks:           0
    Removable:                  true
    Revision:                   1.00
    RotationRate:               -1
    Seat:                       seat0
    Serial:                     060FF1106022226388900123
    SiblingId:                  /sys/devices/pci0000:00/0000:00:1d.0/usb4/4-1/4-1.1/4-1.1.3/4-1.1.3:1.0
    Size:                       4105175040
    SortKey:                    01hotplug/1469007562328688
    TimeDetected:               1469007562328688
    TimeMediaDetected:          1469007562328688
    Vendor:                     USB
    WWN:                        
11:39:22.332: Added /org/freedesktop/UDisks2/block_devices/sde
  org.freedesktop.UDisks2.Block:
    Configuration:              []
    CryptoBackingDevice:        '/'
    Device:                     /dev/sde
    DeviceNumber:               2112
    Drive:                      '/org/freedesktop/UDisks2/drives/USB_DISK_2_2e0_060FF1106022226388900123'
    HintAuto:                   true
    HintIconName:               
    HintIgnore:                 false
    HintName:                   
    HintPartitionable:          true
    HintSymbolicIconName:       
    HintSystem:                 false
    Id:                         
    IdLabel:                    
    IdType:                     
    IdUUID:                     
    IdUsage:                    
    IdVersion:                  
    MDRaid:                     '/'
    MDRaidMember:               '/'
    PreferredDevice:            /dev/sde
    ReadOnly:                   false
    Size:                       4105175040
    Symlinks:                   /dev/disk/by-id/usb-USB_DISK_2.0_060FF1106022226388900123-0:0
                                /dev/disk/by-path/pci-0000:00:1d.0-usb-0:1.1.3:1.0-scsi-0:0:0:0
^C

De plus, le N° de série du disque (qui ne changera JAMAIS) et le type de connexion (USB, ata, lvm, dm) pourrait être une information intéressante.

=======

    Device:                     /dev/sde

=======

Serial:                     060FF1106022226388900123
$ readlink -f /dev/disk/by-id/*060FF1106022226388900123*
/dev/sde

=======

Symlinks:                   /dev/disk/by-id/usb-USB_DISK_2.0_060FF1106022226388900123-0:0
$ readlink -f /dev/disk/by-id/usb-USB_DISK_2.0_060FF1106022226388900123-0:0
/dev/sde

Dernière modification par MicP (Le 20/07/2016, à 11:13)

Hors ligne

#15 Le 20/07/2016, à 12:08

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

erresse a écrit :

Lorsqu'un volume n'a pas de label, comme l'a indiqué MicP, il est monté avec son UUID en guise de nom dans "media", on devrait donc pouvoir les différencier s'il y en a plusieurs de montés, non ?

Oui, on peut les différencier mais comment récupérer la bonne info à partir de l'icône?

Comme le nom de l'icône corresponds soit à l'UUID du système de fichiers,soit au label du système de fichiers,

Le souci vient de là, le nom de l'icône ne correspond pas l'UUID mais à une appellation générique du type: Volume de 7,8 GB. Du coup je ne vois pas comment différencier les partitions montées à partir de cette info hmm
Voilà où j'en suis:
Tout d'abord, installer les dépendances:

sudo apt install caja-actions yad

Voici le script actuel à enregistrer dans votre dossier personnel sous le nom format:

#!/bin/bash
if [[ $(id -u) -ne 0 ]];then
    name=$(basename -s .volume "$1" | sed 's/%20/ /g')
    device=$(mount | grep /media/$USER/"$name" | awk '{print $1}')
    if [[ -z "$device" ]] && [[ $(ls /media/$USER | wc -l) -eq 1 ]]; then
        device=$(df | grep /media/* | awk '{print $1}')
    fi
    if [[ -z "$device" ]] && [[ $(ls /media/$USER | wc -l) -gt 1 ]];then
        device=$(df | grep $(yad --entry --title="The Dyonisos75 format tool" --fixed --image=gtk-caps-lock-warning --width=400 --window-icon=gnome-disks --width=400 --text="<b><big><span color=\"red\">ATTENTION</span></big></b> \n \n Le périphérique sélectionné n'a pas de Label et plusieurs périphériques sont montés. Ceci entraîne un conflit et vous devez le sélectionner manuellement dans la liste ci-dessous.\n Si vous avez un doute, annulez et éjectez les périphériques qui ne doivent pas être formatés et relancer le formatage.\n A l'avenir, pensez à labelliser vos clefs et disques amovibles \n " $(ls /media/$USER)) | awk '{print $1}')
        [[ -z "$device"  ]] && exit 0
    fi
    sudo "$0" "$device"
    exit 0
fi
format=$(yad --fixed --image=gnome-disks --window-icon=gnome-disks --width=400 --separator="\n" --center --form --title="The Dyonisos75 format tool" --text="Veuillez indiquer le système de fichiers" --field="Type":CB --field="Label" 'Fat32!Ntfs!Extfat!Ext4')
[[ $? -ne 0 ]] && exit 0
mapfile -t tab < <(echo "${format}")
umount "$1"
case "${tab[0]}" in
    Fat32)
        mkfs.vfat -F 32 -n "${tab[1]}" "$1";;
    Ntfs)
        mkntfs -q -L "${tab[1]}" "$1";;
    Ext4)
        mkfs.ext4 -L "${tab[1]}" "$1";;
    Extfat)
        mkexfatfs -n "${tab[1]}" "$1";;
    *)
       exit 1
esac
sleep 1
su -c "udisksctl mount -b "$1"" "$SUDO_USER"

yad --undecorated --image=gnome-disks --window-icon=gnome-disks --info --title="The Dyonisos75 format tool" --text="Formatage terminé!" --timeout=2 --no-buttons --center --width=250
exit 0

Le rendre exécutable:

chmod +x ~/format

Ajouter le script à sudoers:

sudo visudo

et ajouter à la fin du fichier:  user  ALL=(ALL) NOPASSWD: /home/user/format en remplaçant bien sûr "user" par votre identifiant. Ctrl+X pour quitter et "O" pour sauvegarder si vous utilisez nano comme éditeur.
Le fichier caja-action à enregistrer sous le nom Formater.desktop. Modifiez /home/user dans celui-ci par votre identifiant comme /home/Dyonisos75 par exemple

[Desktop Entry]
Type=Action
Name[fr_FR]=Formater
Name[fr]=Formater
Tooltip[fr_FR]=Outil de formattage
Tooltip[fr]=Outil de formattage
Icon[fr_FR]=gnome-disks
Icon[fr]=gnome-disks
ToolbarLabel[fr_FR]=Formater
ToolbarLabel[fr]=Formater
Profiles=profile-zero;

[X-Action-Profile profile-zero]
Name[fr_FR]=Formater
Name[fr]=Formater
Exec=/home/user/format %b
Path=/home/user
Basenames=*.volume;

L'importer dans caja-actions avec le menu Outil/assistant d'importation, le sauvegarder (ctrl+S) et relancer caja avec la commande caja -q
Il n'y a plus qu'à tester. Attention, prenez une clef de test au cas où j'aurais fais une erreur! même si cela fonctionne correctement chez moi. L'option "Formater" apparaîtra sur les icônes du bureau concernant les partitions montées.

EDIT:
Je viens de tester Mint et c'est le paquet mintstick disponible ici qui permet de formater. Il n’apparaît pas dans Caja, aussi il faut faire une caja-action avec comme commande mintstick -m format sinon ça n'apparait pas dans le menu contextuel au clic droit avec comme condition dans Nom de base *.volume et *.drive pour que ça apparaît sur le bureau et dans le poste de travail. Ça ne sélectionne pas la clef choisie, aussi il faut le faire manuellement dans une liste, donc c'est pas le top.  Par ailleurs, ça formate toute la clef ou le disque même si il y a plusieurs partitions dessus, ce qui implique des risques à mon avis. Le script, lui permet un formatage partition par partition.
A l'usage, même si ça fonctionne, il faut entrer son mot de passe, cliquer sur une fenêtre en fin de formatage qui confirme la fin de l'exécution. Ce n'est ni très pratique, ni très rapide, autant passer par l'application Disques présente par défaut sur Ubuntu-mate qui remplit le même rôle.

Dernière modification par metalux (Le 20/07/2016, à 14:06)

Hors ligne

#16 Le 20/07/2016, à 21:20

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Salut,

J'ai lu ce fil tout à fait par hasard et je me suis pris au jeu, je vous propose un script qui utilise gvfs-mount.
Pourquoi?
Simplement parce que celui-ci travaille uniquement en environnement utilisateur, que la liste des péripĥériques amovibles est obtenue facilement indépendamment de l'environnement utilisé car tous les environnements n'utilisent pas le point de montage /media/$user, que cette liste est complète pas besoin de se demander si le volume ciblé possède une étiquette ou non.

Zenity est utilisé à la place de Yap, simplement parce que Yap n'est pas disponible sous Archlinux sinon dans le dépôt AUR et que je ne connais pas YAP.
J'ai été amené à ajouter un dialogue de saisie de l'étiquette, pour l'instant pas trouvé comment intégrer sa saisie dans le dialogue de sélection du système de fichiers.

sudo n'est pas utilisé puisque gvfs-mount n'a pas besoin de privilèges particuliers, pour réaliser le formatage sans sudo l'utilisateur a été attaché au groupe disk.
Ce n'est pas terrible en terme de sécurité mais je vis très bien avec depuis déjà  pas mal de temps.

Ceci dit c'est un script fort limité, en cas de clefs multi volumes, impossible de supprimer ou ajouter une partition, mais bon autant utiliser Gparted dans ce cas.
Script sans grand intérêt pratique (tous les outils graphiques équivalents existent déjà) mais exercice de programmation intéressant.

#!/bin/sh
declare -a files            # table des localisations GVFS
declare -i index_mountpoint # index des points de montage

if [[ $(id -u) -ne 0 ]];then
    name=$(basename -s .volume "$1" | sed 's/%20/ /g'); echo "name $name";
	files=($(gvfs-mount -l | grep "$name" | grep file | cut -d ">" -f 2 | sed -e 's/^ //' )) #===> Table des localisations GVFS
	index_mountpoint=0;
	while [ "x${files[$index_mountpoint]}" != "x" ]
	do
		file=${files[$index_mountpoint]}
		mountpoint=$(echo $file | sed -e 's/file:\/\///' -e 's/%20/ /g'); echo "point $mountpoint"	#===> Point de montage du volume GVFS
		device=$(mount | grep "$mountpoint" | awk '{print $1}'); echo "device $device" 				#===> Périphérique bloc
		zenity_txt="$zenity_txt$device $file "														#===> Préparation tableau de sélection volume
		let index_mountpoint=index_mountpoint+1; 
	done;
fi
if [ ${#files[@]} -eq 0 ] #===> Erreur, aucun volume trouvé
	then
		exit 1
fi
if [ ${#files[@]} -gt 1 ] #===> + d'un volume, dialogue de sélection volume
	then
		volume=`zenity --list --title="Liste des volumes possibles" --column="Périphériques" --column="Localisations GVFS" --text="Choisir Périphérique."  --print-column=ALL $zenity_txt --timeout=30 --width=400 --height=300 `;

	case $? in
			  0)
				device=$(echo $volume | cut -d "|" -f 1);
				file=$(echo $volume   | cut -d "|" -f 2);
				;;
			1|5) exit  0 ;; #Choix Annuler ou dépassement limite de temps de validation saisie ====> Sortie programme
			 -1) exit -1 ;; #Erreur de Zenity (Comment afficher un message de sighalement?)    ====> Sortie programme
	esac;
fi		
#===> Choix du type de système de fichiers
format=$(zenity --list --title="The Dyonisos75 format tool" --text="Veuillez sélectionner le système de fichiers"  --column Type Fat16 Fat32 Ntfs Extfat Ext4)
	case $? in
			0)
#===> Proposition de saisie étiquette
			label=`zenity --entry \
				--title="Saisie Étiquette volume" \
				--text="Étiquette:" \
				--entry-text ""`
  					gvfs-mount -u "$file" #===> Démontage volume via GVFS
#===> Formatage
					case "$format" in
					    Fat16)
					        mkfs.vfat -F 16 -n "$label" "$device";;
					    Fat32)
					        mkfs.vfat -F 32 -n "$label" "$device";;
					    Ntfs)
					        mkntfs -q -L "$label" "$device";;
					    Ext4)
					        mkfs.ext4 -L "$label" "$device";;
					    Extfat)
					        mkexfatfs -n "$label" "$device";;
					    *)
					       exit 1
					esac
					sleep 1
					echo $device
					gvfs-mount -d "$device" #===> Montage volume via GVFS
				;;
			1|5) exit  0 ;; #Choix Annuler ou dépassement limite de temps de validation saisie ====> Sortie programme
			 -1) exit -1 ;; #Erreur de Zenity (Comment afficher un message de sighalement?)    ====> Sortie programme
	esac;

exit 0

Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#17 Le 20/07/2016, à 22:01

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonsoir Maxire,
Ouah! C'est juste l'outil qui me manquait pour gérer les cas litigieux avec un périphérique sans label et plus d'une clef/disque de monté. gvfs-mount -l me donne toutes les infos nécessaires. Je regarde ça d'ici quelques jours pour l'intégrer au script que j'ai fais ,quand je serai dispo. Merci pour ta contribution.
Comme toi, je me suis pris au jeu et j'ai profité d'un peu de temps libre hier et ce matin pour scripter un peu. Je le fais sporadiquement et même si c'est pas toujours tip-top, ça m'amuse de le faire....et si en plus ça peu rendre service, c'est toujours mieux.

Hors ligne

#18 Le 21/07/2016, à 09:15

Dyonisos75

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour à tous ^^

Un grand merci à toi metalux et ...Maxire.

Je dois m'absenter 2-3 jours, je reviens vers vous dans quelque jours pour voir la maturation du projet, eheheh, ça se précise il semble big_smile
Attention toutefois de ne pas être trop technique, je suis encore très nouveau sur Linux (que j'apprends chaque jours à aimer un peu plus)
Je sais ouvrir un terminal, taper quelque commandes (ou plutôt recopier CTRL-C/CTRL-V) mais guère plus, ahahah

A très bientôt smile

Hors ligne

#19 Le 21/07/2016, à 12:50

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Salut,

En fait caja-script est beaucoup plus simple que caja-actions.
Dans caja-script la variable d'environnement CAJA_SCRIPT_SELECTED_FILE_PATHS donne d'entrée le point de montage du média amovible.
Il ne reste plus qu'à vérifier si ce répertoire correspond bien à un point de montage de média amovible sous le contrôle de l'utilisateur.
Ajouter ce script sous le nom que vous voulez (pourquoi pas formater) sous /home/$USER/.config/caja/caja-script /home/$USER/.config/caja/scripts, le rendre exécutable, attacher l'utilisateur au groupe disk, et c'est tout (en plus d'installer zenity).
Ensuite sélectionner le média,clic droit, sélectionner caja-script /formater Scripts/formater.

Je n'ai pas bloqué la sélection multiple ce qui pourait poser problème puisque CAJA_SCRIPT_SELECTED_FILE_PATHS donne en réalité la liste des répertoires sélectionnés.
Une évolution possible serait de traiter cette variable comme un tableau de médias et de proposer successivement les différents médias au formatage.

#!/bin/sh
mountpoint=$(echo $CAJA_SCRIPT_SELECTED_FILE_PATHS); #===> Point de montage du volume GVFS, echo nécessaire sinon étiquettes avec espaces non prises en compte
device=$(mount | grep $mountpoint | awk '{print $1}'); #===> Périphérique bloc
file="file://$(echo $CAJA_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/ /%20/g')"; #===> locallisation GVFS, Espaces transformés en %20 sinon problème ds commande suivante (??)
#===> vérification que ce répertoire correspond à un point de montage de média amovible
# 
n=$(gvfs-mount -l | grep $file | wc -l); # Nombre de volumes détectés pour une localisation GVFS
# n=0, ce n'est pas un point de montage sous le contrôle de l'utilisateur ou bien c'est un simple répertoire
# n=1, OK c'est bien un point de montage de média amovible
# n>1, cas particuler de la sélection d'un périphérique dans la fenêtre «Poste de Travail» (ne me demandez pas pourquoi c'est juste un constat d'expérimentation)
if [ "$n" != "1" ]
	then
		zenity --info --text="Le répertoire $mountpoint n'est pas un point de montage de média amovible sous contrôle de $USER";
		exit 1
fi
#===> Choix du type de système de fichiers
format=$(zenity --list --title="The Dyonisos75 format tool" --text="Veuillez sélectionner le système de fichiers"  --column Type Fat16 Fat32 Ntfs Extfat Ext4)
	case $? in
			0)
#===> Proposition de saisie étiquette
			label=`zenity --entry \
				--title="Saisie Étiquette volume" \
				--text="Étiquette:" \
				--entry-text ""`
			gvfs-mount -u $file #===> Démontage volume via GVFS
#===> Formatage
					case "$format" in
					    Fat16)
							echo "format fat16" > /tmp/format;
					        mkfs.vfat -F 16 -n "$label" "$device";;
					    Fat32)
							echo "format fat32";
					        mkfs.vfat -F 32 -n "$label" "$device";;
					    Ntfs)
							echo "format ntfs";
					        mkntfs -q -L "$label" "$device";;
					    Ext4)
							echo "format Ext4";
					        mkfs.ext4 -L "$label" "$device";;
					    Extfat)
							echo "format Extfat";
					        mkexfatfs -n "$label" "$device";;
					    *)
					       exit 1
					esac
					sleep 1
					echo $device
					gvfs-mount -d $device #===> Montage volume via GVFS
				;;
			1|5) exit  0 ;; #Choix Annuler ou dépassement limite de temps de validation saisie ====> Sortie programme
			 -1) exit -1 ;; #Erreur de Zenity (Comment afficher un message de sighalement?)    ====> Sortie programme
	esac;

exit 0

J'ajoute que j'ai des doutes quant à la pérennité de caja-actions de plus la documentation disponible y compris dans les site web du développeur est plutôt légère.
Je n'ai par exemple pas du tout compris le concept de nom de base et quelques tests supplémentaires m'ont amené à virer cette usine à gaz trop compliquée à mettre en œuvre, je me suis perdu.

Edit: Script modifié, les étiquettes avec espace posaient problème.
Edit2: Correction des 2 erreurs pointées par Erresse

Dernière modification par maxire (Le 21/07/2016, à 13:36)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#20 Le 21/07/2016, à 13:20

erresse

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour maxire,
Je crois que caja-scripts est une sorte d'exception (avec Nautilus et Nemo) et que ce concept n'existe pas dans les autres environnements utilisant d'autres gestionnaires de fichiers.
Par ailleurs, en utilisant caja-actions, je pense que metalux a pu restreindre la portée de la commande à une catégorie précise d'objets, à savoir les volumes et périphériques, ce que caja-script ne permet pas (à charge pour l'utilisateur de savoir sur quoi il clique)...
Sinon, dans Ubuntu-Mate (et les autres variantes, je pense) zenity est installé par défaut et les scripts pour caja se trouvent à l'adresse :

~/.config/caja/scripts/

et la liste s'affiche au clic droit en choisissant "Scripts".
smile


Plus de 50 ans d'informatique, ça en fait des lignes de commandes en console, mais on n'avait pas le choix...
Excellente raison pour, aujourd'hui qu'on le peut, utiliser au maximum les INTERFACES GRAPHIQUES !
Important : Une fois résolu, pensez à clore votre sujet en ajoutant [Résolu] devant le titre du 1er message, et un bref récapitulatif de la solution à la fin de celui-ci. Merci.

Hors ligne

#21 Le 21/07/2016, à 13:31

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour Eresse,

J'ai mis une restriction dans le script que je fournis, seuls les médias amovibles sous le contrôle de l'utilisateur sont formatables, donc pas besoin des restrictions de caja-actions.

Cest justement ce système de restrictions ou filtrages de caja-actions qui me pose problème, c'est plutôt abscons et je ne suis pas certain que cela fonctionne vraiment  comme j'ai cru le remarquer suite à des tests rapides sous Archlinux ce matin.

Exact pour .config/caja/scripts, j'ai écrit une erreur, je corrige mon message, merci.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#22 Le 23/07/2016, à 11:44

metalux

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bonjour à tous,

Par ailleurs, en utilisant caja-actions, je pense que metalux a pu restreindre la portée de la commande à une catégorie précise d'objets, à savoir les volumes et périphériques, ce que caja-script ne permet pas (à charge pour l'utilisateur de savoir sur quoi il clique)...

Exactement. J'ai également utilisé caja-actions car il permet un affichage direct dans le menu.

maxire a écrit :

En fait caja-script est beaucoup plus simple que caja-actions.

Oui je confirme! Cependant utilisateur de Xfce depuis un certain temps, les actions Thunar permettent un affichage direct dans le menu et seulement sur les fichiers/dossiers de son choix. Du coup j'ai une préférence pour ce comportement qui est reproductible avec Caja-actions.

@maxire

file="file://$(echo $CAJA_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/ /%20/g')"; #===> locallisation GVFS, Espaces transformés en %20 sinon problème ds commande suivante (??)

Les périphériques sans Label apparaissent sous la forme: " Volume de 7,8 GB". Aussi il faut également gérer la virgule sinon ça ne fonctionne plus:

file="file://$(echo $CAJA_SCRIPT_SELECTED_FILE_PATHS | sed -e 's/ /%20/g' | sed 's/%2C/,/g')";

Tu as oublié de gérer l'annulation dans la fenêtre du label. A tester le code retour après l'affichage de la fenêtre zenity :

[ $? -ne 0 ] && exit 0

Pour $CAJA_SCRIPT_SELECTED_FILE_PATHS j'avais essayé mais sans le echo. Je n'y avais pas pensé. Le retour direct du point de montage est un plus pour caja-scripts comparé à caja-actions.

# n>1, cas particuler de la sélection d'un périphérique dans la fenêtre «Poste de Travail»

Rien ne fonctionne dans le "Poste de travail d'Ubuntu-Mate", echo $CAJA_SCRIPT_SELECTED_FILE_PATHS ne retournant rien avec caja-scripts et le nom n'étant pas exploitable avec Caja-actions. Voici un exemple avec un label Essai.
Dans le poste de travail, le nom apparaît sous la forme: USB DISK 2.0: Essai et le retour de echo $CAJA_SCRIPT_SELECTED_FILE_PATH
est nul et celui de echo "$1" est USB%20DISK%202.0. Je n'ai donc aucune idée de comment l'exploiter, aussi il faut s'en tenir aux icônes apparaissants sur le bureau qui fonctionnent aussi bien avec ton script que le mien.
Il doit y avoir une différence entre Ubuntu-mate et ArchLinux+Mate que tu utilises.

maxire a écrit :

Cest justement ce système de restrictions ou filtrages de caja-actions qui me pose problème, c'est plutôt abscons et je ne suis pas certain que cela fonctionne vraiment

Il s'agit tout simplement d'un filtre sur les noms. Les icônes du bureau apparaissent avec l'extension .volume aussi j'ai mis le filtre *.volume et ça fonctionne très bien dans mon cas. Pour le poste de travail, c'est l'extension *.drive.

@Dyonisos75
Voici ce que ça donne Dyonisos75, que tu puisses faire ton choix avant finalisation:
1469266666.png
Caja-script ajoute une entrée Scripts avec en sous-menu l'ensemble des scripts. tu as sur l'exemple le curseur sur le script "formater". Celui-ci apparait tout le temps dans le menu, que tu sois ou non sur une clef/disque
L'option "Formater" tout en bas est obtenue avec Caja-actions qui permet un affichage direct dans le menu et seulement si tu es sur une clef/disque sur le bureau. Elle n’apparaît pas ailleurs.
Pour les apparences:
Avec Yad:
1468975308.png
Avec Zenity:
1469268268.png
puis la fenêtre de Label:
1469268306.png

Pour la demande de mot de passe, 3 choix possibles:
Ajout de l'utilisateur au groupe disk qui lui permet de faire les actions de formatage sans droits administrateur. (règle la plus permissive)
Ajout du script dans sudoers qui permettra le formatage sans mot de passe mais que en passant par le script et non ailleurs. (permission que pour le script)
Aucun ajout, dans ce cas le mot de passe sera requis à chaque fois comme avec Gparted. (règle stricte de sécurité)

Je te communiquerai le script final après tes choix de:
1-Caja-scripts/Caja-actions
2-Yad/Zenity
3-groupe Disk, sudoers ou rien(demande de mot de passe dans ce cas)

Hors ligne

#23 Le 23/07/2016, à 14:59

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Salut metalux,

J'avais rédigé une réponse détaillée à tes remarques, je l'ai perdue après m'être fait jeter par le forum pour cause de dépassement de délai.

Pour faire court:

- Pas d'annulation de saisie de label, en fait si, en cas d'annulation de la saisie de l'étiquette c'est celle-ci qui est abandonnée (étiquette alors vide) pas le formatage, donc c'est volontaire de ma part. Le formatage s'effectue alors sans étiquetage du volume.

- Le cas du poste de travail, je n'avais pas vraiment investigué, tu as trouvé la réponse, avec file vide, ce sont tous les périphériques montés qui sont sélectionnés d'où n>1.

- Cas des périphériques sans étiquettes, la virgule, je n'utilise pas $1, donc sans objet puisque c'est l'étiquette ou l'UUID qui est reçue par le script. En fait il faudrait étudier le problème des caractères acceptés par les différents systèmes de fichiers pour écrire les étiquettes de volumes, la virgule est-elle acceptée? Quels sont les autres caractères pouvant poser problème?

- caja-actions, je n'aime définitivement pas, documentation lacunaire, c'est rhédibitoire, par exemple comment as-tu su que les suffixes .volume et .drive sont utilisables?

- Je ne savais pas que $1 contient également le nom de l'icône avec caja-scripts, de toute façon je n'en ai pas l'utilité pour le moment.

Une nouvelle version du script autorisant la multi sélection de médias:

#!/bin/sh
declare -a mountpoints			# table des répertoires sélectionnés
declare -i index_mountpoint		# index des points de montage

mountpoints=($CAJA_SCRIPT_SELECTED_FILE_PATHS); #===> Répertoires sélectionnés

index_mountpoint=0;
while 	[ $index_mountpoint -lt ${#mountpoints[@]} ]
do
	mountpoint=${mountpoints[$index_mountpoint]}
	device=$(mount | grep -w "$mountpoint" | awk '{print $1}'); #===> Partition
	file="file://$(echo $mountpoint | sed -e 's/ /%20/g')";
	n=$(gvfs-mount -l | grep -w $file | wc -l);
	if [ "$n" != "1" ]
		then
			zenity --info --text="Le répertoire $mountpoint n'est pas un point de montage de média amovible sous contrôle de $USER";
		else
#===> Choix du type de système de fichiers
			format=$(zenity --list --title="The Dyonisos75 format tool" --text="Veuillez sélectionner le nouveau système de fichiers de $mountpoint"  --column Type Fat16 Fat32 Ntfs Extfat Ext4)
				case $? in
						0)
#===> Proposition de saisie étiquette
						label=`zenity --entry \
							--title="Saisie Étiquette volume $mountpoint" \
							--text="Étiquette:" \
							--entry-text ""`
						gvfs-mount -u $file #===> Démontage volume via GVFS
#===> Formatage
								case "$format" in
								    Fat16)
								        mkfs.vfat -F 16 -n "$label" "$device";;
								    Fat32)
								        mkfs.vfat -F 32 -n "$label" "$device";;
								    Ntfs)
								        mkntfs -F -q -L "$label" "$device";;
								    Ext4)
								        mkfs.ext4 -L "$label" "$device";;
								    Extfat)
								        mkexfatfs -n "$label" "$device";;
								    *)
								       exit 1
								esac
								sleep 1
								echo $device
								gvfs-mount -d $device #===> Montage volume via GVFS
							;;
#						1|5) break ;; #Choix Annuler ou dépassement limite de temps de validation saisie ====> Sortie programme
				 -1) exit -1 ;; #Erreur de Zenity (Comment afficher un message de sighalement?)    ====> Sortie programme
		esac;
	fi
	let index_mountpoint=index_mountpoint+1;
done;	
exit 0

Je te laisse découvrir ses subtilités, merci de te pencher sur mes œuvres.
Pour l'instant les sélections des icônes dans le poste de travail sont ignorées sans message, je te laisse découvrir pourquoi...

Note: Le formatage est assez long, il faudrait ajouter une animation, la solution de zenity avec sa barre de progression ne me satisfait qu'à moitié.

Dernière modification par maxire (Le 23/07/2016, à 15:04)


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#24 Le 23/07/2016, à 15:14

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Bon,

Il existe quand même un problème dans ces scripts,

Je pense qu'il faudrait ajouter un dialogue de validation après saise de l'étiquette permettant d'annuler le(s) formatage(s).

De plus si tu cliques sur le x de fermeture de fenêtre lors de la saisie étiquette le formatage s'exécute tout de même ce qui n'est pas bon du tout, donc c'est à affiner.


Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne

#25 Le 23/07/2016, à 15:37

maxire

Re : Ubuntu MATE - Ajouter "Formater" au menu contextuel

Ajouté une demande de confirmation de formatage après saisie étiquette:

#!/bin/sh
declare -a mountpoints			# table des répertoires sélectionnés
declare -i index_mountpoint		# index des points de montage

mountpoints=($CAJA_SCRIPT_SELECTED_FILE_PATHS); #===> Répertoires sélectionnés

index_mountpoint=0;
while 	[ $index_mountpoint -lt ${#mountpoints[@]} ]
do
	mountpoint=${mountpoints[$index_mountpoint]}
	device=$(mount | grep -w "$mountpoint" | awk '{print $1}'); #===> Partition
	file="file://$(echo $mountpoint | sed -e 's/ /%20/g')";
	n=$(gvfs-mount -l | grep -w $file | wc -l);
	if [ "$n" != "1" ]
		then
			zenity --info --text="Le répertoire $mountpoint n'est pas un point de montage de média amovible sous contrôle de $USER";
		else
#===> Choix du type de système de fichiers
			format=$(zenity --list --title="The Dyonisos75 format tool" --text="Veuillez sélectionner le nouveau système de fichiers de $mountpoint"  --column Type Fat16 Fat32 Ntfs Extfat Ext4)
				case $? in
						0)
#===> Proposition de saisie étiquette
						label=`zenity --entry \
							--title="Saisie Étiquette volume $mountpoint" \
							--text="Étiquette:" \
							--entry-text ""`
						zenity --question \
							--text="Voulez-vous vraiment formater $mountpoint ?"
						if [ $? = "0" ]
						then
						gvfs-mount -u $file #===> Démontage volume via GVFS
#===> Formatage
								case "$format" in
								    Fat16)
								        mkfs.vfat -F 16 -n "$label" "$device";;
								    Fat32)
								        mkfs.vfat -F 32 -n "$label" "$device";;
								    Ntfs)
								        mkntfs -F -q -L "$label" "$device";;
								    Ext4)
								        mkfs.ext4 -L "$label" "$device";;
								    Extfat)
								        mkexfatfs -n "$label" "$device";;
								    *)
								       exit 1
								esac
								sleep 1
								echo $device
								gvfs-mount -d $device #===> Montage volume via GVFS
						fi
							;;
#						1|5) break ;; #Choix Annuler ou dépassement limite de temps de validation saisie ====> Sortie programme
				 -1) exit -1 ;; #Erreur de Zenity (Comment afficher un message de sighalement?)    ====> Sortie programme
		esac;
	fi
	let index_mountpoint=index_mountpoint+1;
done;	
exit 0

Maxire
Archlinux/Mate + Ubuntu 22.04 + Archlinux/Gnome sur poste de travail

Hors ligne