У вас на клавіатурі є медіаклавіші, але вони нічого не роблять? Або хочете повісити яскравість/макроси на окремі кнопки в GNOME чи KDE? Сьогодні покажу, як налаштувати апаратні та мультимедійні клавіші у середовищах GNOME і KDE на X11 та Wayland — від пошуку коду клавіші до призначення дії. Це практичний гайд у стилі GUI Linux та налаштування робочого столу, з корисними трюки Linux і маленькими поради Linux 😉
Основний How-to: універсальна схема
1) Дізнайтеся, що у вас: X11 чи Wayland
Це впливає на інструменти, якими ми скористаємося.
echo $XDG_SESSION_TYPE
Відповідь буде x11 або wayland.
2) Визначте код проблемної клавіші
- Універсально (ядровий рівень):
sudo evtest
# Оберіть потрібний /dev/input/eventX (клавіатура) і натисніть клавішу — дивіться код (KEY_*, MSC_SCAN)
- На X11 (зручно для keysyms):
xev -event keyboard
# У вікні натискайте клавішу — дивіться keycode і keysym (напр., XF86AudioPlay)
3) Встановіть потрібні утиліти
Вони допоможуть призначити дії: керування плеєром, гучністю та яскравістю.
# Debian/Ubuntu
sudo apt update
sudo apt install playerctl brightnessctl xbindkeys xdotool evtest
# Fedora
sudo dnf install playerctl brightnessctl xbindkeys xdotool evtest
# Arch
sudo pacman -S playerctl brightnessctl xbindkeys xdotool evtest
Пояснення: playerctl керує відтворенням (MPRIS), pactl уже в PulseAudio/PipeWire, brightnessctl — яскравість, xbindkeys — для X11-глобальних хоткеїв.
4) Призначте дії (GNOME і KDE)
Базова ідея: змусити вашу невідому кнопку відсилати стандартний keysym (типу XF86AudioPlay) або прямо запускати команду.
- GNOME (через gsettings, швидко)
Створимо користувацький шорткат «Play/Pause» на клавішу з симовлом XF86AudioPlay (або ту, що ви знайшли в xev). Якщо клавіша взагалі не має keysym — дивіться розділ «Альтернативні способи».
# Додаємо custom keybinding
PATH=/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/
# Зареєструвати список (увага: перезаписує список — додайте інші при потребі)
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings "['$PATH']"
# Налаштувати запис
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH name 'Play/Pause'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH command 'playerctl play-pause'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH binding 'XF86AudioPlay'
Аналогічно можна додати гучність і яскравість:
# Гучність +5%
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH name 'Volume Up'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH command "pactl set-sink-volume @DEFAULT_SINK@ +5%"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH binding 'XF86AudioRaiseVolume'
# Яскравість +10%
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH name 'Brightness Up'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH command 'brightnessctl set +10%'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:$PATH binding 'XF86MonBrightnessUp'
- KDE Plasma (через Глобальні комбінації)
Plasma вміє призначати будь-які клавіші на команди:
- Відкрийте «Системні параметри → Комбінації → Додати ярлик → Запуск команди/скрипту».
- Команда: наприклад,
playerctl play-pauseабоpactl set-sink-volume @DEFAULT_SINK@ -5%. - Клацніть «Зміна» та натисніть потрібну клавішу (або задайте
XF86...ключ). - Збережіть, перевірте.
Альтернативні способи
X11: xbindkeys (гнучко і просто)
Якщо у вас X11 і хочете повний контроль, використовуйте xbindkeys:
# Створити конфіг, якщо нема
xbindkeys --defaults > ~/.xbindkeysrc
# Відредагуйте ~/.xbindkeysrc, додайте, наприклад:
# Плей/Пауза на XF86AudioPlay
"playerctl play-pause"
XF86AudioPlay
# Гучність +5% на Alt+Up (приклад)
"pactl set-sink-volume @DEFAULT_SINK@ +5%"
Alt + Up
# Перезапустити демон
pkill xbindkeys; xbindkeys
Додайте xbindkeys в автозапуск вашого середовища, щоб правила діяли після входу.
Wayland/універсально: input-remapper або hwdb (низький рівень)
- input-remapper перетворює «дивні» кнопки на стандартні (наприклад, KEY_PLAYPAUSE), які GNOME/KDE вже вміють ловити.
sudo apt install input-remapper # або відповідний пакет у вашому дистро
sudo systemctl enable --now input-remapper
# GUI-конфігуратор
input-remapper-gtk
Створіть профіль для вашої клавіатури: натисніть проблемну кнопку → призначте дію KEY_PLAYPAUSE, KEY_BRIGHTNESSUP тощо → збережіть і застосуйте «on boot».
- udev hwdb (просунуто): прив’язує скан-код до стандартного ключа на рівні ядра.
# Приклад файлу (підставте власні ідентифікатори пристрою/скан-коди з evtest):
echo 'evdev:input:b0003v046DpC31C*
KEYBOARD_KEY_700e2=playpause
KEYBOARD_KEY_700e9=volumeup
KEYBOARD_KEY_700ea=volumedown' | sudo tee /etc/udev/hwdb.d/99-custom-media-keys.hwdb
# Оновити базу і перезапустити пристрій вводу
sudo udevadm hwdb --update
sudo udevadm trigger -s input
Після цього DE бачить ваші кнопки як стандартні медіаклавіші.
GUI-спосіб (без терміналу, коли це можливо)
GNOME
- Параметри → Клавіатура → Переглянути і налаштувати скорочення → Додати користувацьке.
- Назва: «Play/Pause», Команда:
playerctl play-pause. - Клавіша: натисніть потрібну (якщо вона розпізнається). Якщо ні — спершу скористайтеся input-remapper або hwdb.
KDE Plasma
- Системні параметри → Комбінації → Додати ярлик → Запуск команди/скрипту.
- Команда:
brightnessctl set 10%-,playerctl nextтощо. - Задайте/натисніть потрібну кнопку.
FAQ
Клавіша не визначається ніде. Що робити?
Перевірте sudo evtest на різних /dev/input/eventX. Якщо взагалі немає подій — клавіатура може працювати в приватному режимі (vendor-only). Тоді допомагає лише hwdb або утиліти виробника (рідко на Linux).
Wayland не дає глобальні хоткеї для сторонніх інструментів?
Так, на Wayland xbindkeys не працює. Використовуйте вбудовані засоби DE (GNOME/KDE) або input-remapper/hwdb, щоб генерувати стандартні KEY_* події.
playerctl не керує моїм плеєром
Перевірте, чи ваш плеєр підтримує MPRIS (більшість сучасних — так). Спробуйте playerctl -l для списку плеєрів і playerctl -p <name> play-pause.
brightnessctl каже «Permission denied»
Додайте себе до групи video і перелогіньтесь: sudo usermod -aG video $USER. На деяких ноутбуках потрібні коректні ACPI-драйвери або керування через intel_backlight чи amdgpu_bl.
Конфлікти з існуючими шорткатами
У GNOME і KDE видаліть або змініть конфліктні призначення. В KDE перевірте «Комбінації → Глобальні комбінації» та «KWin».
Як зробити, щоб правила діяли після перезавантаження?
GNOME/KDE зберігають шорткати автоматично. Для xbindkeys — додайте в автозапуск DE. Для input-remapper позначте профіль як «Apply at boot». Для hwdb перезапуск не потрібен після udevadm trigger, але інколи допомагає релогін.
Порада від Kernelka
Зберіть усі ваші команди у маленькі скрипти в ~/bin (наприклад, volup, voldown, playpause) і вже їх призначайте на клавіші. Так простіше підтримувати й переносити налаштування між ПК. І не соромтеся тестувати різні варіанти — це найцікавіша частина налаштування робочого столу! 🌟
Підсумок
- Визначте, що у вас: X11 чи Wayland, і з’ясуйте код кнопки через
evtest/xev. - GNOME/KDE вміють задавати шорткати прямо на команди — використовуйте це в першу чергу.
- Для X11 підійде
xbindkeys; для Wayland —input-remapperабо udev hwdb. - Команди «на медіаклавіші»:
playerctl,pactl,brightnessctl— мінімальний набір для комфорту. - Тримайте конфлікти під контролем і додавайте автозапуск, щоб усе працювало після перезавантаження.

Прокоментувати
На сайті відображається лише твоє ім'я та коментар. Електронна пошта зберігається виключно для зв'язку з тобою за потреби та в жодному разі не передається стороннім особам.