ฉันจะติดตั้งสคริปต์ Nautilus ได้อย่างไร


คำตอบ:


37

สมมติว่าคุณต้องการติดตั้งสคริปต์ต่อไปนี้ที่คุณพบขณะเรียกดู 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 เป็นค่าเริ่มต้น

ใน distros อื่น ๆ อาจไม่เป็นกรณีนี้และคุณจะต้องติดตั้งการอ้างอิงก่อนที่จะใช้สคริปต์ หากการพึ่งพาเป็นส่วนหนึ่งของที่เก็บอย่างเป็นทางการคุณสามารถติดตั้งได้อย่างง่ายดายapt-getเช่น:

sudo apt-get install notify-osd

การตั้งค่าสคริปต์

ตอนนี้เราพอใจกับการพึ่งพาทั้งหมดแล้วเราสามารถดำเนินการต่อและคัดลอกสคริปต์ไปยังระบบของเราได้ ในการทำเช่นนั้นเราจะสร้างเอกสารใหม่ในโฟลเดอร์สคริปต์ของเราซึ่งเป็น~/.gnome2/nautilus-scriptsหรือ ~/.local/share/nautilus/scripts/บน Ubuntu 13.04 ขึ้นไป นี่คือโฟลเดอร์ที่ซ่อนอยู่ ในการมุ่งหน้าคุณจะต้องเปิดตัวจัดการไฟล์ของคุณกดCTRL+ Lและวางเส้นทางไดเรกทอรีลงในแถบที่ตั้ง

ต่อไปเราจะสร้างเอกสารใหม่ที่ว่างเปล่าโดยการคลิกขวาและเลือกสร้างเอกสารใหม่ → เอกสารที่ว่างเปล่า ตั้งชื่อทุกอย่างที่คุณต้องการ แต่ระวัง: ชื่อที่คุณเลือกเป็นวิธีที่รายการสคริปต์จะปรากฏในเมนูบริบท nautilus ในภายหลัง ดังนั้นควรเลือกชื่อที่สื่อความหมายสำหรับเอกสาร:

ป้อนคำอธิบายรูปภาพที่นี่

เปิดเอกสารใหม่ในตัวแก้ไขข้อความที่คุณเลือกและดำเนินการคัดลอกและวางเนื้อหาของกล่องรหัสข้างบน บันทึกและออกจากโปรแกรมแก้ไขข้อความ

ทำให้ปฏิบัติการได้

ณ จุดนี้สคริปต์ของคุณได้รับการตั้งค่าอย่างถูกต้อง แต่ก็ยังใช้งานไม่ได้เนื่องจากระบบยังไม่รู้จักว่าเป็นไฟล์ที่ปฏิบัติการได้ เพื่อให้ปฏิบัติการคลิกขวาที่ไฟล์และศีรษะของคุณไปที่Properties → สิทธิ์ ตั้งเครื่องหมายถูกที่อนุญาตให้เรียกใช้งานเป็นโปรแกรมและปิดกล่องโต้ตอบ:

ป้อนคำอธิบายรูปภาพที่นี่

การใช้

ตอนนี้คุณควรจะสามารถเข้าถึงสคริปต์จากเมนูบริบทของหอยโข่งของคุณ เพียงคลิกขวาที่ไฟล์ที่คุณเลือกและตรงไปที่สคริปต์ -> ชื่อสคริปต์ (ที่นี่: สคริปต์ตัวอย่าง ) คลิกที่รายการเพื่อรันสคริปต์บนไฟล์ที่คุณเลือก:

ป้อนคำอธิบายรูปภาพที่นี่

การกำหนดแป้นพิมพ์ลัดให้กับสคริปต์

แป้นพิมพ์ลัดสำหรับสคริปต์ 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")

ทุกบรรทัดแสดงถึงการกำหนดคีย์เดียว ส่วนที่ยกมาสองครั้งแรกกำหนดการกระทำส่วนที่สองเป็นการรวมคีย์ที่กำหนด บรรทัดที่ขึ้นต้นด้วยเครื่องหมายอัฒภาคจะได้รับการแสดงความคิดเห็นและไม่ได้ใช้งานในปัจจุบัน

ในการกำหนดทางลัดไปยังสคริปต์ของคุณคุณจะต้องค้นหาไฟล์นี้สำหรับชื่อของสคริปต์และยกเลิกการใส่เครื่องหมายบรรทัดที่เกี่ยวข้องโดยลบเครื่องหมายอัฒภาค จากนั้นให้พิมพ์แป้นพิมพ์ลัดที่คุณต้องการกำหนด

นี่คือตัวดัดแปลงที่มีอยู่และรหัสที่เกี่ยวข้อง:

  • CTRL = <Primary>
  • ALT = <Alt>
  • SHIFT = <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: $@"

ด้านนอก: นี่คือสคริปต์หอยโข่งที่ฉันเคยบันทึก screencasts ของคำตอบนี้


1
อาจเป็นไปได้ว่าคำตอบนี้อาจได้รับการปรับปรุงให้ดียิ่งขึ้นรวมถึงข้อมูลเกี่ยวกับการกำหนดไอคอนให้กับสคริปต์โดยใช้หน้าต่างคุณสมบัติของไฟล์ Nautilus หรือบรรทัดคำสั่ง (เช่นaskubuntu.com/a/376062/53738 )
dess
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.