macOS: CopyQ 설정 파일 형식/위치 변경.

Linux 와 macOS 에서 CopyQ 를 사용 중이다. Linux 끼리는 설정 파일을 공유하여 어느 기기에서든 동일한 상황에서 작업을 할 수 있는데, 과연 ‘이종 교배(??)도 가능할까?’라는 단순한 상상에서 이 글이 탄생되었다.

CopyQ 의 기본 설정파일 경로는 ~/.config/copyq 이다. 여기를 잠시 살펴보자면..

$ ls -al
total 128
-rw-r--r--  1 nemomac  staff    36B  2 11 23:25 copyq-filter.ini
-rw-r--r--  1 nemomac  staff   2.4K  2 12 15:03 copyq_geometry.ini
-rw-r--r--  1 nemomac  staff    49K  2 12 15:02 copyq_tab_JmNsaXBib2FyZA==.dat
-rw-r--r--  1 nemomac  staff   155B  2 12 15:03 copyq_tabs.ini
drwxr-xr-x  2 nemomac  staff    64B  2  7 20:50 themes

리눅스엔 이 디렉토리에 copyq.conf 가 있고, 이게 주 설정 파일이다. 그런데, macOS 엔 이게 없고, 부수 파일들만 있다.

살짝 구글을 뒤지다가, 제작자에게 도움을 요청했다.
설정 파일 위치는 다음 명령으로 알아낼 수 있다고 한다.

$ /Applications/CopyQ.app/Contents/MacOS/copyq info config
/Users/userID/Library/Preferences/com.copyq.copyq.plist

macOS 에선 plist 형식으로 설정파일이 저장되고, 저 파일은 Binary 형식이다. 이래서는 리눅스와 공생은 불가능하다.

텍스트 형식으로 설정파일을 사용할 수는 없는걸까?
제작자는, 설정 파일 위치는 바꿀 수 있다고 하는데, 이렇게 위치를 바꿨을 때 생성되는 설정 파일이 일반 텍스트 형식으로 저장되는 지는 기억이 안난다고 했다.

하여, 우물을 직접 파고 확인해봤다.
macOS 에선, 환경변수를 지정하는 것도 꽤 복잡하다. 우분투에서는 .profile 등에 넣어주면 간단한데, 여기는… 복잡하다.

여러 글을 봤지만, 가장 마지막으로 본 다음 글을 참고해서 이 어려운(?)일을 해내고야 말았다.

기본은 이렇다. macOS 에선, 환경 변수를 지정해주기 위해서 launchd 라는 서비스를 사용하고, 설정 파일로는 plist 형식이 필요하다. (Binary 는 아니고 Plain Text)
단순히 환경변수만을 지정해줄 수도 있고, 환경변수를 지정함과 동시에 프로그램을 실행할 수도 있다.

환경변수만을 지정해주려면 이렇게 한다.





	Label
	setenv.CopyQ
	ProgramArguments
	
		/bin/launchctl
		setenv
		COPYQ_SETTINGS_PATH
		/Users/userID/.config/copyq
	
	RunAtLoad
	
	ServiceIPC
	


환경변수와 함께 실행까지 해주려면 이렇게.





	EnvironmentVariables
	
		COPYQ_SETTINGS_PATH
		/Users/nemomac/.config/copyq_plaintext
	
	Label
	Run.Copyq
	ProgramArguments
	
		/Applications/CopyQ.app/Contents/MacOS/copyq
	
	RunAtLoad
	
	ServiceIPC
	


그냥 환경변수만 주고, CopyQ 는 자동실행되게끔 하면 될 듯 한데, 이게 되질 않았다. 아마도 CopyQ 가 먼저 실행되고나서 환경변수 할당이 이뤄지는 듯 하다. 이 순서를 바꿀 수 있다면 가장 좋긴하겠는데.. (더 이상 이걸 파는 건, 정신건강(!)에 큰 문제를 줄 수도 있겠기에 여기까지만 하기로 한다.)
어쨌든, 환경변수만 설정해주면 새로 지정해준 위치에 설정파일이 생기지 않고, 기본값으로 CopyQ 가 실행되고, 기본 위치를 그대로 사용한다.
따라서 환경변수를 지정해주고 CopyQ 도 실행해주는 방식을 취할 수 밖에 없었다.

파일명은 적절히 주면 되는 듯 한데, plist 파일명에 다들 마침표가 포함되어 있어서 run_copyq.plist 정도로 할당했다.

파일 위치는 전역 위치도 있고, 사용자 위치도 있는데, ~ 을 택했다.
정확한 위치는 다음과 같다.

~/Library/LaunchAgents

여기에 run_copyq.plist 등을 만들고, 위처럼 내용을 넣어주면 된다.
그리고 재부팅!

CopyQ 가 뜬 걸 확인하면 위에서 한 작업이 헛수고가 아니었는지를 알 수 있겠지만, 다음 명령으로 좀 더 정확하게 알아볼 수도 있다.

$ launchctl list | grep Copyq
-	0	Run.Copyq

이 방식의 한가지 문제점은, 혹시나 CopyQ 를 사용자가 종료 시켰을 경우, 다시금 CopyQ 를 실행했을 때 원래 설정을 따라간다는데에 있다.
이걸 위해서는 환경변수용 plist 도 따로 하나 더 만들어놓는 것도 나쁘진 않을 듯 하지만, 살짝 중복이 되는 방식이라, 썩 내키진 않네.

뭔가 방법은 있을텐데??


다음 글들을 참고했다.

Tags:

안녕하세요. 글 남겨주셔서 고맙습니다.