ChatGPT를 많이 사용하는데 필요할 때마다 브라우저를 열어 페이지를 찾거나,에서단축키로ChatGPT를열어보자클리앙열어둔 페이지를 찾기 번거로워 단축키로 여는 방법을 찾아보았습니다. 존칭을 쓰지 않은 점은 양해 부탁드립니다.
원문은 https://jusths.tistory.com/341 이며 내용은 아래와 같습니다.
개요
ChatGPT를 잘 쓰고 있는데 필요할 때마다 브라우저를 실행하고 웹페이지를 찾아가는게 번거로웠다. 원하는 바를 정리해서 ChatGPT의 GPT-4의 도움을 받아 구현해보았다.
목표
- 단축키를 눌려서 구글 크롬에서 ChatGPT(https://chat.openai.com) 페이지가 열려야 한다. 구글 크롬이 활성화되고 크롬 내에서는 ChatGPT 웹페이지 탭이 활성화 되어야 한다.
- 구글 크롬이 실행되지 않았다면 실행하여 열어주고
- 구글 크롬이 실행되긴 했는데 ChatGPT 페이지가 열려있지 않다면 새로운 탭에서 열어주고
- 이미 ChatGPT 페이지가 열려있다면 해당 탭이 활성화되어야 한다.
- 이때, 구글 크롬창은 디스플레이의 왼쪽 절반에 위치하도록 한다.
- 입력창에 포커싱이 되도록 자바스크립트까지 넣을 수도 있으나 다음 이유로 넣지 않았다.
- 애플 이벤트내의 자바스크립트를 허용하도록 크롬 설정까지 건드려야해서 과하다.
- 입력창이 아니라 새로운 대화(New Chat)을 해야할 경우도 있다.
입력창, New Chat에 대한 부분은 ChatGPT 자체의 단축키로 해결하면 되겠다.
구현
Automator
MacOS의 Automator를 사용하면 된다.
1. Automator를 실행하고 새로운 Quict Action를 선택한다.
2. Workflow receives는 no input을 선택하고, Run AppleScript를 검색해서 가운데로 끌어옮긴다. 그러면 가운데에 기본 AppleScript가 생성된 창이 나온다.
3. 스크립트에 다음을 복사하여 붙여넣는다. 개발자라면 코멘트를 보면 대략의 흐름을 이해할 것이다.
# 대상 URL을 상수로 설정set TARGET_URL to "<" target="_blank">https://chat.openai.com>"# Google Chrome 애플리케이션을 조작tell application "Google Chrome" # Google Chrome이 실행 중인지 확인 if not (exists window 1) then # 실행 중이지 않으면 새 창을 생성하고 대상 URL로 이동 make new window set URL of active tab of window 1 to TARGET_URL else # 해당 URL을 가진 탭을 찾기 위한 변수 초기화 set found to false set theTabIndex to 0 set theWindowIndex to 0 # 모든 창에서 대상 URL을 포함하는 탭을 검색 repeat with aWindow in windows set theWindowIndex to theWindowIndex + 1 repeat with aTab in tabs of aWindow set theTabIndex to theTabIndex + 1 if (URL of aTab contains TARGET_URL) then set found to true exit repeat end if end repeat if found then exit repeat set theTabIndex to 0 end repeat # 탭을 찾은 경우 활성화, 찾지 못한 경우 새 탭 생성 if found then set active tab index of window theWindowIndex to theTabIndex set index of window theWindowIndex to 1 else make new tab at end of tabs of window 1 with properties { URL:TARGET_URL} end if end if activateend tell# 화면의 해상도 정보를 Finder 애플리케이션을 통해 가져옴tell application "Finder" set screenBounds to bounds of window of desktopend tellset screenWidth to item 3 of screenBoundsset screenHeight to item 4 of screenBounds# 화면의 폭을 절반으로 계산set halfScreenWidth to screenWidth / 2# Google Chrome의 창 크기를 조절하여 왼쪽 절반에 표시tell application "Google Chrome" set bounds of front window to { 0, 0, halfScreenWidth, screenHeight} activateend tell
4. ChatGPT라고 이름 붙여서 저장하자(이름은 무엇이든 상관없다)
<참고> 이 파일은 ~/Library/Services/ChatGPT.workflow라는 이름으로 저장된다.
단축키 설정
MacOS의 Settings >> Keyboard >> Keyboard ShortCuts로 들어간 다음, Services >> General을 확장해보면 방금 만든 ChatGPT가 보일 것이다. 이를 체크하여 활성화하고, 원하는 단축키를 할당하자. 나는 Ctrl + Option + Space를 할당하였다(IntelliJ와 중복이 되어 IntelliJ 단축키는 비활성화 하였다)
정리
이제 언제든 ChatGPT가 필요하면 Ctrl + Option + Space키만 누르면 ChatGPT가 뜨고, 새로운 채팅을 시작하고 싶다면 Cmd + Shift + O, 기존 채팅의 입력창으로 가고 싶다면 Shift + Esc를 누르면 된다.
만든 기능이 편리한 점도 있지만, 무엇을 어떻게 만들지만 잘 기획하면 ChatGPT의 도움을 받아 (약간의 시행착오와 오류수정만 거치면) 이렇게 만들어낼 수 있다는 것이 즐거운 경험이었다. ChatGPT가 없었다면 Automator를 사용할 생각도 못했을 것이고, AppleScript가 있다는 것 자체도 몰랐을 것이다.