Conky와 씨름하고 성공한 결과..

Conky는 Linux를 많이 써보면 알게될 수 있는 Desktop Widget및 바탕화면 테마 설정 프로그램 이다.

WIndows 에는 Rain Meter라는 것이 있으니 그걸 쓰면 편하다.

Conky를 쓰는 이유는 먼저 가장 많은 사람들이 이 Conky 기반으로 여러가지 많은 것들을 내놓는다.

그리고 2번째로 Conky를 대체할 만한 좋은게 없다.
그냥 대체만 할거라면 있긴 있지만 화려하지는 않다.

근데 이 Conky가 이상하게 잘 작동하지 않는 경우가 있다.

예를 들자면 원하는 widget이 바탕화면으로 단축키로 바로 이동하면 사라진다든지,
아니면 바탕 화면에 마우스커서를 대고 누르면 사라진다든지(...ㅅㅂ)
또는 글씨가 중첩되서 이상하게 보인다는지...

저 모두가 내가 직접 겪은 일이다.

다양한 이유가 있겠지만 대부분 개발자 한테는 잘 돌아가지만 배포과정에서 잘 안돌아가는 경우를 떠올릴 수밖에 없다.

그럼 이제 구체적으로 해결해 보자.

나는 커뮤니티에서 직접 만든 것을을 사용한다. 이유는 간단하다. 공식적으로 만들어진 것이라 복잡하게 갈 필요가 없기 때문.

먼저 Conky-Manager 라는 GUI 관리 도구가 있다. 이걸로 해당 Widget이 설치된 경로로 가보자.






















여기서 나의 경우엔 Mask라는 파일이 있다.
그걸 편집할 것이다. 만약 찾기 힘들면 그 옆에 직접 해당 기능을 편집하는 기능이 있다.

근데 뒤져보다가 내 conky 그리고 지금 conky를 설치 했거나 conky를 사용 하려고 하는 사람들 모두
1.10.x 그 이상의 것을 쓰게 될 것이다.

왜 버젼 이야기를 하느냐면 이 1.10 이후 부터는 문법이 아예 달라져 버렸다.
Lua로 만들어진 것들 뺴고 달라진 문법에 의해 성능이 재대로 안 나오거나 작동이 잘 안될 가능성이 생긴 것이다.

그렇다고 내가 conky 개발을 배워야 할까? 나는 최소한의 지식으로 최대한의 효과를 지향한다.

다행히도 개발자가 직접 문법 변환 프로그램의 소스코드를 공개했다.
사용 방법은 간단하다.

먼저 원하는 편집기로 convert.lua 라는 것을 만든다. 눈치 챘겠지만 Lua 파일을 만드는 것이다.
이제 소스코드를 링크 하겠다 --> https://github.com/brndnmtthws/conky/blob/master/extras/convert.lua

저 링크로 따라 가면 소스코드가 막 있다. 그걸 복사해서 만든 convert.lua에 삽입하고 저장.
마지막으로 lua ./convert.lua {자신이 바꿀 conky의 config 파일} {바뀔 파일의 이름}
저렇게 입력하면 최종 산물이 나오게 된다. 나의 경우엔 lua ./convert.lua Mask Mask 라고 하여 문법을 바꾸기만 하였다.

원래 계획대로 라면 저대로 잘 작동하면 되는데 또 버그가 생겼다. 바탕화면에 커서를 대고 누르거나 Alt+Tab 조합으로 바탕화면 이동시 Widget이 또 사라졌다... 다행인건 글씨들이 겹쳐져서 이상하게 보이는 경우는 없던것.

고민 끝에 해결을 하였다.  먼저 own_window_hints 라는 것을 찾았다. 내 생각에는 이것이 뭔가 Widget이 어떤 식으로 보이게 할지를 정하는 설정 같았다.

그 위에 own_window_type = 'dock', 를 삽입하였다. 공식 문서를 다 읽지는 않았지만 이것이 바탕화면에 어떻게 고정될 지를 정하는 속성인 것으로 알고 있다.

옵션으로 태그를 지운다. 너무 복잡하고 짜증나니 말이다.. own_window_argb_visual 라는 것이 있는데 이건 지우자. 넣어봤는데 문제가 생겼다.

마지막으로 저장 하고 다시 확인해 본다. 나의 경우엔 매우 성공적 이였다.
바탕 화면의 배경화면을 바꾸면 시간이 조금 걸리지만 배경화면에 잘 맞게 투명하게 글씨만 보이게 한다. 물론 이미지도.

그런데 이상하게 conky-manager에서 Mask Widget이 없는 것으로 보였다...
결국 나는 명령어로 일일이 하는 것을 선택.
물론 다른 사람들은 그러지 않을 것이다.

하지만 혹시 모르니 .conky에 넣기 전에 미리 변환후에 해보자..

댓글