budgie-remix 16.10 released


16-10

I’m very pleased to announce the release of budgie-remix based on the solid 16.10 Ubuntu foundations.

For the uninitiated, budgie-remix utilises the wonderful budgie-desktop graphical interface from the Solus team.

This is our first release following the standard Ubuntu release cycle – alphas, betas, release candidates.  Certainly eventful with this release we are very proud with the results.

The level of interest has been spectacular – a growing number of contributors, offers of help – so much so we just could not incorporate everything!

With a dynamic team and community developers & testers we are certain we have a good future ahead of us.  Roll on 17.04.

Just a few thanks – there too many people to individually thank – but you know who you are – so three cheers to you.

  • Our Debian reviewers – Adam Borowski & Gianfranco Costamagna
  • Our Ubuntu reviewers – Jeremy Bicha & Daniel Holbach
  • Ikey Doherty
  • Rob Peters and all the budgie-remix bug-busters – massive thanks for your detailed testing effort.
  • Ossian Mapes – we will definitely be looking to showcase your budgie-remix lightdm webkit2 greeter in the future!
  • The budgie-remix team Udara, Niyas, Joshua, Hexcube, Nikola,  Mikl
  • Our financial supporters
  • Our exponentially growing community who have embraced us on all social media – twitter, reddit, G+, Facebook

Read the official release announcement here.  Downloads are here.

budgie-remix 16.10 beta 2


16.10beta2.png

The very latest budgie-remix distro based on the firm 16.10 Ubuntu foundations is now available for testers.

More details available on the project-page – and download links are available from sourceforge.

I have submitted many of the budgie-remix key packages to Debian and these are now available direct from the Yakkety repositories:

  • budgie-desktop,
  • Moka icon theme,
  • Faba icon theme,
  • arc-theme.

Similarly, Ubuntu has accepted our budgie-artwork and budgie-wallpaper (xenial) packages as well.

We look forward to working with the Ubuntu devs and hopefully our remaining packages of budgie-remix will be accepted in 17.04 – budgie-desktop-environment, budgie-welcome, budgie-wallpaper (yakkety) and arc-firefox-theme.

In the interim – these are available from the budgie-remix PPA:

sudo add-apt-repository ppa:budgie-remix/ppa
sudo apt update
sudo apt install budgie-desktop-environment

 

new rhythmbox 3.4 released


Unusually early this time, Rhythmbox 3.4 has been released.

Its available for Yakkety users – but I’ve done some judicious hacking and its now also available for 16.04 users as well.

ubuntu xenial (before 10.2.6) [Running] - Oracle VM VirtualBox : 1_043

(screenshot taken with rhythmbox 3.4 + my alternative-toolbar plugin)

Thanks to the key Rhythmbox maintainer Jonathan Matthew we have a good release that incorporates a variety of fixes and improvements over the rhythmbox 3.3 available in xenial by default.

This version contains the following:

