VIA 꿀팁 공유관

제목[전** 고수] 하나의 조합키는 매크로 말고 "Any"키를 쓰자!2023-08-07 11:12
작성자 Level 10
VIA의 매크로 기능을 활용하면, 
여러 단계에 걸친 일들을 단순하게 처리할 수 있어 매우 편리합니다.

그렇지만 매크로는 그 용도 특성 상 여러가지 명령을 키보드 ROM에 저장 해야하고 
이에따라 용량이 크기 때문에 최대 16개까지만 지정이 가능하다는 단점이 있습니다.

하지만 키보드를 사용하다가보면 대다수의 경우,  
자주 쓰는 단축키 몇 개를 저장해두고, 이를 상황별로 조합해서 쓰는 경우가 대다수입니다.
ex> 부분 스크린샷[win+shift+s] + 범위 설정 + 붙여넣기[shift + insert or ctrl + v]
그렇지만 갯수가 제한된 매크로를 각각 단축키 하나의 용도로 할애하기는 조금 아깝죠. 

이런 경우를 위해 via에는 매크로를 지정하지 않고 
짧은 단축키를 키에 할당하는 "사용자 설정" 키가 있습니다.

그게 SPECIAL탭에 있는 ANY키 입니다.
1691055098409.png
 



 
[ANY 키 사용법]

 우선 키보드를 via에 인식시키고 해당 위치에 가면 이 키만 밝게 표시되어있어 특수한 키라는 것이 눈에 딱 띄지요. 
하지만 이걸 원하는 키에 할당을 하려고 하면...
1691055659839.png
 
갑자기 알림창 하나가 뜨면서 뭘 입력하라고 합니다.
여기에는 QMK 펌웨어에서 지원하는 키들의 코드를 적어놓는 곳입니다.

각 키에 해당하는 코드는 qmk 공식 doc 사이트를 방문하면 
"각 상황별 키 코드"를 확인 할 수 있습니다.

여기서 많이들 헤맵니다. 
대개 "()" 밖에 키코드를 적고 그 안에 다른 걸 적으면 "같이 누른 효과"라는 뉘앙스 때문에 ()를 오용할 가능성이 큽니다.
정확하게는 "()"는 특정 키코드의 일부일 뿐, 키 조합에 단독적으로 쓰일 수 있는 기호가 아닙니다. 

예를 들어,
단독으로 "shift키만 사용할 때", 
-> KC_LSFT / KC_RSFT : 좌/우 쉬프트키 단독

다른 키를 누르기 전 "shift키를 누르고 있을 때" 
-> LSFT(다른 키코드) / RSFT(다른 키코드) : 좌/우 쉬프트 키를 누른 상태 

위와 같이 모디열의 경우, 
누른 상태와 단독 사용을 표현한 키코드가 다릅니다.

여기서 시도를 해보다가 안돼서 그냥 매크로로 넘어가는 경우가 많습니다.
1691059809177.png

[상황별 표현을 위한 키코드가 따로 있다. 제일 좌측이 풀코드, 중간은 별칭이다. 둘 다 사용해도 되지만, 없는 경우는 풀코드를 쳐야한다.]

그렇다면 아까 예시로 적어두었던 부분 스크린샷의 단축키인, 

win키+shift키+s키의 경우에는 어떻게 할당하면 될까요?
win키(shift키(s키)) => 이런 형식이 되겠죠?

즉, 제대로 표현하려면,
LGUI(LSFT(KC_S))
-> 모든 키를 별개로 누르는 게 아니라 모디열의 경우 복합적으로 사용하기 위한 상태 표시를 위해 앞에 
   "KC_"를 생략하는 경우가 많다. 즉 아래 형식이어야 제대로 동작합니다.
1691060665888.png
 

KC_LGUI(KC_LSFT(KC_S))
-> 이러면 안먹습니다! 각 키가 눌린 상태임을 표현하는 코드가 따로 있었죠? 
1691060553367.png
 
그럼 할당을 해봅시다.
unnamed.png 
["입력한 것과 다른 데?"]

알고보니 왼쪽 win키와 shift키가 함께 눌려있는 상태를 표현하는 더 짧은 코드가 있어서 그걸 표시 했네요.
unnamed (1).png


위 예시와 같이 하나의 단순한 단축키를 만드는 것은, 
"Any"키를 활용하는게 갯수의 제한이 없다는 것에서 매크로를 활용하는 것보다 더 유용합니다.

앞으로 via를 활용하시면서

매크로는 자주 쓰는 복잡한 기능 위주로,
자주쓰지만 간단한 단축키는 Any 키로,

원하는대로 사용하시는 게 어떨까요?

감사합니다!!

