한자키를 Alt 키로 사용?

2007. 12. 13. 09:33 컴퓨터/컴퓨터 이야기
이 글의 결언지루하게 길어지는 글에 대해서 결과를 먼저 궁금해 하시는 분이 계실 듯하여 먼저 말씀을 드립니다. 한자와 한영키로 Alt키로 대응하여 메뉴를 선택하는데에는 사용할 수 있습니다만 Alt-Tab이나 Alt-[다른 키] 와 같은 조합 키 구성은 안됩니다. 그 이유는 글에 올렸습니다. 혹 방법을 알고 계시는 분은 댓글로 말씀 주시면 대단히 감사하겠습니다.

제가 사용하는 세진 기계식 키보드 SKM-1080은 103키로 윈도우키가 없습니다. 윈도우키 없이 사용하는 것은 이미 습관이 되서 문제가 없는데, 문제는 Alt 키입니다. 매우 아쉽게도 SKM-1080의 Alt 키가 Ctrl 키 바로 옆에 붙어 있습니다.

사용자 삽입 이미지

1080만 사용했을 때에는 문제가 없는데 다른 키보드를 사용할 때면 Alt 키를 누른 다는 것이 자꾸 윈도우키를 누르게 됩니다. 이렇게 엉뚱하게 누를 때마다 1080의 키 배열이 Ctrl-한자-Alt 키였으면 좋았을 텐데 하는 생각을 하게 됩니다. 한자와 한영키가 없는 101키 같은 경우에도 대부분이 Ctrl과 Alt키가 떨어진 것으로 알고 있습니다. 리얼포스도 그렇구요.

이런 이유로 Ctrl-한자-Alt 로 배열했으면 Alt 키가 다른 키보드와 조금은 유사한 위치에 있을 테고 다른 키보드를 사용할 때 적응이 빠르지 않을까 생각합니다. 아마도 1080에서 키캡의 색상을 맞추거나 키 사용의 편의를 위해 지금의 배열이 선택되었을 것이라 생각됩니다.

지금까지는 별다른 방법이 없어서 그냥 참고 사용해 왔는데 Windows 2000 이나 XP 이상의 버전에서는 레지스트리의 값만 변경하면 키보드의 키 위치를 변경할 수 있다는 것을 알게되었습니다. 가장 유명한 방법은 잘 사용하지 않는 Caps Lock키를 Ctrl 키로 변경해서 사용하는 것이더 군요.

실제로 이렇게 사용하시는 분의 얘기를 들은 적이 있습니다. 지금의 Ctrl키 위치보다 Caps Lock키를 사용하면 손가락이나 손목을 비틀 필요가 없어 매우 편리하다고 합니다. 자주 사용하는 Ctrl-A, Ctrl-C, Ctrl-X, Ctrl-V만 해 보아도 손목을 비틀 필요가 없어 편합니다. 특히 Q,W,E,R 쪽의 키를 누를 때에는 매우 편하죠.

변경하는 방법도 프리웨어 KeyTweak 프로그램을 이용하면 간단하게 바꿀 수 있습니다. 사용하는 방법이 쉬울 뿐만 아니라 이미 유명해진 프로그램이라 웹을 검색해 보시면 쉽게 설명된 사용방법이 많이 나와 있습니다.

KeyTweakNaVI님께서 KeyTWeak에 대한 자세한 설명이 있는 링크를 알려 주셔서 내용을 추가합니다.

여름하늘::키보드의 키를 내 마음대로 설정하게 해 주는 KeyTweak

역시 여름하늘님, 매우 자세하고 자상하게 설명을 올려 주셨네요. NaVI님, 고맙습니다. ^^

그러나 프로그램을 설치하거나 자주 사용하지 않는 프로그램을 꺼리시는 분이 계시죠. 이런 분들은 프로그램을 사용할 필요 없이 직접 레지스트리를 수정하시는 방법도 있습니다.

그런데 이 방법으로는 Caps Lock 키를 Ctrl로, 오른쪽 Ctrl 키를 한자키로, 오른쪽 Alt 키를 한영 변환키로 변경하는 것은 되는데, 유독 한자키와 한영키를 Alt 키나 Ctrl 키로 변경하는 쉽지 않더군요.일단 레지스트리를 변경하는 방법으로는 한자와 한영키가 반응을 하지 않습니다.

정리하여 말씀드리면
  • 다른 키를 한자와 한영키로 변경하여 사용할 수 있으나
  • 한자와 한영키를 다른 키로 변경하는 것은 안 됩니다.

