Xfce

Subdomains
 

Parole Media Player 0.4.0 Released

  • January 11, 2013
  • Xfce on Sean Davis - Engineering & Open Source

Parole Media Player 0.4.0 has finally been released, with many new features and fixes. Here’s what’s new and what it should do.

Bug Fixes

  • Fixed compilation bugs #9219 and #9226.
  • Fullscreen controls are now displayed on the proper monitor (bug #9270).
  • Fixed screensaver inhibition (bug #7407).
  • Fixed a bug where Parole would freeze on some subtitles (bug #9194).
  • Fixed a bug where Parole would skip every second ogg-vorbis file in the playlist (bug #9562).

New Features and Fixes

  • File and location history
  • Embedded mode
  • Missing codec detection and installation
  • Custom subtitle loading
  • CD and DVD playlist support
  • DVD navigation
  • New look for audio formats
  • New notification plugin
  • Configuration ported to Xfconf
  • Improved keyboard shortcuts

File and Location History

Recent files are now easily accessible. “Recent files” has been added to the Media menu. The “Open Location” dialog has also been greatly improved. Additionally, history can be easily cleared.

Recent files are now easily accessible and cleared in Parole Media Player.
Recent files are now easily accessible and cleared in Parole Media Player.
The Open Location dialog has been cleaned up and made easier to use.
The Open Location dialog has been cleaned up and made easier to use.

Embedded Mode

“Embedded Mode” has been a long-requested feature that would trim away bits of the interface for embedding into other applications (e.g. web browsers). To start Parole in embedded mode, simply use the following command: parole --embedded

A mini-mode Parole Media Player.
A mini-mode Parole Media Player.

Missing Codec Detection and Installation

Another long-requested feature, Parole can now detect if your system is missing a necessary codec and install it as well.

Parole Media Player can now find and install missing codecs with ease.
Parole Media Player can now find and install missing codecs with ease.

Custom Subtitle Loading

Previously, Parole would only open subtitles that were embedded in video files or that had matching file names. Now, you can select any subtitle file for Parole to load with your video.

External subtitle support has been greatly enhanced in 0.4.0
External subtitle support has been greatly enhanced in 0.4.0

CD and DVD Playlist Support

CD and DVD tracks have now been added to the playlist, making it easier than ever to quickly jump to your favorite track or scene. DVD navigation has also been added to the playlist so you can move quickly via DVD menus.

DVD navigation in Parole is finally easy!
DVD navigation in Parole is finally easy!
Quickly jump between DVD chapters in Parole Media Player.
Quickly jump between DVD chapters in Parole Media Player.

New Look for Audio Formats

This is where Parole gets fancy. We’ve added a whole new look for audio tracks, showing off beautiful album art and track details. We’re pretty proud of this latest feature, so be sure to check it out.

Introducing the new audio box widget! Enjoy your album art.
Introducing the new audio box widget! Enjoy your album art.

New Notification Plugin

Now that we have album art, we’ve also added it to the newly introduced notification plugin. Notifications were previously part of the tray icon plugin, but since their functionality is separate, it only makes sense for the plugins to be as well.

The new notifications plugin in Parole Media Player.
The new notifications plugin in Parole Media Player.

Configuration Ported to Xfconf

Configuration has moved away from settings files and has been integrated with Xfce Settings. This means easier deployment of preferred settings and the ability to reset settings if something goes awry quickly.

Parole settings are now stored in the Xfce Settings.
Parole settings are now stored in the Xfce Settings.

Improved Keyboard Shortcuts

Keyboard shortcuts were a major topic for this release and have been improved significantly. You’ll find all the shortcuts below.

General

Combination What it does
Ctrl+O Open Dialog
Ctrl+L Open Location Dialog
Ctrl+Q Quit Parole

Playlist

Combination What it does
F9 Show/Hide playlist
Up Navigate Playlist Up
Down Navigate Playlist Down

Playback

Combination What it does
F11 Enter Fullscreen
Escape Exit Fullscreen
Left/Right Seek Media Backwards/Forwards 10 seconds
Ctrl+Left/Right Seek Media Backwards/Forwards 1 minute
0 (zero) Mute Volume
– (minus) Decrease Volume
+ (plus), = (equals) Increase Volume

Where Do I Get It?

Parole’s source code can be downloaded here. Ubuntu 13.04 users can download it straight from the Ubuntu Software Center. If you’re running Ubuntu 12.04 or 12.10, Parole can be installed from the Xfce 4.12 PPA below (12.04 users also need the 4.10 PPA).

sudo add-apt-repository ppa:xubuntu-dev/xfce-4.12
sudo apt-get update
sudo apt-get install parole

Please test Parole 0.4 and report any bugs you find at the Xfce Bugzilla. So, what do you think of the latest and greatest Xfce media player? Let me know in the comments!

Xfce4-terminal 0.6.x keyboard shortcuts

  • January 5, 2013
  • Jérôme Guelfucci

A lot of users seem to be wondering how to edit keyboard shortcuts in xfce4-terminal 0.6.x. The built-in shortcut editor is indeed gone and the application now uses editable GTK+ accelerators like other GTK+ applications. This is more consistent and allows to drop the exo dependency which makes the application lighter.

The FAQ of the Xfce documentation has a guide on how to edit GTK+ accelerators of xfce4-terminal. You'll get your custom shortcuts back in no time!

PS: xfce4-terminal 0.6.1 is out and has a killer "drop-down" mode ala guake / tilda. See Nick's Google+ page for screenshots.

Looking Forward to 2013

  • December 31, 2012
  • Xfce on Sean Davis - Engineering & Open Source

Tomorrow marks the beginning of a new year and refreshed expectations of what’s to come from the free software world. What can we look forward to, and what will I work on?

Ubuntu: Games, TVs, Smartphones, and Surprises

By 14.04 LTS Ubuntu will power tablets, phones, TVs and smart screens from the car to the office kitchen, and it will connect those devices cleanly and seamlessly to the desktop, the server and the cloud.

Mark Shuttleworth

2012 has been a whirlwind year for Ubuntu. With the announcement of (and even progress towards) Ubuntu for Android, Ubuntu TV, and Ubuntu across multiple platforms, 2013 will set the stage for a unified platform across all devices. And with the latest countdown, time will only tell what else Ubuntu has in store for 2013.

The other huge news that came out of 2012 was the Value and Ubuntu partnership to bring Steam and many popular games to the Linux platform.  This was something often alluded to, leaked, and denied, and then it happened.  Now Steam for Linux is available as an open beta for anybody to try out.  As this becomes more stable and more games come to Ubuntu, more gamers may as well.

Finally, 2013 also means two more Ubuntu-family releases ( Raring Ringtail, anyone) featuring the latest and greatest of Linux and open-source software.  Now that’s quite a bit to look forward to, and I’m only getting started!

Xfce 4.12

Xfce 4.12 will be released this year, bringing all sorts of new goodies.  The developers have been working hard to fix bugs and introduce new features to the Xfce family of applications.  Development releases of Thunar, Mousepad, Xfce Settings, Terminal, and more offer great new features while maintaining minimalism in appearance and memory usage.

The development branch of Thunar, the Xfce file manager, introduces tabbed browsing (a long-requested feature), gphoto integration (offering better support for Android devices and digital cameras), and additional improvements all around.  The latest versions of Exo and Tumbler further improve Thunar and Xfdesktop.

There’s plenty more to write about, but I can imagine that most people aren’t as excited about this stuff as I am… moving on!

My Current Projects

Finally, I’m caught up on my own projects.  I’ve been increasingly busy as of late, further refining Parole Media Player, Catfish, and MenuLibre.  Each application is becoming increasingly more stable and feature-full.  And with each commit, I get fired up to add, tweak, or fix something else.

Parole Media Player is (probably) lines of code away from a new release. We’ve fixed all long-standing bugs, further refined the interface, and added some awesome new features. Screensaver support is finally fixed, so you can enjoy a full-length movie without wiggling your mouse. Missing codecs can now be easily found and installed from Parole. We’ve added an excellent new audio widget that shows album art and track details. CDs and DVDs can now be quickly and easily navigated by the playlist as well. If you’re interested, please check out the latest code from the git repository and test it out! Report any bugs you find here.

The new Audio Box widget.
The new Audio Box widget.
Audio CDs and DVDs now have playlist support.
Audio CDs and DVDs now have playlist support.

I’ve been hard at work rewriting Catfish from the ground up to be leaner, faster, and more easily extended and maintained.  The experimental code is still private, but here’s a sneak peek!

Catfish

Finally, MenuLibre is being reworked to add classic menu editing capabilities (useful for Xfce, LXDE, and other desktop environments).  Hopefully we’ll see this new feature sometime soon in the coming days.  As always, if you’re interested in helping out with any of these projects, let me know.

Happy New Year!

So yeah, 2013.  It’s going to be huge.  You should do all you can to start it off on the right foot and have a good time with friends, family, or strangers.  There’s a lot coming up, and it will get here when it gets here, right?  Though, if you’re impatient, most of this upcoming software is available online, even in its early development stage.  So, why wait?

Do you have any big plans for 2013? Are you looking forward to the next year and everything that’s to come? Let me know in the comments!

Cheers!

Featured image, available under a Creative Commons license from http://www.flickr.com/photos/bayasaa/2693171833/

Keyboard shortcut work landed

  • December 30, 2012
  • Jérôme Guelfucci

After a few user interface improvements and some last bug fixes, the work I described in my last post was merged in the master branches. It is thus available for testing to all users of the Xfce development version.

Feedback on this is welcome, file any bug you find on the Xfce Bugzilla. This will of course be available in the next development release of those components.

Work in progress to improve keyboard shortcuts in Xfce

  • December 23, 2012
  • Jérôme Guelfucci

Long time no blog! I started to hack again last week with the goal of improving keyboard shortcuts handling in Xfce. I touched that during the Xfce 4.10 cycle and this unfortunately seem to have introduced a bunch of bugs that I'm now trying to resolve. I also took this opportunity to try to overhaul the UI and make it more understandable.

This code is available in the jeromeg/keyboard-shortcuts branches of xfwm4, libxfce4ui and xfce4-settings on the Xfce Git server. Some improvements are still planned but most of what I was planning is already implemented.

Here is a list of reported bugs which should be fixed once I merge this:

A brief summary: shortcuts now work when Caps Lock is on, shortcuts using Shift or the numeric keypad are handled correctly, a bunch of regressions are fixed, conflict handling is now more reliable and the UI should be better.

Regarding keyboard shortcuts bugs, keyboard shortcuts not working correctly after a reboot or not work working in some other cases seem to occur because of a "wrong" shortcut database often caused by a problem in the migration script in Xfce 4.6. In that case, the easier way to fix this seems to be to revert all keyboard shortcuts to default (in xfwm4-settings and xfce4-keyboard-settings) and to rebind them using the dialogs.

Screenshots

Readable shortcut labels in the UI

Shortcuts view with now with readable labels

Improved dialogs to add and edit shortcuts

Set shortcut command

Set shortcut keys

Improved conflict handling

conflict-dialog.png

Testing is welcome!

If you know what you are doing, it would be useful if you could test those changes and report me by mail any remaining issues. Suggestions for improvements are also welcome.

Apache restart with Vim autocmd

  • December 23, 2012
  • Mike Massonnet
In order to execute a command right after saving a file in Vim, you can use the :autocmd command. Here is a quick example how it can be useful with Apache files.

NB: on my system, Debian in this case, an Apache file is automatically recognized as filetype=apache.

augroup apache
autocmd BufWritePost */sites-enabled/* !/etc/init.d/apache2 restart
augroup END

Apache restart with Vim autocmd

  • December 23, 2012
  • Mike Massonnet
In order to execute a command right after saving a file in Vim, you can use the :autocmd command. Here is a quick example how it can be useful with Apache files.

NB: on my system, Debian in this case, an Apache file is automatically recognized as filetype=apache.

augroup apache
autocmd BufWritePost */sites-enabled/* !/etc/init.d/apache2 restart
augroup END

How to start contributing to Xfce or any other open source project

  • November 4, 2012
  • Jannis Pohlmann

It’s been a while since I’ve updated this website and even longer since I’ve written anything useful. But since I’ve received a couple of mails from people looking to contribute to Xfce recently, I thought I’d share some “wisdom” acquired over the past few years while working on Xfce and doing a lot of community work. My thoughts are not limited to Xfce and will apply to a lot of other projects out there as well.

Here’s the bitter truth for those looking for some quick pointers to start contributing to Xfce: you’ll have to find out yourself.

The reason is not that we are lazy or wouldn’t welcome your contributions. In fact, the reason, I believe, is very simple: you will be more excited, motivated and, ultimate, be more successful if you work on something that interests you. We can help you in making the decision what to invest your time in easier, e.g. by listing projects, features or issues that we or our users consider worth working on. Some projects do this very visibly (e.g. through bounties). In Xfce, this information is hidden in the depths of the wiki. Here are a few links that you may find interesting:

Clearly, the above information could be more visible. There could be a prominent link on the Xfce website to a well-maintained and up-to-date list. Would that help people? Maybe.

Perhaps it is a good thing that the information isn’t just one click away. Open source projects have always been about scratching your own itch. This is how I got involved in everything I’ve done over the years. this approach is reflected by what people do and sometimes even by how companies make money. Thinking about it now, it is a concept deeply rooted in the evolution of mankind (think: the invention and improvement of tools, industrialisation and all that shit).

So: scratch your own itch.

If you want to start contributing to a project, try this exercise:

  • Look at the project, think about what you don’t like or what you feel could be improved
  • Try to collect information on what pieces are involved in e.g. the feature you’re missing or the bug you’ve spotted
  • Try to find the place where you could try adding your feature or fixing your bug
  • Ask whether developers are interested in the feature or look at whether there already is an item for your issue in the bug tracker
  • The rest is communication and coding

It’s not a fast path because you might not be able to contribute something of great value in the beginning. But if you’re dedicated, have enough spare time to make a difference and are keen on improving things step by step, you might eventually reach a point where you take over responsibility for more and more exciting or important tasks.

Good luck!

Google TV and Native Libraries

  • October 5, 2012
  • Brian Tarricone

The Google TV runs a fairly unusual flavor of Android (at least the 2nd-gen ARM-based devices). I have a Sony Internet Player (not the Blu-Ray version), so what I’m about to write applies to that device, but maybe not any other, though it stands to reason that the other ARM-based GTVs are the same.

Phone-and-tablet Android doesn’t look much like a Linux desktop or server system. It uses the Linux kernel, to be sure, but a lot of the userspace libraries are custom. It even does not use Glibc, but a C library that Google wrote called Bionic. It’s fairly stripped down and lightweight, and while it implements most things you might need out of a standard libc, it does not pretend to be POSIX compliant.

From some simple investigation, I’ve learned that the Sony GTV is running a EGlibc 2.12.2, and probably a mostly-unmodified version of it. Someone with an @google.com email address stated that the reason for this was that they couldn’t get Chrome running against the Honeycomb version of Bionic.

Due to this, a Native Development Kit (NDK) is not yet available for the GTV. So the question remains: can we hack one together that works? The answer is… sorta.

With this knowledge in hand, I built a relatively standard arm-linux-gnueabi toolchain using crosstool-ng. Then I ‘adb pull’-ed the contents of /system/lib from my GTV and merged them with the new toolchain’s sysroot, copied some headers out of a stock NDK, and ended up with a sysroot that approximates what you’d find in platforms/ in a stock NDK, just without Bionic, and with EGlibc.

I didn’t get to modifying the NDK’s build system (it would need to be changed to find the new toolchain), so I built my native library manually, and got a simple “hello world” type app with a native lib. (It just calls a native method that returns a string, and displays the string on a label.)

One annoying thing is that the ABI string in the Sony GTV is set to “none”, so you have to unpack the APK, rename lib/armeabi-v7a/ to lib/none/, and repack and resign it. All of this means that this would be strictly hobbyist for now: no chance that you could distribute something in the Play Store. Not only does Google have to release an officially-working NDK, but they need to decide on an ABI string, and get Sony (etc.) to push updates out to their customers that update build.prop on the devices with the new ABI string.

There’s also the possibility that Google doesn’t want to create and officially support that much native drift between phone-and-tablet Android and GTV Android, and will wait until manufacturers are running a more-stock Android 4.x on GTV (that uses the 4.x version of Bionic) before releasing an NDK that works… in which case we’re at the mercy of Sony for updates, unless XDA or CyanogenMod wants to take a crack at it. My money’s on this scenario, unfortunately.

One of the main things people have been screaming for is a version of XBMC that runs on GTV. I have been able to get it to build using my hacked-together toolchain, but not actually to run. I ran into problems with runtime linking: the built binaries depend on a shared libstdc++ and libgcc_s, neither of which appear to be included on the GTV’s filesystem. I tried including them in the APK, but, weirdly, when the GTV unpacks the native libs from the APK at install time, it discards those two libraries. Static linking of those two may not be possible since XBMC’s APK includes a bunch of native libs. A possible solution would be to build all of libxbmc.so’s dependencies as static libs, and then just make one big static library.

But I haven’t had time to work on this over the past couple weeks…

Google TV and Native Libraries

  • October 5, 2012
  • Brian Tarricone

The Google TV runs a fairly unusual flavor of Android (at least the 2nd-gen ARM-based devices). I have a Sony Internet Player (not the Blu-Ray version), so what I'm about to write applies to that device, but maybe not any other, though it stands to reason that the other ARM-based GTVs are the same.

Phone-and-tablet Android doesn't look much like a Linux desktop or server system. It uses the Linux kernel, to be sure, but a lot of the userspace libraries are custom. It even does not use Glibc, but a C library that Google wrote called Bionic. It's fairly stripped down and lightweight, and while it implements most things you might need out of a standard libc, it does not pretend to be POSIX compliant.

From some simple investigation, I've learned that the Sony GTV is running a EGlibc 2.12.2, and probably a mostly-unmodified version of it. Someone with an @google.com email address stated that the reason for this was that they couldn't get Chrome running against the Honeycomb version of Bionic.

Due to this, a Native Development Kit (NDK) is not yet available for the GTV. So the question remains: can we hack one together that works? The answer is... sorta.

With this knowledge in hand, I built a relatively standard arm-linux-gnueabi toolchain using crosstool-ng. Then I 'adb pull'-ed the contents of /system/lib from my GTV and merged them with the new toolchain's sysroot, copied some headers out of a stock NDK, and ended up with a sysroot that approximates what you'd find in platforms/ in a stock NDK, just without Bionic, and with EGlibc.

I didn't get to modifying the NDK's build system (it would need to be changed to find the new toolchain), so I built my native library manually, and got a simple "hello world" type app with a native lib. (It just calls a native method that returns a string, and displays the string on a label.)

One annoying thing is that the ABI string in the Sony GTV is set to "none", so you have to unpack the APK, rename lib/armeabi-v7a/ to lib/none/, and repack and resign it. All of this means that this would be strictly hobbyist for now: no chance that you could distribute something in the Play Store. Not only does Google have to release an officially-working NDK, but they need to decide on an ABI string, and get Sony (etc.) to push updates out to their customers that update build.prop on the devices with the new ABI string.

There's also the possibility that Google doesn't want to create and officially support that much native drift between phone-and-tablet Android and GTV Android, and will wait until manufacturers are running a more-stock Android 4.x on GTV (that uses the 4.x version of Bionic) before releasing an NDK that works... in which case we're at the mercy of Sony for updates, unless XDA or CyanogenMod wants to take a crack at it. My money's on this scenario, unfortunately.

One of the main things people have been screaming for is a version of XBMC that runs on GTV. I have been able to get it to build using my hacked-together toolchain, but not actually to run. I ran into problems with runtime linking: the built binaries depend on a shared libstdc++ and libgcc_s, neither of which appear to be included on the GTV's filesystem. I tried including them in the APK, but, weirdly, when the GTV unpacks the native libs from the APK at install time, it discards those two libraries. Static linking of those two may not be possible since XBMC's APK includes a bunch of native libs. A possible solution would be to build all of libxbmc.so's dependencies as static libs, and then just make one big static library.

But I haven't had time to work on this over the past couple weeks...