VIA 대회장

제목[전** 고수] 하나의 조합키는 매크로 말고 "Any"키를 쓰자!2023-08-07 11:12
작성자 Level 10
VIA의 매크로 기능을 활용하면, 
여러 단계에 걸친 일들을 단순하게 처리할 수 있어 매우 편리합니다.

그렇지만 매크로는 그 용도 특성 상 여러가지 명령을 키보드 ROM에 저장 해야하고 
이에따라 용량이 크기 때문에 최대 16개까지만 지정이 가능하다는 단점이 있습니다.

하지만 키보드를 사용하다가보면 대다수의 경우,  
자주 쓰는 단축키 몇 개를 저장해두고, 이를 상황별로 조합해서 쓰는 경우가 대다수입니다.
ex> 부분 스크린샷[win+shift+s] + 범위 설정 + 붙여넣기[shift + insert or ctrl + v]
그렇지만 갯수가 제한된 매크로를 각각 단축키 하나의 용도로 할애하기는 조금 아깝죠. 

이런 경우를 위해 via에는 매크로를 지정하지 않고 
짧은 단축키를 키에 할당하는 "사용자 설정" 키가 있습니다.

그게 SPECIAL탭에 있는 ANY키 입니다.
1691055098409.png
 



 
[ANY 키 사용법]

 우선 키보드를 via에 인식시키고 해당 위치에 가면 이 키만 밝게 표시되어있어 특수한 키라는 것이 눈에 딱 띄지요. 
하지만 이걸 원하는 키에 할당을 하려고 하면...
1691055659839.png
 
갑자기 알림창 하나가 뜨면서 뭘 입력하라고 합니다.
여기에는 QMK 펌웨어에서 지원하는 키들의 코드를 적어놓는 곳입니다.

각 키에 해당하는 코드는 qmk 공식 doc 사이트를 방문하면 
"각 상황별 키 코드"를 확인 할 수 있습니다.

여기서 많이들 헤맵니다. 
대개 "()" 밖에 키코드를 적고 그 안에 다른 걸 적으면 "같이 누른 효과"라는 뉘앙스 때문에 ()를 오용할 가능성이 큽니다.
정확하게는 "()"는 특정 키코드의 일부일 뿐, 키 조합에 단독적으로 쓰일 수 있는 기호가 아닙니다. 

예를 들어,
단독으로 "shift키만 사용할 때", 
-> KC_LSFT / KC_RSFT : 좌/우 쉬프트키 단독

다른 키를 누르기 전 "shift키를 누르고 있을 때" 
-> LSFT(다른 키코드) / RSFT(다른 키코드) : 좌/우 쉬프트 키를 누른 상태 

위와 같이 모디열의 경우, 
누른 상태와 단독 사용을 표현한 키코드가 다릅니다.

여기서 시도를 해보다가 안돼서 그냥 매크로로 넘어가는 경우가 많습니다.
1691059809177.png

[상황별 표현을 위한 키코드가 따로 있다. 제일 좌측이 풀코드, 중간은 별칭이다. 둘 다 사용해도 되지만, 없는 경우는 풀코드를 쳐야한다.]

그렇다면 아까 예시로 적어두었던 부분 스크린샷의 단축키인, 

win키+shift키+s키의 경우에는 어떻게 할당하면 될까요?
win키(shift키(s키)) => 이런 형식이 되겠죠?

즉, 제대로 표현하려면,
LGUI(LSFT(KC_S))
-> 모든 키를 별개로 누르는 게 아니라 모디열의 경우 복합적으로 사용하기 위한 상태 표시를 위해 앞에 
   "KC_"를 생략하는 경우가 많다. 즉 아래 형식이어야 제대로 동작합니다.
1691060665888.png
 

KC_LGUI(KC_LSFT(KC_S))
-> 이러면 안먹습니다! 각 키가 눌린 상태임을 표현하는 코드가 따로 있었죠? 
1691060553367.png
 
그럼 할당을 해봅시다.
unnamed.png 
["입력한 것과 다른 데?"]

알고보니 왼쪽 win키와 shift키가 함께 눌려있는 상태를 표현하는 더 짧은 코드가 있어서 그걸 표시 했네요.
unnamed (1).png


위 예시와 같이 하나의 단순한 단축키를 만드는 것은, 
"Any"키를 활용하는게 갯수의 제한이 없다는 것에서 매크로를 활용하는 것보다 더 유용합니다.

앞으로 via를 활용하시면서

매크로는 자주 쓰는 복잡한 기능 위주로,
자주쓰지만 간단한 단축키는 Any 키로,

원하는대로 사용하시는 게 어떨까요?

감사합니다!!