묻고 답하고
안녕하세요.
660c 유저입니다.
fn + backspace -> delete
fn + insert -> home
fn + delete -> end
다음과 같이 매핑 하려고 하는데 SharpKey나 KeyTweak경우
fn + 다른 키 처럼 두 개의 키를 인식하지를 못하네요.
(제가 못하는 건지)
혹시 방법이 있을까요?
체리 스탠다드 청축
체리 컴팩트 청축
포커2 적축
해피해킹 라이트2
해피해킹 프로2
레오폴드 660C
레오폴드 660M 청축
MONSGEEK M1 우뚜게황
안녕하세요. 루팡3세님.
제가 알기로 fn키를 키매핑 프로그램으로 매핑하는 것은 불가능합니다.
댓글로 주신 링크에 가보았으나 삭제가 되어 내용을 확인할 수 없습니다만,
잘못된 지식에 근거한 링크가 아닌가 의심됩니다.
이유는,
키매핑 프로그램의 원리가
OS 상태에서 인식되는 키값을 다른 키값으로 매핑하는 데 있기 때문입니다.
예를 들면,
del 키를 입력하면 특정 스캔코드 값이 나오는데,
이 스캔코드 값을 backspace의 스캔코드 값으로 매핑해주면,
del 키 입력시 backspace 처럼 작동하게 됩니다.
문제는,
fn키는 특정 스캔코드값을 발생시키지 않고,
특정 키와 같이 눌렀을 때 특정 스캔코드값 하나 만을 발생시킵니다.
즉, fn키 단독으로 스캔코드 값이 발생하지 않습니다.
따라서 fn키를 키매핑하는 것은 불가능합니다.
660c를 통해 예를 들어보겠습니다.
backspace키를 눌렀을 때 backspace키의 스캔코드 값이 발생합니다.
이 값을 임의조작하여 스캔코드 값을 발생시키도록 변경이 가능합니다.
ctrl + backspace를 누르면,
ctrl의 스캔코드 값과 backspace의 스캔코드 값이 두 개가 발생하여
이 두 개의 스캔코드 값을 캐치한 후 하나의 스캔코드 값으로 매핑 또한 가능합니다.
그러나
fn + backspce를 누르면, backspace의 스캔코드 값만 발생시킬 뿐
fn키의 스캔코드 값과 backspace 스캔코드 값 2개가 발생되는 것이 아니어서
결국 backspace 하나의 키만 키매핑 시키는 것과 동일한 효과가 발생됩니다.
원래 fn키는 숨겨진 레이어의 키를 드러나도록 하는 역할만 할 뿐
실제로 존재하는 키가 아닙니다. (OS 상태에서 존재하지 않는다라는 의미입니다.)
fn키의 역할은 이미 펌웨어 단계에서 결정되는 것이기 때문에 (즉, 하드웨어 단계)
OS 상에서 프로그램을 통해 이 부분을 변경시키는 것은 불가능합니다.
헷갈리는 원인이 바로 아래 부분 때문입니다.
660c에서 fn + < 를 누르면 end키로 작동합니다.
fn + < 를 눌렀을 때,
fn의 스캔코드 값과 <의 스캔코드 값 두 개가 발생되는 것이 아니라
end키의 스캔코드 값만 발생됩니다.
따라서 fn + < 를 키매핑 하는 것이 아니라
실제로 end 키만 키매핑 하게 되는 것입니다.
fn키의 스캔코드 값이 발생되지 않는 사실을 모르는 경우
fn + < 에서 발생시키는 두 개의 스캔코드 값을
하나의 스캔코드 값으로 매핑시킨다고 착각하는 것이 충분히 가능합니다.
실제로는 fn + <를 눌렀을 때
end키의 스캔코드 값 하나만 발생될 뿐입니다.
660c의 경우 재밌는 것은,
위와 같이 키매핑하는 경우
fn + →를 누를때 end 키의 동일한 스캔코드 값이 발생되기 때문에
fn + →를 누를때도 end 키를 키매핑으로 변경한 값이 동일하게 적용되게 됩니다.
질문 주신 부분을 살펴봅시다.
fn + backspace는
앞서 말씀 드렸듯이 660c에서 backspace일 뿐입니다.
펌웨어상 fn + backspace를 눌렀을 때 드러나는 키는 없습니다.
그래서 fn키는 아무역할도 하지 않고, backspace 키만 작동합니다.
fn + insert 역시 마찬가지입니다.
fn + delete도 마찬가지입니다.
아래 그림을 참조해주시기 바랍니다.
(이미지파일 출처: http://leopold.co.kr/?doc=cart/item.php&it_id=1389148082)
결국 키매핑 프로그램을 이용해 키매핑이 가능한 것은
위 그림에서 fn키를 제외한 키들 뿐인 것입니다.
사실 660c는
키매핑으로 확장해서 키를 사용하기에는 주어진 스캔코드값이
너무 적습니다.
해피 보다 키 숫자는 많은데도,
키매핑으로 활용할 수 있는 키는 더 적지요.
이 제한된 확장성은
미니키보드인 660c의 결코 작지 않은 단점이라고 볼 수 있습니다.
(저는 해피와 660c 모두 보유중인데,
660c를 처음 사용했을 때 이 점이 매우 아쉬웠습니다.
660m이라든가 다른 660시리즈도 마찬가지입니다.)
반면에 커스텀 미니키보드는
펌웨어를 쉽게 변경하는 것이 가능하기 때문에
기성품 미니키보드보다
키를 활용할 수 있는 확장성이 훨씬 크지요.
만약 기성품에서도 펌웨어 변경 외에
fn키를 조작하는 것이 가능하다는 어떤 소스가 있으면
링크나 자료 주시기 바랍니다.
저도 한 번 읽고 공부해보겠습니다.
와 우문현답이네요 ㄷㄷ 감사합니다 게토님 덕분에 잘 이해하였습니다.
fn키가 스캔코드 값이 없어서 아쉬웠는데
링크에서는 특정 dll을 추가하면 fn키의 스캔 코드 값을 가져올 수 있고
그럼 AutoHotKey를 이용해서 매핑시킬 수 있다는 것 같습니다.
근데 dll도 없고 글쓴이도 깜깜무소식 ㅜㅡ
좀 더 찾아보니 위에서 설명한 대로 해서 됐다고 AutoHotKey script도 올려놓은 분들도 있고 해서
일단은 fn키 인식으로 찾아보고 있었습니다.
fn키가 맥 키보드나 노트북 키보드에도 있어서 자료는 많은 것 같은데
저도 계속 알아보겠습니다.
다시 한번 힘들게 쓰신 리플에 감사드립니다.
문제를 해결하지 못하고
단순히 일반론을 전해드리는 답변이라
죄송한 마음이 앞섭니다.
이미 알고 계시는 내용이 대부분이었겠지만,
조금이나마 키매핑을 이해하시는데
도움이 되었다면 다행입니다.
키패드나 다른 보조 도구 도움 없이
미니키보드 하나로 모든 조작을 다 하고 있는 저에게
Fn키는 정말 중요합니다.
그래서 제 이미지 마크도 미니키보드의 핵심인 Fn키 입니다.
성공가능성에 대해서 회의적으로 생각하고 있습니다만,
dll이나 driver 조작을 통한 방법 위주로
성공사례가 있는지 검색해보도록 하겠습니다.
(dll이나 driver조작은 사실 그 자체로 위험성이 내포된 방법이기도 합니다.
일부 노트북의 경우 키매핑하는 사례를 예전에 어디서 본 것 같기도 합니다만,
노트북 키보드의 특수한 case 였던 것으로 기억하고,
일반 미니키보드의 Fn키 문제와는 다른 case 였던 것으로 기억됩니다.)
만약 발견하거나 유의미한 정보가 있다면
쪽지로 알려드리겠습니다.
http://www.autohotkey.com/board/topic/282-fn-key-on-a-notebook/
http://www.autohotkey.com/board/topic/27841-remapping-the-fn-key-a-solution/
일단 저는 이렇게 fn키 매핑으로 찾아보고 있습니다.
fn키의 경우 일반 노트북이나 맥에서도 많이 사용되고 있어서 자료량 자체는 많더군요.
저도 간략히 경과보고 드립니다.
일단 driver 조작해서 성공 사례가 있나 찾아봤는데
660c가 비교적 최근 키보드라서 그런지 검색시 안나오더군요.
그래서 다시 AutoHotKey.com에서 검색을 해서
성공 사례가 혹시 있는지 찾아보았습니다.
추천하신 두 링크는 Autohotkey.com에서 검색을 통해
저도 찾아서 모두 읽어본 링크입니다.
(아주 자세히는 아니고 간략하게요.)
첫번째 링크는 제가 보기에는 이렇습니다.
특정 노트북 키보드의 경우,
제조사에서 제공하는 드라이버와 키보드 프로그램을 통해
간혹 OS에서 시그널이 잡히는 키가 있습니다.
그러한 경우는 일반 미니키보드 Fn키에 해당되지 않는 case라서요.
일반 미니키보드는 아시다시피 별도 프로그램을 사용하지도 않고,
드라이버도 일반적인 것을 쓰지요.
어쨌든 일반 키보드에 해당되는 성공 사례는 보이지 않습니다.
그리고 결국 두번째 링크처럼 몇몇 분은 DLLCall을 들여다본다는 댓글이 보입니다.
(시간나면 다시 한 번 체크해보겠습니다.)
두번째 링크는,
Veil이라는 분의 링크가 다 깨져서 성공했는지 알 수가 없죠.
링크를 따라가다보면 이 Veil이라는 분은
Micha라는 분이 만드신 스크립트에 도움을 받은 것으로 보입니다.
Micha라는 분은 AutoHotKey 메뉴얼에서 제공하는
special key를 다루는 추천 방법 중에
DLLCall을 이용한 방법을 시도한 것 같습니다.
그런데 Micha라는 분이 올리신 자료 링크도 다 깨집니다.
몇 몇 분들이 받아서 해봤는데 error난다고 안 된다고 언급하신 게 보이구요.
그래서 결국 막혔습니다.
(이 링크도 시간 나면 다시 분석해보겠습니다.)
저도 주로 AutoHotKey.com에서 검색해서 찾아보는 중입니다.
FN키가 하드웨어 레이어에서 동작하는 거라 불가능 할 것 같다는 결론을 내렸습니다.
DLLcall이니 뭐니 어차피 소프트웨어인데 하드웨어에서 신호가 끝나는 키에 소프트웨어로 인식한다니 말도 안되는 것 같습니다
그냥 적응해야겠네요.. ㅜㅡ
사실 전 처음부터 불가능할 거라고 생각했고,
제 첫 댓글이 바로 그런 점을 알려드리려고 쓴 것인데요.
그래도 혹시 모르니 한 번 찾아봤습니다.
(펌웨어나 드라이버 조작이 있을지도 모르니까요.)
오랜만에 Autohotkey와 Fn키 공부 좀
살짝 더할 수 있는 계기가 되었습니다.
저는 미니키보드 마니아라서
이미 수 년 전에 결론을 내렸습니다만,
UNIX 배열을 타겟으로 나온 미니키보드인 해피가
윈도우 배열을 타겟으로 나온 다른 미니키보드들 보다
사용상 더 편합니다.
바로 그 점이 아이러니 하지요.
레폴 660시리즈는 660C를 통해 작년에 처음 접했는데,
키감은 높은 점수를 주고 싶습니다만,
미니키보드의 매우 중요한 속성 중 하나인
확장성에 따른 사용 용이성 측면에서는
점수를 낮게 주고 싶습니다.
(해피랑 별로 큰 차이 없지 않느냐 라고 생각하실 수도 있지만,
출시년도 차이를 감안하여 점수를 낮게 줄 수 밖에 없습니다.)
그냥 텐키리스 키보드 위쪽 라인과 옆쪽 라인을 조금 잘라 놓은 정도랄까요....
미니키보드에 대한 고민이 부족한 제품입니다.
세컨 레이어 레이아웃을 살펴보면,
해피해킹 라이트 조금 흉내낸 정도에 불과합니다.
미니키보드는 특성상
풀배열이나 텐키리스 등의 도움없이 단독으로 사용한다면,
결국에는 레이아웃의 확장성이 중요할 수 밖에 없게 되는데요.
기성품과 커스텀 쪽 모두
레이아웃의 확장성 쪽을 염두해두면서
발전해가고 있는듯 보입니다.
그래서 아마도 수 년 안에 풀키 레이아웃 변경이 가능한
기성품이 나오지 않을까 싶습니다.
그렇게되면 이러한 고민을 하지 않아도 되지요.
http://www.autohotkey.com/board/topic/27841-remapping-the-fn-key-a-solution/ 여기 보는 중