맥북에서는 command + shift + 3,4,5 등으로 화면 캡쳐 및 녹화를 할 수 있읍니다.
하지만 Default 경로는 Desktop에 저장되며 이름 또한 “8시_18분_16초 2023-11-21 오전 9.22.12” 이렇게 지정된다.
물론 저장되는 경로를 지정을 해줄 수는 있고 시간 순서로 정렬해서 보면 상관 없긴 하지만
이 파일이 전체화면 캡쳐인지, 선택화면 캡쳐인지는 파일을 미리보기로 열어봐야 알 수 있으며 파일이름 또한 지저분하고 분류되지 않아 매우 지저분하게 보인다.
그렇기에 이를 해결할 수 있는 방법을 찾아보다, apple script를 통해 서비스를 등록하면 가능하다는 사실을 알게 되었다.
그러면 이제 어떻게 지정하는지 알아보자!
Apple Script 제작
먼저, 화면 캡쳐를 위한 apple script를 제작해야한다.
apple script는 mac os에서 사용되는 스크립팅 언어인데, 이 스크립트를 통해 시스템 및 어플리케이션을 제어할 수 있다.
먼저 전체화면 캡쳐 저장 스크립트부터 만들어보자.
어플리케이션 중 applescript 어플리케이션을 실행하여 아래와 같이 작성한다.
-- 현재 날짜 및 시간 가져오기
set currentDate to current date
set yearStr to text -4 thru -1 of (year of currentDate as string)
set monthStr to text -2 thru -1 of ("00" & (month of currentDate as integer as string))
set dayStr to text -2 thru -1 of ("00" & (day of currentDate as string))
set hourStr to text -2 thru -1 of ("00" & (hours of currentDate as string))
set minuteStr to text -2 thru -1 of ("00" & (minutes of currentDate as string))
set secondStr to text -2 thru -1 of ("00" & (seconds of currentDate as string))
-- 저장 폴더 및 파일 경로 설정
set saveFolder to "{저장할 폴더 위치}" & yearStr & "_" & monthStr & "_" & dayStr
set savePath to saveFolder & "/" & hourStr & "시_" & minuteStr & "분_" & secondStr & "초(전체화면).png"
-- 폴더 생성
do shell script "mkdir -p " & quoted form of saveFolder
-- 전체화면 캡쳐 실행
do shell script "screencapture " & quoted form of savePath
위의 스크립트를 살펴보면 current date에서 년, 월, 일, 시간, 분, 초 정보를 가져와서 저장될 파일의 경로와 이름을 지정하는 것을 볼 수 있다.
캡쳐파일이 저장될 폴더를 “yyyy_mm_dd” 형식으로 생성 후
캡쳐파일을 “hh시_mm분_ss초(전체화면)” 이라고 지정하여 screencapture 명령을 통해 전체화면 캡쳐를 실행하는 스크립트이다.
그 다음은 선택화면 저장 스크립트이다.
-- 현재 날짜 및 시간 가져오기
set currentDate to current date
set yearStr to text -4 thru -1 of (year of currentDate as string)
set monthStr to text -2 thru -1 of ("00" & (month of currentDate as integer as string))
set dayStr to text -2 thru -1 of ("00" & (day of currentDate as string))
set hourStr to text -2 thru -1 of ("00" & (hours of currentDate as string))
set minuteStr to text -2 thru -1 of ("00" & (minutes of currentDate as string))
set secondStr to text -2 thru -1 of ("00" & (seconds of currentDate as string))
-- 저장 폴더 및 파일 경로 설정
set saveFolder to "{저장할 폴더 위치}" & yearStr & "_" & monthStr & "_" & dayStr
set savePath to saveFolder & "/" & hourStr & "시_" & minuteStr & "분_" & secondStr & "초(선택화면).png"
-- 폴더 생성
do shell script "mkdir -p " & quoted form of saveFolder
-- 선택화면 캡쳐 실행
do shell script "screencapture -s " & quoted form of savePath
전체적으로 전체화면과 동일하고, 파일이름형식에 전체화면이 아닌 선택화면을
그리고 screencapture 명령에 -s 옵션만 추가하였다.
이렇게 제작 후 위의 실행버튼을 눌러 스크립트가 잘 동작하는지 확인해본다.
Automator 생성
스크립트를 생성했으면, 이제 캡쳐 버튼을 눌렀을 때 해당 스크립트가 실행되도록 설정을 해주어야 한다.
맥에서는 자동화 기능을 automator라는 어플리케이션을 통해 생성할 수 있다.
먼저, automator를 실행 후 빠른 동작을 선택한다.
그 다음, 유틸리티의 applescript 실행을 드래그앤 드랍하여 추가한다.
그리고 아까 제작했던 스크립트를 빨간영역에 복사한 후 저장해준다.
(선택 영역 캡쳐 스크립트와 전체 영역 캡쳐 스크립트를 각각 다른 자동화 파일로 저장해준다.)
여기까지 했다면 자동화 서비스 생성까지 완료된 것이다.
키보드 단축키에 자동화 서비스 등록
이제 해당 스크린샷 버튼을 눌렀을 때 작성한 자동화 서비스가 동작하도록 단축키 매핑을 해주어야 한다.
먼저, 설정>키보드>키보드 단축키로 이동한다.
그 다음, 스크린샷 탭에 들어가서 기존 스크린샷 키 매핑을 체크해제 해준다.
그 다음, 서비스 탭으로 이동하여 일반 탭을 클릭하면 아까 automator에 저장했던 서비스가 보인다.
이 서비스들을 체크하여 사용하도록 바꾸어 주고, 원래 스크린샷 키보드 단축키에 해당하는 키들을 각각 매핑하여 준다.
완료 후, 단축키를 통해 캡쳐를 진행해보면 날짜별로 폴더에 잘 정리되는 것을 확인 할 수 있다.
마무리하며…
사실 그렇게 쓸모가 있다! 하는 기능은 아니지만, 이번에 폴더 정리를 하며 스크린샷 또한 폴더별로 분류되었으면 좋겠다~ 라는 생각이 들어서 찾아보고 작성하게 되었다.
지금까지 써본 결과로는 잘 분류되어 좋긴 하지만, 아무래도 바로 스크린 캡쳐가 동작하는게 아니고 자동화서비스가 실행되며 스크린 캡쳐가 동작되는 것이기 때문에 약간의 딜레이가 존재하며 듀얼모니터 사용시 선택화면 캡쳐의 좌표지정이 한번씩 다른 모니터의 화면의 좌표로 넘어가는 버그가 존재하긴한다….
[수정]
사용하며 확인해보니, 특정 앱이 눌려져있는 상태에서 화면 기록을 수행할 경우, 그 앱의 화면 기록 권한을 확인하기 때문에 캡쳐가 되지 않는 경우가 발생하였다.
해당 앱의 화면기록 권한을 부여해주던지, 아니면 바탕화면 한번 누르고 캡쳐하는 등의 조치를 취하면 될 것 같다!
그리고 화면 녹화도 자동화로 지정하고 싶었지만 screencapture 명령에서 사용자의 인터럽션을 통해 기록을 종료하는 방법을 찾지 못하여 화면녹화까지는 해당 자동화를 구성하지 못하였다….