노틸러스 스크립트를 설정했습니다 . 스크립트를 넣고 /home/sumeet/.local/share/nautilus/scripts
마우스 오른쪽 버튼 클릭 메뉴에 나타납니다. 예상대로 작동합니다. 스크립트에 바로 가기를 지정하고 싶습니다.
노틸러스 스크립트의 단축키를 어떻게 만들 수 있습니까?
위의 질문에 주어진 답변은 특정 릴리스를 대상으로하며 완전히 구식 이며이 주제와 관련 하여이 질문 이외의 다른 것을 찾을 수 없습니다.
노틸러스 스크립트를 설정했습니다 . 스크립트를 넣고 /home/sumeet/.local/share/nautilus/scripts
마우스 오른쪽 버튼 클릭 메뉴에 나타납니다. 예상대로 작동합니다. 스크립트에 바로 가기를 지정하고 싶습니다.
노틸러스 스크립트의 단축키를 어떻게 만들 수 있습니까?
위의 질문에 주어진 답변은 특정 릴리스를 대상으로하며 완전히 구식 이며이 주제와 관련 하여이 질문 이외의 다른 것을 찾을 수 없습니다.
답변:
노틸러스 스크립트의 파일 또는 폴더를 마우스 오른쪽 버튼으로 클릭하면 선택한 파일이 스크립트에 인수로 전달됩니다. 대부분의 경우 다음과 같은 방법으로 :
import os
subject = os.getenv("NAUTILUS_SCRIPT_CURRENT_URI")
... python3을 가장 간단한 형태로 사용합니다.
이것을 다음으로 교체하면 :
import pyperclip
subprocess.call(["xdotool", "key", "Control_L+c"])
subject = pyperclip.paste()
... 현재 선택된 파일은 스크립트 내에서 인수로 사용됩니다
모두 설치하려면이 솔루션 (최대 16.04 등), 당신이 필요로하는 사용 xdotool
과 python3-pyperclip
:
sudo apt-get install python3-pyperclip xdotool
다음이된다 :
#!/usr/bin/env python3
import subprocess
import os
import sys
import pyperclip
# --- set the list of valid extensions below (lowercase)
# --- use quotes, *don't* include the dot!
ext = ["jpg", "jpeg", "png", "gif", "icns", "ico"]
# --- set the list of preferred filenames
# --- use quotes
specs = ["folder.png", "cover.png", "monkey.png"]
# ---
# retrieve the path of the targeted folder
subprocess.call(["xdotool", "key", "Control_L+c"])
dr = pyperclip.paste()
for root, dirs, files in os.walk(dr):
for directory in dirs:
folder = os.path.join(root, directory)
fls = os.listdir(folder)
try:
first = [p for p in fls if p in specs]
first = first[0] if first else min(
p for p in fls if p.split(".")[-1].lower() in ext
)
except ValueError:
pass
else:
subprocess.Popen([
"gvfs-set-attribute", "-t", "string",
os.path.abspath(folder), "metadata::custom-icon",
"file://"+os.path.abspath(os.path.join(folder, first))
])
이를 바로 가기 키에 추가 하면 선택한 디렉토리 내의 모든 디렉토리에 대한 아이콘이 설정됩니다 .
다른 키 조합 xdotool
을 누르기 위해 바로 가기 키를 추가하고 (스크립트를 사용하여- ) 명령을 실행하는 것은 까다로울 수 있습니다. 두 키 조합이 서로 방해하지 않도록하려면 다음을 사용하십시오.
/bin/bash -c "sleep 1 && python3 /path/to/script.py"
때 Ctrl+이 C파일을 선택한 상태 누를 때 경로 파일을 클립 보드에 복사됩니다. 우리는 다음과 같이 키 누름을 시뮬레이션합니다.
subprocess.call(["xdotool", "key", "Control_L+c"])
python
의 pyperclip
모듈은 단순히 경로를 생성하고 file://
사용할 때 제거 됩니다 pyperclip.paste()
(문자 그대로 붙여 넣지는 않지만 스크립트 내에서 경로를 사용할 수있게합니다).
목표 파일을 선택하고 작업을 실행하는 경우는 그냥 쉘 스크립트를 사용하여 작업을 수행하는 것이 가능 xdotool
하고 xclip
. 먼저 설치하십시오 :
sudo apt-get install xdotool xclip
그런 다음 루프 내부의 작업으로 다음 스크립트를 만듭니다.
#!/bin/bash
file=$(mktemp)
xdotool key "Control_L+c"
variable="$( xclip -out -selection clipboard)"
variable="$( echo -e "$variable" | \
awk 'BEGIN { FS = "\n" } { printf "\"%s\" ", $1 }' | \
sed -e s#\"\"## | \
sed 's/" "/"\n"/g')"
echo "$variable" > $file
if [ -s "$file" ]; then
while read absolute_path_file; do
absolute_path_file="$(eval echo "$absolute_path_file")"
base_name="$(basename "$absolute_path_file")"
### Execute the actions with the selected files here
### echo "$absolute_path_file"
### echo "$base_name"
done < $file
fi
이 스크립트는 NAUTILUS 변수에 의존하지 않으며이를 사용하여 바로 가기를 만들 수 있습니다.
/bin/bash -c "sleep 1 && /path/script.bash"