Home Home > Desktop > Gnome
Sign up | Login

Deprecation notice: openSUSE Lizards user blog platform is deprecated, and will remain read only for the time being. Learn more...

Archive for the ‘GNOME’ Category

openSUSE-GNOME Wiki Cleanup

September 18th, 2008 by

Greetings!

As a side note, I’ll be posting my openSUSE/SLE related writings from http://altbit.org here on Lizards from now on.  I think this is a great service to the openSUSE community and I’m appreciative for it.  With that out of the way, on to the topic at hand…

We’ve had some discussion over the past few GNOME meetings (and a little banter on the mailing list) about cleaning up the /GNOME section of the wiki.  In today’s GNOME meeting, I announced that I’d like to organize a meeting to get some open discussion for potential wiki changes.  You can view the thread here.

Please hop in and get involved if you have any ideas for the GNOME section of the wiki.  You’re welcome to chime in on the mailing list or stop by #openSUSE-GNOME on Freenode.  So far here are some ideas we’ve come up with:

  • Assign a maintainer/janitor (likely myself) to periodically check for broken links and out of date or irrelevant pages.
  • Re-organize the opening /GNOME page.
  • Produce a ‘quick links’ section at the top of the page, with more detailed information (such as what is already availalbe) below.
  • Provide a basic calendar of openSUSE-GNOME events.
  • Create a tips/tricks section (perhaps to assist with Helping Hands).

I’ll follow up to this post as more information (and a meeting time) is available.  We’d like your input, feel free to join the discussion!

cmh

Button Order in YaST: Trying to Make Peace with Both Worlds

August 28th, 2008 by

KDE and GNOME have different button orders. Like many desktop-related issues, this has been a subject of heated debates time and time again.

Where KDE uses something like this:

GNOME would use something like this:

Which one is right? Which one is wrong? There is no real answer to that; it will always be more a religious debate rather than an objective discussion.

YaST Button Order

So, which button order to choose for YaST?

For historical reasons, we used the KDE button order. But this has repeatedly started the same heated discussions as for KDE vs. GNOME, with the same results — which is, no tangible result, only something along the lines of “because we says so” (and didn’t you always hate it as a kid when mom or dad said that?).

YaST should not favour one of the major desktops over another. YaST should work well for all users. So, YaST should adapt to the environment it runs in.

YaST comes in different flavours. There is the graphical version: The YaST Qt UI (user interface) engine (Side note: The YaST Qt UI is not in any way KDE specific; Qt just happens to be a great toolkit for making graphical user interfaces, and KDE happens to use it, too. There is not one single line of KDE-specific code in the YaST Qt UI.).

There is also the text-based version, the YaST NCurses UI.

As an alternative graphical UI, there is also the YaST Gtk UI which uses the same widget toolkit (Gtk) as GNOME. That brings YaST closer to the GNOME crowd. At least, that’s the theory. Yet, that alone didn’t improve the situation in any way for this button order issue:

YaST dialogs are specified in a subset of the YaST-specific YCP scripting language. Those dialog descriptions include input fields, list boxes, headings, etc. as well as the logical arrangement of all those user interface elements (widgets, even though that term has seen a lot of misuse recently). And buttons, too, of course.

So, the arrangement of buttons was still fixed. The YaST Gtk UI couldn’t really do anything about changing that button order so it looked more GNOMEish.

This is now different. We introduced a new widget ButtonBox that abstracts exactly that. A YaST module developer now only specifies “there is a ButtonBox, this is where I put my buttons, and the ButtonBox will arrange them as appropriate”.

…for users…

So now it is possible for the first time to use the proper button order for each environment: GNOME button order for the Gtk UI, KDE button order for the Qt UI.

But there is more.

…for power users…

The Qt UI can now demonstrate the fact that it’s not KDE specific. It checks what environment it runs in and uses the appropriate button order: GNOME button order when running in GNOME and KDE button order for KDE (or other window managers).

It checks the $DESKTOP_SESSION and $WINDOWMANAGER environment variables to figure that out. But of course power users can still override that and set the $Y2_BUTTON_ORDER environment variable to “KDE” or “GNOME”.

