dwm/void linux에서 DAS 키보드 볼륨 노브를 바인딩하는 방법은 무엇입니까?

dwm/void linux에서 DAS 키보드 볼륨 노브를 바인딩하는 방법은 무엇입니까?

내 설정: Void Linux, xorg, dwm + dmenu + st, DAS 키보드.

볼륨을 조절하기 위해 일부 "일반" 키를 바인딩하는 방법을 알아낼 수도 있겠지만 키보드에 있는 이 크고 둥근 손잡이가 정말 마음에 듭니다 :).

그렇다면 키보드의 볼륨 조절을 어떻게 작동하게 합니까?

답변1

my 내에서 config.h시스템 볼륨을 제어하는 ​​데 사용되는 CLI 명령을 나타내는 문자열 배열에 대한 포인터를 만듭니다. 여기에는 X11/XF86keysym.h"일부 '인터넷' 키보드에 있는" 컨트롤에 대한 키 기호가 포함되어 있습니다. 저는 ALSA를 사용하고 있으므로 유틸리티는 amixer.

#include <X11/XF86keysym.h>

static const char *volumeup[] = {"amixer", "-c", "1", "-q", "set", "Master", "2%+", NULL};
static const char *volumedown[] = {"amixer", "-c", "1", "-q", "set", "Master",  "2%-", NULL};
static const char *toggle[] = {"amixer", "-c", "1", "-q", "set", "Master",  "toggle", NULL};

동일한 파일에서 keys[]배열에 대한 포인터를 추가합니다. 예를 들면 다음과 같습니다.

static const Key keys[] = {


    /* modifier                     key        function        argument */
    { 0,        XF86XK_AudioRaiseVolume,        spawn,        { .v = volumeup } },
    { 0,        XF86XK_AudioLowerVolume,        spawn,        { .v = volumedown }},
    { 0,               XF86XK_AudioMute,        spawn,        { .v = toggle }},

그럼 평소대로야

make
sudo make install
make clean

채널( -c옵션)을 파악해야 합니다. 이를 위해서는 /proc/asound/modules도움이 될 것입니다. Void에서는 ALSA를 명시적으로 구성해야 할 수도 있습니다. 다음 문서를 참조하세요.https://docs.voidlinux.org/config/media/alsa.html

답변2

시도해 보세요 xev. 키코드를 설명합니다. 문제가 무엇인지 설명하지 않았으므로 키 코드를 모르는 것으로 가정합니다.

관련 정보