Blueberry
by clem 31

 

gKBeiOg

Before I explain what Blueberry is, I’d like to thank mtwebster who finished this last night and only kept 3 hours of sleep for himself :)

For Betsy, we had to make cinnamon-bluetooth compatible with gnome-bluetooth 3.14. We got it working, it almost happened.. and then we looked at ourselves and decided against it. One key reason why cinnamon-bluetooth isn’t a core part of Cinnamon in the first place, is because we didn’t want Cinnamon to depend on a particular version of gnome-bluetooth. Instead, we want Cinnamon to work everywhere, whether that means it supports bluetooth (like in Mint 17.x) or whether that means it doesn’t (like in Arch/Fedora…etc). As gnome-bluetooth 3.14 no longer provides RFKILL functionality, this functionality had to be part of cinnamon-settings-daemon. Of course we could still package it within the cinnamon-bluetooth project… but we didn’t like that design and the way this was going.

At the same time, we were experiencing issues with blueman within the MATE edition.. and we wondered why we were working on a bluetooth tool for just one particular edition and trying to get an external tool working for us on another, when instead we could simply design a solution that would work across the board for all our desktops.

So we made Blueberry.

From a user point of view, Blueberry is an application which configures Bluetooth. It shows a systray icon in your panel and doesn’t annoy you if you don’t have a Bluetooth adapter. It also detects your desktop environment and integrates with it. For instance, if you clicked the “Sound Settings” button shown in the above screenshot, it would know whether to launch “cinnamon-settings sound”, “gnome-control-center sound”, “mate-volume-control”, “pavucontrol”, etc… depending on the desktop you’re currently running. As we speak it supports Cinnamon, MATE, Xfce, GNOME and Unity.

From a technical point of view, Blueberry is a gnome-bluetooth front-end. Gnome-bluetooth 3.8 had two frontends (a gnome-control-center panel and a cinnamon-settings module), gnome-bluetooth 3.14 has two frontends as well… a panel which is part of gnome-control-center, and blueberry. Blueberry works on any desktop environment and should work on any distribution as long as gnome-bluetooth 3.14 is installed. Whether Blueberry will continue to work with future versions of gnome-bluetooth will largely depend on how gnome-bluetooth evolves in the future.

For now anyway, Blueberry solves Bluetooth for us. It will be featured in both editions of LMDE 2 Betsy, where it will replace cinnamon-bluetooth and blueman.

 

