Je vais affecter ce script à un raccourci clavier afin de pouvoir basculer rapidement Autohide pour Docky.
Je vais créer un deuxième script qui désactive à nouveau Autohide et y affecter un raccourci clavier différent.
La raison de la fermeture et de la relance de Docky est que Docky ne rafraîchit pas les paramètres de configuration autrement. J'ai écrit une commande Sudo
et je soupçonne que cela ne fonctionnera pas.
Je veux:
Sudo
#!/bin/bash
gconftool-2 -t string -s /apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide "Intellihide" &
Sudo killall dockey &
docky
Eh bien, tout d'abord, vous tuez le mauvais programme. Votre script a Sudo killall dockey &
mais vous voulez tuer docky
, pas dockey
. Cela dit, il n'y a absolument aucune raison pour que Sudo
, docky
ait été démarré par votre utilisateur, vous pouvez donc le tuer sans privilèges spéciaux. Vous n'avez pas non plus besoin de l'envoyer en arrière-plan (c'est ce que le &
Est-ce que).
Vous n'avez pas expliqué pourquoi votre script ne fonctionne pas mais ce qui se passe probablement, c'est que vous l'exécutez et que vous ne voyez rien se produire (veuillez toujours expliquer quels sont les symptômes lorsque vous posez des questions). C'est parce que vous envoyez le Sudo ...
commande à l'arrière-plan avec &
. Sudo
attend un mot de passe:
$ Sudo ls
[Sudo] password for terdon:
Ainsi, lorsque vous l'exécutez, il fournira une invite demandant un mot de passe. Puisque vous l'exécutez en arrière-plan, vous ne verrez jamais cette invite et le script sera bloqué, attendant que vous répondiez.
Je n'utilise pas docky
et je ne sais pas si vous pouvez le faire sans le redémarrer mais le redémarrage semble être l'option la plus simple. Modifiez simplement votre script en:
#!/bin/bash
gconftool-2 --get /apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide | grep -q None &&
gconftool-2 -t string -s /apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide "Intellihide" ||
gconftool-2 -t string -s /apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide "None"
killall docky && docky
Le &&
signifie AND
, en d'autres termes "exécutez la commande suivante uniquement si la précédente a réussi". Le ||
(OR
) est l'inverse, "exécutez la commande suivante si la précédente a échoué. Ainsi, le script ci-dessus demandera d'abord à gconf
l'état actuel de Autohide
. Le grep
ne réussira que s'il correspond à None
. Si c'est le cas, il est défini sur Intellihide
et sinon, il est défini sur None
Notez que &&
n'est pas la même chose que &
. Le &
envoie des commandes à l'arrière-plan comme décrit ci-dessus et n'est pas nécessaire sauf si vous voulez envoyer quelque chose à l'arrière-plan. Pour plus de détails sur les différents opérateurs Shell, voir ici .