回答:
Ask Ubuntuの閲覧中に見つかった次のスクリプトをインストールするとします。
#!/bin/bash
## Sample Script 0.1
## Dependencies: notify-osd
notify-send "Sample nautilus script" "You Selected $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"
依存関係
最初に気付くのは、多くのスクリプトがすぐに実行できるわけではないということです。場合によっては、インストールされているかどうかに関係なく、他のパッケージに依存します。この場合、スクリプトはに依存しnotify-osd
ます。これはデフォルトでUbuntuに付属しています。
他のディストリビューションでは、これが当てはまらない場合があり、スクリプトを使用する前に依存関係をインストールする必要があります。依存関係が公式リポジトリの一部である場合、次のようにして簡単にインストールできますapt-get
。
sudo apt-get install notify-osd
スクリプトを設定する
すべての依存関係が満たされたので、先に進んでスクリプトをシステムにコピーします。私たちが最初に私たちのscriptsフォルダに新しい文書を作成するそうするよう~/.gnome2/nautilus-scripts
または ~/.local/share/nautilus/scripts/
Ubuntuの13.04にして上に。これは隠しフォルダーです。それに向かうには、ファイルマネージャを開いて、CTRL+ Lを押し、ディレクトリパスをロケーションバーに貼り付ける必要があります。
次に、我々は右クリックして選択して、新しい空のドキュメントを作成する新しい文書作成 → 空のドキュメントを。好きな名前を付けますが、注意してください。選択するタイトルは、スクリプトエントリが後でnautilusコンテキストメニューに表示される方法です。したがって、ドキュメントのわかりやすい名前を選択することをお勧めします。
選択したテキストエディタで新しいドキュメントを開き、上記のコードボックスの内容をコピーして貼り付けます。保存して、テキストエディターを終了します。
実行可能にする
この時点で、スクリプトは正しく設定されていますが、システムはまだスクリプトを実行可能ファイルとして認識していないため、動作しません。実行可能にするには、ファイルを右クリックし、[ プロパティ] →[ 権限 ]に進みます。[プログラムとして実行を許可する]チェックボックスをオンにして、ダイアログを閉じます。
使用法
これで、nautilusのコンテキストメニューからスクリプトにアクセスできるようになります。選択したファイルを右クリックして、[ スクリプト] -> [ スクリプト名](ここでは[ サンプルスクリプト])に移動します。エントリをクリックして、選択したファイルでスクリプトを実行します。
スクリプトへのキーボードショートカットの割り当て
Nautilusのキーボードアクセラレータファイルを編集することにより、Nautilusスクリプトのキーボードショートカットを割り当てることができます。Ubuntu 12.04以前では、このファイルはの下にあり~/.gnome2/accels/nautilus
ます。新しいリリースでは、このファイルはに移動されました~/.config/nautilus/accels
。スクリプトはnautilus -q
、Nautilusの再起動後にのみアクセラレータファイルに表示されることに注意してください(実行し、ランチャーをクリックしてNautilusを再度起動します)。
アクセラレータファイルの構文は、最初は少し圧倒的に見えるかもしれませんが、実際には非常に簡単です。たとえば、次の抜粋をご覧ください。
; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
; (gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")
すべての行は、単一のキー割り当てを表します。最初の二重引用符で囲まれたセグメントはアクションを指定し、2番目のセグメントは割り当てられたキーの組み合わせを指定します。セミコロンで始まる行はコメント化され、現在非アクティブです。
スクリプトにショートカットを割り当てるには、このファイルでスクリプト名を検索し、セミコロンを削除して対応する行のコメントを解除する必要があります。次に、割り当てたいキーボードショートカットの入力に進みます。
これらは利用可能な修飾子とそれらに対応するキーコードです:
<Primary>
<Alt>
<Shift>
xevを使用して、他のすべてのキーの有効なキーコードを見つけることができます。
サンプルスクリプトをALT+ に割り当てるには、上記のセクションを変更する必要がありますSHIFT + S。
; (gtk_accel_path "<Actions>/ShellActions/ZoomInAccel2" "<Primary>KP_Add")
; (gtk_accel_path "<Actions>/ShellActions/TabsNext" "<Primary>Page_Down")
(gtk_accel_path "<Actions>/ScriptsGroup/script_file:\\s\\s\\shome\\sglutanimate\\s.gnome2\\snautilus-scripts\\sSample%20script" "<Alt><Shift>s")
; (gtk_accel_path "<Actions>/ShellActions/Search" "<Primary>f")
; (gtk_accel_path "<Actions>/ShellActions/Forward" "<Alt>Right")
Ubuntu 12.04(およびおそらくそれ以降のリリース)では、変更を加える前にNautilusがアクセラレータファイルを上書きすることがあります。そのため、Nautilusが実行されていないときに、行ったすべての変更を実行することをお勧めします(nautilus -q
)。いずれにしても、変更を確認するにはNautilusを再起動する必要があります。
インストールの自動化
このNautilusスクリプトは、Nautilusスクリプトを自動的にインストールします。コメントを見て、舞台裏で何が起こっているのかを確認してください。
#!/bin/bash
# AUTHOR: Glutanimate (/ubuntu//users/81372/)
# LICENSE: GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
# NAME: Nautilus Scripts Installer
#
# DESCRIPTION: This script will install Nautilus scripts on Ubuntu 12.04 and above.
# Note: scripts of the same name in the destination folder will be
# overwritten without warning
# general purpose notification function
gui_notify(){
notify-send -i gnome-app-install "Nautilus Scripts Installer" "$1"
}
# check if any files selected
if [[ -z "$@" ]]
then
gui_notify "Error: No files selected."
exit 1
fi
RELEASE="$(lsb_release -r | cut -f2)" # detect Ubuntu release
if [[ "$RELEASE" = "12.04" ]] # set script folder accordingly
then
ScriptFolder="$HOME/.gnome2/nautilus-scripts"
else
ScriptFolder="$HOME/.local/share/nautilus/scripts/"
fi
for Script in "$@"; do
ScriptFilename="${Script##*/}" # get filename via bash string manipulation
cp "$Script" "$ScriptFolder/" # Move script to destination
chmod u+x "$ScriptFolder/$ScriptFilename" # Make it executable for the user
done
gui_notify "The following scripts have been installed: $@"
余談ですが、この回答のスクリーンキャストを記録するために使用したnautilusスクリプトは次のとおりです。