대신에 AutoHotKey를 이용하는 방법이 있습니다. 한자키가 눌리면 AutoHotKey가 중간에 감지해서 Alt 키로 바꾸는 것이죠.

그러나 이 방법은 문제가 있습니다. 한자키가 눌리면 Alt키가 눌리도록 명령을 내리는 것은 좋은데, 그리고 잘 됩니다. 그러나 한자키를 놓으면 Alt키도 놓으라는 명령을 전송해야 하는데 이게 안됩니다. 일단 AutoHotKey가 한자와 한영키가 누르는 것은 감지하는데 키를 놓는 것을 감지하지 못합니다. 참고로 AutoHotKey에서 한자의 스캔코드는 1F1입니다.

즉, 아래와 같은 AutoHotKey 명령이 안된다는 것이죠.

SC1F1::
   Send, {LALT down}
   KeyWait,SC1F1
   Send, {LALT up}
   return

KeyWait는 특정키가 release, 즉 키를 놓았을 때 까지 대기하는 함수입니다. 매우 유영한 함수이지만 다른 키는 모두 정상적으로 감지해 내는데, 유독 한자키와 한영키에 대해서는 감지를 못합니다. 그래서 다음의 {LALT up}키를 Send하지를 못하죠.

LALT를 눌르게 했으니까 키를 놓게도 명령을 보내야 하는데 그렇게는 못하니까 하는 수없이 아래에서 처럼 잠시 후에 {LALT up}을 전송할 수 밖에 없습니다.

SC1F1::
   Send, {LALT down}
   Sleep, 300
   Send, {LALT up}
   return

이렇게 하면 프로그램의 메뉴 선택에는 사용할 수 있습니다. 그러나 Alt-Tab 과 같이 다른 키와 조합해서 사용할 수 없습니다. 왜냐하면 Alt키를 누르자 마자 놓는 꼴이 되어 버리기 때문에, 실제로는 Alt키를 눌렀다가 놓은 후에 Tab키를 누르는 꼴이 되기 때문입니다.

그렇다면 AutoHotKey의 문제인가해서 직접 Keyboard Hooking 프로그램을 작성해 보았습니다. Hooking 프로그램이란 윈도즈에서 키보드가 눌리거나 마우스가 움직이는 등의 정보가 들어 오면 미리 준비된 명령에 따라 실행되게 되어 있는데, 이 명령을 실행하는 곳에 가기 전에 마치 길가에서 검문하듯이 먼저 데이터를 꺼내보고 변경하는 프로그램을 Hooking 프로그램이라고 합니다.

겨우 완성해서 확인해 보니 다른 키는 모두 키를 놓는 것 까지 이상없이 확인이 되는데, 한자키와 한영키는 눌린 시점은 알 수 있어도 놓는 것은 감지가 안 되네요. 역시 다른 키와 다르게 처리되는 것으로 생각됩니다.

하기는 다른 키는 계속 누르고 있으면 연속 누름이 되지만 한자와 한영키는 아무리 누르고 있어도 연속입력이 안되죠. 이것이 키보드 드라이버단에서 처리하는지, 아니면 키보드의 메인 컨트롤에서 처리하는지는 모르겠습니다만 여하튼 다른 키와는 처리 방식이 다른 것으로 생각됩니다.

