Як автоматично підключати Bluetooth‑навушники в GNOME

Як автоматично підключати Bluetooth‑навушники в GNOME
Категорії: Desktop та GUI

Ви вмикаєте Bluetooth‑навушники, а GNOME інколи не під’єднує їх сам? Давайте зробимо автопідключення надійним. Я покажу найпростіший спосіб через маленький bash‑скрипт (bash‑скрипт — текстовий файл із командами для оболонки Bash) і таймер systemd (systemd — система, що керує службами та завданнями в Linux; таймер systemd — це планувальник запуску завдань за розкладом). Також буде зручний GUI‑спосіб для тих, хто любить «налаштувати й забути».

Найпростіший спосіб: скрипт + systemd‑таймер

Ідея проста: один раз з’єднуємо й «довіряємо» навушники, дізнаємось їх MAC‑адресу (унікальний ідентифікатор пристрою, виглядає як 11:22:33:AA:BB:CC), а далі таймер час від часу пробує під’єднати їх, коли ви їх увімкнете.

Крок 1. Встановіть потрібні пакети

Пакет — це встановлюваний набір файлів програми з репозиторію (онлайн‑сховища програм). Нам знадобиться інструмент bluetoothctl із пакета bluez. Відкрийте термінал (термінал — вікно, де ви вводите команди) і виконайте:

# Ubuntu / Linux Mint / Debian (apt — менеджер пакетів для цих дистрибутивів)
sudo apt update
sudo apt install bluez blueman pavucontrol

# Fedora (dnf — менеджер пакетів у Fedora)
sudo dnf install bluez blueman pavucontrol

sudo — команда, що запускає наступну команду від імені адміністратора.

Крок 2. Спершу один раз спаріть навушники

Відкрийте Налаштування → Bluetooth, увімкніть Bluetooth і під’єднайте навушники. Після першого парування вони з’являться у списку «Paired Devices».

Перевіримо через термінал і заберемо їх MAC‑адресу:

bluetoothctl paired-devices
# Приклад рядка:
# Device 11:22:33:AA:BB:CC My Headphones

Крок 3. Створіть скрипт автопідключення

Створимо простий скрипт, що вмикає адаптер (якщо вимкнено), «довіряє» навушникам і під’єднує їх, якщо вони увімкнені поруч.

mkdir -p ~/.local/bin
nano ~/.local/bin/btautoconnect.sh

Вставте цей вміст (замініть MAC на свій):

#!/usr/bin/env bash
set -euo pipefail
MAC="11:22:33:AA:BB:CC"   # ваші навушники

# Увімкнути Bluetooth-адаптер, якщо вимкнено
if ! bluetoothctl show | grep -q "Powered: yes"; then
  bluetoothctl power on || true
fi

# Позначити як довірений пристрій (щоб система дозволяла автопідключення)
bluetoothctl trust "$MAC" || true

# Якщо ще не під’єднано — під’єднати з кількома спробами
if ! bluetoothctl info "$MAC" | grep -q "Connected: yes"; then
  for i in {1..5}; do
    bluetoothctl connect "$MAC" && exit 0
    sleep 5
  done
fi

Зробіть файл виконуваним (права доступу — дозволи на читання/запис/виконання файлу):

chmod +x ~/.local/bin/btautoconnect.sh

Перевірте вручну, увімкнувши навушники:

~/.local/bin/btautoconnect.sh

Крок 4. Запуск автоматично через systemd‑таймер (користувацький)

Зробимо невелику «службу» (юніт) systemd, що викликає скрипт, і таймер, який періодично його запускає після входу в систему.

mkdir -p ~/.config/systemd/user

# Служба (oneshot — виконується і завершується)
nano ~/.config/systemd/user/bt-autoconnect.service

Вставте:

[Unit]
Description=Auto-connect Bluetooth headphones

[Service]
Type=oneshot
ExecStart=%h/.local/bin/btautoconnect.sh

Тепер таймер:

nano ~/.config/systemd/user/bt-autoconnect.timer

Вставте:

[Unit]
Description=Run bt-autoconnect periodically for user

[Timer]
OnBootSec=15s
OnUnitActiveSec=30s
Persistent=true
Unit=bt-autoconnect.service

[Install]
WantedBy=default.target

Увімкніть і запустіть таймер:

systemctl --user daemon-reload
systemctl --user enable --now bt-autoconnect.timer
systemctl --user status bt-autoconnect.timer

