Discover the magic of the internet at Imgur, a community powered entertainment destination. Lift your spirits with funny jokes, trending memes, entertaining gifs, inspiring stories, viral videos, and so much more from users like njic.
I hope there is a command I can use instead of clicking in the GUI. Anyone know a command I could use?
[SOLUTION]
Using this command (with bluetooth speaker MAC address):
bluetoothctl connect A4:77:58:0A:DF:F1
[SOLUTION]
Bonus question: I was thinking I could map that command to a keyboard shortcut (like CTRL+ALT+B). What is the best way (or app) to accomplish this? I believe I could google this part quickly, but happy to hear suggestions anyway
[SOLUTION]
It's possible with PopOS: Settings -> Keyboard -> Keaboard Shortcuts -> Custom Shortcuts
Thx! I could enable/disable bluetooth with your commands and that didn't solve my problem, but helped me google the right command. It is actually much simpler that I thought, I just had to find speakers MAC and I can use:
You could also run the command automatically every time your screen is unlocked depending on your DE. For instance, if you use GNOME, this will likely work
Thank you! I use GNOME, but this is kinda confusing tbh. I was also looking at this forum post where I should put a script in /lib/systemd/system-sleep/. I should play around with that, but can't afford breaking system right now xD. Will try it soon, I might install separate OS just for testing
EDIT: Previous answer was distro dependent and had a syntax error. I have replaced it with the following instructions.
Create 2 files bluetooth-reconnect.sh and bluetooth-reconnect.service. Using your favorite text editor, edit these files so they will contain the following:
bluetooth-reconnect.sh
#!/bin/bash
gdbus monitor -y -d org.freedesktop.login1 |
(while read x; do
if echo "$x" | grep -q "{'LockedHint': <false>}"; then
bluetoothctl connect A1:11:22:3A:CD:F1
fi
done)
bluetooth-reconnect.service
[Unit]
Description=Reconnect Bluetooth after waking from sleep
After=default.target
[Service]
Type=simple
ExecStart=/usr/local/bin/bluetooth-reconnect.sh
[Install]
WantedBy=multi-user.target
Open a terminal in whatever location you created them (you can right click in your file manager and open in terminal, or use cd to navigate). Now move them to the correct locations (you will need sudo privilege for this):
Check to make sure the service started correctly (the "Active:" field should say "active (running)" in green.
sudo systemctl status bluetooth-reconnect.service
This should now do everything automatically. This has been tested and is working on my Fedora Workstation system (uses GNOME). This should be distro independent, unlike my previous answer (and also without the syntax error I had in my initial submission).
While trying to test this on my system, I came across a few issues. I found a more modern and standardized way to check for login after sleep, and have updated my previous comment with a new script. I have new instructions though that are more comprehensive that you can follow.
Create 2 files bluetooth-reconnect.sh and bluetooth-reconnect.service. Using your favorite text editor, edit these files so they will contain the following:
bluetooth-reconnect.sh
#!/bin/bash
gdbus monitor -y -d org.freedesktop.login1 |
(while read x; do
if echo "$x" | grep -q "{'LockedHint': <false>}"; then
bluetoothctl connect A1:11:22:3A:CD:F1
fi
done)
bluetooth-reconnect.service
[Unit]
Description=Reconnect Bluetooth after waking from sleep
After=default.target
[Service]
Type=simple
ExecStart=/usr/local/bin/bluetooth-reconnect.sh
[Install]
WantedBy=multi-user.target
Open a terminal in whatever location you created them (you can right click in your file manager and open in terminal, or use cd to navigate). Now move them to the correct locations (you will need sudo privilege for this):
Check to make sure the service started correctly (the "Active:" field should say "active (running)" in green).
sudo systemctl status bluetooth-reconnect.service
This should now do everything automatically. This has been tested and is working on my Fedora Workstation system (uses GNOME). This should be distro independent, unlike my previous answer (and also without the syntax error I had in my initial submission).
One of the wonderful things about Linux is that if something isn't working, you can just make it work! Also, if you ever need to make a simple service to run a script on boot, you know how now; it can be very useful. Always happy to help though, enjoy your journey through Linux!