Overview of changes in Rhythmbox 3.4

  • New web-control plugin –> I couldn’t get this to work in Yakkety nor Xenial so lets skip over this bit…
  • Grilo plugin now uses Grilo 0.3 –> only relevant to Yakkety, downgraded in Xenial due to the older Grilo available
  • Soundcloud plugin fetches more search results and allows pausing
  • No longer uses webkit (partly due to OpenBSD W^X enforcement)–>my plugin coverart browser is broken due to GTK3.18 changes in xenial.  This webkit change basically will necessitate a rewrite😦
  • Slightly better handling of keyboard shortcuts for playback
  • Core and some plugin data files compiled into binaries using GResources
    Bugs fixed:
    
    703910  Entering then leaving Party Mode breaks the app menu; Party Mode status incorrectly reported
    721926  TerraParser (lyric's plugin) is not fetching lyrics correctly
    759589  grilo: Port to 0.3.0
    765833  [regression] Cover art shown superposed over the song titles and artist names when cover art is 
    disabled
    766584  Referenced website replaygain.org is not about ReplayGain
    767318  Use correct pkg-config binary
    767466  daap: Fix warnings when configuring music sharing
    767524  "To translators: the context is" doesn't continue the sentence
    768545  Cannot change MP4 encoder settings
    769404  Memory leak

Stock Ubuntu 16.04 users should definitely benefit for 12+ months worth of bug-fixes and refinements.

IMPORTANT:

If you are using my plugin alternative-toolbar this version of rhythmbox introduces a nasty regression and breaks the plugin.  I’ve fixed this now for xenial users and is available in my rhythmbox-plugins PPA or via GitHub.  I’ve uploaded a fix to Debian Unstable and have created a bug-report on launchpad requesting a resync from Debian for Yakkety.

If you are looking to have the latest, I’ve packaged this together and is now available in my Rhythmbox PPA. This PPA contains the existing Ubuntu patchwork – hide on close, support for local and global menu etc. N.B. – I tend to update my PPA as and when I’m investigating what is new in upstream Rhythmbox.

sudo add-apt-repository ppa:fossfreedom/rhythmbox
sudo apt-get update
sudo apt full-upgrade

Note: sometimes the upgrade doesn’t quite work.  If you get a segmentation fault repeatedly on startup then uninstall and reinstall rhythmbox

sudo apt-get purge rhythmbox rhythmbox-plugins rhythmbox-data librhythmbox-core10
sudo apt-get update
sudo apt-get install rhythmbox

 

budgie-remix 16.04.1 released


Actually we released last week but since this is my first Planet Ubuntu blog seems like an opportune moment😉

Using the superb Budgie Desktop, we are pleased to follow the official Ubuntu and community flavour release cadence and offer up a new release incorporating the mass of updates since 16.04 in April. Download links are here.

Our first release was released immediately after 16.04 – built from scratch in less than two months!  This time,  16.04.1 is actually not just a standard point release though. We now build budgie-remix in an automated repeatable manner based on the iso-builder from the Elementary team.

sleeping_beauty_by_jordan-whitt.jpg

Sleeping beauty (above) is just part of a new selection of wallpapers – thanks to Jeremy Bicha for supporting and guiding us – this package has been submitted to the Ubuntu 16.10 proposed queue.

We’ve included the very latest budgie-desktop available (10.2.6) – the same package that I submitted to Debian, together with Moka, Faba and Arc-Theme packages (all submitted to Debian and now available in Stretch as well as Yakkety).

The budgie-remix team have developed for this release a welcome app to introduce new users to the desktop and offer advice to get the best out of the distro.

Screenshot of Budgie Remix Welcome App

All the remaining packages that make up budgie-remix have also been submitted for review.  The goal is to ensure all packages are in the Ubuntu repo’s … we aim to demonstrate that the budgie-remix team can support its software on an ongoing basis through official distribution procedures.  Maybe also in the future become an official community flavour😉

David

budgie-remix project team lead

 

Rhythmbox Alternative-Toolbar goes dark…


Taking some time-out from budgie-remix matters, I’ve released an update to my plugin for rhythmbox called alternative-toolbar.

For those not in the know, this plugin gives rhythmbox a stylish makeover – introduces a compact bar for most desktops and a headerbar for GNOME based desktops.

In this release the following changes have been made:

  • Option for dark theme
  • Display Browse Categories horizontally or vertically
  • Display app-menu correctly in budgie-desktop
  • Updated translations from Launchpad.net
  • correctly toggle search button via CTRL+F
  • option to force the display of the app-menu if required

For a full list of extras that are available for rhythmbox users via this plugin have a look a the README.

But lets have some pretty pictures to explain what’s new.

Dark-theme – For those that like their media players with a dark-style there is a new option in the plugin-preferences.

Screenshot from 2016-05-19 19:45:28

Normally Rhythmbox displays its filter options above the music.  For those of us without much vertical space to play with this doesnt allow us to see as much music in the grid-list.  This new option allows for the filter options to be displayed on the left hand-side of the music list making much more use of a normal widescreen display.

Screenshot from 2016-05-19 19:46:55

For budgie-desktop users you may have noticed that the App-menu was not displayed in the same position as other GNOME apps … well that’s been fixed.

ubuntu xenial [Running] - Oracle VM VirtualBox : 1_029

… and as an aside, there is a gsettings value to force the display of the app-menu if required.

The search button is now correctly toggle-able via the CTRL+F keystroke.

This version has also been accepted into Debian – so Yakkety users will see the plugin in the main repo soon.

For all 14.04, 15.10 and 16.04 users this version can be installed via my rhythmbox-plugins PPA:

sudo add-apt-repository ppa:fossfreedom/rhythmbox-plugins
sudo apt update
sudo apt install rhythmbox-plugin-alternative-toolbar

 

Writing Python Applets for the budgie-desktop


Well here is my first budgie-desktop applet:

ubuntu xenial [Running] - Oracle VM VirtualBox : 1_027

Seen this before?  Well yes – this is the Indicator SysMonitor app-indicator which has been updated to support budgie-desktop.

In-fact … it works much better under budgie because you don’t have to fiddle with applet ordering to stop applets jumping around with the SysMonitor label values grow/shrink in size. Just use Raven to order the applet correctly.

This is just a workout – to see what changes I need to do to get an existing python based app-indicator to natively work under budgie-desktop.

The changes were remarkably small.

Lets dive in.

First grab the source-code and install

sudo apt-get install python3-psutil curl git
mkdir -p ~/.local/share/budgie-desktop/modules
cd ~/.local/share/budgie-desktop/modules
git clone https://github.com/fossfreedom/indicator-sysmonitor.git budgiesysmonitor
nohup budgie-panel --replace &

Then use Raven to add the “Panel Sys Monitor” applet


Ok – so what did I do to convert the existing app-indicator to work under budgie?

All local installed applets need to be installed into a subfolder of ~/.local/share/budgie-desktop/modules.  An applet basically consists of two key files – “.plugin” which is the control file containing the description & Icon you see in Raven together with the name of the python module where budgie & Peas (the library that does all the clever stuff for the display of the applet) has the entry point to “run with”.

TIP: make the module name in the .plugin name the same as the folder name – its case-sensitive.  So in this case the python module is “budgiesysmonitor.py” – so the module name is “budgiesysmonitor” and the folder name containing all the source is also “budgiesysmonitor”

TIP: make the .plugin filename the same as the Class entry point in budgiesysmonitor – so the filename is “BudgieSysMonitor.plugin” and the class entrypoint is “class BudgieSysMonitor(GObject.GObject, Budgie.Plugin):

First comment out/delete the AppIndicator specifics – the gi.repository import AppIndicator statement etc.

Replace a line like “appindicator.Indicator.new(…)” with a Gtk container equivalent such as a button e.g. “button = Gtk.Button.new()

Connect the signals that updates the Button Icon and/or label – for this applet sysmonitor just changes the label – there is no icon to display.

Add a test application wrapper :

# testing
win = Gtk.Window()

...
# setup an instance with config
win.add( button )
win.connect("delete-event", Gtk.main_quit)
win.show_all()
Gtk.main()

Run your new python app and make sure it works as you expect – click stuff, menu’s, display etc.

Then when you are happy, comment out the test app portion and just top and tail with the Applet specifics for Budgie i.e. the correct import:

import gi
gi.require_version('Budgie', '1.0')
from gi.repository import Budgie, GObject

The magic is this bit – two classes – the Peas entry point “BudgieSysMonitor” and the Panel Applet – our button is created here:

class BudgieSysMonitor(GObject.Object, Budgie.Plugin):
    """ This is simply an entry point into the SysMonitor applet
    Note you must always override Object, and implement Plugin.
    """

    # Good manners, make sure we have unique name in GObject type system
    __gtype_name__ = "BudgieSysMonitor"

    def __init__(self):
        """ Initialisation is important.
        """
        GObject.Object.__init__(self)

    def do_get_panel_widget(self, uuid):
        """ This is where the real fun happens. Return a new Budgie.Applet
        instance with the given UUID. The UUID is determined by the
        BudgiePanelManager, and is used for lifetime tracking.
        """
        return BudgieSysMonitorApplet(uuid)

class BudgieSysMonitorApplet(Budgie.Applet):
    """ Budgie.Applet is in fact a Gtk.Bin """

    button = None

    def __init__(self, uuid):
        Budgie.Applet.__init__(self)

        # Add a button to our UI
        self.button = Gtk.Button.new()
        self.button.set_relief(Gtk.ReliefStyle.NONE)
        self.add(self.button)
        self.show_all()

Test your new applet – you’ll need to shout at budgie-panel to make it recognise your new applet:

budgie-panel --replace &

See – easy!

P.S. before you complain – yes I should be using a Popover to display the menu when clicking the applet but that’s for another day.

Source – Ikey’s plugin examples – for C and Vala hackers there are similar example plugins in the linked github repo