Готово: щойно ви увімкнете навушники, таймер упродовж сесії GNOME намагатиметься їх під’єднати. Якщо вам потрібно рідше/частіше — змініть OnUnitActiveSec.

Альтернативні способи

  • Через cron: можна додати запуск скрипта в crontab з @reboot і періодичним інтервалом. Але cron не «знає» про стани сну/відновлення так добре, як systemd‑таймери, тому я рекомендую саме systemd.
  • Скрипт при виході зі сну: існує директорія /lib/systemd/system-sleep/ для скриптів, що виконуються на suspend/resume (потребує sudo). Це трохи складніше — залишу як просунутий варіант.

GUI‑спосіб: Blueman (без скриптів)

Якщо ви хочете налаштувати все у вікнах, підійде Blueman — це менеджер Bluetooth для GTK. Він має плагін Auto-connect.

  1. Встановіть Blueman (ми вже це зробили вище) і відкрийте «Blueman Manager».
  2. Знайдіть ваші навушники, натисніть «Pair», потім «Trust» (щоб система дозволяла автопідключення).
  3. Відкрийте меню «Plugins» і увімкніть «AutoConnect» (якщо доступно), у налаштуваннях вкажіть автопідключення для профілів «Audio Sink» (A2DP).
  4. Додатково запустіть «blueman-applet» (піктограма в треї) і додайте його в «Автозапуск», щоб Blueman був активний після входу в систему.

У GNOME іноді трей прихований — переконайтесь, що у вас встановлений розширювач індикаторів (наприклад, AppIndicator/KStatusNotifier) або використовуйте меню верхньої панелі.

FAQ

Команда «bluetoothctl: command not found»

Встановіть пакет bluez: apt: sudo apt install bluez; або dnf: sudo dnf install bluez.

«Failed to set power on: org.bluez.Error...», адаптер не вмикається

Іноді потрібні системні налаштування. Відкрийте файл конфігурації (попросять пароль):

sudo nano /etc/bluetooth/main.conf

Зніміть коментар і встановіть AutoEnable=true, збережіть і перезапустіть службу Bluetooth (демон — фоновий процес):

sudo systemctl restart bluetooth

Навушники під’єднані, але звуку немає

Відкрийте Налаштування → Звук і виберіть ваші навушники як «Вивід». За потреби перемкніть профіль на «Висока якість (A2DP)». Або відкрийте pavucontrol і оберіть профіль на вкладці «Configuration».

Таймер не запускається

  • Перевірте статус: systemctl --user status bt-autoconnect.timer.
  • Заново перезавантажте юніти: systemctl --user daemon-reload, потім enable --now.
  • Таймери користувача працюють під час вашої сесії. Щоб вони діяли навіть без входу, адміністратор може увімкнути «linger»: sudo loginctl enable-linger $USER.

«Nothing to connect» або «Device not available»

Навушники можуть бути вимкнені або далеко. У моєму скрипті є кілька спроб під’єднання — просто дочекайтесь 20–30 секунд після увімкнення навушників.

Хочу автопідключати кілька пар навушників

Додайте їх MAC‑адреси в масив і зробіть цикл:

DEVICES=("11:22:33:AA:BB:CC" "44:55:66:DD:EE:FF")
for MAC in "${DEVICES[@]}"; do
  bluetoothctl trust "$MAC" || true
  bluetoothctl connect "$MAC" || true
done

Порада від Kernelka

Щоб звук одразу був «соковитим» у музиці, після першого під’єднання вручну в Налаштування → Звук оберіть профіль A2DP для навушників — тоді надалі GNOME пам’ятатиме цей вибір. Якщо ж часто користуєтесь мікрофоном у дзвінках, залиште профіль «Headset» і перемикайте за потреби. Маленький компроміс заради зручності 🙂

Підсумок

  • Поставили необхідні пакети й спарили навушники.
  • Створили простий bash‑скрипт для під’єднання через bluetoothctl.
  • Налаштували systemd‑таймер користувача для автоматичного запуску.
  • Для любителів вікон є GUI‑варіант через Blueman і його AutoConnect.
  • Розібрали часті помилки та як їх швидко виправити.

Тепер ваші Bluetooth‑навушники в GNOME під’єднуються самі — як тільки ви їх увімкнете. Зручно ж! ⚡

Прокоментувати

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