Linux sisteminize bir Bluetooth cihazı (Örneğin Kulaklık veya Hoparlör) bağladığınızda en sevdiğiniz müzik çaları otomatik olarak başlatmanın bir yolunu mu arıyorsunuz? Bu kılavuz, systemd ve basit bir Bash komut dosyası kullanarak bir Bluetooth cihazını bağlarken bir Müzik uygulamasını otomatik olarak açmak için bir otomasyonun nasıl kurulacağını gösterecektir. Müzik çalar olarak Rhythmbox’ı kullanacağız, ancak bunu başka herhangi bir uygulamayla değiştirebilirsiniz.
Bu kurulum Debian 12 masaüstü sisteminde Bluetooth kulaklıkla test edildi ve mükemmel çalıştı!
Linux’ta Bluetooth Bağlantısında Bir Müzik Uygulamasını Otomatik Olarak Açma Adımları
Adım 1: Bluetooth Cihazınızın MAC Adresini Bulun
Komut dosyasını kurmadan önce Bluetooth cihazınızın MAC adresini bulmanız gerekir. MAC adresi, cihazınız için benzersiz bir tanımlayıcıdır.
A. Bluetooth Cihazınızı Açın
Bluetooth cihazınızın açık ve eşleştirme modunda olduğundan emin olun.
B. Bağlı Bluetooth Cihazlarını Listeleyin
Bir terminal açın ve çalıştırın:
bluetoothctl devices
Bu, MAC adresleriyle birlikte Bluetooth cihazlarının bir listesini gösterecektir. Cihazınız için doğru MAC adresini belirleyin.
Örnek Çıktı:
Device 01:B6:ED:14:1F:8F FINGERS FC-SoundStorm
MAC adresini not edin (örneğin, 01:B6:ED:14:1F:8F). Sonraki adımlarda buna ihtiyacınız olacak.
Adım 2: Bluetooth Bağlantısını Algılamak için Bir Komut Dosyası Oluşturun
Öncelikle, Bluetooth cihazınızın bağlı olup olmadığını kontrol eden ve henüz çalışmıyorsa Rhythmbox’ı başlatan bir komut dosyası oluşturun.
Bir terminal açın ve yeni bir dosya oluşturun:
nano ~/bluetooth-music.sh
Aşağıdaki komut dosyasını ekleyin:
#!/usr/bin/env bash # ------------------------------------------------------------------ # Script Name: bluetooth-music.sh # Description: A Bash script to Auto-launch Music Player on Bluetooth Connect # Website: https://gist.github.com/ostechnix # Version: 1.0 # ------------------------------------------------------------------ DEVICE_MAC="01:B6:ED:14:1F:8F" APP="rhythmbox" FLAG_FILE="/tmp/bluetooth_music.flag" # Check if Bluetooth device is connected bluetoothctl info "$DEVICE_MAC" | grep -q "Connected: yes" if [ $? -eq 0 ]; then # If Rhythmbox is not running and wasn't manually closed, start it if ! pgrep -f "$APP" > /dev/null && [ ! -f "$FLAG_FILE" ]; then DISPLAY=:0 "$APP" & fi else # Remove flag when Bluetooth disconnects rm -f "$FLAG_FILE" fi
- 01:B6:ED:14:1F:8f’yi Bluetooth cihazınızın MAC adresiyle değiştirin.
- Rhythmbox’ı tercih ettiğiniz müzik uygulamasının komutuyla değiştirin (örneğin, clementine, spotify, vlc).
Ctrl + X, ardından Y ve ardından Enter tuşlarına basarak dosyayı kaydedin ve çıkın.
Komut dosyasını yürütülebilir hale getirmek için aşağıdaki komutu çalıştırın:
chmod +x ~/bluetooth-music.sh
Adım 3: Komut Dosyasını Çalıştırmak için bir systemd Hizmeti Oluşturun.
Şimdi, komut dosyasını arka planda çalıştırmak için bir systemd hizmeti kurmamız gerekiyor.Systemd hizmet dosyasını oluşturun:
nano ~/.config/systemd/user/bluetooth-music.service
Aşağıdaki yapılandırmayı ekleyin:
[Unit] Description=Auto-launch Music Player on Bluetooth Connect After=bluetooth.target [Service] ExecStart=/bin/bash -c 'while sleep 2; do ~/bluetooth-music.sh; done' Restart=always Environment=DISPLAY=:0 Environment=XDG_RUNTIME_DIR=/run/user/%U [Install] WantedBy=default.target
Yolun doğru olduğundan emin olun. bluetooth-music.sh hizmet yapılandırmasında dosya doğru. Dosyayı kaydetmek ve kapatmak için CTRL+O ve CTRL+X tuşlarına basın.
Hizmeti etkinleştirmek ve başlatmak için aşağıdaki komutları çalıştırın:
systemctl --user daemon-reload systemctl --user enable bluetooth-music.service systemctl --user start bluetooth-music.service
Şimdi, Bluetooth cihazınız bağlandığında, Rhythmbox otomatik olarak açılacaktır!
Bu yaklaşımla ilgili küçük bir sorun, Rhythmbox uygulamasını kapatırsanız, komut dosyasının otomatik olarak yeniden başlatılmasıdır. Bunun nedeni, komut dosyasının Bluetooth cihazınızın bağlı olup olmadığını birkaç saniyede bir kontrol etmesidir. Rhythmbox çalışmıyorsa, komut dosyası yeniden başlatır. Bundan hoşlanmayabilir ve sinir bozucu olduğunu hissedebilirsiniz.
Bu davranışı önlemek için aşağıdaki adımı uygulayın.
Adım 4: Manuel Kapatmadan Sonra Rhythmbox’ın Yeniden Başlatılmasını Önleyin
Komut dosyası Rhythmbox’ı yeniden açmaya devam ettiğinden, el ile ne zaman kapattığınızı belirtmek için bir bayrak dosyası kullanın.
Bunu yapmak için Rhythmbox’ı manuel olarak kapatmak üzere bir takma ad oluşturun:
echo "alias closemusic='touch /tmp/bluetooth_music.flag && pkill rhythmbox'" >> ~/.bash_aliases
Bu, Rhythmbox’ı kapatan ve yeniden açılmasını önlemek için bir bayrak ayarlayan closemusic adlı bir komut oluşturur.
Lütfen /tmp / bluetooth_music öğesini zaten tanımladığımızı unutmayın.2. adımda daha önce oluşturduğumuz komut dosyamızdaki dosyayı işaretleyin.
Şimdi, komut dosyası /tmp/bluetooth_music dosyasını kontrol eder.bayrak. Varsa, Rhythmbox yeniden başlatılmaz.
~/.bash_aliases dosyasını yeniden yükleyin :
source ~/.bash_aliases
Şu andan itibaren Rhythmbox’ı normal şekilde kapatmak yerine closemusic komutunu çalıştırabilirsiniz:
closemusic
Bu, komut dosyasına, Bluetooth cihazınız bağlantıyı kesip yeniden bağlanmadıkça Rhythmbox’ı yeniden açmamasını söyler.
Adım 5: Sorun giderme
Rhythmbox başlatılmazsa veya hizmet beklenmedik şekilde davranıyorsa şu adımları deneyin:
A. Komut dosyasının manuel olarak çalışıp çalışmadığını kontrol edin
Çalışıp çalışmadığını görmek için komut dosyasını çalıştırın:
./bluetooth-music.sh
Rhythmbox’ı başlatmazsa, Bluetooth cihazınızın bağlı olup olmadığını kontrol edin:
bluetoothctl info 01:B6:ED:14:1F:8F
Çıkışta Connected: yes göründüğünden emin olun.
Örnek Çıktı:
Device 01:B6:ED:14:1F:8F (public) Name: FINGERS FC-SoundStorm Alias: FINGERS FC-SoundStorm Class: 0x00260404 Icon: audio-headset Paired: yes Bonded: yes Trusted: yes Blocked: no Connected: yes LegacyPairing: no UUID: Headset [...]
B. Systemd hizmet durumunu doğrulayın
systemctl --user status bluetooth-music.service
Çıktıdaki hataları arayın.
C. Ayrıntılı hatalar için günlükleri kontrol edin
journalctl --user -u bluetooth-music.service -n 50 --no-pager
Görüntü açılamıyor görürseniz, hizmet dosyasında DISPLAY=:0
‘ın ayarlandığını onaylayın.
D. Systemd yapılandırmasında Komut Dosyasının yolunu kontrol edin
Komut dosyasının doğru yolunu tanımladığınızdan emin olun bluetooth-music.sh systemd yapılandırmanızda.
E. Değişikliklerden sonra hizmeti yeniden başlatın
systemctl --user restart bluetooth-music.service
Yazının orijinalini buradan okuyabilirsiniz.

Kariyerime 26 yıl önce başladım. Windows ve Linux sistemlerinin kurulumu, yapılandırılması, yönetimi ve bakımı dahil olmak üzere birden fazla sistem üzerinde uzmanlaştım.
Açık kaynak dünyasındaki en son gelişmelerden haberdar olmaktan ve Linux hakkındaki en son araçları, özellikleri ve hizmetleri denemekten hoşlanıyorum.
Son 6 yıldır sistem ve ağ yöneticisi olarak görev yapıyorum ayrıca Pardus Dönüşüm Projesini yönetiyorum ve Pardus İşletim Sisteminin yaygınlaşması adına uğraş gösteriyorum.
Boş zamanlarımda açık kaynaklı uygulamaların Türkçe çevirisine katılıyorum ve The Document Foundation üyesiyim.