Escreva este código
#include <iostream>
#include <X11/Xlib.h>
Display* disp = XOpenDisplay(NULL);
Screen* scrn = DefaultScreenOfDisplay(disp);
int height = scrn->height;
int width = scrn->width;
int main() {
std::cout << "width " << width << " height " << height << "\n";
}
Compile
g++ test.c -o test -lX11
Execute
rbabchis@haze:~$ ./test
width 1920 height 1080
rbabchis@haze:~$
Você terá que modificá-lo de lá, ou envolvê-lo em outra linguagem de programação / script para continuar verificando e executando seu script em uma alteração de resolução. Isso deve ser fácil.
Use este script para verificar continuamente as alterações e executar um script externo (./external_script)
#!/bin/bash resolution=$(./test) while true; do { newResolution=$(./test) if [ "$newResolution" != "$resolution" ]; then { echo "Resolution change: $newResolution" resolution=$newResolution ./external_script } fi sleep 1 } done