このスクリプトをキーボードショートカットに割り当てて、Dockyの自動非表示をすばやく切り替えることができるようにします。
Autohideを再びオフにする2番目のスクリプトを作成し、それに別のキーボードショートカットを割り当てます。
Dockyを閉じて再起動する理由は、Dockyが構成の設定を更新しないためです。 Sudo
コマンドを作成しましたが、機能しないと思われます。
したい:
Sudo
コマンドなしで実行します#!/bin/bash
gconftool-2 -t string -s /apps/docky-2/Docky/Interface/DockPreferences/Dock1/Autohide "Intellihide" &
Sudo killall dockey &
docky
さて、まず第一に、あなたは間違ったプログラムを殺しています。スクリプトにはSudo killall dockey &
がありますが、docky
ではなくdockey
を強制終了したいとします。とはいえ、Sudo
の理由はまったくありません。docky
はユーザーによって開始されているため、特別な権限なしで強制終了できます。また、それをバックグラウンドに送信する必要もありません(それが&
が行うことです)。
スクリプトが機能しない理由を説明していませんが、スクリプトを実行しても何も起こらないことが原因であると考えられます(質問するときは、症状を常に説明してください)。これは、Sudo ...
コマンドを&
を使用してバックグラウンドに送信しているためです。 Sudo
はパスワードを必要とします:
$ Sudo ls
[Sudo] password for terdon:
したがって、実行すると、パスワードを要求するプロンプトが表示されます。バックグラウンドで実行しているため、プロンプトとスクリプトがスタックし、応答を待つことはありません。
私はdocky
を使用していません。再起動せずにこれを実行できるかどうかはわかりませんが、再起動が最も簡単なオプションのようです。スクリプトを次のように変更するだけです。
#!/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
&&
はAND
を意味します。つまり、「前のコマンドが成功した場合にのみ次のコマンドを実行する」ということです。 ||
(OR
)は反対です。「前のコマンドが失敗した場合は次のコマンドを実行します。したがって、上記のスクリプトはまずgconf
の現在の状態をAutohide
に照会します。grep
は、None
と一致する場合にのみ成功しますの場合は、Intellihide
に設定され、そうでない場合は、None
に設定されます。
&&
は&
と同じではないことに注意してください。 &
は、上記のようにコマンドをバックグラウンドに送信します。wantが何かをバックグラウンドに送信しない限り、コマンドは必要ありません。さまざまなシェル演算子の詳細については、 ここ を参照してください。