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。キーコードについて説明します。問題が何であるかを説明していないので、キーコードがわからないとします。

関連情報