Bagaimana saya bisa menginstal skrip Nautilus?

14

Saya menemukan skrip nautilus yang ingin saya gunakan. Bagaimana cara menginstalnya?

Glutanimate
sumber

Jawaban:

37

Katakanlah Anda ingin menginstal skrip berikut yang Anda temukan saat menjelajah Tanya Ubuntu:

#!/bin/bash
## Sample Script 0.1
## Dependencies: notify-osd

notify-send "Sample nautilus script" "You Selected $NAUTILUS_SCRIPT_SELECTED_FILE_PATHS"

Ketergantungan

Hal pertama yang akan Anda perhatikan adalah banyak skrip tidak akan kehabisan kotak. Terkadang mereka bergantung pada paket lain yang Anda mungkin atau mungkin belum diinstal. Dalam hal ini skrip kami bergantung pada notify-osd, yang datang dengan Ubuntu secara default.

Pada distro lain, ini mungkin bukan masalahnya dan Anda harus menginstal dependensi sebelum menggunakan skrip. Jika dependensi adalah bagian dari repositori resmi Anda dapat dengan mudah menginstalnya apt-get, misalnya:

sudo apt-get install notify-osd

Menyiapkan skrip

Sekarang kita sudah puas semua dependensi kita dapat melanjutkan dan menyalin skrip ke sistem kami. Untuk melakukannya, pertama-tama kita membuat dokumen baru di folder skrip kami, yang ada ~/.gnome2/nautilus-scriptsatau ~/.local/share/nautilus/scripts/di Ubuntu 13,04 ke atas. Ini adalah folder tersembunyi. Untuk menuju ke sana, Anda harus membuka manajer file Anda, tekan CTRL+ Ldan tempel jalur direktori ke bilah Lokasi.

Selanjutnya kita akan membuat dokumen kosong baru dengan mengklik kanan dan memilih Buat Dokumen baruDokumen Kosong . Beri nama apa pun yang Anda inginkan, tetapi berhati-hatilah: Judul yang Anda pilih adalah bagaimana entri skrip nantinya akan muncul di menu konteks nautilus. Jadi lebih baik pilih nama deskriptif untuk dokumen:

masukkan deskripsi gambar di sini

Buka dokumen baru di editor teks pilihan Anda dan lanjutkan untuk menyalin dan menempelkan isi kotak kode di atasnya. Simpan dan keluar dari editor teks.

Membuatnya dapat dieksekusi

Pada titik ini skrip Anda sudah diatur dengan benar tetapi masih belum berfungsi karena sistem belum mengenalinya sebagai file yang dapat dieksekusi. Untuk membuatnya dapat dieksekusi, klik kanan pada file Anda dan menuju ke PropertiesIzin . Tetapkan tanda centang di Izinkan Melaksanakan sebagai program dan tutup dialog:

masukkan deskripsi gambar di sini

Pemakaian

Anda sekarang dapat mengakses skrip dari menu konteks nautilus Anda. Cukup klik kanan pada file pilihan Anda dan menuju ke Skrip -> Nama skrip (di sini: Skrip Contoh ). Klik pada entri untuk menjalankan skrip pada file yang Anda pilih:

masukkan deskripsi gambar di sini

Menetapkan pintasan keyboard untuk skrip

Pintasan keyboard untuk skrip Nautilus dapat ditetapkan dengan mengedit file akselerator keyboard Nautilus. Di Ubuntu 12,04 dan di bawah file ini dapat ditemukan di bawah ~/.gnome2/accels/nautilus. Pada rilis yang lebih baru, file ini telah dipindahkan ke ~/.config/nautilus/accels. Harap perhatikan bahwa skrip Anda hanya akan muncul di file akselerator setelah memulai ulang Nautilus (jalankan nautilus -q, lalu luncurkan Nautilus lagi dengan mengklik peluncurnya).

Sintaksis file akselerator mungkin terlihat sedikit berlebihan pada awalnya tetapi sebenarnya cukup mudah. Lihatlah kutipan ini, misalnya:

; (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")

Setiap baris mewakili penugasan kunci tunggal. Segmen yang dikutip ganda menunjukkan tindakan, yang kedua adalah kombinasi tombol yang ditetapkan. Baris yang dimulai dengan titik koma dikomentari dan saat ini tidak aktif.

Untuk menetapkan pintasan ke skrip Anda, Anda harus mencari file skrip ini dan menghapus tanda komentar pada baris yang sesuai dengan menghapus titik koma. Kemudian lanjutkan untuk mengetik pintasan keyboard yang ingin Anda tetapkan.

Ini adalah modifier yang tersedia dan kode kunci yang sesuai:

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

Anda dapat menemukan kode kunci yang valid untuk semua kunci lainnya dengan menggunakan xev .

Inilah cara Anda harus memodifikasi bagian di atas untuk menetapkan skrip sampel ke 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")

Di Ubuntu 12.04 (dan mungkin juga rilis nanti) Nautilus terkadang akan menimpa file akselerator sebelum Anda dapat membuat perubahan apa pun. Jadi mungkin ide yang baik untuk melakukan semua perubahan yang Anda buat saat Nautilus tidak berjalan ( nautilus -q). Either way, Anda akan harus me-restart Nautilus untuk melihat perubahan.

Mengotomatiskan instalasi

Skrip Nautilus ini akan secara otomatis menginstal skrip Nautilus untuk Anda. Silakan lihat komentar untuk melihat apa yang terjadi di balik layar:

#!/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: $@"

Sebagai tambahan: Ini skrip nautilus yang saya gunakan untuk merekam screencasts dari jawaban ini.

Glutanimate
sumber
1
Kemungkinan, jawaban ini bisa lebih ditingkatkan termasuk informasi tentang menetapkan ikon ke skrip menggunakan jendela properti file Nautilus atau baris perintah (misalnya askubuntu.com/a/376062/53738 ).
dess