Я купил ноутбук ROG G551JM Asus, который оказался совместимым с Ubuntu. Клавиатура компьютера плохо спроектирована, клавиша «Poweroff» представляет собой обычную клавишу, расположенную в том месте, где обычно находится клавиша «End». С компьютером все в порядке, поэтому я купил его с предположением, что смогу как-то «исправить» проблему, то есть переназначить кнопку PowerOff в клавишу «Завершить».
Кнопка PowerOff сделана неправильно (ASUS G551JM):
Обычно есть клавиша «End» (ASUS N56VZ):
Кнопка события «PowerOff» получают с помощью /dev/input/event2: Power Button
устройства (по данным evtest
) с кодом 116 (например , строка из evtest
: Event: time 1422895638.246142, type 1 (EV_KEY), code 116 (KEY_POWER), value 1
)
Ключ также виден X-серверу, и в конечном итоге Ubuntu может идентифицировать нажатия клавиш как PowerOff
ключ и запускает полупрозрачное диалоговое окно «Прощай, пользователь Адам ...», которое подтверждает мое желание фактически выключить компьютер.
Проблема в том, что привязка, связывающая нажатие клавиши PowerOff с подпрограммой, которая отображает это диалоговое окно подтверждения, не видна в dconf-editor, и у меня нет подсказки, где ее найти.
Может кто-нибудь сказать мне, где изменить (или удалить) привязку по умолчанию для ключа PowerOff ???
Это должно быть что-то легкое.
изменить 21.IX.2016:
Существует способ навсегда отключить диалоговое окно, см. Как изменить параметры кнопки питания? , Я надеюсь, что после отключения кнопки питания, можно было бы переназначить ее на что-то другое.
источник
Home
иEnd
"мета" ключи, которые я использую больше всего ... :(Ответы:
Мне удалось заставить его работать на моем ASUS N751JK в Ubuntu 18.04 LTS и Ubuntu 16.04 LTS (протестировано с настольной средой Unity в обоих случаях и KDE Plasma в 18.04):
Прежде всего, установите действие кнопки «Выключить» на
nothing
.Единство
Как упомянуто в ответе Johano Fierra :
или альтернативно
sudo apt install dconf-tools
и используйтеdconf-editor
для измененияorg.gnome.settings-daemon.plugins.power
свойства (как описано здесь ). Перезагрузка или выход из системы требуется, чтобы это работало.KDE
Перейдите в «Параметры системы» , выберите вкладку «Управление питанием» в разделе «Оборудование», затем выберите вкладку «Энергосбережение» , прокрутите вниз, найдите раскрывающийся список «Когда нажата кнопка питания» и измените его значение на «Ничего не делать» . Нажмите кнопку «Применить» , чтобы изменения вступили в силу.
Установите xdotool :
Этот позволит нам запускать ключевые события.
Следующим шагом является нажатие кнопки «End» при нажатии кнопки «Power off» .
Ubuntu 18.04
Создайте
/etc/acpi/events/power
файл со следующим содержимым:и создайте
/etc/acpi/power.sh
скрипт со следующим содержимым:и добавьте к нему разрешения на выполнение:
Ubuntu 16.04
Резервный скрипт ACPI, используемый для обработки события кнопки « Выключение» :
Затем отредактируйте его и найдите следующее:
и измените код ниже так, чтобы он выглядел так:
Чтобы применить эти изменения, нужно выполнить:
Благодаря Адаму можно
acpid
автоматически перезагружаться при входе пользователя в систему (при загрузке системы). Поэтому вместо руководстваsudo acpid restart
в терминале каждый раз после перезагрузки добавляйте следующую строку:в конец
/etc/pam.d/common-session
файла.источник
sudo acpid reload
вместо перезапуска? Будет ли это работать?acpid restart
проблему, так это добавление строкиsession optional pam_exec.so /usr/sbin/acpid restart
в конце/etc/pam.d/common-session
. Таким образом, acpid будет перезапущен сразу после входа пользователя, и этого мне достаточно. Проблема наконец решена !!gsettings set
вместоgsettings get
.sudo chmod +x /etc/acpi/power.sh
@Ezze, возможно, вы могли бы обновить свой ответ, чтобы включить это.Это должно сделать свое дело.
Войдите в терминал:
источник
xev
команде, и не позволяетxmodmap
переназначить ее. И, кстати, код кнопки «Выключить» может быть другим (124 для моего ASUS N751JK).gsettings set org.gnome.settings-daemon.plugins.power button-power "shutdown"
(таким образом, нажатие кнопки фиксируется), затем отредактируйте/etc/acpi/events/powerbtn
и закомментируйте строку#action=/etc/acpi/powerbtn.sh
, а затем введите в терминале:xmodmap -e "keycode 124 = End"
Это должно помешать кнопке питания делать что-либо и в то же время привязать ее к клавише End.powerbtn.sh
скриптом, но и (как минимум)systemd-logind
службой (возможно, он используетbutton-power
настройки, указанные вами в вашем ответе). Вы можете найти строкуif pidof systemd-logind >/dev/null; then
...exit 0
вpowerbtn.sh
которой это означает, что скрипт позволяетsystemd-logind
самостоятельно обрабатывать событие "Выключение", когда сеанс рабочего стола активен. Одна вещь, в которой вы правы - изменениеbutton-power
значения не влияет на возможность захвата ключа, но оно уже зафиксировано каким-либо процессом (systemd-logind
или другим).