태그 보관물: applescript

applescript

OS X에서 스크립트 실행에 대한 단축키 지정 키 조합을 쉽게 바인딩

OS X은 일반적으로 명령 행에서 실행되는 명령에 키 조합을 쉽게 바인딩 할 수있는 방법을 제공합니까?

예를 들어 ⌘ Cmd+ L를 전역 단축키로 지정 하여 화면을 빠르게 잠글 수있는 방법이 /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine있습니까?



답변

예, Applescript 또는 Automator 로이 작업을 수행 할 수 있습니다 .

내가 이런 짓을 한 방법은 Automator를 사용하여 모든 응용 프로그램에서 사용할 수있는 서비스를 만드는 것입니다. bash / zsh / ruby ​​/ whatever 스크립트를 실행하도록 서비스를 만들 수 있습니다. 그런 다음 시스템 환경 설정의 키보드 패널에서 키 조합을 서비스에 바인딩 할 수 있습니다.

이 MacBreak 팟 캐스트 끝 부분 에이 절차가 자세히 나와 있습니다.

편집 : 방금 Snow Leopard를 사용하지 않는 것으로 나타났습니다. 10.5.8을 사용하면 시스템 전체의 서비스를 만드는 것이 쉽지 않다고 생각합니다. Powerbook이므로 업그레이드 할 수 없습니다. AppleScript에 키보드 단축키를 할당하고 (최대 10 개의 키보드 단축키에 무료로 사용할 수있는) FastScript 를 살펴보고 다음 Applescript를 사용할 수 있습니다.

do shell script "/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine"

답변

나는 현재 FastScripts를 사용하고 있습니다 . 에 모든 스크립트가 포함되어 ~/Library/Scripts/있으므로 스크립트를 수동으로 추가 할 필요가 없습니다. 또한 응용 프로그램 별 스크립트를 지원하며, 수정 자 키를 놓을 때까지 keystroke또는 key code명령 전에 스크립트를 중지하는 것과 같이 AppleScript에 유용한 몇 가지 기능이 있습니다 .

Alfred 2 용 Powerpack을 구입 한 경우 다음 과 같은 워크 플로우를 작성할 수 있습니다.

핫키는 기본적으로 짧은 지연이 있지만 트리거 동작을 변경하여 단축 할 수 있습니다.

KeyRemap4MacBook 은 셸 스크립트 실행도 지원합니다.

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_SHELL_say_a</name>
    <url type="shell">say a</url>
  </vkopenurldef>
  <item>
    <name>test</name>
    <identifier>test</identifier>
    <autogen>__KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_say_a</autogen>
  </item>
</root>

스크립트에 단축키 지정을 지원하는 다른 응용 프로그램 :

다른 옵션은 Automator 서비스를 작성하는 것입니다.

  1. Automator를 열고 서비스 템플릿을 선택하십시오.
  2. 입력 유형 및 응용 프로그램 범위가 올바른지 확인하거나 서비스에 입력이 없으면 “선택된 텍스트”를 “입력 안 함”으로 변경하십시오.
  3. 스크립트에 Run Shell Script 또는 Run AppleScript 액션을 추가합니다.
  4. 서비스를 저장하고 시스템 환경 설정에서 바로 가기를 제공하십시오.

메뉴 막대에서 서비스 메뉴 위로 마우스를 가져갈 때까지 서비스 바로 가기가 항상 작동하지 않는 10.7 이후 버그가 발생했습니다. 서비스 메뉴가없는 응용 프로그램 (예 : 타워)이 맨 앞에 있으면 서비스 바로 가기가 작동하지 않습니다. 서비스가 실행되기 전에 상당한 지연이 있습니다.


답변

BetterTouchTool을 사용하는 경우 다음 조치를 선택하여 쉘 명령에 단축키를 지정할 수 있습니다. 기타 응용 프로그램 제어> 터미널 명령 실행


답변

다음은 내가 만든 KeePass.sh 스크립트의 예입니다. 방금 정보를 얻었고 터미널로 실행하도록 설정했습니다. 그 후, 나는 바탕 화면에 별명을 만들었습니다. 터미널 내에서 KeePass.sh 스크립트를 실행 한 다음 응용 프로그램을 종료하면 열려있는 터미널 창이 모두 종료됩니다. 마지막 줄을 조정하고 싶을 수도 있습니다 🙂

cd ~/Documents/KeePass
/Library/Frameworks/Mono.framework/Versions/current/bin/mono KeePass.exe 1>/dev/null 2>/dev/null
cd ~
killall Terminal

여기 다른 사람들의 답변과 같은 특별한 것을 사용할 필요는 없습니다.


답변