Saving power with Diodon 0.8.0

Today, Ubuntu Precise has been released. Is this not a good time to release another Diodon version as well?

Well, here it is ;) . This new release of Diodon, however, does not bring many new feature but is a polish of the application you are (hopefully) already used to. Changes have been done so it compiles smoothly in Ubuntu Precise with its new Unity Lens api. And now you should be able to use python plugins without any hassle as well.

But there is one small change which might interest you much more, if you often use Diodon on your laptop running on battery…

You might now ask yourself, what does Diodon have to do with my battery? Let me dive into this a bit deeper by explaining how Diodon works.

So to be able to create a history of clipboard items Diodon has to tell the clipboard that it has to call Diodon when there is any new content. Diodon will than add such to its history.

This works great for the normal clipboard which you use with Ctrl + C. Unfortunately the clipboard is not able to tell Diodon, when a primary selection has changed (an area on the screen which is selected by the mouse). To get around this, Diodon has to check in a regular interval whether the primary selection has changed. This works quite well on desktop machines and plugged in laptops.
However, imagine when your CPU wants to go to sleep and just before it wants to the interval is over and will check whether the primary selection has changed. This of course will wake up the CPU again. As this happens over and over again it will discharge your battery faster than it would be really necessary.

There is now good news to this. In Diodon version prior to 0.8.0 there was no way to stop this timer but closing Diodon. In this new version, however, you can simple go the preferences and uncheck “Use primary selection”. This way you can still use Diodon (of course whit the restriction that the primary selection is not added to the history) but not uselessly waking up the CPU and therefore saving power.

Here you can find the new version to be installed for Ubuntu Precise. Let me know what you think.

Posted in Projects | Tagged , | 1 Comment

Happy Diodon New Year with 0.7.0

The new year has just started. And there is so much ahead what can be implemented for Diodon. Might it be a better GNOME3 integration or a thought about how Zeitgeist might be helpful.

There are also a bunch of ideas for different plugins. And I hope Diodon will finally get its own icon. (when you are a designer and would be willing to help us out here, please contact us).

We will see what of these things can be accomplished this year. However what I can assure you is that Diodon 0.7.0 will be released today.

It introduces a new key combination so the diodon history menu can be accessed just with one hand on the keyboard. You can read more about it here. Furthermore does this Diodon version also work together with Java applications. This has been a naughty bug and I am sure that quite a few people are happy to see this fixed.

You can install the new version with following commands:

sudo add-apt-repository ppa:diodon-team/stable
sudo apt-get update
sudo apt-get install diodon

Happy Diodon new year ;) .

Posted in Projects | Tagged , | 5 Comments

What’s new on the Diodon front?

The development on Diodon has been continuing and I’m happy to introduce you to a new feature which makes accessing the indicator easier.

The idea for this has come from fatlp. Thanks a lot for this. You can find all details about it on this blueprint.

Up to today, when you wanted to access the indicator with your keyboard, you pressed and released <Ctrl><Alt>V and then used the arrows up and down following with Enter to choose a clipboard item.
This will still work in future releases. However in the new release (which is currently available in the daily ppa for testing) you can do the following:
Press <Ctrl><Alt>V. While you keep pressing <Ctrl><Alt> you can browse through the different clipboard items by pressing V multiple times until you have selected the item you want to paste. Now release <Ctrl><Alt> and the selected item will be copied to your clipboard and pasted (when enabled).
This of course also works with your customized key. The rule is that you keep pressing the modifiers and with the key you can browse through your history.

After I have been using this new key combination a couple of times I’ve already started to love. I hope you do as well ;) .

I’m happy to hear your comments.

Posted in Projects | Tagged , | 1 Comment

Diodon 0.6.0 released and how to build it on your preferred distribution

The last stable release of Diodon had been released quite a while ago. However the development has been going on and major changes now are ready to be released. Some of the changes have been discussed in this blog post

However here is a quick overview what has changed and what needs to be taken care of:

Release notes:

  • Diodon has been updated to gtk+-3.0 and therefore runs only on Oneiric (or all other distributions supporting gtk+-3.0).
  • gconf has been replaced with GSettings/dconf. All settings (except the history) will be lost after installing this version and need to be set again
  • Unity Lens is not installed per default anymore. Install the package diodon-plugins and activate it in the preferences plugins tab. When building from source use ./waf configure –enable-unitylens-plugin to enable it.
  • The Application Indicator is now also a plugin which is enabled by default. The plugin can be disabled in the preferences however.