…for YaST developers…

Of course, such a change doesn’t come over night. There is a very large amount of YaST code. I counted 69 .desktop files in my /usr/share/applications/YaST2 directory; that corresponds to 69 YaST modules. On my machine I have 432000+ lines of YCP code below /usr/share/YaST2 . Now try to figure out how many YaST dialogs that might be, and how many of them need to be converted to use that new ButtonBox mechanism.

Obviously, it’s a lot of stuff to change. So the change should not hurt the people doing the change more than it absolutely has to. Don’t forget, it’s not just working hours that have to be paid; it’s also working hours that can’t be spent on implementing other features or on fixing bugs. And any change (even more so changing code at so many places) means a possibility to introduce new bugs.

…trying to be smart…

So this ButtonBox mechanism was made to be smart, to re-use existing information (things that are already there in the code), to make good use of existing conventions.

In principle, using something like the ButtonBox means having to tell it which logical role each button has so it can be arranged according to the current button order’s conventions: Which button is the positive confirmation of a dialog (it might be “OK” or “Continue” or “Yes”, but it might also be someting like “Save” or “Print”), which one is the “safe escape” (“Cancel”, but sometimes also “No”), which one is the “Apply” button or the “Help” button, and which ones are just “other” buttons. Remember, YaST is being translated into some dozen languages, so just hard-coding the English button labels won’t do.

But we already have a mechanism that maps (translated!) button labels to function keys, and that mechanism does something similar: There is a list of commonly used button labels and what function key is to be used (in the NCurses UI) for them. For example, “OK”, “Continue”, “Yes”, “Next” all map to the F10 key, “Cancel” to F9, “Help” to F1.

Extending that thought some more, it makes sense to assume an “okButton” role for buttons that are otherwise assigned the F10 key, “cancelButton” for buttons that get the F9 key, etc.

Buttons in YCP each are assigned a widget ID. That ID is the “handle” by which a button is being referenced; this is what the YCP application receives when it is informed that the user clicked that key. When specifiying a layout with buttons, this looks (slightly simplified) like this:

