about summary refs log tree commit diff
path: root/platforms
diff options
context:
space:
mode:
authorPatryk Niedźwiedziński <pniedzwiedzinski19@gmail.com>2020-12-05 12:10:33 +0100
committerPatryk Niedźwiedziński <pniedzwiedzinski19@gmail.com>2020-12-05 12:10:33 +0100
commitbb668c1bdfb2937e2ca987426aac6cfe1b544fc9 (patch)
treed79cf81c85816f0f93992265a9f460ce5ac3bcb8 /platforms
parent48c708af222cd4120d81565200e046dc3414b3b1 (diff)
downloaddots-bb668c1bdfb2937e2ca987426aac6cfe1b544fc9.tar.gz
dots-bb668c1bdfb2937e2ca987426aac6cfe1b544fc9.zip
Add slock mediakeys and xautolock
Diffstat (limited to 'platforms')
-rw-r--r--platforms/linux/xorg/default.nix1
-rw-r--r--platforms/linux/xorg/dwm-mediakeys.diff13
-rw-r--r--platforms/linux/xorg/slock/slock-mediakeys.diff31
3 files changed, 45 insertions, 0 deletions
diff --git a/platforms/linux/xorg/default.nix b/platforms/linux/xorg/default.nix
index 13abb32..9303fee 100644
--- a/platforms/linux/xorg/default.nix
+++ b/platforms/linux/xorg/default.nix
@@ -11,6 +11,7 @@ let
       ./dwm-systray.diff
       ./dwm-center.diff
       ./dwm-autostart.diff
+      ./dwm-mediakeys.diff # Patch for slock mediakeys
       # ./dwm-rounded.diff - Resize dont work
     ];
     header_config_file = ./config.h;
diff --git a/platforms/linux/xorg/dwm-mediakeys.diff b/platforms/linux/xorg/dwm-mediakeys.diff
new file mode 100644
index 0000000..0ec5336
--- /dev/null
+++ b/platforms/linux/xorg/dwm-mediakeys.diff
@@ -0,0 +1,13 @@
+diff --git a/dwm.c b/dwm.c
+index 2e43282..1565695 100644
+--- a/dwm.c
++++ b/dwm.c
+@@ -1847,7 +1847,7 @@ setup(void)
+ 	wa.cursor = cursor[CurNormal]->cursor;
+ 	wa.event_mask = SubstructureRedirectMask|SubstructureNotifyMask
+ 		|ButtonPressMask|PointerMotionMask|EnterWindowMask
+-		|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask;
++		|LeaveWindowMask|StructureNotifyMask|PropertyChangeMask|KeyPressMask;
+ 	XChangeWindowAttributes(dpy, root, CWEventMask|CWCursor, &wa);
+ 	XSelectInput(dpy, root, wa.event_mask);
+ 	grabkeys();
diff --git a/platforms/linux/xorg/slock/slock-mediakeys.diff b/platforms/linux/xorg/slock/slock-mediakeys.diff
new file mode 100644
index 0000000..098eb02
--- /dev/null
+++ b/platforms/linux/xorg/slock/slock-mediakeys.diff
@@ -0,0 +1,31 @@
+diff --git a/slock.c b/slock.c
+index 5ae738c..bd54be2 100644
+--- a/slock.c
++++ b/slock.c
+@@ -18,6 +18,7 @@
+ #include <X11/Xlib.h>
+ #include <X11/Xutil.h>
+ #include <X11/XKBlib.h>
++#include <X11/XF86keysym.h>
+
+ #include "arg.h"
+ #include "util.h"
+@@ -157,6 +158,18 @@ readpw(Display *dpy, struct xrandr *rr, struct lock **locks, int nscreens,
+ 			    IsPrivateKeypadKey(ksym))
+ 				continue;
+ 			switch (ksym) {
++      case XF86XK_AudioPlay:
++      case XF86XK_AudioStop:
++      case XF86XK_AudioPrev:
++      case XF86XK_AudioNext:
++      case XF86XK_AudioRaiseVolume:
++      case XF86XK_AudioLowerVolume:
++      case XF86XK_AudioMute:
++      case XF86XK_AudioMicMute:
++      case XF86XK_MonBrightnessDown:
++      case XF86XK_MonBrightnessUp:
++        XSendEvent(dpy, DefaultRootWindow(dpy), True, KeyPressMask, &ev);
++        break;
+ 			case XK_Return:
+ 				passwd[len] = '\0';
+ 				errno = 0;