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

 

budgie-remix 16.04 is now out!


The budgie-remix team are proud to announce the 16.04 release of budgie-remix.

Built upon the superb 16.04 Ubuntu LTS package archive, this is our very first full release using the excellent budgie-desktop from the Solus Project team.

64bit and 32bit ISO’s are available as well as bittorrents for these ISO’s – remember to keep seeding please!

Captura de tela de 2016-04-20 08-33-08We have a fantastic and enthusiastic growing community on both Google+ and Reddit – thank you for supporting us through testing and providing valuable feedback.  Some pictures from the community are shown in this post. More details on our support-us page on how to help budgie-remix.

Screenshot from 2016-04-14 13-50-50The budgie-remix team has grown from just myself, to the irrepressible HEXcube, the on-the-ball SpotTech, the enthusiastic Ploctaux, eagle-eyed Foggalong and our newest design recruit udara-u3.  It has been a pleasure working with you all 🙂

Working with upstream guys like Horst3180, Ikey Doherty, Pinguy and others has been great.  Cheers!

2016-04-14-143643_1920x1080_scrotWe have come a long way in a very short time.

It doesn’t end here.  The team has lots of stuff lined up and we’ll announce these in the next days and weeks.  From the fantastic Solus Project team – we look forward to the forthcoming new releases of budgie-desktop this year and we’ll bring these updates to you our 16.04 members as soon as possible.

Moreover – we have lots of opportunities for you as well to get involved.  It is this part we are most excited about.  We need your help to achieve our number one goal – to become an official member of the Ubuntu family.  Please look out for these announcements and don’t be afraid to step forward!

Next step will be the 16.04.1 release of budgie-remix in approximately three months time.

Likewise we’ll be publishing our first alpha 16.10 builds in July, looking forward to the 16.10 release in October.

budgie-remix release candidate 1


As we march madly onwards towards the 16.04 release of budgie-remix, I’m pleased to announce our first release candidate.  Please grab these from our download site and give these a good workout.

ubuntu budgie 32bit (before testbudgie ppa) [Running] - Oracle VM VirtualBox_009

Have a look at the README – the known issues should be looked at.

Feedback any issues on our launchpad bug-tracker, discuss via our google+ and reddit communities.

As always – many thanks to the thousands of testers who have downloaded budgie-remix.

On behalf of the development team (Hexcube, Foggalong, Ploctaux, Spottech, myself) lets make one more push to make budgie-remix ready for the wider community.

cheers

budgie-remix changes post beta 2


Its been a busy time since beta 2 was released – so here is a quick run-down of what is new (remember to do a full update to get the latest changes)

  • New Dock Added.  Oft asked is the addition of a Dock.  We know via feedback received by the budgie-remix team that many people use a launcher to aid their workflow.  The icon tasklist included with budgie is rather limited at the moment – although we expect some nice changes from upstream sometime in the future.  We’ve included Plank with the Arc-Plank theme which complements the default Arc themes.

ubuntu budgie 32bit (before testbudgie ppa) [Running] - Oracle VM VirtualBox_009

  • We have removed the icon tasklist applet for new installs and new users.  When new stuff is done upstream we will look to see if we can reinstate this applet in the default install (either at 16.04.1 or 16.10)
  • Don’t worry if you love the icon tasklist applet and don’t like docks.  Simply use Startup Applications to stop Plank from launching on logon.  Use Raven to readd applets.
  • We have centered the clock – it just looked too odd stuck at the left hand side of the screen.
  • We’ve included the stylish Vertex themes – these themes complement budgie very nicely.  Plank also comes with a Vertex theme – change this via Accessories – Plank Preferences.

ubuntu budgie 32bit (before testbudgie ppa) [Running] - Oracle VM VirtualBox_011

  • Arc-theme has received updates to support users using the GNOME3 Staging PPA (Gnome 3.20)
  • budgie-xfdashboard has now been removed  as a default application – many people in the community didnt think it added any value.  Don’t worry if you like this – sudo apt install budgie-xfdashboard to reinstall.
  • The stylish gnome-calendar is now installed.
  • For laptop users TLP is included by default – enjoy better battery life!
  • Again for laptop users – touchpad tap-to-click is enabled by default
  • On the logon screen, a budgie-logo is now visible signifying the budgie-desktop session.
  • The arc firefox theme has been built from upstream sources – this will allow us to bring updates quickly when they are released.
  • The slideshow used for the installer has received nice new screenshots.
  • Work is ongoing very nicely to rework budgie-remix.org to be more dynamic and maintainable.

We’ve been working with upstream developers:

  • budgie logo will be added in a future unity-greeter package
  • we’ve requested a similar update for the lightdm-gtk-greeter package
  • Numix now includes a fix for budgie-desktop start-button.
  • We’ve got positive responses for future work on budgie desktop – support for python plugins, better plugin installation structures and vendor specific customisation of the panel applets
  • Pinguy has been absolutely wonderful supporting us through all the late breaking installation issues Canonical devs pushed recently.  Both Pinguy and ourselves have confidence (bar anymore late breaking changes) that we’ll be pushing out our 16.04 release on-time – weekend after the 16.04 release is our target.