OS X은 일반적으로 명령 행에서 실행되는 명령에 키 조합을 쉽게 바인딩 할 수있는 방법을 제공합니까?
예를 들어 ⌘ Cmd+ L를 전역 단축키로 지정 하여 화면을 빠르게 잠글 수있는 방법이 /System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
있습니까?
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 서비스를 작성하는 것입니다.
메뉴 막대에서 서비스 메뉴 위로 마우스를 가져갈 때까지 서비스 바로 가기가 항상 작동하지 않는 10.7 이후 버그가 발생했습니다. 서비스 메뉴가없는 응용 프로그램 (예 : 타워)이 맨 앞에 있으면 서비스 바로 가기가 작동하지 않습니다. 서비스가 실행되기 전에 상당한 지연이 있습니다.
다음은 내가 만든 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
여기 다른 사람들의 답변과 같은 특별한 것을 사용할 필요는 없습니다.
open -a ScreenSaverEngine
조금 더 짧습니다.