Ноутбук: MacbookPro 11,5 с AMD gpu
ОС: Lubuntu 17.04
Я следовал инструкциям в https://wiki.archlinux.org/index.php/MacBookPro11, x, и это работало.
sudo setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0
sudo gmux_backlight 120
Проблема - это
sudo
каждый разКак зафиксировать это?
Обновление (после ответа terdon)
Перемещенный скомпилированный gmux_backlight
кому: /usr/sbin/
Б/У sudo visudo
позволять каждому выполненному пользователю gmux_backlight
с sudo
и не вводя пароль.
<username1> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username2> ALL=NOPASSWD:/usr/sbin/gmux_backlight
<username3> ALL=NOPASSWD:/usr/sbin/gmux_backlight
Создать /etc/init.d/gmux_backlight_fix
и sudo chmod +x
сценарий.
#!/bin/bash -e
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null
Символьная ссылка сценарий к уровню выполнения 2 (графический уровень выполнения для Ubuntu) с самым низким приоритетом (99) следующим, Как запустить скрипт во время начальной загрузки как корень.
sudo ln -s /etc/init.d/gmux_backlight_fix /etc/rc2.d/S99gmux_backlight_fix
Добавленный к разделу ~/.config/openbox/lubuntu-rc.xml
для каждого пользователя.
<keyboard>
<chainQuitKey>C-g</chainQuitKey>
<!-- My Keys -->
<keybind key="XF86LaunchA">
<action name="Execute">
<command>sudo gmux_backlight -10</command>
</action>
</keybind>
<keybind key="XF86LaunchB">
<action name="Execute">
<command>sudo gmux_backlight +10</command>
</action>
</keybind>
Я использую Fn-F3 и Fn-F4, потому что Lubuntu не может автоматически обнаружить Fn-F1 и Fn-F2 на ноутбуке.
Первоначально я записал сценарий удара, который берет аргумент, и предоставьте, что каждый пользователь выполняет его с sudo. Некоторое время позже я волнуюсь, что люди могут повредить сценарий удара и выполнить любую команду с sudo полномочием. Таким образом, я использую скомпилированный двоичный файл вместо своего сценария удара.
Старый сценарий удара /usr/sbin/gmux_capped_backlight
:
#!/bin/bash -e
# setpci
setpci -v -H1 -s 00:01.00 BRIDGE_CONTROL=0 >/dev/null
# Get current brightness
CB="$( cat /sys/class/backlight/gmux_backlight/brightness )"
# Split characters of argument
arg=$1
first_char=${arg:0:1}
other_char=${arg:1}
# Desired Brightness
if [ $first_char == "+" ]; then
Brightness=$(expr $CB + $other_char)
elif [ $first_char == "-" ]; then
Brightness=$(expr $CB - $other_char)
else
Brightness=$arg
fi
# Limit the range of brightness #
Max=1024
Min=0
if [ $Brightness -gt $Max ]; then
Brightness=$Max
fi
if [ $Brightness -lt $Min ]; then
Brightness=$Min
fi
Так как Вы говорите, что можно уже скорректировать это использование сценария, похоже, что Вы уже почти там. Вы просто должны:
Настроить sudo
позволить выполнять тот конкретный сценарий Вашего пользователя без пароля. Во-первых, откройте терминал и работайте sudo visudo
. Это поднимет окно Вашего редактора по умолчанию. Добавьте эту строку к файлу:
terdon ALL=NOPASSWD:/path/to/your/script
Очевидно, изменение terdon
к Вашему имени пользователя и изменению /path/to/your/script
к чему путь к Вашему сценарию. Это сделает Вашу жизнь легче, если можно удостовериться, что путь не имеет никаких пробелов. Теперь, сохраните файл и закройте его.
Можно теперь запустить скрипт, не будучи должен ввести пароль корня, таким образом, все, что необходимо сделать, присваивают команды, чтобы повысить и понизить яркость к ключам F1/F2. Я не использую LXDE, но я нашел поток форума здесь, который предполагает, что можно сделать это путем редактирования ~/.config/openbox/lxde-rc.xml
и добавление чего-то вроде этого:
<keybind key="F2">
<action name="Execute">
<command>/path/to/your/script increaseBrightness</command>
</action>
</keybind>
<keybind key="F1">
<action name="Execute">
<command>/path/to/your/script decreaseBrightness</command>
</action>
</keybind>
Для обоих случаев используйте любой параметр, который Ваш сценарий взял бы для повышения/понижения яркости.
С другой стороны, можно также сделать это путем установки xbindkeys
:
sudo apt-get install xbindkeys
Создайте файл настроек по умолчанию:
xbindkeys --defaults > `~/.xbindkeysrc`
Получите правильные коды клавиши для своих ключей. Это, вероятно, будет что-то как F1
. Затем редактирование ~/.xbindkeysrc
и добавьте их:
"/path/to/your/script increaseBrightness"
F2
"/path/to/your/script decreaseBrightness"
F1
Наконец, выполненный xbindkeys
и Ваши ярлыки должны работать. Добавьте его к своему списку программ запуска, таким образом, это всегда выполняется, когда Вы входите в систему.