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 07/04/2018, à 07:06

winux

[RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Bonjour

Un copain que j'ai perdu de vue car parti à l'étranger m'avait fait l'excellent script suivant, mais malheureusement j'ai désormais le message d'erreur qui suit.
Ca m'inquiète pour l'avenir car pour le moment ça passe encore, mais quid des futures versions d'Ubuntu ?
C'est pourquoi j'essaie d'anticiper

 gerard@PC4:~$ '/media/DATA-GG/0-ESSAI_ICONES_AUTO/scripts/Main.sh' 
This tool has been deprecated, use 'gio set' instead.
See 'gio help set' for more info.
SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK 

BUT DE CE SCRIPT
Pour chaque nouvelle installe Ubuntu, générer automatiquement les icônes personnalisées de mes dossiers, sachant qu'il y a des sous-dossiers, ...
2d7empj.png

Il s'agit de tous mes dossiers, appartenant à la partition DATA-GG, personnalisés à partir de la source suivante dont voici un extrait
http://tinypic.com/r/2isxw5l/9

Le script principal est main.sh
je l'ai ultra simplifié pour qu'il ne reste qu'un seul dossier à personnaliser.
J'ai remplacé DATA-GG par DATA-GG/ESSAI_ICONES_AUTO

 #!/bin/bash

#Récupère le chemin de lancement du script Main.sh
SCRIPT_PATH=$(dirname "$0");

#Inclusion de fichier
source "${SCRIPT_PATH}/constantes.sh"
source "${SCRIPT_PATH}/functions.sh"

# Mettre ici l'ensemble des commandes

# SOUS /DATA-GG/ESSAI_ICONES_AUTO
# Icônes sous "DATA-GG/0-ESSAI_ICONES_AUTO"
change_icone "${DATA_PATH}/trial"  "${ICON_PATH}/Micronet.png"

echo "SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK"  

ce qui donne le résultat suivant
2z7js60.png

ce script s'appuie sur
constantes.sh

 #!/bin/bash

#########################################################
# FICHIER DE CONSTANTES
#########################################################

#Formatage des messages d'erreur
BEGIN_FORMAT="\e[1;34m"
END_FORMAT="\e[0m"

#########################################################

# répertoire racine : DATA-GG/0-ESSAI_ICONES_AUTO
DATA_PATH="/media/DATA-GG/0-ESSAI_ICONES_AUTO"

#########################################################

# répertoire racine : ICÔNES PC4
ICON_PATH="/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux" 

et functions.sh

 #!/bin/bash

##########################################
#Fichier contenant les fonctions utilisées
#dans les scripts
#Il ne devrait pas y avoir besoin de le modifier
##########################################

#Fonction qui teste l'existence d'un fichier ou dossier
function doesFileExist(){

	fileToTest=$1

	# Le répertoire ou le fichier existe t'il
	if [[ -d $fileToTest || -f $fileToTest ]] ; then
		return 0;
	else
		return 1;
	fi	
}

#Fonction qui change l'icone utilisateur
function change_icone(){

	sourceToChange=$1
	iconPath=$2	

	#Teste l'existence du fichier/dossier à modifier
	doesFileExist "$sourceToChange"
	if [[ $? == 1 ]]; then
		echo -e "Le fichier SOURCE ${BEGIN_FORMAT} ${sourceToChange} ${END_FORMAT} n'existe pas"
		return 1;
	fi

	#Teste l'existence du fichier icone
	doesFileExist "$iconPath"
	if [[  $? == 1 ]]; then
		echo -e "Le fichier ICONE ${BEGIN_FORMAT}  ${iconPath}  ${END_FORMAT} n'existe pas"
		return 1;
	fi


	#Changement réel d'icone
	gvfs-set-attribute "${sourceToChange}" metadata::custom-icon "file://${iconPath}" 

Si vous pouviez m'aider à placer le gio suggéré dans tout ça, ça m'aiderait bien car j'ai une culture marketing, pas du tout développeur et ce script m'évite un travail fastidieux.
Un grand merci car moi je sais pas faire, c'est un peu du Chinois

Dernière modification par winux (Le 07/04/2018, à 10:27)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#2 Le 07/04/2018, à 07:40

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

je pense que c'est la dernière ligne de functions.sh

wimux a écrit :
gvfs-set-attribute "${sourceToChange}" metadata::custom-icon "file://${iconPath}" 

gnome virtual file system = gvfs
et gio(en)

Dernière modification par youssoufB (Le 07/04/2018, à 07:41)


mail et moteur de recherche: Lilo

Hors ligne

#3 Le 07/04/2018, à 08:09

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

merci youssoufB, c'est une très bonne piste, on sait au moins ce qu'il faut changer, mais comme je l'ai dit je ne suis pas développeur, alors comment transformer ce gvfs-set-attribute en gio-set-attribute.

J'ai essayé bestialement de remplacer l'un par l'autre, mais comme je m'en doutais ça n'a pas marché.
Des meilleurs que moi (c'est facile à trouver sur ce forum !) peuvent faire mieux ??
Ca me rendrait un grand service ... pour le futur, merci


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#4 Le 07/04/2018, à 08:16

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

je sais pas ce que fait ton script est ce que tu peu me dire ce que tu devrais faire si tu devais le faire à la main.
bon j'ai fait un :

man gvfs-set-attribue

En fait ton script fait que cette commande:

gvfs-set-attribute "/media/DATA-GG/0-ESSAI_ICONES_AUTO/trial" metadata::custom-icon "file:///media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png"

il verfie simplement si les fichier /media/DATA-GG/0-ESSAI_ICONES_AUTO/trial et DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png existe. s'il n’existe pas il affiche le nom du fichier en bleu dans un message d'erreur.
et il envoie à la fin le message que tu connaît.

Dernière modification par youssoufB (Le 07/04/2018, à 08:44)


mail et moteur de recherche: Lilo

Hors ligne

#5 Le 07/04/2018, à 08:37

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Ah ça c'est dans mes cordes big_smile.

Pour retrouver d'un seul coup d’œil tous mes dossiers et sous-dossiers, je leur affecte à chacun une icône personnalisée.

Par exemple si je veux affecter une icône particulière au dossier "essai", je ferai

clic droit dessus > propriétés
clic sur l'icône dossier en haut à gauche de la nouvelle fenêtre
navigation jusqu'à ma base d’icônes
et enfin double clic sur l'icône choisie. 

voici le chemin de ma base d'icônes :
media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux

Et ce multiplié par la centaine de dossiers que je veux personnaliser.

Tu comprends donc pourquoi je suis si attaché à ce script ou son équivalent en gio roll
Si tu peux me dépatouiller ça sur un seul dossier, je me débrouillerai pour extrapoler ensuite à l'ensemble
MERCI

Dernière modification par winux (Le 07/04/2018, à 08:38)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#6 Le 07/04/2018, à 08:48

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

personnellement j'ai pas gio j'ai regardé sur mon ubuntu untity j'ai pas trouver non plus.
ça à l'air d’être pour les bureau gnome.
il me faudrait:

man gio

si ça ne donne rien chez toi non plus essaie un:

gio

il devrais te dire que la commande existe pas mais peut être qu'il te proposerons un paquet à installer.

Dernière modification par youssoufB (Le 07/04/2018, à 08:51)


mail et moteur de recherche: Lilo

Hors ligne

#7 Le 07/04/2018, à 09:07

kholo

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

salut,
peut être une erreur de copier coller mais...
il manque une parenthèse à la fin de fonction.sh : }
...

Hors ligne

#8 Le 07/04/2018, à 09:34

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

youssoufB a écrit :

personnellement j'ai pas gio j'ai regardé sur mon ubuntu untity j'ai pas trouver non plus.
ça à l'air d’être pour les bureau gnome.
il me faudrait:

man gio

effectivement je suis sous 18.04 qui est en Gnome puisque Unity est désormais abandonné.
voici le résultat de man gio que je viens de taper

GIO(1)                           User Commands                          GIO(1)

NAME
       gio - GIO commandline tool

SYNOPSIS
       gio help [COMMAND]
       gio version
       gio cat LOCATION...
       gio copy [OPTION...] SOURCE... DESTINATION
       gio info [OPTION...] LOCATION...
       gio list [OPTION...] [LOCATION...]
       gio mime MIMETYPE [HANDLER]
       gio mkdir [OPTION...] LOCATION...
       gio monitor [OPTION...] [LOCATION...]
       gio mount [OPTION...] [LOCATION...]
       gio move [OPTION...] SOURCE... DESTINATION
       gio open LOCATION...
       gio rename LOCATION NAME
       gio remove [OPTION...] LOCATION...
       gio save [OPTION...] DESTINATION
       gio set [OPTION...] LOCATION ATTRIBUTE VALUE...
       gio trash [OPTION...] [LOCATION...]
       gio tree [OPTION...] [LOCATION...]

DESCRIPTION
       gio is a utility that makes many of the GIO features available from the
       commandline. In doing so, it provides commands that are similar to
       traditional utilities, but let you use GIO locations instead of local
       files: for example you can use something like
       smb://server/resource/file.txt as location.

COMMANDS
       help [COMMAND]
           Displays a short synopsis of the available commands or provides
           detailed help on a specific command.

       version
           Prints the GLib version to which gio belongs.

       cat LOCATION...
           Concatenates the given files and prints them to the standard
           output.

           The cat command works just like the traditional cat utility.

           Note: just pipe through cat if you need its formatting options like
           -n, -T or other.

       copy [OPTION...] SOURCE... DESTINATION
           Copies one or more files from SOURCE to DESTINATION. If more than
           one source is specified, the destination must be a directory.
  The copy command is similar to the traditional cp utility.

           Options
               -T, --no-target-directory
                   Don't copy into DESTINATION even if it is a directory.

               -p, --progress
                   Show progress.

               -i, --interactive
                   Prompt for confirmation before overwriting files.

               --preserve
                   Preserve all attributes of copied files.

               -b, --backup
                   Create backups of existing destination files.

               -P, --no-dereference
                   Never follow symbolic links.

       info [OPTION...] LOCATION...
           Shows information about the given locations.

           The info command is similar to the traditional ls utility.

           Options
               -w, --query-writable
                   List writable attributes.

               -f, --filesystem
                   Show information about the filesystem that the given
                   locations reside on.

               -a --attributes=ATTRIBUTES
                   The attributes to get.

                   Attributes can be specified with their GIO name, e.g.
                   standard::icon, or just by namespace, e.g. unix, or by '*',
                   which matches all attributes. Several attributes or groups
                   of attributes can be specified, separated by comma.

                   By default, all attributes are listed.

               -n, --nofollow-symlinks
                   Don't follow symbolic links.
list [OPTION...] [LOCATION...]
           Lists the contents of the given locations. If no location is given,
           the contents of the current directory are shown.

           The list command is similar to the traditional ls utility.

           Options
               -a --attributes=ATTRIBUTES
                   The attributes to get.

                   Attributes can be specified with their GIO name, e.g.
                   standard::icon, or just by namespace, e.g. unix, or by '*',
                   which matches all attributes. Several attributes or groups
                   of attributes can be specified, separated by comma.

                   By default, all attributes are listed.

               -h, --hidden
                   Show hidden files.

               -l, --long
                   Use a long listing format.

               -n, --nofollow-symlinks
                   Don't follow symbolic links.

               -u, --print-uris
                   Print full URIs.

       mime MIMETYPE [HANDLER]
           If no handler is given, the mime command lists the registered and
           recommended applications for the mimetype. If a handler is given,
           it is set as the default handler for the mimetype.

           Handlers must be specified by their desktop file name, including
           the extension. Example: org.gnome.gedit.desktop.

       mkdir [OPTION...] LOCATION...
           Creates directories.

           The mkdir command is similar to the traditional mkdir utility.

           Options
               -p, --parent
                   Create parent directories when necessary.
 monitor [OPTION...] [LOCATION...]
           Monitors files or directories for changes, such as creation
           deletion, content and attribute changes, and mount and unmount
           operations affecting the monitored locations.

           The monitor command uses the GIO file monitoring APIs to do its
           job. GIO has different implementations for different platforms. The
           most common implementation on Linux uses inotify.

           Options
               -d, --dir=LOCATION
                   Monitor the given location as a directory. Normally, the
                   file type is used to determine whether to monitor a file or
                   directory.

               -f, --file=LOCATION
                   Monitor the given location as a file. Normally, the file
                   type is used to determine whether to monitor a file or
                   directory.

               -D, --direct=LOCATION
                   Monitor the file directly. This allows to capture changes
                   made via hardlinks.

               -s, --silent=LOCATION
                   Monitor the file directly, but don't report changes.

               -n, --no-moves
                   Report moves and renames as simple deleted/created events.

               -m, --mounts
                   Watch for mount events.

       mount [OPTION...] [LOCATION...]
           Provides commandline access to various aspects of GIOs mounting
           functionality.

           Mounting refers to the traditional concept of arranging multiple
           file systems and devices in a single tree, rooted at /. Classical
           mounting happens in the kernel and is controlle by the mount
           utility. GIO expands this concept by introducing mount daemons that
           can make file systems available to GIO applications without kernel
           involvement.

           GIO mounts can require authentication, and the mount command may
           ask for user IDs, passwords, and so on, when required.

           Options
               -m, --mountable
                   Mount as mountable.

               -d, --device=DEVICE
               -u, --unmount
                   Unmount the location.

               -e, --eject
                   Eject the location.

               -s, --unmount-scheme=SCHEME
                   Unmount all mounts with the given scheme.

               -f, --force
                   Ignore outstanding file operations when unmounting or
                   ejecting.

               -a, --anonymous
                   Use an anonymous user when authenticating.

               -l, --list
                   List all GIO mounts.

               -o, --monitor
                   Monitor mount-related events.

               -i, --detail
                   Show extra information.

       move [OPTION...] SOURCE... DESTINATION
           Moves one or more files from SOURCE to DESTINATION. If more than
           one source is specified, the destination must be a directory.

           The move command is similar to the traditional mv utility.

       open LOCATION...
           Opens files with the default application that is registered to
           handle files of this type.

           GIO obtains this information from the shared-mime-info database,
           with per-user overrides stored in
           $XDG_DATA_HOME/applications/mimeapps.list.

           The mime command can be used to change the default handler for a
           mimetype.

       rename LOCATION NAME
           Renames a file.
           The rename command is similar to the traditional rename utility.

       remove [OPTION...] LOCATION...
           Deletes each given file.

           This command removes files irreversibly. If you want a reversible
           way to remove files, see the trash command.

           Note that not all URI schemes that are supported by GIO may allow
           deletion of files.

           The remove command is similar to the traditional rm utility.

           Options
               -f, --force
                   Ignore non-existent and non-deletable files.

       save [OPTION...] DESTINATION
           Reads from standard input and saves the data to the given location.

           This is similar to just redirecting output to a file using
           traditional shell syntax, but the save command allows saving to
           location that GIO can write to.

           Options
               -b, --backup
                   Backup existing destination files.

               -c, --create
                   Only create the destination if it doesn't exist yet.

               -a, --append
                   Append to the end of the file.

               -p, --private
                   When creating, restrict access to the current user.

               -u, --unlink
                   When replacing, replace as if the destination did not
                   exist.

               -v, --print-etag
                   Print the new etag in the end.

               -e, --etag=ETAG
                   The etag of the file that is overwritten.
 set LOCATION ATTRIBUTE VALUE...
           Allows to set a file attribute on a file.

           File attributes can be specified with their GIO name, e.g
           standard::icon. Note that not all GIO file attributes are writable.
           Use the --query-writable option of the info command to list
           writable file attributes.

           If the TYPE is unset, VALUE does not have to be specified. If the
           type is stringv, multiple values can be given.

           Options
               -t, --type=TYPE
                   Specifies the type of the attribute. Supported types are
                   string, stringv, bytestring, boolean, uint32, int32,
                   uint64, int64 and unset.

                   If the type is not specified, string is assumed.

               -n, --nofollow-symlinks
                   Don't follow symbolic links.

       trash [OPTION...] [LOCATION...]
           Sends files or directories to the "Trashcan". This can be a
           different folder depending on where the file is located, and not
           all file systems support this concept. In the common case that the
           file lives inside a users home directory, the trash folder is
           $XDG_DATA_HOME/Trash.

           Note that moving files to the trash does not free up space on the
           file system until the "Trashcan" is emptied. If you are interested
           in deleting a file irreversibly, see the remove command.

           Inspecting and emptying the "Trashcan" is normally supported by
           graphical file managers such as nautilus, but you can also see the
           trash with the command: gio list trash://.

           Options
               -f, --force
                   Ignore non-existent and non-deletable files.

               --empty
                   Empty the trash.
 tree [OPTION...] [LOCATION...]
           Lists the contents of the given locations recursively, in a
           tree-like format. If no location is given, it defaults to the
           current directory.

           The tree command is similar to the traditional tree utility.

           Options
               -h, --hidden
                   Show hidden files.

               -h, --hidden
                   Show hidden files.

               -l, --follow-symlinks
                   Follow symbolic links.

EXIT STATUS
       On success 0 is returned, a non-zero failure code otherwise.

SEE ALSO
       cat(1), cp(1), ls(1), mkdir(1), mv(1), rm(1), tree(1).

 

http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#9 Le 07/04/2018, à 09:42

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

ok ben c'est facile du coup:

winux a écrit :

gio set [OPTION...] LOCATION ATTRIBUTE VALUE...

et

SYNOPSIS
       gvfs-set-attribute [OPTION...] {LOCATION} {ATTRIBUTE} {VALUE...}

si tu veux vraiment pas t’embêter tu change `gvfs-set-attribute` par  `gio set` dans ton script:
pour faire simple tu copie la ligne à changer et tu met un # devant l'ancienne ligne elle resteras en commentaire comme ça.
tu fait le changement et tu sauvegarde.
tu teste le fichier.

j'édite pour te donné un trucs encore plus simple à testé si tu veux.


mail et moteur de recherche: Lilo

Hors ligne

#10 Le 07/04/2018, à 10:25

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Alors là  je tombe sur le c... youssoufB
tu me règles ça en 2 coups de cuillère à pot, chapeau je suis impressionné, mais en même temps c'est normal que je le sois puisque je ne connais rien à la programmation, mais néanmoins tu as vu immédiatement ce qu'il fallait faire.

2 infos :

1-voici le même message qu'avant mais sans l'erreur cette fois, ça fait plaisir

gerard@PC4:~$ '/media/DATA-GG/0-ESSAI_ICONES_AUTO/scripts/scripts/Main.sh' 
SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK
 

j'ai testé en changeant d'icône et ça a bien suivi

2- tu avais raison, c'est lié à Ubuntu Gnome car je suis passé via mon triple boot sur 16.04 et je n'avais pas cette fois le message d'erreur en gardant la version qui bugge sur 18.04

Affaire définitivement réglée, me voici tranquille pour la future 20.04
UN GRAND GRAND MERCI youssoufB
passe un très bon WE, tu l'as bien mérité smile

Dernière modification par winux (Le 08/04/2018, à 16:07)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#11 Le 07/04/2018, à 10:29

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

youssoufB a écrit :

j'édite pour te donné un trucs encore plus simple à testé si tu veux.

Oui volontiers, je suis toujours prêt à apprendre des trucs nouveaux et surtout plus simples !!
Merci je testerai


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#12 Le 07/04/2018, à 11:39

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

bon on vas débriefer au fur et à mesure:
toute les ligne avec # devant c'est des commentaires ça sert à rien dans le code comme les lignes vide. c'est simplement pour nous humain nous rappeler ce qui à été fait ou donnez des indication à d'autre.
seul la première ligne #!bin/bash est importantes car elle indique au système quelle programme doit lire le script (l'interprété).

bon on as 4 constantes (fichier constantes.sh):

BEGIN_FORMAT="\e[1;34m"
END_FORMAT="\e[0m"
DATA_PATH="/media/DATA-GG/0-ESSAI_ICONES_AUTO"
ICON_PATH="/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux" 

tout le reste c'est des commentaire et ligne d'espace.
BEGIN_FORMAT -> pour passer en bleu
END_FORMAT -> pour revenir au format par default.
ces deux constantes sont la pour changer la couleur sur la ligne te texte de ton terminal.
pour comprendre tape :

echo -e "je passe en\e[1;34m bleu puis retrourne avec la police par\e[0m defaut"

voila simple c'est utile le path dans les messages d'erreurs.
les deux autres c'est les répertoire qu'on vas manipulé mais tu dois déjà les connaître.

voila un fichier complet expliqué.


mail et moteur de recherche: Lilo

Hors ligne

#13 Le 07/04/2018, à 12:35

Toobuntu

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Bonjour

Avec ce script les dossiers affichent les icônes personnalisées dans les 3 modes d'affichage liste , icones ....  ?

#14 Le 07/04/2018, à 12:47

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

youssoufB a écrit :

voila un fichier complet expliqué.

Merci youssoufB c'est très sympa de ta part, j’apprécie à sa juste valeur.
Allez je te lâche pour que tu puisses profiter du soleil, ce que je vais faire, après ces moments studieux cool

Dernière modification par winux (Le 07/04/2018, à 12:59)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#15 Le 07/04/2018, à 12:56

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Toobuntu a écrit :

Bonjour

Avec ce script les dossiers affichent les icônes personnalisées dans les 3 modes d'affichage liste , icones ....  ?

Salut
YESSSSS
Enfin Icônes et listes, les 2 seuls modes que je sache faire avec 18.04

Icônes

mmqvrk.png

Listes

27wwti8.png

Dernière modification par winux (Le 07/04/2018, à 13:02)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#16 Le 07/04/2018, à 13:48

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

pour ce qui est du main.sh

 
SCRIPT_PATH=$(dirname "$0");
source "${SCRIPT_PATH}/constantes.sh"
source "${SCRIPT_PATH}/functions.sh"

change_icone "${DATA_PATH}/trial"  "${ICON_PATH}/Micronet.png"

echo "SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK"  

les trois première lignes servent simplement à copier les fichers constantes et fonctions dans ce script.
si tu fait un copier collé des script constantes.sh et functions.sh tu peu supprimer ces trois ligne et tu n’auras au final qu’un script avec tout dedans vue la grosseur du script c'est pas plus mal. il ne faut pas copier la 1er ligne #!bin/bash ça ferrais triplons et respecté l'ordre car tu te sert des constantes dans fucntions.sh.

ensuite:
tu appelle la fonction change_icone définie dans fonction.sh on y reviendras.
tu te sert de tes constantes DATA_PATH et ICON_PATH qui sont en même temps complété.
ici pour être honète j'aurrais preféré voir directement

change_icone "${DATA_PATH}"  "${ICON_PATH}"

avec dans constantes.sh

DATA_PATH="/media/DATA-GG/0-ESSAI_ICONES_AUTO/trial"
ICON_PATH="/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png" 

plutôt que:

DATA_PATH="/media/DATA-GG/0-ESSAI_ICONES_AUTO"
ICON_PATH="/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux" 

enfin:
tu affiche (echo) le message "SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK" .
tu peu tapez la commande directement dans le terminal.

echo "SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK"

mais la aucun programme avant c'est juste un message que tu affiche. Tu devrais même pouvoir l’écrire en bleu maintenant!


mail et moteur de recherche: Lilo

Hors ligne

#17 Le 07/04/2018, à 14:10

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

function.sh 1/2

function doesFileExist(){
	fileToTest=$1
	# Le répertoire ou le fichier existe t'il
	if [[ -d $fileToTest || -f $fileToTest ]] ; then
		return 0;
	else
		return 1;
	fi	
}

on as un fonction qu'on appelle doesFileExist() qui vas executé le code qui lui est assigné entre { et  }. elle vérifié si le paramètre est un ficher ou un dossier et retourn 0 sinon elle retourne 1.


mail et moteur de recherche: Lilo

Hors ligne

#18 Le 07/04/2018, à 14:28

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

function.sh 2/2

function change_icone(){
	sourceToChange=$1
	iconPath=$2	
	doesFileExist "$sourceToChange"
	if [[ $? == 1 ]]; then
		echo -e "Le fichier SOURCE ${BEGIN_FORMAT} ${sourceToChange} ${END_FORMAT} n'existe pas"
		return 1;
	fi
	doesFileExist "$iconPath"
	if [[  $? == 1 ]]; then
		echo -e "Le fichier ICONE ${BEGIN_FORMAT}  ${iconPath}  ${END_FORMAT} n'existe pas"
		return 1;
	fi

	#ligne suivante est déprécié 
        #gvfs-set-attribute "${sourceToChange}" metadata::custom-icon "file://${iconPath}" 
        gio set "${sourceToChange}" metadata::custom-icon "file://${iconPath}"
}

finalement le code intérésant:
le variable:
sourceToChange = le premier paramètre = "/media/DATA-GG/0-ESSAI_ICONES_AUTO/trial"
iconPath = le second paramètre = "/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png"

on vérifie si /media/DATA-GG/0-ESSAI_ICONES_AUTO/trial avec la fonction doesFileExist:
s'il n'existe pas la fonction retourne 1 puis
    on affiche le message tu peu remarqué l'utilisation du bleu
    et on sort de le fonction change_icon du coup on se retrouve dans main.
puis la même chose pour /media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png

finalement si les chemein de repertoire et fichier sont correcte on effectue ta commande
gio set "/media/DATA-GG/0-ESSAI_ICONES_AUTO/trial" metadata::custom-icon "file:///media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png"

si tu sait que tes chemin sont bon tu pourrais ecrire la commande si dessus  cela aurrais le même resultat que tes trois fichiers.

Dernière modification par youssoufB (Le 07/04/2018, à 14:32)


mail et moteur de recherche: Lilo

Hors ligne

#19 Le 07/04/2018, à 15:19

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

bref tout ça pour dire que tu devrais pouvoir sans gros problème écrire ton script comme ça:

#!/bin/bash
# un script pour personnalisé mes icones
location="/media/DATA-GG/0-ESSAI_ICONES_AUTO/trial"
value="file:///media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux/Micronet.png" 

#avant 18.04
# gvfs-set-attribute $location metadata::custom-icon $value

#depuis 18.04
gio set  $location metadata::custom-icon $value

je l'ai écrit vite fais à la main pour vérifié essaye avec un répertoire qui n'existe pas je pense qu'il devrais y avoir un message pour te dire que ce répertoire est invalide. c'est plus claire et au moin tu sais ce que ça fait pour l'entretiens c'est plus facile.

si tu veu tu peu rajouter des note dans le fichier ou tu veu comme ça:

#-------------------------------------------------------------
# ici je met une note
# le cadre n'est pas obligatoire mais ça fait jolie
#------------------------------------------------------------

j'ai une culture développeur, pas du tout  marketing sinon ça t’aurais coûté un bras.
Et puis en plus tu as appris le Chinois.

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


mail et moteur de recherche: Lilo

Hors ligne

#20 Le 07/04/2018, à 15:40

erresse

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

winux a écrit :

Le script principal est main.sh
je l'ai ultra simplifié pour qu'il ne reste qu'un seul dossier à personnaliser.
J'ai remplacé DATA-GG par DATA-GG/ESSAI_ICONES_AUTO

Dans son message #1, winux nous déclare avoir modifié le script original pour ne traiter qu'un seul répertoire, ce qui ne justifie pas l'utilisation d'un script pour changer une icône sur un répertoire, évidemment...
Je pense que l'intérêt du script est de faire automatiquement cette opération sur tous les répertoires et, dans ce cas, le script se justifie pleinement !
Pour mieux comprendre le fonctionnement du script original, winux peut-il détailler de quelle manière il retrouve les bonnes icônes selon les répertoires considérés ?
Je suppose que les icônes ont un nom correspondant à celui du répertoire afin d'apparier l'image et l'objet.
Genre : répertoire "Documents" <==> icône personnalisé "Documents" dans la bibliothèque d'images.


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 07/04/2018, à 18:23

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Merci pour tout youssoufB je vais me lancer en reprenant tout ça calmement pas à pas, en essayant d’améliorer le script du copain. Il y aura un peu de toi dedans !!

j'ai une culture développeur, pas du tout  marketing sinon ça t’aurais coûté un bras.
Et puis en plus tu as appris le Chinois.

Alors on se complète. Je donne des cours Ubuntu en tant que bénévole (un peu comme toi !!) à des niveaux intermédiaires (évidemment pas des développeurs) et ça passe bien en Power Point, ils progressent, mais avec toi c'est un gros cran au-dessus !!

Oui oui le Chinois va aller mieux, encore merci pour tout


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#22 Le 07/04/2018, à 19:13

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

A mon tour de filer un coup de main, dans la limite de mes possibilités !

erresse a écrit :

Dans son message #1, winux nous déclare avoir modifié le script original pour ne traiter qu'un seul répertoire, ce qui ne justifie pas l'utilisation d'un script pour changer une icône sur un répertoire, évidemment...

Bien sûr que non, c'est juste pour, sur une seule entité, faire les essais sans polluer ma base principale.
Le script est tout à fait justifié dans la mesure où j'ai une centaine de dossiers à personnaliser par des icônes qui indiquent tout de suite de quoi il retourne.

Avec ce script tous les dossiers sont métamorphosés visuellement en l'espace de quelques secondes, à la papatte ce n'est même pas envisageable car il faut le refaire à chaque nouvelle installe d'Ubuntu, c'est-à-dire tous les 2 ans pour les LTS.

Je pense que l'intérêt du script est de faire automatiquement cette opération sur tous les répertoires et, dans ce cas, le script se justifie pleinement !

c'est exactement ça

Pour mieux comprendre le fonctionnement du script original, winux peut-il détailler de quelle manière il retrouve les bonnes icônes selon les répertoires considérés ?

Je te fais un extrait du main pour que voies la philosophie, sachant que :

comme je l'ai déjà dit la base d'icônes se trouve dans le dossier
/media/DATA-GG/5-ICONES Win-Lin SOURCE/Linux

et que j'ai déjà détaillé les scripts au post #1
constante.sh
functions.sh, cette dernière ayant subi la modif de notre développeur chef !
#!/bin/bash

#Récupère le chemin de lancement du script Main.sh
SCRIPT_PATH=$(dirname "$0");

#Inclusion de fichier
source "${SCRIPT_PATH}/constantes.sh"
source "${SCRIPT_PATH}/functions.sh"

# Mettre ici l'ensemble des commandes

# SOUS /DATA-GG
# Icônes sous "DATA-GG"
change_icone "${DATA_PATH}/1-Perso"  "${ICON_PATH}/GeGe1.jpg"
change_icone "${DATA_PATH}/2-Photos GG"  "${ICON_PATH}/Photos.png"
change_icone "${DATA_PATH}/3-Videos GG"  "${ICON_PATH}/Videos.png"
change_icone "${DATA_PATH}/4-Musique GG"  "${ICON_PATH}/Musique.png"
change_icone "${DATA_PATH}/5-ICONES Win-Lin SOURCE"  "${ICON_PATH}/Icônes win-lin.png"
change_icone "${DATA_PATH}/6-Tools"  "${ICON_PATH}/Tools.png"
change_icone "${DATA_PATH}/8-Alcatel archives GG"  "${ICON_PATH}/Alcatel.png"
change_icone "${DATA_PATH}/Mes Documents"  "${ICON_PATH}/Mes Documents.png"

# Icônes sous "DATA-GG/2-Photos GG"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis"   "${ICON_PATH}/1-FAMILLE Amis.jpg"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis/1-Années"  "${ICON_PATH}/calendrier.png"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis/2-Amis Famille"  "${ICON_PATH}/Amis.jpg"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis/3-Gerard"  "${ICON_PATH}/GeGe2.jpg"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis/2-Amis Famille/Amis"  "${ICON_PATH}/Amis.jpg"
change_icone "${DATA_PATH}/2-Photos GG/1-Années Famille Amis/2-Amis Famille/Famille"  "${ICON_PATH}/1-FAMILLE Amis.jpg"
change_icone "${DATA_PATH}/2-Photos GG/2-Axou & Roxane"  "${ICON_PATH}/Axou et Roxane-2.jpg"
change_icone "${DATA_PATH}/2-Photos GG/2-Axou & Roxane/Axou & Roxane en famille"  "${ICON_PATH}/Axou et Roxane-1.jpg"
change_icone "${DATA_PATH}/2-Photos GG/2-Axou & Roxane/Axou seul avant Roxane"  "${ICON_PATH}/Axou.png"
change_icone "${DATA_PATH}/2-Photos GG/3-Pat Nat"  "${ICON_PATH}/Pat Nat.png"
change_icone "${DATA_PATH}/2-Photos GG/Grands voyages à l'étranger"  "${ICON_PATH}/Voyages.png" 

echo "SI AUCUN MESSAGE D'ERREUR EN BLEU : TOUT EST OK"

Dernière modification par winux (Le 07/04/2018, à 19:17)


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#23 Le 08/04/2018, à 08:00

erresse

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Ha, d'accord, tu peux donc avoir plusieurs fois la même icône pour des répertoires/sous-répertoires différents...
Donc tu tiens une liste exhaustive de tous tes répertoires dans ce script, avec pour chacun l'image équivalente à assigner. OK.
Merci de tes éclaircissements, j'avais pour ma part pensé que chaque icône était unique pour un répertoire donné et qu'elle portait le même nom que le répertoire, ce qui aurait permis de les apparier sans devoir lister chaque objet.


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

#24 Le 08/04/2018, à 08:39

winux

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

Exact, tu fais les combinaisons que tu veux : un dossier <--> une icône sans limitation, c'est très souple.

Je peux te dire que c'est super, d'un seul coup d’œil je retrouve immédiatement chaque dossier et ses sous-dossiers.
En fait c'est un gros boulot au départ (mais tu ne fais pas tout d'un coup, tu commences par les plus importants et tu complètes au fur et à mesure), mais une fois que tu as établi ta base de données, tu n'as plus qu'à gérer les modifs, d'autant que les messages d'erreur t'aident bien
   - que ce soit le fichier manquant OU
   - l'icône manquante

Et tu as confirmation que tout va bien si aucun message en bleu ne s'affiche
quand par exemple tu supprimes un dossier et que tu oublies de mettre à jour ta base de données, c'est très facile à retrouver, il te dit où est le manquant, il suffit alors de le supprimer de la base.

A nouveau je ne suis qu'utilisateur, tout le mérite revient à mon copain parti à l'étranger, mais youssefB l'a bien remplacé pour régler le petit Pb qui m'était tombé dessus.

Pour YousssefB, j'ai fait l'essai avec la 16.04, pas de Pb, rien à changer, c'est une Unity
les ennuis ont commencé avec la 18.04 qui elle est une Gnome et pour laquelle il faut utiliser gio set.

Voilà une aventure qui se termine bien avec beaucoup de choses apprises au passage.
Bon WE ensoleillé et peut-être aussi bon Marathon de Paris, mais ça c'est une autre affaire !


http://i3.tinypic.com/4g8nio8.png
Livebox fibre - 980 Mbps mesurés -  Triple  boot : Ub 20.04 / Mint 20.2 / W10 - Ecran : Samsung 22" -
CM : Gigabyte P67A UD3 B3 - CPU : Intel Quad Core i5 3.3 GHz - GPU : nVidia Gigabyte N430
RAM : 8 Go DDR3 - SSD de 240 Go - 2 HD de 1 To chacun

Hors ligne

#25 Le 08/04/2018, à 10:26

youssoufB

Re : [RÉSOLU] Génération auto des icônes personnalisées de mes dossiers

le problème serrais si tu essais de faire tourné ton script modifier sur une 16.04.
chez moi gio n'est pas installer du coup il pourrais plus s’exécuter et il faudrait repasser avec la commande gvfs-set-attribute.
Sinon vue comment tu te sert du programme c'est bien rien à changer ou ce serrais pinailler. ton amis à bien travailler.


mail et moteur de recherche: Lilo

Hors ligne