Wednesday, 8 June 2011

Small tablet improvements

I recently added two new plugins to gnome-settings-daemon, which should make life a little bit better on tablet computers, such as the WeTab/ExoPC that most MeeGo developers seem to have lying around.

The first plugin is the orientation plugin, which will read the orientation from udev (which itself reads it from the accelerometer), and rotate the display and the input touchscreen as appropriate.

The second plugin is the cursor plugin, which will simply hide the mouse cursor when you don't have a mouse attached to a computer with a touchscreen.

Related to those are two gnome-shell bugs. Related to orientation is this bug about providing smoother XRandR transitions in gnome-shell, and related to cursor is a way to show activity in the shell panel when a busy cursor would be shown.

No screenshots, because a vertical desktop with no cursor isn't that interesting.

If you're interested in testing out this on a WeTab, you'll need the accelerometer driver in the kernel, udev git (or udev 172 when it's released) and gnome-settings-daemon master.

And if you want support for another tablet device, check out this discussion on the linux-input list, and drop me a mail if you need more guidance.

Tuesday, 19 April 2011

Get your hot (beta) GNOME 3 distro!

Want a distro with all the best gizmos? systemd, with learning read-ahead for faster boot? GNOME 3 getting out of your way so you can do work? And much more.

Tuesday, 12 April 2011

Want to debug an old status icon applet?

If you want to debug an "old" status icon when running the GNOME Shell, and it duplicates functionality from a icon in the shell itself (say Bluetooth or Sound volume, in my cases), there's two tricks available.

The shell looks at the WMNAME for the applet when choosing to hide it, or show it.
  • For most applets, gtk_status_icon_set_name() isn't called, we just need to change the binary name. Create a symbolic link to your binary with a different name (say, "test-applet"), and launch your application from that.
  • If the applet calls gtk_status_icon_set_name(), just name it differently. Unfortunately, that will require recompilation.
With those tricks, I fixed the volume status icon for the fallback mode, and helped Frédéric Crozat pin-point a (likely) bug in the Bluetooth menu in the shell, as we could not reproduce the bug with the fallback status icon.

Wednesday, 6 April 2011

GNOME 3.0 is out!

Yay!

Loads of thanks to all the people who have helped, poked, nudged, nagged, and kept me honest for the past 9 months, in no particular order, Rodrigo Moya, Thomas Wood, Jon McCann, Richard Hughes, Luca Ferretti, Giovanni Campagna, Cosimo Cecchi, Matthias Clasen, Florian Müllner, Kjartan Maraas, Sergey Udaltsov and Daniele Forsi, and most likely a number of people that I'm forgetting.

They helped make the System Settings (including my favourite parts, the Bluetooth and Sound panels) what it is in GNOME 3.0.

I am GNOME

Monday, 4 April 2011

Totem in GNOME 3.0, plans for 3.2



Totem for GNOME 3 is available in the GNOME FTP servers. And now onto GNOME 3.2.

There's a couple of major UI changes planned for Totem 3.2, with designs from the GNOME Design team (and Hylke in particular). These include the removal of the status bar, better fullscreen controls, more contrast when playing movies, etc.

New colours
The changes for contrast are already in Totem itself, and you can grab a 3.2 version of gnome-themes-standard to see the "dark" variant of Totem (or enjoy the screenshot below).

Black Swan, go see it.

New video widget
For the rest of the changes, we needed a video widget that was more flexible than the X-based one we were using. So from Totem 3.2, we'll start using clutter, and clutter-gst.

This means that we'll be able to implement things like OSDs for more than just the fullscreen version, use an indicator in the video directly when buffering for live streams instead of the status bar. It would also allow other useful features, like rotating videos with animations, to preview movies from your phone or camera in landscape mode.

Performance-wise, if you were already using an OpenGL-accelerated desktop, the difference should be minimal, comparing clutter-gst's video sink to an Xv overlay using OpenGL, the major difference being the addition of the videobalance element to the pipeline.

If you don't have OpenGL drivers for your machine, Totem 3.0 will still be maintained, with important bug fixes being backported.

Misc changes
We expect a Grilo plugin making its appearance, which will allow us to focus our bug fixing on the interface parts, rather than having to maintain the code to access various video resources.

We also made changes to the nautilus properties tab, which should make it faster, using Edward's GstDiscoverer.

Colophon
You can start testing the clutter-based Totem, the dark variant, and the faster nautilus properties right now, in the master branch of Totem in GNOME git.

Tuesday, 22 February 2011

Bluetooth panel

Nearly implemented in one evening (Friday evening, before the UI freeze), and a day (well, a long day, it's 4:30 AM).

The only thing not implemented is the hardest part, the "active" button, which needs to take into account whether there are Bluetooth devices at all, if one is the default and powered, and handle hardware killswitches as well as software ones (software-based airplane modes for example).

Yay, I can wiggle my mouse

As per usual, refer to the design documents for more information on the changes made.

Tuesday, 8 February 2011

The screen panel

Following on from the region panel, we now have an updated “Screen” panel for the control-center. Richard worked on the initial version (which you can see in older revisions of the control-center for GNOME 3), and I finished hooking it up this week.

Not much to say about this, except that the lock screen timeout preference now changes the underlying preferences for both “on AC” and “on battery”, as well as the idle time (which is used by a number of desktop components like your IM application).

I'm also very glad that we managed to get rid of the brightness levels based on whether on battery or mains power. This usually worked exactly as you didn't want it to. Now, just use your keyboard shortcuts for those instead of hoping to gouge somebody's eyes out every time you changed power source.

See also the design page for more information about the changes made.

Saturday, 5 February 2011

GNOME 3 Test Day

On Wednesday evening, Fedora Desktop hackers were frantically building GNOME 2.91.6 into rawhide, including a number of rebuilds against newer versions of GTK+, and beta testing Live CD images to make sure they were usable.

On Thursday morning (European time), ISO images were being uploaded by the our favourite QA insomniac. Quite a few people came to test the Live CD, and many bugs were filed.

There were plenty of questions about GNOME Shell itself, and some about the design decisions. So if you did try out one of the many GNOME 3 live CDs, and asked yourself the following questions, we'll try and provide some answers.

Q: The dash is broken, I can't add more than 13 favourites to it!?
A: It's known problem, which also fits into the dash resizing when you drag'n'drop new items to it.

Q: I can't read the full name of certain applications when searching for them in overview mode. Can I haz tooltips?
A: Tooltips, maybe not, but a solution is being worked on. Follow the discussion in this bug.

Q: I can't change my font size, really?
A: You can change it for the applications, in the Universal Access settings. For the shell, it's currently not possible, but it will get fixed.

Q: I don't like how hard it is to create workspaces. Is this the final design?
A: It's not. Owen has been working on implementing Jakub's video mockups. See this bug for all the links.

Q: I use 2 monitors, and GNOME Shell is very difficult to use. Is it going to get fixed in time?
A: Hopefully yes. There are two bugs you can monitor. One is about a bug when using two monitors (or at least, more prominent when using two monitors), the other about the plans for even better multi-screen support.

Q: How do I restart my computer?
A: Type "reboot" in a terminal? Unfortunate, but how to present it needs a bit of design work. Just adding another menu item in the system menu just muddles it.

Q: This is way slick. But the NetworkManager applet looks really out-of-place. Can you make it look cool?
A: Yes! System status legend Giovanni is on the case.

Q: My machine can't run GNOME Shell. What about the fallback mode?
A: It looks pretty sad at the moment. There's plenty of room for improvements here. Feel free to jump in if you want to help those not fortunate enough to be able to run GNOME Shell.

Also notable is the fact that plenty of bugs were filed, and quite a few fixed, that we are exercising the graphics drivers and finding bugs, and that despite some complaints (some of them constructive, but not always), GNOME 3 is looking better and even more usable than GNOME 2 by the day.

PS: We even had KDE make GNOME crash. Or close enough.

Friday, 28 January 2011

Region panel

Yesterday, I finished working on a UI cleanup for the “Region and Language” panel in the control-center. You can see the results below. I'm pretty happy with this, though quite a bit of work could still be done, like allowing users to install “language packs” (fonts, translations, dictionaries) from the language tab, or integrating input sources in the layouts tab.

The layout before the separator are used by other users on the system

My favourite layouts, with the new contextual items
(and sans keyboard model selection)

Wednesday, 26 January 2011

infra-red remotes in GNOME 3

gnome-lirc-properties has served its purpose. It will probably carry on working on GNOME 3 desktops, but you won't be happy when it drags in GTK+ 2.x Python bindings, HAL or doesn't integrate into the new control-center.

But things have changed since gnome-lirc-properties was first written, and the way to handle IR remotes has changed as well:
  • A large majority of receivers are now supported in the kernel using rc-core (né ir-core).
  • Some receivers aren't supported (iguanaIR amongst others), and some need porting from pure input drivers to rc-core. Some functionality for the ATI Remote Wonder remotes is also not supported by the new drivers. If you're interested in working on this, drop a mail to the LIRC list.
  • Mauro Chehab is making progress at propagating the key events from the kernel up to the stack to X11 applications. There's some patches in that direction on the Red Hat Bugzilla.
This means that:
  • Event delivery would still need a broker in the session, to get to unfocused applications. gnome-settings-daemon can step in that role (and step out of the way when the application is focused, so the app can bring context dependent behaviour). gnome-settings-daemon already handle some of the more common multimedia keys in its media-keys plugin.
  • The only configuration one would need to do is selecting the type of remote for the receiver, eventually tweaking the keymap for that remote.
So to write a replacement for gnome-lirc-properties that would fit into GNOME 3, one would need:
  • A way to enumerate receivers on the machine
  • A way to change the remote configuration (changing the keymap) for that receiver
  • Eventually a way to tweak the keymap
This could all be handled through a D-Bus version of ir-keytable. If Mauro's patches reach X.org mainstream, then a kernel/GNOME summer of code project could be had for this work. Best to start writing some kernel patches, or laying some code if you want to get a headstart.

PS: For completeness' sake, there are also "pure" input devices that are remotes that wouldn't be handled through this. Those would need to be blacklisted in the input layer, and handled through rc-core instead.

Thursday, 13 January 2011

YouTube playback will suck again

If you've seen the comments on this PiTiVi bug, you're probably already aware that YouTube/Google strongly disapprove of any breach to their terms of service.

We thought that Totem was living in a soft, gray, area by using YouTube GData API to do video searches, and then accessing direct streams that were of the quality expected by users, and in formats that meant out-of-the-box support for most Linux distributions (eg. using Web-M).

Turns out not. I won't make a whole scene about the way that this problem was brought up to me, but let's say that it wasn't the way I would have expected a corporation like Google dealing with things.

After a multitude of e-mails back and forth, I'm afraid that YouTube stuck to its guns, and I was repeatedly told about the "supported" solutions (embedding Flash was even proposed as a solution!).

So Totem will soon be playing your YouTube videos in crappy quality. Some of you with faster computers and better connections will be switching from full-HD streams to 176x144 videos.

If you want decent desktop integration with high-quality streams, feel free to "star" this GData bug report.

Tuesday, 14 December 2010

And for something different now

Because it looks better in fullscreen, with acceleration, and you can save it if you want to keep it. Totem now with a "Save Copy..." menu item, and a playlist parser that knows about video websites.

The ever present Xan is demo man.

You'll need quvi (for its library) and the master of totem-pl-parser (that should even work with older versions of Totem) for the video website support. The "Save" menu item lives in Totem master, scheduled for GNOME 3.

Friday, 10 December 2010

New gnome-phone-manager maintainer

Seeing as I haven't given gnome-phone-manager enough love lately, Daniele Forsi, of gnokii fame, is stepping up as the new maintainer for it. Bug fixes coming your way very soon!

I'll still be handling the packaging of gnome-phone-manager in Fedora.

Wednesday, 1 December 2010

House arrest, or just document sharing

Yesterday and today, I wrote a chunky patch for gvfs to allow it to use the "house arrest" protocol for iOS devices. This is the protocol is rather more well-known as "iTunes documents sharing".

You can see a tedious example of how you can use it in this Apple KB.

For GNOME, we did it slightly differently, and you don't need to use your music manager as a file manager for your non-music device. Plug the device in, and all the apps that support file sharing will be showing up in a "Applications on Foo" device, on your desktop.

Managing files with a file manager, what a brilliant idea.

Monday, 8 November 2010

Bluetooth in gnome-shell

Even though I'm still gnome-shell impaired (waiting on 3D support landing for my Radeon video card), I helped out Giovanni Campagna into getting Bluetooth support in the gnome-shell.

My work was to review Giovanni's code for gnome-bluetooth, and making sure that the gnome-shell behaviour matched that of the existing GNOME Bluetooth applet.

A lot of to-and-fro, but the gnome-bluetooth changes are now in, and waiting on sub-menu fixes for gnome-shell itself. Owen was kind enough to provide me with a screenshot for your enjoyment.

Bluetooth in the shell

This wasn't my first interaction with Giovanni, as, in another long-winded bug, we hashed out the volume control shell icon. This work is already merged, and lives in gnome-shell.

Tuesday, 2 November 2010

Fedora 14 is out!

With the latest GNOME 2.32, go get it!

Tuesday, 5 October 2010

The new control-center and you

URI scheme handlers

In the past, handlers for specific URI schemes lived in GConf. This caused multiple problems:
  • it would cause problems when 2 applications tried to lay claim to the same URI schemes (say both Banshee and Rhythmbox wanted to handle the "itpc" scheme), because GConf would expect only one schema (thus one application) to handle a particular key.
  • when the key was set, by the preferred applications for example, the key would lack important information to make things like startup notification work (or even whether it works), the application name, icon, etc.
  • and for schemes where a desktop-wide modules (such as gnome-vfs, as listed above) would own the key, you'd still need to add a separate file to have the application added to the Preferred Applications control-center applet.
We now use mime-types for all this. If you wanted to handle the aforementioned "itpc" URI scheme, you'd just need to say you handle the "x-scheme-handler/itpc" mime-type. This also means you could easily switch between applications handling a URI scheme, as you would a filetype.

You can track the feature, and its usage in bug 631433.

Non-panels in the dog house

For GNOME 3.0, the control-center "capplets" got turned into panels in a new shell. In addition to porting your old preferences application to being a control-center panel (see gnome-bluetooth, gnome-media, gnome-power-manager and others for a show-and-tell), you'll need to make a few changes to your .desktop file.

You'll need to add the "X-GNOME-Settings-Panel" category. If your dialogue is a panel, but lacks this category, it will show up under "Other" in the shell. If your preferences are not a panel but you try to cheat, you'll get a warning, and be removed from the shell altogether.

Wednesday, 1 September 2010

New sharing UI update

Even though the current status is best gathered from bugzilla, I'll post a few teaser screenshots to whet your appetite.

Sending to Twitter/Twitpic

Sending to Flickr

The interface will see a "folks" based sending item called "Contacts" at the top of the sidebar, and we should see some more services and devices appear as well, as libsocialweb gains support for them, and old nautilus-sendto plugins are ported.

More when those pesky upstream bugs are fixed.