[KDE Tip] 단축 설정의 강력함

segfault의 이미지

KDE의 최고 장점 중 하나로는 자유로운 단축 설정이 가능하다는 점이 있습니다.
KDE에서는 상당히 유연한 동작 설정이 가능합니다. 어플리케이션을 시작하는것부터 시작해서 키보드 입력 까지 단축키나 마우스 제스츄어 등의 동작으로 가능합니다. 단축 설정은 KDE 시스템을 조종할수 있는 가장 강력한 수단 중 하나입니다.

여기서 KDE의 Input Actions를 이용하여 KDE의 IRC 클라이언트 Konversation을 트레이에 넣거나 숨기는 단축키를 구현해 보겠습니다.
보통 amaroK나 Kopete 같은 경우는 Global Shortcut를 이용하여 트레이에 넣거나 숨기는 기능을 사용할 수 있습니다만, Konversation의 경우는 그 기능이 단축키로 제공되지 않기 때문에 따로 단축키를 구현해야 합니다.



amaroK의 전역 단축키 설정



Kopete의 전역 단축키 설정

Input Actions에서는 단축키 뿐만이 아니라 마우스 제스쳐, 창 이벤트, 심지어는 음성 인식까지 트리거로 사용할 수 있습니다. 그리고, 취할수 있는 동작 역시 자유롭게 설정 가능합니다. 어플리케이션을 시작한다던지, URL을 연다던지, 특정 창을 활성화시킨다던지, 키보드 입력을 한다던지, DCOP 명령을 호출하는것 등의 동작이 가능합니다. 그리고, 트리거 발생 조건을 명시하는 것 역시 가능합니다.

(영어판 기준으로 설명하겠습니다.)

KDE Control Center에서 Regional&Accessibility에서 Input Actions를 선택합니다.

우선, konversation 창을 열 이벤트를 정의해야 합니다. New Action 버튼을 누르고 Action name을 적당히 설정해 줍니다. 저는 konversation_show라고 넣었습니다.

Trigger 탭으로 가서 New 버튼을 눌러서 입력 방식을 선택합니다. 단축키, 마우스 제스츄어, 음성 인식 등의 방식이 사용가능합니다. 여러개의 트리거를 정의하는 것 또한 가능합니다. 적당히 하고 싶은 대로 선택합니다.

Actions 탭으로 가서 트리거가 발생했을 경우 취할 행동을 결정합니다. New 버튼을 눌러서 DCOP Call을 선택합니다.
참고로 DCOP는 KDE의 프로세스간 통신 체계입니다. 거의 모든 KDE 어플리케이션들을 DCOP를 통해 조작할 수 있습니다. Konversation의 경우는 트레이에 넣거나 숨기는 단축키는 없지만, DCOP 인터페이스를 통해서 그 기능을 제공하기 때문에 이같은 설정이 가능합니다.

DCOP 설정 화면에서 다음과 같이 입력합니다. 참고로, KDCOP를 실행하면 지금 연결되어 있는 모든 KDE 어플리케이션의 DCOP 인터페이스를 확인해 볼 수 있습니다. Try 버튼을 눌러서 현재 입력한 DCOP 명령이 올바른지 확인해 볼 수 있습니다.

하지만, Konversation 창이 이미 열려 있을 때 이 단축키를 실행하는건 의미가 없습니다. 그래서 '현재 Konversation 창이 열려 있지 않을때 동작을 실행한다'는 조건을 달아 주어야 합니다.
Conditions 탭으로 가서 Add -> Not을 선택합니다.

Not를 선택한 후 Add -> Existing Window를 선택합니다. 그럼 대화 상자가 뜨는데, Existing Window 조건을 Not과 연결시키기 위해서는 Add in Group을 선택하면 됩니다.

그럼, 존재 유무를 검사할 창을 명시해 주어야 하는데, 나타나는 대화상자에서 New -> Simple Window를 선택합니다.

여기서 Window title에 Contains를 선택하고, 다음과 같이 입력합니다.

이제 konversation 창을 나타나게 하는 이벤트는 정의 완료했습니다.
이제 konversation 창을 숨기게 하는 이벤트를 정의할 차례입니다.

New Action으로 새로운 동작을 만듭니다. 이름은 적당히 합시다. 저는 konversation_hide로 했습니다.

그리고 Trigger 설정은 아까 설정했던것과 똑같이 합니다.

Action 탭에서 DCOP Call을 만든 다음, 다음과 같이 입력해 줍니다. konversation 창을 숨기는 DCOP Call입니다.

이번에는 konversation 창이 열려 있을때라는 조건을 달아줘야 합니다. Condition 탭에서 New -> Existing Window를 선택합니다.
역시 아까 해줬던 것과 똑같이 입력해 줍니다.

이렇게 한 다음 설정을 적용시키면 끝입니다.
마지막으로 제대로 작동하는지 테스트해 봅니다.

Forums: 
su_jeong의 이미지

자기 전에 들른거라 다는 못읽어보았습니다만, 일단 유용한팁 감사히 보겠습니다.
전에 이런류로 캡쳐해서 메뉴얼을 꾸며본 경험으로... 시간이 엄청 걸리던데 이렇게 친절하게 꾸미시다니 시간 많이 걸렸을것 같아요.
수고하셨어용 :oops:

착하게살게요. :)

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.