Files
librepods/README.md
2024-09-27 16:18:59 +05:30

2.3 KiB

ALN - AirPods like Normal (Linux Only)

Main Demo (Screenshot 2024-09-27 at 3 06 56 AM)

Get Started!

1. Install the required packages

sudo apt install python3 python3-pip
pip3 install pybluez

If you want to run it as a daemon (Refer to the Daemonizing section), you will need to install the python-daemon package.

pip3 install python-daemon

2. Clone the repository

git clone https://github.com/kavishdevar/aln.git
cd aln

3. Preprare

Pair your AirPods with your machine before running this script! ⚠️ Note: DO NOT FORGET TO EDIT THE AIRPODS_MAC VARIABLE IN main.py/standalone.py WITH YOUR AIRPODS MAC ADDRESS!

4. Run!

You can either choose the more polished version of the script, which currently only supports fetching the battery percentage, and in-ear status (but not actually controlling the media with that information), or the more experimental standalone version of the script, which supports the following features:

  • Controlling the media with the in-ear status
  • Remove the device as an audio sink when the AirPods are not in your ears.
  • Try to connect with the AirPods if media is playing and the AirPods are not connected.

Polished version

python3 main.py

Experimental version

python3 standalone.py

Daemonizing

If you want to run this as a deamon, you can use the airpods_daemon.py script. This creates a standard UNIX socket at /tmp/airpods_daemon.sock and listens for commands (and sends battery/in-ear info, soon!).

You can run it as follows:

python3 airpods_daemon.py

Sending data to the daemon

You can send data to the daemon using the send_data.py script. Since it's a standard UNIX socket, you can send data to it using any programming language that supports UNIX sockets.

This package includes a demo script that sends a command to turn off the ANC. You can run it as follows:

python3 example_daemon_send.py

Reading data from the daemon

Youhcan listen to the daemon's output by running the example_daemon_read.py script. This script listens to the UNIX socket and prints the data it receives. Currenty, it only prints the battery percentage and the in-ear status.

python3 example_daemon_read.py