aboutsummaryrefslogtreecommitdiff
path: root/content/post/use-brightness-and-volume-keys-in-dwm.md
blob: 63671bf37011cdeae2d239b4f5ee370c9262ac45 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
---
title: "Use Brightness and Volume Keys in Dwm"
date: 2021-03-03T06:53:22Z
lastmod: 2022-04-29T06:53:22Z
draft: false 
keywords: [dwm brightness volume]
description: ""
tags: [dwm]
categories: [linux]
author: ""

# You can also close(false) or open(true) something for this content.
# P.S. comment can only be closed
comment: false
toc: true 
autoCollapseToc: false
postMetaInFooter: true 
hiddenFromHomePage: false
# You can also define another contentCopyright. e.g. contentCopyright: "This is another copyright."
contentCopyright: false
reward: false
mathjax: false
mathjaxEnableSingleDollar: false
mathjaxEnableAutoNumber: false

# You unlisted posts you might want not want the header or footer to show
hideHeaderAndFooter: false

# You can enable or disable out-of-date content warning for individual post.
# Comment this out to use the global config.
#enableOutdatedInfoWarning: false

flowchartDiagrams:
  enable: false
  options: ""

sequenceDiagrams: 
  enable: false
  options: ""

---

Requires `pulseaudio pavucontrol alsa-lib alsa-utils acpilight`

Actual requirements may vary depending on your configuration. I am only writing what worked for me.
<!--more-->

Edit `config.h`

```c
#include <X11/XF86keysym.h>
 
/* volume keys*/
static const char *upvol[] = { "/usr/bin/pactl", "set-sink-volume", "0", "+5%", NULL };
static const char *downvol[] = { "/usr/bin/pactl", "set-sink-volume", "0", "-5%", NULL };
static const char *mutevol[] = { "/usr/bin/pactl", "set-sink-mute", "0", "toggle", NULL };
 
/* backlight */
static const char *brightnessup[] = { "sudo", "xbacklight", "-inc"m "5", NULL };
static const char *brightnessdown[] = { "sudo", "xbacklight", "-dec", "5", NULL };
```

Append the following lines in `static Key keys[]` array
```c
static Key keys[] = {
    { 0, XF86XK_AudioLowerVolume, spawn, {.v = downvol} },
    { 0, XF86XK_AudioMute, spawn, {.v = mutevol }},
    { 0, XF86XK_AudioRaiseVolume, spawn, {.v = upvol} },
    { 0, XF86XK_MonBrightnessUp, spawn, {.v = brightnessup} },
    { 0, XF86XK_MonBrightnessDown, spawn, {.v = brightnessdown} },
}; 
```