web-dev-qa-db-ja.com

Nautilusスクリプトをインストールするにはどうすればよいですか?

使いたいnautilusスクリプトを見つけました。どうすればインストールできますか?

14
Glutanimate

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

スクリプトのセットアップ

すべての依存関係が満たされたので、先に進んでスクリプトをシステムにコピーします。そのためには、まずスクリプトフォルダに新しいドキュメントを作成します。これは、Ubuntu 13.04以降では~/.gnome2/nautilus-scriptsまたは~/.local/share/nautilus/scripts/です。これは隠しフォルダーです。それに向かうには、ファイルマネージャーを開く必要があります。 CTRL+L ディレクトリパスをロケーションバーに貼り付けます。

次に、右クリックしてCreate new DocumentEmpty Documentを選択して、新しい空のドキュメントを作成します。好きな名前を付けますが、注意してください。選択するタイトルは、スクリプトエントリが後でnautilusコンテキストメニューに表示される方法です。そのため、ドキュメントのわかりやすい名前を選択することをお勧めします。

enter image description here

選択したテキストエディタで新しいドキュメントを開き、上のコードボックスの内容をコピーして貼り付けます。保存して、テキストエディターを終了します。

実行可能にする

この時点で、スクリプトは正しく設定されていますが、システムはまだ実行可能ファイルとして認識していないため、動作しません。実行可能にするには、ファイルを右クリックしてPropertiesPermissionsに移動します。 にチェックマークを設定してプログラムとして実行を許可し、ダイアログを閉じます:

enter image description here

使用法

これで、nautilusのコンテキストメニューからスクリプトにアクセスできるようになります。選択したファイルを右クリックして、Scripts->Script name(here:サンプルスクリプト)。エントリをクリックして、選択したファイルでスクリプトを実行します。

enter image description here

スクリプトへのキーボードショートカットの割り当て

Nautilusのキーボードアクセラレータファイルを編集することにより、Nautilusスクリプトのキーボードショートカットを割り当てることができます。 Ubuntu 12.04以前では、このファイルは~/.gnome2/accels/nautilusの下にあります。新しいリリースでは、このファイルは~/.config/nautilus/accelsに移動されました。スクリプトは、Nautilusを再起動した後にのみアクセラレータファイルに表示されることに注意してください(nautilus -qを実行し、ランチャーをクリックして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番目のセグメントは割り当てられたキーの組み合わせを指定します。セミコロンで始まる行はコメント化され、現在非アクティブです。

スクリプトにショートカットを割り当てるには、このファイルでスクリプトの名前を検索し、セミコロンを削除して対応する行のコメントを解除する必要があります。次に、割り当てたいキーボードショートカットの入力に進みます。

これらは利用可能な修飾子とそれらに対応するキーコードです。

  • CTRL = <Primary>
  • ALT = <Alt>
  • SHIFT = <Shift>

sing 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 (https://askubuntu.com/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スクリプトです この回答のスクリーンキャストを記録するために使用しました。

37
Glutanimate