Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to make my laptop announce itself as a bluetooth keyboard or/and a bluetooth mouse. It would be nice to be able to connect the computer to my phone or my media computer using bluetooth.

Does anyone know of a good way to do this?

share|improve this question

closed as off topic by sysadmin1138 Feb 14 '12 at 3:04

Questions on Server Fault are expected to relate to server, networking, or related infrastructure administration within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

Cool idea! :) Is there anything in particular you'd like to accomplish? – falstro Jul 21 '09 at 18:04
The thought arose at work where we use synergy ( to seamlessly move the mouse and keyboard focus between computers with different operating systems. It works really well when you have one screen (or more) for each computer! But we thought that it would be really nice if there was some way to work in a similar way with the mobile devices we are developing software for! And since a lot of devices have support for at least bluetooth keyboards... Oh yeah - It would also make me even more geeky. – Greget Jul 21 '09 at 18:31
I doubt a product exists, but bluetooth keyboards in mobile devices are great fun. Especially when the person who's device it's paired to isn't aware of it. – Mark Henderson Jul 22 '09 at 5:48
sed "s/who's/whose/" – Dennis Williamson Oct 4 '09 at 1:16
up vote 9 down vote accepted

As said you should to configure your laptop to implement an HID device profile.

If you are on Linux a good starting point could be libhid.

HID Device Interface (hiddev) works very well, and is actually very easy to understand. There is a good PDF Reference for hiddev too. Also, the include file hiddev.h in /usr/include/linux was also very helpful of course.

share|improve this answer
fyi: that ref link is broken now – Jimsmithkka Aug 30 '10 at 5:41


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.

share|improve this answer
Wow. That seems spot on. I might try this – sehe Aug 15 '12 at 10:36

The closest I know that does what you want is BlueMaemo

It's for Nokia tablets, but those run Linux anyway.

It shouldn't be too hard for someone to port it for use with a laptop.

share|improve this answer

If you're just looking to share the keyboard and mouse you might want to consider using Synergy. It's probably a lot easier than trying to get the bluetooth setup.

From the website:

Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, each with its own display, without special hardware. It's intended for users with multiple computers on their desk since each system uses its own monitor(s).

Redirecting the mouse and keyboard is as simple as moving the mouse off the edge of your screen. Synergy also merges the clipboards of all the systems into one, allowing cut-and-paste between systems. Furthermore, it synchronizes screen savers so they all start and stop together and, if screen locking is enabled, only one screen requires a password to unlock them all. Learn more about how it works.

I use it to share my desktop's mouse and keyboard with my laptop when I am using both computers.

share|improve this answer
Yeah synergy is great, I use it a lot. But I'm looking for a bluetooth solution that I can use to control mobile devices with different operating systems. The great thing with a bluetooth solution is that there would be no need to install client software on the remote device. That means real platform independence! WOHOOO! – Greget Jul 23 '09 at 6:56

As far as i remember bluetooth devices implement a set of profiles, in order to act as a remote keyboard your laptop should appears as implementing the HID profile. It would probably require hacking the bluetooth driver of your laptop to enable such fonctionnality.

share|improve this answer

This little piece of code claims to do what you want. I assume this is what Marko was referring to (another answer). I'm looking for the same kind of thing: a quick way to use a real keyboard (for mostly email) on my mobile phone, without buying another piece of hardware. From the description:

What is it?

  xkbd-bthid is a Bluetooth HID Keyboard in software, meaning this is an

application which emulates a Bluetooth Keyboard. I call it soft-HID.

  What could you use it for?

You can turn any Linux box, PDA or tablet into Bluetooth keyboard and control your DVR, MP3 player or what ever with it.

I made a preliminary effort to compile it, but it won't work against BlueZ v4. However, the Ubuntu repositories have some packages for backwards compatibility with BlueZ 3, which gives me some hope. xkbd-bthid depends on BlueZ 2.4. I probably won't get further just now, since my bluetooth stack is currently messed up in Linux, but do post here if you manage to compile it.

share|improve this answer

This would involve implementing the HID Device profile as opposed to the HID Host profile that most Bluetooth stacks implement.

share|improve this answer


is able to make a laptop act as a BT HID device to connect to a PS3. Can even make a laptop behave as a HID over USB.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.