Changelog:

  • Implement plugin system using libpeas (LP: #826422)
  • Unity Lens now runs on Oneiric (LP: #830001)
  • Using libunique so only one instance can be started (LP: #870774)
  • Update to gtk+-3.0 (LP: #794637)
  • Fixed issues with gtk+-3.0 applications (LP: #879256, #875708)
  • switching to GSettings/dconf (LP: #689462)

You can install Diodon with the following commands

sudo add-apt-repository ppa:diodon-team/stable
sudo apt-get update
sudo apt-get install diodon

This release also brought about changes which should make it easier to build Diodon on your preferred distribution. It used to be the case that Diodon required packages for the Application Indicators which are unfortunately not available on all other distribution.
When Diodon is built from source just running ./waf configure such packages will still be needed. However you can disable it with ./waf configure --disable-indicator-plugin.
Please notice when building Diodon with this option you can only use it with the Hotkey (<Ctrl><Alt>V per default).

I would love to see packages of Diodon for other distribution as well. So go for it :) .
When you struggle building Diodon please contact us.

Posted in Projects | Tagged , | 3 Comments

Writing a plugin for Diodon

The new plugin system for Diodon brings about an easy way to extend Diodon with any feature you might think of.

That could be a Ubuntu One integration, or clipboard actions, copying clipboard content to pastebin, and many many more…

With this post I try to explain you quickly how you go about writing your own plugin and will also point you to other documentation which might be helpful.

Before you start writing your own plugin, one thing is important to know. Diodon uses the library libpeas for its plugin system. Such is used for instance for Gedit or Totem.
There is a good blog post which describes how libpeas works.

You find some sample plugins code written in C, Vala or Python in the diodon bazaar branch plugin-sample.

You can check out and build it with following commands:

bzr branch lp:~diodon-team/diodon/plugin-sample
cd plugin-sample
./waf configure
./waf build
sudo ./waf install

For this you have to have Bazaar and the package diodon-dev installed.

sudo apt-get install bzr diodon-dev

It is recommended to write your plugin in Vala. However C and Python is allowed as well.

As you can see the sample is using waf as a build system (which I personally prefer). However if you want to build your plugin with autotools, take at look at peas-demo of libpeas itself. There you find also some more code how a plugin can be written.

The object you can access in your plugin is the Diodon Controller.

Here is a list of events and methods which are provided:

public signal void on_select_item(IClipboardItem item)
public signal void on_add_item(IClipboardItem item)
public signal void on_remove_item(IClipboardItem item)
public signal void on_clear()
public void select_item(IClipboardItem item)
public void execute_paste(IClipboardItem item)
public void remove_item(IClipboardItem item)
public void add_item(IClipboardItem item)
public Gee.List get_items()
public ConfigurationModel get_configuration()
public void show_history()
public void show_preferences()
public void clear()
public Gtk.Menu get_menu()

Currently, there is no api documentation available. Therefore, for now, please refer to the the source code comments on the Controller.

When you miss a method or an event which you would need in your plugin, please let me know. Best just report a bug and mark it as wishlist. We can than see what we can do.

To test your plugin, there are two location where you can put your files. For simple testing you can add it to ~/.local/share/diodon/plugins. When providing the plugin in a package you should install it to /usr/lib/diodon/plugins.

In both cases you have to activate you plugin in the preferences dialog:

When you finally have finished your plugin, you can publish it as you prefer. However, we as a Diodon Team are intrested to include good plugins in the Diodon source.
Plugins written in Vala will be preferred, however for none-core plugins python and C is allowed as well.
For such a request please report a bug and mark it as Wishlist.

I’m looking forward to see with what idea you come up to extend Diodon.

Posted in Projects | Tagged , | Leave a comment

When will Diodon be stable for Oneiric?

I have found a few request in my Inbox today pointing out this question. I’m very happy to hear that so many are keen to use a stable Diodon version on Oneiric. I can tell you: So am I ;) .

However I hope this blog post will clarify why Diodon is not already available for Oneiric in the stable ppa.

Firstly, you might say, the easiest and safest way would be to build and upload the latest stable release 0.5.0 for Oneiric. Yes it would be. Unfortunately, due to API changes in Unity this version does not even compile.

Such compile errors have been fixed while updating to a new plugin system. However this has brought about a lot of refactoring and therefore needs good testing. (read more about it on this blog post).

So before a stable release will be available, I need some more feedback of testers whether the new version has any regression or bugs.

For this checkout the daily ppa. Leave a comment on this post if everything runs smoothly or otherwise report a bug.

You can also take a look at the milestone 0.6.0 for an overview of open issues which need to be fixed before the stable release.

I’m working hard so a stable Diodon version will be available for Oneiric as soon as possible.

Posted in Projects | Tagged , | Leave a comment

Ramping up plugin system for Diodon

I’ve been working on a plugin system for Diodon for quite a while. Now, finally, it is ready for testing in the daily ppa.

Before you go ahead testing the new version please remember that this code is in development state and therefore should not be used on a production system.

This said, let’s talk about what has really changed:
Basically Diodon still works as usual. However, under the hood a lot has changed.
First is to mention the update to gtk3 and dconf/GSettings. This changes bring about two consequences:

  • All your customized settings will be lost on a upgrade. So please check the preferences dialog.
  • Diodon will only be installable on Oneiric or higher (and of course on any other distribution with gtk3 support but then from source). Older versions of Diodon will still be available for older Ubuntu versions.

Furthermore, a lot of refactoring was needed to have a clean API for the plugin system. A blog post how you can develop your own plugin for Diodon will follow soon.
If you cannot wait :) you might take a look at Libpeas which is the library Diodon uses for its plugin system.

Currently, Diodon has two plugins. One is the application indicator which is installed and activated per default with the diodon package.
Additionally is there a diodon-plugins package which currently only contains the Unity Lens Plugin.
When installed the Unity Lens is not activated per default and needs to be enabled in the Preferences Dialog of Diodon.

I will soon write a few other posts about the new plugin system. However this should do for now ;) .

Looking forward to hear what you think about this move.

Posted in Projects | Tagged , , | 3 Comments

Blog merger with code.esite.ch

The esite.ch and code.esite.ch blogs have been existing side by side for quite a while. esite.ch for mainly the purpose of posting about some projects I’m involved, code.esite.ch more like a knowledge base for developers. However, there has always been a very fine line between those two. So after all, I have decided to merge those two blogs into esite.ch.

But no worries. For the purpose if someone wants to only read about a specific project or only the knowledge base I have reorganized all posts in categories and tags.

New are there only three categories called General, Knowledge Base and Projects whereas all posts which had usually been posted on code.esite.ch are now available in the knowledge base category.

Furthermore are now tags added to all posts. Read the WordPress Feed Guide if you only want to subscribe to a single tag or category.

Hope this readjustment will help you find or subscribe to the posts you really want to get informed about. Let me know when you have any comments.

Posted in General | Leave a comment

GemRB heading for Oneiric

Finally the new GemRB version 0.6.5 released on July 2011 is now available for Oneiric and of course other Ubuntu versions such as Natty,Maverick and Lucid.

The release notes states the following:
two new config options (off by default):
UseSoftKeyboard: Toggle use of software keyboard on devices that support one. It pops up when text input is required
TouchScrollAreas: Toggles a wider and visible gutter around the screen for scrolling the game area. Intended for devices with a touch interface.

You can find the package as always on my ppa.

More details see http://www.gemrb.org.

Posted in Projects | Tagged , | Leave a comment

Diodon 0.5.0 and what to do when diodon does not start

Finally, the instant paste feature is available in a stable release and enabled by default. But no worries if you do not like it you can still disable it in the preferences.

When you suffer from the issue that Diodon does not start anymore, this new release might help you as well. There was an issue that Diodon did not handle some UTF-8 strings correctly what led to Diodon not starting. This issue is fixed in this release.

However it brought up the question what you can do when you suffer from a different issue which causes Diodon not to start either. (although I hope this will never happen to you).

Firstly checkout out the post After updating to Natty: Why has Diodon stopped working?.

If that is not the case on your machine another way is to remove (resp. move) the history file. You can do that with following command:
mv ~/.local/share/diodon/storage.xml ~/.local/share/diodon/storage.xml.old

Start diodon again. Hope you are lucky and it will work. However please file a bug on https://bugs.launchpad.net/diodon and attach the storage.xml.old file.

If diodon still does not start please still file a bug. Run Diodon on the console and add the output to the bug report.

Hope you will get happy with the new Diodon version. If not please let me know ;) .

Posted in Projects | Tagged , | Leave a comment