31 thoughts on “Blueberry

  1. Reply NDAS Mar 12,2015 15:09

    Nice. Well thought out in the end. Looking forward to it though my need of bluetooth support is minimal.

  2. Reply theSeppi Mar 12,2015 16:36

    Nice approach. If only there was a working driver for my Bluetooth chip…

  3. Reply Gerry Mar 14,2015 09:33

    Great news Clem,
    Long term it should make it easier to maintain as you have total control of blueberry.
    Without wishing to deviate too much, will i be able to receive android notifications over bluetooth like this
    http://www.phoronix.com/scan.php?page=news_item&px=GNOME-Android-Notifications
    [quote]Nuntius relies upon a GNOME program and a small program loaded onto the Android device for locally relaying notifications via Bluetooth to your GNOME desktop when nearby. When any Android notifications happen, they’ll be shown in real-time on your GNOME desktop. [/quote]

    • Reply clem Mar 14,2015 10:40

      Hi Gerry, I’m not sure. It might help anyway and be compatible since blueberry, just like gnome-control-center is a frontend to gnome-bluetooth, so it gets you connected the exact same way.

  4. Reply hrvoojex Mar 14,2015 11:51

    Could you make that bluetooth is turned off by default at least on laptops ? It is important for a battery life on laptops, while it is rarely used. One often forgot to turn it off

    • Reply clem Mar 14,2015 13:49

      No. That said you won’t forget this time because if you have a bluetooth adapter on the computer blueberry will show you a systray icon by default.

      Clicking that icon opens up Blueberry. From there you can either switch Bluetooth OFF (in which case the systray disappears) or untick the option to show a systray icon (in which case it also disappears).

      In other words, BT will be obvious and working out of the box. Disabling it takes two clicks on the mouse.

      • Reply hrvoojex Mar 15,2015 17:45

        Thanks for answering. And how do we turn it on again, if systray disappears?

        • Reply clem Mar 16,2015 13:33

          Menu->Preferences->Bluetooth (alternatively it should also show up in cinnamon-settings, mate-control-center, xfce4-settings etc..).

  5. Reply KDB Mar 14,2015 21:32

    Let’s see if I will finally be able to use my bluetooth. I have never succeeded with this laptop.

    • Reply EDFB Mar 14,2015 23:51

      Then it should be pie for you. I thought you didn’t have a laptop or bluetooth. So you should be able to make blueberry pie now.

  6. Reply SVKroderik Mar 15,2015 09:51

    I hope one day i can use cinnamon without need to install any package starts on gnome-*, but good work :)

    • Reply clem Mar 15,2015 10:39

      Ideally we keep using gnome libs and components and they’re maintained upstream with not only GNOME in mind, but also the fact that we’re using them as well. There’s a significant amount of GNOME developers who continue to think that GNOME sub-projects should work outside of GNOME-Shell. It’s in everybody’s interest that we keep using the same components.

      Look at gnome-keyring for instance. It’s used in MATE, Cinnamon, Xfce, GNOME and Unity. That means not only GNOME is invested in seeing it succeed, but also developers from the MATE project, from Linux Mint and from Ubuntu.

      Same thing with bluetooth.. mate-bluetooth was discontinued. Gnome-bluetooth can evolve as a standard that we all use, or as a codebase that we all fork. It all depends on how it’s maintained. If it’s maintained as something we’re welcome to use an participate in, we’ll keep using it and that’s better for everybody.

      Note that blueberry was initially going to be mintbluetooth. We talked about it, considered the costs (which are small here) and decided that instead of making another Mint tool just for us, we’d support it for everybody out there. So it’s got a generic name, we’ll support other distros and other DEs and even though that represents more work it also means more people will use it, more developers will come and give a hand.. and in the end it will be better for everybody.

      Every single fork within the Cinnamon project was forked for a very precise reason. Some components were forked for very different reasons than others, but they all had a good reason to be forked. When we fork something we more or less turn our back on the original project, we stop benefiting from it and it stops benefiting from us using it. It’s usually a last resort and a decision taken when the pros really outweigh the cons.

      Going forward, ideally, we don’t want to fork anything else. In practice it largely depends on how things we use are maintained and whether they’re going in a direction we can or want to follow. We might see more forks if some projects get too close to Shell, but as much as possible, and unless it’s necessary, we want to continue to use upstream components.

  7. Reply CupidsHelper Mar 17,2015 03:30

    Hi Clem. Thanks to Mtwebster and Clem, for this excellent tool. Catchy name. ;)

  8. Reply jeremi Mar 19,2015 05:54

    How can I install it in Linux Mint 17?

  9. Reply Hugo Osvaldo Barrera Apr 4,2015 06:21

    I’m curious: Why the dependency on gnome-bluetooth? Why not just rely on bluez?

    • Reply clem Apr 4,2015 07:59

      Initially this was cinnamon-bluetooth.. we were already using gnome-bluetooth 3.10 and planning to work on 3.14. We reused the widget provided by gnome-bluetooth 3.14 here and made the frontend cross-DE. This is a very simple project, much simpler than say Blueman for instance. For RFKILL we tap directly into the system, for everything else we go through gnome-bt. If needs be in the future we can also start tapping into Bluez without going through gnome-bt. For now though, there’s no real need.

  10. Reply Dan Saint-Andre Apr 10,2015 18:46

    Since almost every phone and tablet has a touch screen with reasonable resolution, I would like to use either (or both) as digital input over a bluetooth connection similar to a Wacom® Bamboo™ or Intuos™ tablet.

    Will ‘blueberry’ support this sort of use?
    ~~~ 0;-Dan

  11. Reply Fahad Hossain May 9,2015 21:29

    Hi,
    Is there a way to test this on ubuntu-gnome? since you mentioned it working with gnome-bluetooth

    • Reply mtwebster May 9,2015 21:36

      Note: blueberry is not compatible with Trusty (14.04)

      git clone git@github.com:linuxmint/blueberry.git
      cd blueberry
      dpkg-buildpackage
      … (if it fails, install what it claims it is missing – maybe just “debhelper” – then try again

      Then install the .deb created in the parent folder there. You’ll probably then need to run sudo apt-get install -f to grab any runtime dependencies (like gnome-bluetooth).

      • Reply Fahad Hossain May 9,2015 22:10

        The build fails because I dont have some key.

        Ended up downloading from betsy repo.
        Install went fine but the thing is not even starting


        Warning: DE could not be detected!
        Traceback (most recent call last):
        File "/usr/lib/blueberry/blueberry.py", line 56, in on_activate
        self.create_window()
        File "/usr/lib/blueberry/blueberry.py", line 79, in create_window
        self.lib_widget = GnomeBluetooth.SettingsWidget.new();
        File "/usr/lib/python2.7/dist-packages/gi/module.py", line 320, in __getattr__
        return getattr(self._introspection_module, name)
        File "/usr/lib/python2.7/dist-packages/gi/module.py", line 139, in __getattr__
        self.__name__, name))
        AttributeError: 'gi.repository.GnomeBluetooth' object has no attribute 'SettingsWidget'

        • Reply mtwebster May 11,2015 13:51

          As I mentioned, this won’t work in Trusty (Ubuntu 14.04) – what version of gnome-bluetooth do you have?

          The build will give an error about a key at the end, but it still probably worked (check the parent folder for a .deb file) – but again, if you don’t have a sufficient gnome-bluetooth version, it won’t run.

  12. Reply Michael May 10,2015 19:31

    In LMDE 2 I cannot connect my bluetooth device. I cannot set the connection PIN. Instead blueberry proposes a false (random and every time changing) PIN which I can accept or cancel.
    How to tell the program which PIN to use?

  13. Reply Anonymous May 27,2015 23:03

    How do I install this in Arch Linux?

  14. Reply nathan Aug 31,2015 12:59

    Will this work with Linux Mint 17.2 Rafaela?

  15. Reply Mike Nov 14,2015 04:05

    I had Linux mint 17.2, than i tried Ubuntu 15.4 and i was not able to connect my bluetooht headset. I install Linnux LMDR Cinamon and i tried to connect. I was so happy , it was fast and easy. Then i made a up date. it was very long cinamon 2.8 i guess…after impossible to connect my headset

  16. Reply Realpra1 Nov 28,2015 12:37

    You need a similar polished tool for Ndiswrapper and/or other wifi things.

    Even after I got Ndiswrapper up and running it was not booting at startup, it had to be manually added to the system modules file.

    The “driver/device manager” only shows graphical drivers.

    It is sad this stuff is hidden when Ndiswrapper for instance works really well once set up.

    I also had some other issues with connecting to encrypted wifi and had to turn encryption off – maybe this is just a case of work-in-progress though.

    A popup explaining that encryption was not well-supported would have been better though.

  17. Reply Ryan Mar 18,2016 15:03

    Hello Clem,

    Great work on making this a cross-desktop package – better than maintaining a handful of packages. Is there a preferred method for the system to autoconnect to my bluetooth mouse (Logitech T630) upon reboot? I am stuck manually doing it now.

Leave a Reply