UI::OpenDialog( 
    `VBox(
         `InputField(`id(`name  ), "Name" ),
         `InputField(`id(`street), "Street" ),
         ...
         `HBox(
               `PushButton(`id(`ok    ), "OK" ),
               `PushButton(`id(`apply ), "Apply" ),
               `PushButton(`id(`cancel), "Cancel" )
               )
         )
);

As shown in this example, a button with the “OK” role typically has an ID like `id(`ok), a “Cancel” button has `id(`cancel), an “Apply” button has `id(`apply). So this information is used, too, to figure out what role a button has.

Of course, there are still situations where the system needs to be explicitly told what button has which role: It’s hard to figure out in a generic way that a “Print” button or a “Save” button has the “okButton” role in a dialog. In that case, the YCP developer has to change the code to look like this:

`PushButton(`id(`print), `opt(`okButton), "Print" )

…the normal case…

But in many cases, the migration is as simple as replacing the `HBox() (the horizontal layout box) holding the buttons with `ButtonBox():

UI::OpenDialog( 
    `VBox(
         `InputField(`id(`name  ), "Name" ),
         `InputField(`id(`street), "Street" ),
         ...
         `ButtonBox(        // This is the only line that changed
               `PushButton(`id(`ok    ), "OK" ),
               `PushButton(`id(`apply ), "Apply" ),
               `PushButton(`id(`cancel), "Cancel" )
               )
         )
);

…taming the masses…

Just imagine doing only this little change in 432000+ lines of code – of course, only where such a `HBox() contains `PushButtons, not just blindly replacing all `HBoxes. And just changing it is not all there is to it; each dialog has to be tested, too. And that alone is not so trivial: A dialog might easily only be shown in very exotic cases, so the developers doing the test have to recreate each of those exotic cases just to see the dialog.

You see, masses of code are a dimension of complexity all of their own. Little things that look trivial to do gain a whole new meaning. Everybody can do this change in one or two places, but try to do it in someting as big as YaST — without introducing new bugs that would wreck other people’s system.

Yet, we do those kinds of changes, typically unnoticed by the user community. And those little things are what, if added up, make or break a system’s quality.

We don’t take such decisions lightly. But we felt that in this specific case (the button order) the gain would be worth the pain: Users should feel at home in the tools we provide. And having the buttons where you are used to is part of this feeling at home.

Further Reading

http://en.opensuse.org/YaST/Development/Misc/Button_Order

Meeting By The Pond

July 16th, 2008 by

It’s been two weeks since our last soirée, so without further ado The next openSUSE-GNOME project meeting will take place at the official #opensuse-gnome IRC channel tomorrow Thursday: 2008/07/17 16:00 UTC (18:00 CEST)

For an overview what time this is in different timezones, use:

http://www.timeanddate.com/worldclock/fixedtime.html?day=17&month=07&year=2008&hour=16&min=0&sec=0&p1=0

Topics being covered are:

  • Feature review
  • Policy review
  • Pattern review
  • Patch tagging day
  • Package submission changes

Remember EVERYONE is welcome, new/old, hacker/user etc.  So please come along and join the fun, fancy dress and fishing rods are optional.

openSUSE 11.0 At First Glance: It’s OK.

June 20th, 2008 by

So I’m still running openSUSE 10.3 as my main desktop, and will be until next week when the pre-ordered boxed editions are supposed to ship. By then I’ll be able to do a full review of what I think about openSUSE 11.0, but I did download and install the GNOME Live CD yesterday, and so I wanted to just talk about a few points, good and bad.

Keep in mind, this is just me using this system for a few hours, and just talking about a few key points. If you’ve got comments about something I’ve said, please comment 😉

The Good

The art and look & feel of openSUSE 11.0 rocks! I really like the new GTK theme for the GNOME desktop, which gies the system a much needed refresh of the theme.

I also liked the GNOME live installer. Although it’s not the widely loved new installer from the DVD (which I’ll finally be able to use next week), it does look nice and do it’s job well. Unfortunately, it doesn’t have the world map included in the install, apparently it was included in response to a bug I filed in a late beta but came in too late for 11.0.

After the install and the reboot, I was brought to the login manager. It wasn’t the new login manager included in GNOME 2.22, but the older one. It still works, but I think in this day and age it’s time for people to be able to have a face browser. You know, 9 years after Mac OS 9 and Windows XP both included them.

On the desktop, I was shown the Greeter and a window asking for me to perform an online update. At the same time. Neither of which helped me, considering I have no internet access until I install the Madwifi driver. But if both windows are going to be shown at the same time, they should be a part of the same window, e.g. the user clicks out of the greeter, then the online update request is shown.

Setting up the online update was easy enough, although it still took a while. More on the online updating situation in the “The Bad” section below.

This was about the extention of the little playing around I did, so without further adieu…

The Bad

Yes, boo me if you will, but I unfortunatly found that the GNOME desktop seemed to regress in the polish department. The online update/greeter thing as mentioned earlier was one thing, but there are several other issues I have with 11.0. These may seem nit-picky, but these are things reviewers and users will take away from the system.

The first issue I noticed is something I filed a bug report about in 11.0, and that was the notification messages. They are over sized, obnoxious, and don’t fit in with the look and feel of openSUSE 11.0. For one, that little stripe is blue. 11.0 is green. Not a match, the board goes back. And it’s not even the shade of blue that matches the window decorations or the theme. And they are way too big. You can see the same message in 10.3 and 11.0, and the color and size difference. Worse than that, some applications change the color of the stripe for no apparent reason. NetworkManager is one, it makes it dark blue. PackageKit is another, making it this ugly shade of red. I’m sorry, this just doesn’t look professional to me.

Left is 10.3, Right is 11.0

Next, on the menu, is a button under Control Center for YaST. I don’t know when this was put in, but it had to have been late. It wasn’t in the last public release candidate, but it was snuck in in the later ones before gold, apparently. And it was a bad choice, considering YaST is already accessable from the Control Center. And it actually says YaST. Call me crazy, but if I’m a user looking to set up a new user, I’m probably not going to think, “well, I need to look for something called YaST”. Calling it Administrator Settings, as it was in 10.2 and 10.3 would work great. But it isn’t.

And another issue, in the Control Center, all but two of the Common Tasks are missing. And, the Show Administrator Settings (aka YaST) is missing. Meaning nowhere on the desktop is YaST referred to as anything but YaST. Bug report.

The 3D settings. I’m not sure making AIGLX default, and then not providing a way to switch on XGL for those people who AIGLX isn’t faster for, was the best option. Desktop Effects on my Intel graphics chip on 11.0 is really slow. Going into the console and switching on XGL works, but is that what you want to tell a new user who wants effects to actually work on his or her system to do?

Before I get to the big finish, I wanted to say: would it seriously have been a huge hit to the 11.0 development cycle to include at least a release candidate of Firefox 3, instead of Beta 5?

And finally, PackageKit. I’ve only used it a little, but I’m not a fan. Personally, I liked the GNOME openSUSE Updater from openSUSE 10.3, and with just a few improvements (such as showing what the updates are and allowing users to select or deselect them without loading up the YaST module), would have been a fine addition to 11.0. But instead, we’re using PackageKit’s updater, which is annoying and obnoxious, at least the time I used it. After getting online update set up, I get this blaring giant red notification message about 1 security update. I have the option of choosing to update it with a click of the button on the screen, so I click it. Then the root password dialog comes up, and after that another notification, this time in blue, comes up letting me know my system is being updated. After a minute, I get another notification, telling me it’s done. The icon goes away, I assume it’s finished. Then I try going into the Install Software, and I get a message that something else is accessing package management. What else is it? Well, PackageKit still has control over it, although it doesn’t tell me. At least with the openSUSE updater, you can see when it’s doing something.

I don’t see the value add for PackageKit vs. our own updater. Unless this is all about being as close to possible to GNOME upstream, in which case I don’t think that’s a case for which we need to be degrading user experiance. It is a desktop enviroment, we are supposed to be free to change it in whichever way we would like to make it better, and more openSUSE-ish. And although I’m reserving full judgement on openSUSE 11.0 GNOME until I get the full edition and live with it for a few days, I’m unfortunately not that impressed with it as of yet.

Garden Party

June 19th, 2008 by

Yes folks, it’s Thursday which means it must be time for us fun loveing GNOME people to have another meet.  I appreciate that openSUSE 11.0 is released today, but whilst you download why not join us in the fun (you can think of it as an on-line Release Party 😉 )

To quote the most casual programmers who just so happens to be our MC:

Hi all GNOME addicts,

The next openSUSE-GNOME project meeting will take place at the official
#opensuse-gnome IRC channel on freenode
(irc://irc.freenode.net/openSUSE-gnome) on

upcoming Thursday: 2008/06/19 18:00 CEST (16:00 UTC)

For an overview what time this is in different timezones, use:

http://www.timeanddate.com/worldclock/fixedtime.html?day=19&month=06&year=2008&hour=16&min=0&sec=0&p1=0

This meeting is meant to discuss the latest developments in and around
openSUSE-GNOME. Please review your topics on the meeting wiki page at:

http://en.opensuse.org/GNOME/Meetings/20080612

as soon as possible.

For general info about our IRC meetings read:

http://en.opensuse.org/Meetings/About

For a general technical introduction to IRC (Internet Relay Chat) see

http://www.irchelp.org/ ;(not affiliated with openSUSE) or enter “IRC
help” into your preferred search engine.

The network we use is freenode – for more information on this, including
how to find a server, visit http://freenode.net/;(not affiliated with
openSUSE either).

Have a lot of fun ..

Casual J. Programmer

(on behalf of the openSUSE-GNOME team)

Calling All Gardens

June 11th, 2008 by

It’s that time in the week again where the openSUSE GNOME Team hold their weekly shindig.  So to quote our illustrious casual Team MC:

Hi all GNOME addicts,

The next openSUSE-GNOME project meeting will take
place at the official #opensuse-gnome IRC channel on
freenode (irc://irc.freenode.net/openSUSE-gnome) on
upcoming Thursday: 2008/06/12 18:00 CEST (16:00 UTC)

For an overview what time this is in different
timezones, use:
http://www.timeanddate.com/worldclock/fixedtime.html?day=12&month=06&year=2008&hour=16&min=0&sec=0&p1=0

This meeting is meant to discuss the latest
developments in and around openSUSE-GNOME. Please
review your topics on the meeting wiki page at:

http://en.opensuse.org/GNOME/Meetings/20080612

as soon as possible.

For general info about our IRC meetings read:

http://en.opensuse.org/Meetings/About

For a general technical introduction to IRC (Internet
Relay Chat) see

http://www.irchelp.org/ ;(not affiliated with
openSUSE) or enter “IRC help” into your preferred
search engine.

The network we use is freenode – for more information
on this, including how to find a server, visit
http://freenode.net/;(not affiliated with openSUSE
either).

Have a lot of fun ..

Casual J. Programmer

(on behalf of the openSUSE-GNOME team)

So come one come all, and join the fun!

Garden Party

May 21st, 2008 by

Yet again the guardians of the garden are boogieing.

The GNOME Team are holding their meeting tomorrow Thursday 22nd May at 1600GMT/UTC/ZULU (or translate it into your local time). As always you can get sight of the agenda; the main themes for this week are Factory Testing, Bugs – under prioritised/bug voting/10.3 bug squashing, and a new item to the show Community Clinic.

“What pray tell is that last item?” I hear you ask (you did ask didn’t you?).  It is an item aimed at the code contributing challenged.  Basically we hope to be able to provide means for those that are unable to hack (for whatever reason) a way of helping out.  This could be packaging, documentation, pimping our wares and even HALO insertions behind enemy lines for guerrilla hit and run attacks.  Okay maybe not the last item but you get the idea.

So please come along and join the party, you don’t have to BYOB but the more the merrier we become 😀

Discussing Garden Ornaments

May 14th, 2008 by

Well, it’s more the ornaments of the garden having a discussion 🙂

The GNOME Team are holding their meeting tomorrow Thursday 15th May at 1600GMT/UTC/ZULU (or translate it into your local time).  As always you can get sight of the agenda,the main themes for this week are PulseAudio, PackageKit, and installation patterns.

So if you have any suggestions, questions or complaints please join in on irc and get you voice heard.  Remember we are a community that like to work together.  If you want to try and influence anything within openSUSE then don’t be passive and sit in the background grumbling, stand up and join in.  This goes for all aspects of openSUSE, not just GNOME.  We won’t bite, but we may disagree.  From that disagreement we can hopefully get to an amicable compromise, or at the very least explain the decisions that have been made.

So please join use tomorrow and try and make GNOME even better under openSUSE 🙂  As it happens the KDE Team have their meeting today at 1800GMT/UTC/ZULU (translation to local).

Open Soap Box

May 7th, 2008 by

With openSUSE 11.0 GNOME gained a new default BitTorrent client – monsoon.  This choice has been met with some criticism, which is fine.

Well the GNOME Team are holding their regular meeting tomorrow Thursday 08 May 2008 @ 1600UTC/GMT/ZULU – or for those not quite with the whole “foreign” time thing try this.  One of the themes is the BitTorrent client, why am I saying this?  Well for all those that have an opinion about it, please come along and let everyone know what that is, yes there may be a chance to get on your soap box and denounce the world and it’s dog,  and we can have a real-time discussion about it.  If you don’t tell someone (preferably someone that makes decisions) then no one knows and nothing happens, filing bugs also helps 😉

A bit of background reading on why the choice of monsoon was made can be found here – yes I did indeed do the initial review of clients and made the recommendation, and I’m sticking to it!  I did however get others to test it to confirm I’m not 100% insane.  As with all applications your mileage may vary, but we are intent in trying to make your mileage be the same great journey as one would expect from openSUSE.  So if you care, join in and you never know you may bring something to the table that no one thought of 😉