In the midst of post-release bug fixing, we've also added a fair number of new features to our stack. As usual, new features span a number of different components, so integrators will have to be careful picking up all the components when, well, integrating.
PS3 clones joypads support
Do you have a PlayStation 3 joypad that feels just a little bit "off"? You can't find the Sony logo anywhere on it? The figures on the face buttons look like barbed wire? And if it were a YouTube video, it would say "No copyright intended"?
Bingo. When plugged in via USB, those devices advertise themselves as SHANWAN or Gasia, and implement the bare minimum to work when plugged into a PlayStation 3 console. But as a Linux computer would behave slightly differently, we need to fix a couple of things.
The first fix was simple, but necessary to be able to do any work: disable the rumble motor that starts as soon as you plug the pad through USB.
Once that's done, we could work around the fact that the device isn't Bluetooth compliant, and hard-code the HID service it's supposed to offer.
Bluetooth LE Battery reporting
Bluetooth Low Energy is the new-fangled (7-year old) protocol for low throughput devices, from a single coin-cell powered sensor, to input devices. What's great is that there's finally a standardised way for devices to export their battery statuses. I've added support for this in BlueZ, which UPower then picks up for desktop integration goodness.
There are a number of Bluetooth LE joypads available for pickup, including a few that should be firmware upgradeable. Look for "Bluetooth 4" as well as "Bluetooth LE" when doing your holiday shopping.
gnome-bluetooth work
Finally, this is the boring part. Benjamin and I reworked code that's internal to gnome-bluetooth, as used in the Settings panel as well as the Shell, to make it use modern facilities like GDBusObjectManager. The overall effect of this is, less code, less brittle and more reactive when Bluetooth adapters come and go, such as when using airplane mode.
Apart from the kernel patch mentioned above (you'll know if you need it :), those features have been integrated in UPower 0.99.7 and in the upcoming BlueZ 5.48. And they will of course be available in Fedora, both in rawhide and as updates to Fedora 27 as soon as the releases have been done and built.
GG!
Showing posts with label gnome-bluetooth. Show all posts
Showing posts with label gnome-bluetooth. Show all posts
Friday, 15 December 2017
Wednesday, 26 March 2014
My GNOME 3.12 in numbers
1 new GNOME Videos, 1 updated Bluetooth panel, 2 new thumbnailers, 9 grilo sources, and 1 major UPower rework.
I'm obviously very attached to the GNOME Videos UI changes, the first major UI rework in its 12-year existence.
I'm obviously very attached to the GNOME Videos UI changes, the first major UI rework in its 12-year existence.
GNOME Videos watching itself
Go read the press release and follow to the release notes.
Labels:
gnome,
gnome 3,
gnome-bluetooth,
gnome-control-center,
grilo,
release,
thumbnailer,
totem,
upower,
videos
Monday, 9 December 2013
Bluetooth panel redesign
Another week, another panel refresh.
Rather than the 2-pane approach, and a separate setup interface we used to have, we've gone for a single pane device list, as you've probably seen on your smartphone.
We also do away with the "Discoverable" switch (your computer will be visible when this panel is opened, invisible if not), and nearby devices will show up at the bottom of the list. Simply click on one to set it up.
Clicking on an already setup device will bring up the properties, allowing you to connect to the device if necessary, or link to related preferences.
Rather than the 2-pane approach, and a separate setup interface we used to have, we've gone for a single pane device list, as you've probably seen on your smartphone.
We also do away with the "Discoverable" switch (your computer will be visible when this panel is opened, invisible if not), and nearby devices will show up at the bottom of the list. Simply click on one to set it up.
Clicking on an already setup device will bring up the properties, allowing you to connect to the device if necessary, or link to related preferences.
Finally, the biggest part of the work was making sure that the new setup mechanism worked at least as well as the stand-alone wizard. This means that I got 17 of my most representative devices out, and set up every single one of them. Edge case.
There's a good chance that we'll make some additional, minor, adjustments to the wording, spacing and behaviour of this panel before the GNOME 3.12 release. I'd particularly like to make clicking on a device connect to it if already setup and offer some other way of accessing properties.
Tuesday, 12 November 2013
Bluetooth file sharing (ObexPush) in GNOME 3.10
As you might remember, GNOME 3.10 switched to using BlueZ 5.x as its Bluetooth backend.
Switching to BlueZ 5.x meant that the old obex-data-server (which was used in both the gvfs ObexFTP backend, and gnome-user-share) couldn't be used anymore. The previously stand-alone obexd was to be used.
Its API is quite different, and it obviously didn't get much testing apart from its target use case, the single-user phone case.
I fixed a number of bugs this week-end, which should make Obex Push server-side (sending files from your phone to your computer) work as expected.
Distributors' homework
First, distributors will need to do a bit of work for you:
- Ship and apply this (not yet upstreamed) patch if you don't have a systemd-based session, so that obexd can be started via D-Bus.
- And ship this patch to have obexd write to the user's cache dir by default.
With both of those patches to BlueZ and gnome-user-share 3.10.1, you should be golden.
Note that the first patch is also required if you want to send files using bluetooth-sendto.
ObexFTP
You'll notice that we didn't mention ObexFTP yet, but we'll do, one last time. ObexFTP support client side hasn't seen any updates for a couple of years, and the server side support for it in obexd didn't match our expectations (such as the inability to kill existing, already made connections).
So ObexFTP support was never finished porting and re-enabled in gnome-user-share. And given that apart from computers and very few phones, the client side support was lacking, we decided to kill the support for it in gnome-user-share.
TL;DR
ObexPush server support is fixed in gnome-user-share 3.10.1, and ObexFTP server support is gone.
Switching to BlueZ 5.x meant that the old obex-data-server (which was used in both the gvfs ObexFTP backend, and gnome-user-share) couldn't be used anymore. The previously stand-alone obexd was to be used.
Its API is quite different, and it obviously didn't get much testing apart from its target use case, the single-user phone case.
I fixed a number of bugs this week-end, which should make Obex Push server-side (sending files from your phone to your computer) work as expected.
Distributors' homework
First, distributors will need to do a bit of work for you:
- Ship and apply this (not yet upstreamed) patch if you don't have a systemd-based session, so that obexd can be started via D-Bus.
- And ship this patch to have obexd write to the user's cache dir by default.
With both of those patches to BlueZ and gnome-user-share 3.10.1, you should be golden.
Note that the first patch is also required if you want to send files using bluetooth-sendto.
ObexFTP
You'll notice that we didn't mention ObexFTP yet, but we'll do, one last time. ObexFTP support client side hasn't seen any updates for a couple of years, and the server side support for it in obexd didn't match our expectations (such as the inability to kill existing, already made connections).
So ObexFTP support was never finished porting and re-enabled in gnome-user-share. And given that apart from computers and very few phones, the client side support was lacking, we decided to kill the support for it in gnome-user-share.
TL;DR
ObexPush server support is fixed in gnome-user-share 3.10.1, and ObexFTP server support is gone.
Labels:
bluetooth,
bluetooth-sendto,
bluez,
gnome-bluetooth,
obex,
settings
Monday, 23 September 2013
GNOME 3.10 is coming!
The new release is coming! As has been the case for the past couple of releases, I've mostly been shepherding great work by other contributors, and I'll detail my limited contributions beyond mere bug fixing.
Wayland support
I've done some work on enabling clutter-gtk applications to be able to run on Wayland though the harder work of implementing sub-surfaces is still pending.
Giovanni has done incredible work on mutter to start moving some of the X11 dependent code inside the compositor, which should allow you to run a (cut down) Wayland session using gnome-shell.
This also means that Thomas Wood's redesigned Displays panel has Wayland support. A perfect storm of changes for one of the only panels that received little attention since the GNOME 2.x days.
Date & Time redesign
Zeeshan, through his work on Geoclue2, and Kalev, through his Summer of Code project, have completely redesigned the Date & Time panel. Aside from being easier to setup, it means that we can finally implement the automatic timezone switching depending on your location.
BlueZ 5 support
GNOME is the first major desktop to ship with BlueZ 5 support, thanks to work by Gustavo Padovan and Emilio Pozuelo Monfort.
The older version was not supported anymore, and the new version allows us to support things like "Just Works" pairing, better support of audio devices (though the PulseAudio 5.x release to support this is only coming shortly after GNOME 3.10) and a much better architecture for a more stable operation.
GNOME 3.12 should see a redesigned Bluetooth panel, to match current best practices on other platforms (such as merging the management and pairing wizard UIs into one).
Miscellaneous
OLED support for Wacom Intuos 4 tablets (as seen above, thanks Przemo), media keys support for MPRIS applications such as Spotify (thanks to Michael Wood and Lars Uebernickel), updated UI for the Universal Access panel (the ever present Matthias Clasen), support for many more fingerprint readers in libfprint (thanks Vasily Khoruzhick).
And to my contributions
More work on Videos. Totem 3.10 is still based on the same interface as in GNOME 3.8, but some work has been on the master branch towards the new UI, with some of the features getting backported. We have:
I also spent quite a bit of time on a side project that didn't come to fruition at this time, but I hope to be able to post some details soon.
Wayland support
I've done some work on enabling clutter-gtk applications to be able to run on Wayland though the harder work of implementing sub-surfaces is still pending.
Giovanni has done incredible work on mutter to start moving some of the X11 dependent code inside the compositor, which should allow you to run a (cut down) Wayland session using gnome-shell.
This also means that Thomas Wood's redesigned Displays panel has Wayland support. A perfect storm of changes for one of the only panels that received little attention since the GNOME 2.x days.
The new displays panel with a TV that claims to be oh so small
Date & Time redesign
Zeeshan, through his work on Geoclue2, and Kalev, through his Summer of Code project, have completely redesigned the Date & Time panel. Aside from being easier to setup, it means that we can finally implement the automatic timezone switching depending on your location.
The new Date & Time panel
BlueZ 5 support
GNOME is the first major desktop to ship with BlueZ 5 support, thanks to work by Gustavo Padovan and Emilio Pozuelo Monfort.
The older version was not supported anymore, and the new version allows us to support things like "Just Works" pairing, better support of audio devices (though the PulseAudio 5.x release to support this is only coming shortly after GNOME 3.10) and a much better architecture for a more stable operation.
GNOME 3.12 should see a redesigned Bluetooth panel, to match current best practices on other platforms (such as merging the management and pairing wizard UIs into one).
Bluetooth devices in use
Miscellaneous
Intuos 4 OLEDs
OLED support for Wacom Intuos 4 tablets (as seen above, thanks Przemo), media keys support for MPRIS applications such as Spotify (thanks to Michael Wood and Lars Uebernickel), updated UI for the Universal Access panel (the ever present Matthias Clasen), support for many more fingerprint readers in libfprint (thanks Vasily Khoruzhick).
Redesigned Universal Access panel
And to my contributions
More work on Videos. Totem 3.10 is still based on the same interface as in GNOME 3.8, but some work has been on the master branch towards the new UI, with some of the features getting backported. We have:
- new session management for when Totem crashes
- support for chapters within files (such as Matroska videos)
- Wayland bug fixes in GTK+, clutter and the combined clutter-gtk
- a completed GDBus port
- Working overlaid controls (though their behaviour isn't quite up to scratch)
- Remote files support in Grilo, including support for Recent files
- Started work on merging the various sidebars within the main view (which included landing GtkSearchBar in GTK+)
- libquvi 0.9 support
I also spent quite a bit of time on a side project that didn't come to fruition at this time, but I hope to be able to post some details soon.
Monday, 7 November 2011
ObexFTP in GNOME, (non-)update
If you've tried to use ObexFTP browsing (browsing files on mobile phones over Bluetooth) in GNOME in recent times, and didn't get a good experience from it (crashes, or very unreliable browsing), those problems are known, and due to the architecture used to implement the functionality.
If you want to help make ObexFTP browsing good again, please try to convince one of your coder friends to help port the existing code to use the "gobex" library that the obexd D-Bus service uses.
Unless somebody steps up in the GNOME 3.4 timeframe, I will disable the access to the functionality in gnome-bluetooth. The brokenness makes us look very bad, and the files are still available through other (cabled) means in most cases.
If you want to help make ObexFTP browsing good again, please try to convince one of your coder friends to help port the existing code to use the "gobex" library that the obexd D-Bus service uses.
Unless somebody steps up in the GNOME 3.4 timeframe, I will disable the access to the functionality in gnome-bluetooth. The brokenness makes us look very bad, and the files are still available through other (cabled) means in most cases.
Tuesday, 18 October 2011
Bluetooth panel merged
The Bluetooth panel was the last bad citizen in getting merged into gnome-control-center itself. It's now been integrated into gnome-control-center itself, using a very cleaned up libgnome-bluetooth.
Ready for GNOME 3.4! Please report any breakage.
Ready for GNOME 3.4! Please report any breakage.
Thursday, 23 June 2011
Pretty, oh so pretty
There was a tiny problem with the Bluetooth panel has it was implemented in GNOME 3. There wasn't a way to rename the Bluetooth adapter. Well, there was a way, but it wasn't implemented, but it was there, in our minds.
We started by adding support to the Info panel to set a machine's pretty hostname, as implemented by systemd. Looks simple enough.
The next step was to make bluetoothd know about this file, and use it to name Bluetooth adapters, instead of crappy hostnames. And voila.
Implemented as it should be.
If you have applications where using a device's name (as opposed to the user's name) makes sense, please look into using the machine's pretty hostname.
If you want to test all this, packages will soon be trickling into Fedora 16 (aka Rawhide). All the patches are upstream, though the bluez patches are still pending.
We started by adding support to the Info panel to set a machine's pretty hostname, as implemented by systemd. Looks simple enough.
The next step was to make bluetoothd know about this file, and use it to name Bluetooth adapters, instead of crappy hostnames. And voila.
Implemented as it should be.
If you have applications where using a device's name (as opposed to the user's name) makes sense, please look into using the machine's pretty hostname.
If you want to test all this, packages will soon be trickling into Fedora 16 (aka Rawhide). All the patches are upstream, though the bluez patches are still pending.
Labels:
bluetooth,
control-center,
gnome-bluetooth,
systemd
Tuesday, 22 February 2011
Bluetooth panel
Nearly implemented in one evening (Friday evening, before the UI freeze), and a day (well, a long day, it's 4:30 AM).
The only thing not implemented is the hardest part, the "active" button, which needs to take into account whether there are Bluetooth devices at all, if one is the default and powered, and handle hardware killswitches as well as software ones (software-based airplane modes for example).
Yay, I can wiggle my mouse
As per usual, refer to the design documents for more information on the changes made.
Monday, 8 November 2010
Bluetooth in gnome-shell
Even though I'm still gnome-shell impaired (waiting on 3D support landing for my Radeon video card), I helped out Giovanni Campagna into getting Bluetooth support in the gnome-shell.
My work was to review Giovanni's code for gnome-bluetooth, and making sure that the gnome-shell behaviour matched that of the existing GNOME Bluetooth applet.
A lot of to-and-fro, but the gnome-bluetooth changes are now in, and waiting on sub-menu fixes for gnome-shell itself. Owen was kind enough to provide me with a screenshot for your enjoyment.

Bluetooth in the shell
This wasn't my first interaction with Giovanni, as, in another long-winded bug, we hashed out the volume control shell icon. This work is already merged, and lives in gnome-shell.
Labels:
bluetooth,
gnome-bluetooth,
gnome-shell,
gobject-introspection
Monday, 2 August 2010
GUADEC slides
Got back from GUADEC on Saturday, and spent most of the week-end recovering. Probably a good thing, as I have loads of things on my TODO list, for either the Board, GNOME or Fedora.
Geoclue talk
As per usual when I make slides, I end up going through them quickly, but the Q&A session was long enough for me to go into more details.

Bluetooth talk
No slides, for a change. I hope the videos will be available online soon.
Thursday, 1 April 2010
Code for cash: Summer of Code ideas
As you might know, the time as come to put in your applications for Google's Summer of Code project ideas.
There's a good bunch of ideas available on the GNOME side of things, but if you fancy helping out GNOME without working on GNOME, you might also like the ideas from FFMpeg, GStreamer, or BlueZ (some of it directly related to gnome-bluetooth).
And if you're into web development, we have 2 good ideas in the GNOME Wiki (See the Front-end for common web services and Collaboration server/client ideas).
There's a good bunch of ideas available on the GNOME side of things, but if you fancy helping out GNOME without working on GNOME, you might also like the ideas from FFMpeg, GStreamer, or BlueZ (some of it directly related to gnome-bluetooth).
And if you're into web development, we have 2 good ideas in the GNOME Wiki (See the Front-end for common web services and Collaboration server/client ideas).
Labels:
bluez,
ffmpeg,
gnome,
gnome-bluetooth,
google,
gstreamer,
summer of code
Thursday, 5 November 2009
Get Moblin, get GNOME
If you were to install the new Moblin 2.1 somewhere, you'd be getting a gnome-bluetooth powered Bluetooth panel.
All the code lives upstream in the gnome-bluetooth module on master.
All the code lives upstream in the gnome-bluetooth module on master.
Thursday, 29 October 2009
Bug fixing galore!
In the past couple of weeks, we've been hard at work fixing bugs for the next Fedora release, Fedora 12.
We've had new releases for Totem - with loads of warnings, crashers, and behavioural bugs fixed -, for gnome-bluetooth - with upstream fixes for some killswitch handling problems -.
I've also helped out fixing bluriness in gnome-settings-daemon, and made gnome-power-manager use the same OSD code as the volume pop-ups.
As a relief from all the bug fixing, I've started working on a Bluetooth input setup helper, which will help you set up a mouse and keyboard on Bluetooth should you find yourself without any connected to your computer. This should be helpful to users of Logitech, or Dell branded dongles.
Labels:
bluetooth,
fedora,
gnome-bluetooth,
gnome-power-manager,
totem
Wednesday, 23 September 2009
nautilus-sendto plugin API
As promised in the nautilus-sendto module proposal, I fixed up the plugin API, wrote API docs, and exported the plugin functionality.
I've already patched Empathy to carry its own nautilus-sendto plugin, and will be moving the Pidgin and Bluetooth plugins in the near future.
Labels:
bluetooth,
empathy,
gnome-bluetooth,
nautilus-sendto,
pidgin
Monday, 21 September 2009
Too many modules
Today I released GNOME 2.28.0 versions of:
- totem-pl-parser and totem
- gnome-bluetooth
- gnome-media
- and gnome-user-share
I also released a new nautilus-sendto, with a revised GNOME-ish version number.
Both gnome-bluetooth and totem are also due 2.28.1 releases to fix a couple of buglets.
Labels:
gnome,
gnome-bluetooth,
gnome-media,
gnome-user-share,
totem
Tuesday, 30 June 2009
Secure Simple Pairing support, now in Fedora 11
I updated gnome-bluetooth in Fedora 11, and that new version supports Secure Simple Pairing, an easier pairing mode for Bluetooth 2.1 devices.
The update currently lives in the updates-testing repository, but will be in the normal updates when we've had enough good feedback about it.
If you have Bluetooth devices in your possession that don't work as expected with your systems, and fancied a bit of playful testing, find me at GCDS, and we'll try and fix that.
The update currently lives in the updates-testing repository, but will be in the normal updates when we've had enough good feedback about it.
If you have Bluetooth devices in your possession that don't work as expected with your systems, and fancied a bit of playful testing, find me at GCDS, and we'll try and fix that.
Friday, 26 June 2009
DBusGProxy introspection, where art thou?
I tried to beat the wash cycle on my washing machine at doing something useful[1].
Tried to add Introspection support to gnome-bluetooth.
The result nearly works, as it seems that there's no bindings for DBusGProxy in gobject-introspection...
[1]: I played football twice today, and needed to wash my kit again, as I'll be playing tomorrow, though I hope we'll play better than we did this evening, shrug.
Tried to add Introspection support to gnome-bluetooth.
The result nearly works, as it seems that there's no bindings for DBusGProxy in gobject-introspection...
** WARNING **: Entry 'DBusGProxy' not foundIf somebody knows...
[1]: I played football twice today, and needed to wash my kit again, as I'll be playing tomorrow, though I hope we'll play better than we did this evening, shrug.
Wednesday, 24 June 2009
A little (geo)clue
Over the past week, I've been working a little on Geoclue stuff.
First up is a Geoclue plugin for gnome-bluetooth, which allows you to set up your Bluetooth GPS device.

This will work best with the patches in the Geoclue bugzilla, so that the selection is instant-apply.
The second piece of work is a Skyhook Geoclue provider. This code manages to put me within 20 yards of my house, though we should be getting NetworkManager's help to get the AP's MAC address.
Finally, my Geoclue Firefox patch should soon be getting reviewed. It's been long enough that I forgot how to build Mozilla (probably a good thing).
As an added bonus, I've sent a patch against NetworkManager to Dan with a gnome-bluetooth plugin, which should allow users to just tick a box to set up PANU Internet access.
Now, we just need somebody reviewing all those Geoclue patches. Maintainer, where are you at?
First up is a Geoclue plugin for gnome-bluetooth, which allows you to set up your Bluetooth GPS device.

This will work best with the patches in the Geoclue bugzilla, so that the selection is instant-apply.
The second piece of work is a Skyhook Geoclue provider. This code manages to put me within 20 yards of my house, though we should be getting NetworkManager's help to get the AP's MAC address.
Finally, my Geoclue Firefox patch should soon be getting reviewed. It's been long enough that I forgot how to build Mozilla (probably a good thing).
As an added bonus, I've sent a patch against NetworkManager to Dan with a gnome-bluetooth plugin, which should allow users to just tick a box to set up PANU Internet access.
Now, we just need somebody reviewing all those Geoclue patches. Maintainer, where are you at?
Labels:
bluetooth,
firefox,
geoclue,
gnome-bluetooth,
NetworkManager
Thursday, 18 June 2009
gdb trick
I had a problem with gnome-bluetooth's wizard, a couple of days ago, that I couldn't reproduce when running under gdb. Turns out that I'm too slow at typing or something, and the problem was a race (though a slow one).
There's a few tips and tricks in this class material. The one I was interested in was:
(gdb) break foobar_new
(gdb) commands
thread apply all bt
continue
end
Then, every time you hit that break point, you'll get a backtrace, and the program will continue. I fixed that bug I saw :)
There's a few tips and tricks in this class material. The one I was interested in was:
(gdb) break foobar_new
(gdb) commands
thread apply all bt
continue
end
Then, every time you hit that break point, you'll get a backtrace, and the program will continue. I fixed that bug I saw :)
Subscribe to:
Posts (Atom)














