You can make your computer act as a Bluetooth keyboard for other devices, provided that:
- It has Bluetooth, and runs Bluez. (This is true of Ubuntu systems with Bluetooth.)
- It's running a Linux-based operating system. (That includes Ubuntu!)
- You have administrative abilities in your Linux-based OS (for example, you can
sudo to root).
There is a FOSS program that does this, called hidclient:
The hidclient program makes a Bluetooth® technology equipped computer
appear as a Bluetooth® keyboard and mouse device to other machines.
Input events (like keystrokes and mouse movements) of the locally
attached input devices will be forwarded to another machine via the
Bluetooth® link.
For the counterpart (which might be a Linux PC, a Win PC, a PDA...)
there is no technical difference to "real" Bluetooth® input devices.
Source: hidclient's official site (main page).
That totally rocks: you don't have to do anything special to your iPad (or any other mobile device that works with Bluetooth keyboards) to get this to work. You don't have to jailbreak it. You don't have to install any special apps. Just install and run hidclient, then tell your mobile device (the iPad) you want to use your Bluetooth keyboard!
Everything you need to get the software and learn how to use it is right here.
After reading the whole page (so you understand how it works), make sure to use the instructions at the end (for Ubuntu).
Here's a compact version (essentially the same procedure – this worked better for me):
- Install libbluetooth-dev
.
- Download hidclient source code for Ubuntu. (Check the official page to make sure that's not out of date.) Put it in a folder by itself and extract its contents.
- Type
make and press Enter to compile the source.
- Back up and edit your Bluetooth configuration:
• sudo cp /etc/bluetooth/main.conf /etc/bluetooth/main.conf.old
• sudo -H gedit /etc/bluetooth/main.conf
• Under #DisablePlugins = network,input add the line DisablePlugins = input (no #).
• Add a # to the beginning of Class = 0x000100; under it, write Class=0x000540 (no #).
• Save the file and quit the text editor.
- If you want to be able to run
hidclient like a normal command:
• Run sudo cp hidclient /usr/local/bin.
• Check if /usr/local/bin is in your path with echo $PATH.
• If it's not, add it with any of these methods.
If you skip this step, you can run hidclient by making sure you're in the directory where you compiled it, and running ./hidclient instead of hidclient.
Running hidclient
Run hidclient --help (or see the bottom of the web page) to see how to use it.
Except when run with the --help flag, hidclient must be run as root. So use sudo hidclient (followed by whatever options you're specifying, as explained in the help).
Basically, there's two steps:
- Run
sudo hidclient -l for a numbered list of devices.
- Run
sudo hidclient -eN -x, replacing N with the number of the device you want to "forward" over Bluetooth. In your case, this will be the keyboard.
You're all set. Tell your mobile device (iPad) to use a Bluetooth keyboard.
Terminating hidclient
The last thing you need to be able to do is to stop using the keyboard for Bluetooth input. See, when hidclient is running, the device you select is no longer giving input to your Ubuntu system. If it were anything but the keyboard (say, the mouse), you could quit hidclient by pressing Ctrl+C in the Terminal.
But you cannot do that, because keyboard input won't go to the Terminal or any other Ubuntu program. The keyboard is acting as a Bluetooth device!
So, when "forwarding" the keyboard, quit hidclient by closing the Terminal window (or tab) in which it's running, with the mouse (or trackpad).
- Of course, if your Ubuntu machine has multiple keyboards, you could "forward" one as a Bluetooth device and continue to use the other on your computer.
References/Acknowledgements