Разница между & ldquo; GRUB2 для EFI & rdquo; и & ldquo; GRUB2 & rdquo; в загрузчике

Вот мое решение проблемы яркости:

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>

int main(int args, char **argv)
{
    FILE *f;
    int cur_br, new_br;

    char cmd[256] = { 0, };
    if (args <= 1 || strnlen(argv[1], 256) >= 256) {
            printf("Set the screen brightness:\n\tbr 0-852 or [+-]\n\n");
            exit(1);
    }
    f = fopen("/sys/class/backlight/intel_backlight/brightness", "r+");
    if (f) {
            fscanf(f, "%d", &cur_br);
            fprintf(stderr, "%d\t%s", cur_br, argv[1]);
            if (strncmp(argv[1], "-", 1) == 0) {
                    new_br = (int)((float)cur_br / 1.1);
            } else if (strncmp(argv[1], "+", 1) == 0) {
                    new_br = (int)((float)(cur_br + 1) * 1.1);
            } else {
                    new_br = atoi(argv[1]);
            }
            if (new_br < 0) {
                    new_br = 0;
            } else if (new_br > 852) {
                    new_br = 852;
            }
            fprintf(stderr, "\t%d\n", new_br);
            fprintf(f, "%d", new_br);
            fclose(f);
    }
    return 0;
}

Я понятия не имею, почему 852 - это магическое число для максимальной яркости (выведено методом проб и ошибок). Я связал свои клавиши яркости, чтобы вызвать этот исполняемый файл (имеет suid set) с + или - как args. Если вы случайно установили яркость в 0: D, вы всегда можете выполнить с 500 (или 852) в качестве параметра.

1
задан 5 January 2018 в 17:31

0 ответов

Другие вопросы по тегам:

Похожие вопросы: