summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--.gitmodules3
-rw-r--r--Makefile15
-rw-r--r--gbrightness.cpp22
m---------got-gui0
5 files changed, 36 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore
index 71ba227..751b0a3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
.ccls-cache/
brightness
+gbrightness
diff --git a/.gitmodules b/.gitmodules
new file mode 100644
index 0000000..f90e8ab
--- /dev/null
+++ b/.gitmodules
@@ -0,0 +1,3 @@
+[submodule "got-gui"]
+ path = got-gui
+ url = https://git.tomsmeding.com/got-gui
diff --git a/Makefile b/Makefile
index 8584d48..35b351a 100644
--- a/Makefile
+++ b/Makefile
@@ -1,20 +1,25 @@
CXX = g++
-CXXFLAGS = -Wall -Wextra -O2 -std=c++11
+CXXFLAGS = -Wall -Wextra -O2 -std=c++17
INSTALL_DIR = $(HOME)/prefix/bin
-BIN = brightness
+BINS = brightness gbrightness
.PHONY: all clean install
-all: $(BIN)
+all: $(BINS)
clean:
- rm -f $(BIN)
+ rm -f $(BINS)
install:
sudo install -o root brightness $(INSTALL_DIR)
sudo chmod +s $(INSTALL_DIR)/brightness
-$(BIN): brightness.cpp $(wildcard *.h)
+brightness: brightness.cpp
$(CXX) $(CXXFLAGS) $(filter %.cpp,$^) -o $@
+
+UTILS = $(patsubst %,got-gui/%,gui.cpp gui.h xutil.cpp xutil.h command.cpp command.h)
+
+gbrightness: gbrightness.cpp $(UTILS)
+ $(CXX) $(CXXFLAGS) $(filter %.cpp,$^) -o $@ -lX11
diff --git a/gbrightness.cpp b/gbrightness.cpp
new file mode 100644
index 0000000..985d159
--- /dev/null
+++ b/gbrightness.cpp
@@ -0,0 +1,22 @@
+#include <iostream>
+#include <X11/keysym.h>
+#include "got-gui/command.h"
+#include "got-gui/xutil.h"
+
+
+int main() {
+ auto display = x::XOpenDisplayRAII(nullptr);
+ Display *dpy = display.first;
+
+ x::globalKeyboardGrab(dpy, [dpy](const XKeyEvent &ev) -> bool {
+ x::Keycode kc{ev.keycode};
+ if (kc == x::Keysym{XK_Up}.toCode(dpy)) {
+ runCommand({"brightness", "+"});
+ } else if (kc == x::Keysym{XK_Down}.toCode(dpy)) {
+ runCommand({"brightness", "-"});
+ } else {
+ return true;
+ }
+ return false;
+ });
+}
diff --git a/got-gui b/got-gui
new file mode 160000
+Subproject 7c6c2aad9ba78f780f0c0513aef3f14a2e6fd3a