매우 아쉽지만 Alt-Tab 말고도 다른 조합키를 많이 사용하고 있기 때문에 여기서 포기할 수 밖에 없었습니다. jwBrowser만 하더라도 Alt-1~9 기능은 매우 애용하거든요. ^^ 이것만 된다면 Ctrl-한자-Alt, 그리고 Alt-한영-Ctrl 이렇게 배치해서 사용할 수 있었을 텐데 매우 아쉽습니다.
이 댓글을 비밀 댓글로
  1. 제가 직접 써본 건 아니라 확실하지는 않지만, swapkeys라는 프로그램이 있는 것 같더군요. 밑질 것도 없으니 한번 시험해보심이? (http://www.swapkeys.com/)
    • 별 관계는 없는 이야기지만, 제 경우에는 미국에서 오래 있었던 관계로 한/영 및 한자키가 없는 키보드에 익숙하다보니(왼쪽 alt, 오른쪽 ctrl로 한/영 및 한자키 기능이 가능하더군요) 여기서 산 키보드는 똑같은 내추럴 4000이라도 한/영 및 한자 키가 무척 거슬리는 느낌...;;
    • 좋은 프로그램을 소개해 주셔서 고맙습니다. 오! 상용 프로그램이군요.
      혹, 특별한 어떤 기능이 있을지 모르겠군요. ^^

      저도 한영은 Shift-Space를, 한자는 Ctrl-Space를 사용하기 때문에
      한영키와 한자키는 별로 도움이 안되고 괞히 스페이스 키만 작게 만들고
      키보드만 복잡하게 만드는 것 같아서 싫어합니다. ^^
    • 혹시 기계식 키보드(Unicomp, 미국에서 구입, 당연히 한/영 및 한자키 없음, 윈도우키도 없는 진짜 클래식...;;) 사실 분 있으심 제 블로그로... (광고로 문제가 되면 당장 삭제를...)
    • 문제되지 않습니다요. ^^
      올려진 사진에는 발광 키보드만 올려진 것 같은데 맞죠?
      Unicomp 기계식 키보드는 사진으로라도 보고 싶습니다. ^^
    • 참고용으로 비슷한 모델(제가 가진 모델은 단종된 듯 하군요)의 사진을 올렸습니다.
    • ju2fafa
    • 2007.12.13 11:16
    이미 찾아보셨겠지만.
    혹시나 해서 링크 남겨봅니다.
    http://www.kbdmania.net/
    제가 정성이 부족해서 링크 남기는 것이 한계인 점 이해해주시길..^^
    • 아우 정성이 부족하시다니요, 좋은 사이트를 알려 주셔서 고맙습니다. ^^
      게시판에서 다른 분의 글을 찾아 봐야 겠습니다. ^^
    • 두운초온
    • 2007.12.13 11:17
    뚱단지 같은 말씀을 드립니다.
    길석님이 해결 못하시면 그것 해결이 일단 어렵다고 봅니다.
    아깝지만 다른 키보드를 컴에 연결하시고 키보드를 분해하여 회로를 bypass/exchage해 보시면 어떤가요!
      • ei
      • 2007.12.13 12:36
      전혀 불가능으로 보여지지 않는데요.
      충분히 극복가능한문제로 보이고 정안되면 드라이버를 새로 개발하면되죠. 키지정이 가능한 드라이버를 개발하거나 ALT 와 한자키의 맵을 바꾼상태로 개발 하면 되겠죠. 이도저도 싫다면 원초적인 방법도 있죠. 키보드를 뜯어서 ALT키의 스위치배선을 한자키쪽으로 우회시키면 되죠.


      이런 복잡한방법말고 그냥 유틸리티 프로그램 수준에서 해결될 방법이 있으리라고 봅니다.
    • 두운초온님) 하하, 제가 잘 몰라서 못하는 것일 수 있습니다. ^^
      웹을 검색해 보니 정말 alt키와 한자키의 배선을 바꾸라는 말씀도 있더군요.
      그런데 자신이 없어서...^^;
    • ei님) 드라이버단에서 가능하다면 어느 분께서 만들어 주셨으면 좋겠습니다.
      의외로 이렇게 바꾸는 것을 원하시는 분들이 많더군요.

      그리고 말씀과 같이 유틸리티 차원에서 처리해 주는 것이 가장 깔끔하지 않을까
      생각합니다. 키 배선은 변경하고 싶어도 하드웨어를 모르는 사람에게는
      매우 힘든일이라서 말이죠. ^^;
    • NaVI
    • 2007.12.13 12:04
    KeyTweak에 대한 좋은 글이 있더군요.
    http://skysummer.com/417
    저도 이글 보구 거의 쓸모없는 Caps Lock키를 Ctrl키로 바꿔쓰고 있답니다. 무지 편해요. ^^
    • NaVI님, 좋은 글을 소개해 주셔서 고맙습니다.
      말씀해 주신 링크를 본문에 추가했습니다. ^^
    • 으흠
    • 2007.12.13 15:55
    안녕하세요~ 본문과는 조금 다른 질문인데요..
    desyedit를 사용중인데... 이 에디터가 가상공백을 허용하잖아요.
    근데 다른 에디터에도 이 가상공백 기능을 지원하는 에디터가 있나요?
    여러가지 에디터를 써봐도 도통 찾을 수가 없군요..
    울트라 에디터는 너무 무겁고...혹시 가상공백 기능을 지원하는 다른 에디터 아는거 있으신지?
    제가 에디터에 관심이 많아서요~
    • 국내 프로그램으로 매우 유명한 AcroEdit가 있습니다.
      말씀하신 가상 공백 기능 뿐만 아니라
      울트라와 DesyEdit와는 다른 또 다른 매력이 있는
      매우 훌륭한 에디터입니다.

      http://www.acrosoft.pe.kr/

      링크를 참고하세요. ^^
    • ...저, 가상 공백이 뭔가요?
    • 네, choish님. 가상 공백은 커서가 위나 아래로 이동했을 때,
      그 위치가 문자의 끝으로 가는 것이 아니라 곧장 올라 갈 수 있도록
      짦은 행일 때에도 마치 긴 문장이 있는 것처럼 처리해 주는 것을 말합니다.

      예를 들어서 아래와 같은 문장이 있습니다.


      jwBrowser
      jwFreeNote
      jwBrowser 과 jwFreeNote는 메너웨어입니다. |(캐롯)

      이와 같은 문장에서 캐롯이 "메너웨어 입니다."의 문장 끝에 있다고 하겠습니다.

      이 때, 화살표 키중 위로 이동하는 키를 누르면 윈도우 메모장 같이 가상 공백을
      지원하지 않는 프로그램에서는 캐롯이 바로 윗 문장의 끝으로 이동하지만
      울트라에디터, 아크로 에디트, 데이지 에디트 같은 경우
      문장 끝의 가상 공백 기능을 제공하므로 캐롯이 바로 위로, 즉 수직으로 이동할 수 있습니다.

      말로 설명하려니까 힘드네요. 이해가 되시는지 모르겠습니다. ^^;
    • 아... 그거군요. (그런데 전 그거 오히려 불편하던데...?^^;;)
      • 지나가다
      • 2009.04.20 21:41
      뭔가했더니 열(컬럼)모드를 말씀하시는거였네요. 쥔장님 설명 한참 읽어보고 알았습니다.^^;;
    • jw매냐
    • 2007.12.13 17:54
    제가 사용해보지 않아서 모르겠지만...
    http://blog.daum.net/miller2009/5628045
    키 스캔을 해도 안되는것인가요?
    • KeyTweak을 사용해 보았습니다만 안되더군요.
      우선 KeyTweak에서 키의 스캔 코드를 구하는 기능에서
      한자키와 한영키는 아예 찾지를 못합니다. ^^
  2. 안녕하세요 길석님, 본문과는 다른 jwFreeNote에 대한 의견입니다.
    새 노트를 생성할 때 만들어지는 노트명이 "폴더명_01" 이렇게 입력되어있는데
    만들어질 때 기본 노트명을 "071213 01 " 이렇게 입력해놓을 수는 없을까요? ^^;
    YYMMDD No 이런 식의 구문으로 사용자가 선택해서 노트명을 넣을 수 있다면 매번 노트를 만들 때마다
    이런 날짜로 노트명을 만들어 입력하는 게 조금 편해지지 않을까 싶습니다.
    • 폴더에 맞춘 이유는 아무래도 폴더와 관련있는 노트를 만들기 때문이라서
      그렇게 했습니다. ^^;
    • jw매냐
    • 2007.12.13 20:50
    뇌입어에 "한자 한영 키 변경"라고 물어보니깐...
    http://blog.naver.com/jooken?Redirect=Log&logNo=130022857204
    http://www.kbdmania.net/board/zboard.php?id=tipntech&no=400
    등등...
    도움이 될 수 있을거 같은데..
  3. 폴더나 노트를 만들 때 환경설정에서 폴더명에 대한 설정을 할 수 있게 하는 것은 어떻습니까? ^^;
    • 좋은날
    • 2008.05.22 11:10
    누군가는 만들겠죠 시간이 해결해줄듯 ^^
    • 러블리하트
    • 2009.08.03 16:49
    아 어쩐지 레지스트 건드려두 안되구나...
    저두 Ctrl- 한자-Alt 키 배열로 만들고 싶어서 3시간째 만져 보다가
    이글 보고 포기요 ㅠ
    한자랑 Alt 바꾸기가 싶지 않군요 ㅠ
    혹시나 새로운 방법 찾으셨다면 글좀 남겨주세요 ^^*
    • 원주r
    • 2016.10.02 05:13
    같은 고민을 하셨던 분이 참 많았네요 흑흑

    이게 KeyUp이벤트가 안된다는게 치명적이더라고요...
    하필 LAlt키는 조합이 가능한 키라서....
    저도 집념을 발휘해서 좀더 해보고 결과 있으면 공유드릴께요
error: Content is protected !!