Gnome Shell Extension Override C API?

Это может быть вопрос, в котором ответом может быть URL-адрес руководства по расширению оболочки gnome, потому что я его не нахожу.

Моя проблема, которую я хочу решить с помощью расширения Gnome

В демоне настроек gnome (см. https://git.gnome.org/browse/gnome-settings-daemon/tree/plugins/power/gsd-backlight-helper.c#n123), я хотел бы переопределить следующую функцию

clamp_minimum (gint max, gint value)
{
    gint minimum;
    /* If the interface has less than 100 possible values, it's
     * likely that 0 doesn't turn the backlight off so we let 0 be
     * set in that case. */
    if (max > 99)
        minimum = 1;
    else
        minimum = 0;

    return MAX (value, minimum);
}

Я хотел бы, чтобы этот метод всегда возвращал 0, так как в этом случае самая низкая настройка яркости экрана станет 0, то есть черным как смоль, что, наконец, позволило бы мне управлять компьютером ночью при прослушивании музыки без постоянного включения экрана.

По сути, XFCE, MacOS, Cinnamon и другие уже реализовали это, но Gnome по какой-то причине пошел по этому пути.

Итак, мой вопрос: могу ли я переопределить или перехватить вызов этой функции, чтобы всегда возвращать 0 из расширения Gnome?

Спасибо.


person Adergaard    schedule 17.01.2017    source источник
comment
Это полный отдельный двоичный файл ... gnome-shell не может его никаким образом изменить   -  person Jussi Kukkonen    schedule 17.01.2017
comment
Так что лучше всего создать этот двоичный файл самостоятельно после изменения кода в приведенном выше методе?   -  person Adergaard    schedule 18.01.2017
comment
Предполагая, что для изменения яркости используется вспомогательный двоичный файл, я думаю, это сработает.   -  person Jussi Kukkonen    schedule 18.01.2017
comment
Вы нашли для этого какое-нибудь решение? Я хотел бы изменить минимальный уровень (фактический слишком низкий, чтобы быть полезным) ...   -  person WonderLand    schedule 26.03.2017
comment
@WonderLand Я перешел на XFCE   -  person Adergaard    schedule 26.03.2017


Ответы (1)


Чтобы ответить на ваш явный вопрос: нет, вы не можете переопределить или перехватить вызов этой функции.

Однако вы могли бы написать расширение оболочки, которое позволяет переключать экран в состояние постоянного выключения, когда система не заблокирована / не вышла из системы (например, отключение вызовов disable () на всех расширениях и установка режима оболочки GNOME на gdm ).

person RivenSkaye    schedule 11.07.2018