Xchat용 notification indicator

xchat 용 플러그인의 형태로 libnotify와 연동해서 동작하는 xchat highlight message notifier 입니다.

python으로 작성되어 있고 추가로 dbus 모듈을 필요로 합니다.

처음 플러그인을 작성할때는 제가 아직 KDE 4.3을 사용하고 있었을 때였고 (9.04) xchat의 기본 tray notify는 KDE 사용자로써는 마치 제가 리눅스를 처음 시작했을때 터미널과 콘솔(bash)에 대해서 생각하던 입장과 같았습니다.

필요는 하지만 어쩔 수 없이 쓴다는 그런 느낌으로 처음 콘솔을 접하기 시작했을때 ls를 치고 한참을 메뉴얼을 째려보던 기분으로 호출이 연속으로 들어왔을때의 트레이를 볼때의 심정을 기억하고는 하는데…

그런 이유로 knotify4를 이용해서 xchat의 호출 알람을 시켜 줄 필요가 있다고 생각했고 그게 시작이 되었다고 생각합니다.

다시 정리해서, 소개하겠습니다. dbus를 사용해서 libnotify에 notification을 시켜주는 xchat용 플러그인 스크립트 입니다.

처음 디자인은 KDE를 위한 notification 이였기 때문에 knotify4에 직접적으로 dbus 호출을 시켜주는 형태로 작성된 코드였지만, KDE 4.4부터 knotify4가 libnotify와 같은 형식의 dbus 인터페이스를 지원하므로 하다보니 되었다… 라는 느낌으로 그놈도 지원합니다.

xchat-indicator의 존재를 올해 들어서야 알게 된 관계로… 유용한 플러그인은 아니라고 생각합니다.

그래도 만약 xchat-indicator가 C모듈이기 때문에 python을 할 수 있고 어느 정도 커스터마이징을 해서 사용하는걸 좋아하시는 분이라면 조금이나마 도움이 되지 않을까 하고 소심하게 생각합니다.

그저 만약 사용해 주신다면 감사할 뿐 입니다.

스크린샷

[attachment=1:28s4wpvd]xchat_notifier_kde.png[/attachment:28s4wpvd]

그놈과 xfce 등 notify-osd를 쓰는 경우는 이렇게 동작합니다.

[attachment=0:28s4wpvd]스냅샷101.png[/attachment:28s4wpvd]

note: 라이센스는 MIT/X11을 사용하니 자유롭게 수정해주세요 :D

note2: 작성한지 오래된 스크립트이므로 몇가지 문제가 생길 수 있습니다. 그런 경우는 따로 메일이나 identi.ca에서나 혹은 IRC에서도 괜찮으니 연락 부탁드립니다.

알림 기능이 오래 남아 있다면, 언제 호출 되었는지 시간도 알려주면 좋겠네요 :D

파이쏜 스크립 감사합니다.

최근 몇가지 사유로 자동 반응 기능이 필요해서 자동 반응을 추가한 스크립트를 사용하고 있었습니다.

그러던 중, 특정 채널에 접속하게 될 이유가 생겼는데 그 채널에선 스크립트 사용을 금지하고 있어 이를 해결 하는걸 겸해 버그 픽스를 하고 업데이트를 하자!는 생각에 새 업데이트 입니다.

== version 2.0.x
이번 릴리즈는 자동 반응 추가가 큰 특징으로 스크립트 내 CHANNEL_ANNOUNCE_TYPE을 통해 각 설정한 채널당 다른 방식으로 자동 반응이 동작하게끔 되어 있습니다. (덧붙여, ALL, 값은 값이 설정되지 않았을때 기본 동작값 입니다.)

특히 단순하게 기능 구현에 치우친 소스였던 1.0의 코드를 대부분 갱신, 혁신하여 const(사실은 CAPITAL LETTERS입니다만…) 상… 아니 변수를 통해 설정값을 수정할 수 있도록 구현했습니다.

그밖에 잡다하게 이것 저것 추가되어 있습니다만, 설명하자면 길어지는 관계로 아무쪼록…

[attachment=2:179wv1tt]xchat_libnotify_notifier.py.gz[/attachment:179wv1tt]

기존 버전에 호출시 시간을 표기하는 요청이 있어 메이저 업데이트를 겸해 backport 업데이트를 추가합니다. 이전 버전에 DATE_FORMAT 변수를 통한 시간 출력 기능 추가가 되었으며 위에 2.x 버전에 포함된 자동 반응 관련 스크립트와 잡다한 기능 추가가 빠져있습니다. 2.x에서 "ALL," : 0 설정값을 사용 하여도 동작결과가 같습니다.

이제 이런 느낌으로 동작합니다.
[attachment=0:179wv1tt]xchat.png[/attachment:179wv1tt]

파일은 여기에서…

[attachment=1:179wv1tt]xchat_libnotify_notifier_v1.py.gz[/attachment:179wv1tt]


2.x에서 주석처리가 잘못된걸 발견하여 업데이트 합니다.

[code:179wv1tt]
diff --git a/xchat_libnotify_notifier.py b/xchat_libnotify_notifier.py
index fd931f6..c079c33 100644
— a/xchat_libnotify_notifier.py
+++ b/xchat_libnotify_notifier.py
@@ -50,8 +50,8 @@ DATE_FORMAT = "%p %I시 %M분"

HIGHLIGHT_NOTIFY_TYPE =

0 : do not announce

-# 1 : announce if away
-# 2 : announce if away (use notice)
+# 1 : announce if away (use notice)
+# 2 : announce if away

3 : announce all (use notice)

4 : announce all

CHANNEL_ANNOUNCE_TYPE = {"linux" : 1 , "ALL," : 4}
[/code:179wv1tt]

위의 diff를 적용해 주시거나 1과 3이 notice를 사용하는 설정값, 2와 4가 사용하지 않는 설정값 정도로 이해해 주시면 감사하겠습니다.