#include "optimus.h" #include "../util.h" #include static const char *card_string; void optimus_module_init() { int status = system("card_status=\"`optimus-manager --status 2>/dev/null | " "grep -Po '(?<=Current GPU mode : )[a-z]'`\"\n" "case \"$card_status\" in\n" " 'i')\n" " exit 1\n" " ;;\n" " 'h')\n" " exit 2\n" " ;;\n" " 'n')\n" " exit 3\n" " ;;\n" " *)\n" " exit 4\n" " ;;\n" "esac\n"); switch (WEXITSTATUS(status)) { case 1: card_string = " I"; break; case 2: card_string = " H"; break; case 3: card_string = " N"; break; /* case 4: */ default: card_string = " ?"; break; } } char *optimus_module_poll() { return qtb_strdup(card_string); }