LXDE Google Summer of Code 2010

LXDE is applying as a project for the Google Summer of Code 2010. For students it is a good way to get deeper involved into Free and Open Source Software and LXDE specifically. During the summer students have the chance to code on LXDE and get paid by Google.

Some other projects usually also offer student slots for the LXDE community in the program. We are gathering project ideas, as a way to start for applicants here. If you are interested to join LXDE at the summer of code and would like to discuss project ideas, please join us on IRC at irc.oftc.net #lxde and on the mailing list: https://lists.sourceforge.net/lists/listinfo/lxde-list

If you have already an idea about a project you would like to do, please also leave your idea here as well: http://wiki.lxde.org/en/Google_Summer_of_Code_2010

Please also check out our students check list: http://wiki.lxde.org/en/Google_Summer_of_Code_-_Student_Check_List

Background info on Google Summer of Code

The most common question we get from students is “How do I prepare for Google Summer of Code?” The simple answer is not to wait for the program to get involved in open source. Start checking out projects now: take a look at documentation, check out their source code and idle in some IRC channels to see what interests you. The projects who have been past participants in Google Summer of Code are a great place to start; use the categorized list of mentoring organizations (e.g. projects listed by programming languages) from 2009 to help you get started.

About Google Summer of Code

Google Summer of Code (GSoC) is a global program that offers student developers stipends to write code for various open source software projects. We have worked with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Since its inception in 2005, the program has brought together nearly 3,400 students and more than more than 3,000 mentors & co-mentors from nearly 100 countries worldwide, all for the love of code. Through Google Summer of Code, accepted student applicants are paired with a mentor or mentors from the participating projects, thus gaining exposure to real-world software development scenarios and the opportunity for employment in areas related to their academic pursuits. In turn, the participating projects are able to more easily identify and bring in new developers. Best of all, more source code is created and released for the use and benefit of all.

* Frequently asked questions: http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2010/faqs

* LXDE Project Ideas: http://wiki.lxde.org/en/Google_Summer_of_Code_2010

* Student Check List: http://wiki.lxde.org/en/Google_Summer_of_Code_-_Student_Check_List

Our source code repositories has migrated to Git

We migrated the source code repositories from Subversion to Git recently. Thanks to the HOW-TO, the commit logs in Subversion are all preserved.

Why we want to migrate them to Git? The main reason is speed. LXDE is a desktop environment with fast in mind, thus we need a fast SCM which can match our motto. For more information, please read “Why Git is better than X.”

For newcomers of Git, you can also read the git documentations on its website. I believe it is not too difficult to learn how to use it.

Please use the following command to get the source code:
git clone git://lxde.git.sourceforge.net/gitroot/lxde/REPO_NAME
The REPO_NAME is the repository name, which is listed here.

In addition, I made this video during the migration to Git. Enjoy!

(For those who don’t have Flash plugin: http://www.youtube.com/watch?v=Cwi1ZDTAqZU)

Desktop support of PCManFM is working now!

The latest source code of next generation pcmanfm, aka pcmanfm2, in git repo already supports desktop management. The new desktop manager looks better than the old one in pcmanfm 0.5.

Let’s see the screenshot:
Desktop management support of next generation PCManFM

Desktop management support of next generation PCManFM

After compiling the latest source code, run the desktop manager with:
pcmanfm2 –desktop
Then you’ll see the desktop. Change the wallpaper from the popup menu or invoke the desktop configuration with:
pcmanfm2 –desktop-pref
Known Issues:
  1. RTL is not yet handled, but it will be fixed in final release.
  2. Icons are not yet movable, but it will be supported in next major release
  3. Trash can is not yet shown on the desktop
  4. Tools drawing on the root window might not work correctly since our desktop window covers the root window. However, using a window covering the whole screen space to implement desktop management feature is suggested in freedesktop.org specs, and this is what Gnome and XFCE did, too. So, it’s not a bug.

Please test the latest pcmanfm and libfm in our git repo. The first public tarball release is coming soon!

Lxdm is now themeable!

Hooray!  I just finished theming support of LXDM. :-)

lxdm-industrial

LXDM, the display manager of LXDE, now has full theming support based on gtkrc styles + GtkBuilder xml UI definition. No technology outside GTK+ iteself is needed and no additional library is required for this new feature. Now lxdm even comes with a default theme ported from gdm Industrial theme (See the screenshot).

The documentation for theming lxdm will be published later once things are settled. Now it’s themed with gtk pixmap engine with some dirty hacks, which is inefficient and quite limited. However, as I know, gtk-css-engine is being developed and it can be used to theme gtk+ applications with css syntax. So, later our gtkrc-based theming mechanism can directly benefit from gtk-css-engine and we can have more themes. So artists, stay tunned!

Cheers!!

Dropping support for unmaintained languages

This is a part of improving the quality of LXDE, we have alot of brilliant and dedicated translators working with keep the DE accessible in native tounge for alot of languages but some languages never took of or the translatro left or something and this renders more work for me.

We have infrastructure for 48 languages (other than English) and some of them is not maintained at all. Some components are translated in other languages but those corner cases is not in question here.

I want to drop Pootle support for the following languages

Some of these are not present in the subversion repositories and only accessible via Pootle because some translator hoped to do the translation some day. Files in the subversion repositories will not be removed. I will on the other hand edit the LINGUAS files in the repositoy to not build languages that we do not provide infrastructional support for. This will then mean that there are files present that won’t get used even when components are built from source.

If you intend to do any of these translations please step forward and tell us. I won’t remove the support from Pootle just yet. If you know good people that does translate to these languages, go ahead and ask them if the would like to join in the effort and help us make these supported again.
I will try to contact established translation teams for the languages in major distributions (fedora, debian) and the translation projects.

And lastly, there will be major updates to the files the coming week to make everything consistent. I will add support for LXDM too as it is maturing at a rapid speed.

Future plans and TODOs of LXDE in 2010

As many people have seen, LXDE is currently underwent active development, but most of the visible problems are not yet solved and many distros are still shipping out-dated versions of LXDE components. So I think it’s time to give a more clear roadmap about the plans in 2010. Here’s are problems to solve this year:

  • The file manager: PCMan FM 0.5 is quite broken in many parts, and I know that.
    1. Desktop management should be improved:
      1. Icons should be movable.
      2. “My document” icon is a mistake and should be removed or be optional
      3. Drag and drop doesn’t work sometimes
      4. Handling of desktop working area has some bugs in it
    2. Mounting for volumes is broken:
      1. First, I must say, this is not our fault at all and working on this part is a real pain. Recent rapid incompatible changes in freedesktop.org, HAL, and some distros break all older applications previously working well. If your program doesn’t work, complain to them.
      2. HAL will soon be removed from modern Linux and will be replaced by DeviceKit-disks.
      3. What a joke! While devicekit-disk is still under development, they now plan to drop it and replace it with udisk based on libudev, which is currently Linux-only.
      4. So now you can understand why big software companies don’t like to develop Linux versions for their product. All your effort just gets ruined again and again due to frequent incompatible changes in upstream. They just don’t care about breaking others’ work. One of my programs written for Microsoft Windows 10 years ago still work flawlessly today.
      5. In a world governed by two big desktop environments, we smaller projects have no choice but follow their “standards”. Otherwise your software just won’t work on major distros. Even if you are lucky enough and your software is not broken by them, it will soon be broken.
      6. Conclusion: Sorry for saying this, but if we want to co-exist and keep compatible with other new GTK+ software, I think for now we had better use gvfs and accept its gnome-disk-utility dependency. It’s a hard choice, but it seems that we have no choice now. After major distros are upgraded and adopt new freedesktop.org standards/specs, old programs which work well in the past, like the old pcmanfm with HAL support, will stop working. Of course we can directly use udisk and prevent using gnome-disk-utility, but I already tired of fixing my program again and again just because they upstream frequently make arbitrary incompatible changes and break my program. Since they are the people who break the compatibility, they should be responsible for fixing it (in gnome-disk-utility). What if I finally spent my time to implement udisk support, and later they decided to drop udisk and replace it with new stuff again? I don’t want to waste my time on fixing incompatibility again and again.
      7. Complain to your distro or to freedesktop.org developers if you don’t like the situation, but most of the time you may just get ignored. Like it or not, welcome to the real world.
    3. The “Find Files” tool is broken and I know that. With new multi-threading infrastructure of libfm, this will be solved (in later releases).
    4. Lightweight gvfs fork:
      1. GVFS will bring many dependencies, but since it’s free software, we can fork it and remove some gnome dependencies.
      2. This is possible, but the priority is low unless we get more developers.
  • LXPanel, The desktop panel:
    1. While 0.5 series bring new features, it has some new bugs, too. This part requires more testing. After finishing the development of the file manager, lxpanel should be fixed.
  • Improve translation workflow:
    1. We may evaluate the possibility of using Transifex when online editing with correct pleural form support is available.
  • Cleanup the bug trackers
    1. We need to set a “bug day” and do our best to fix fixable bugs.
    2. New rules/guidelines for bug reporting is needed
    3. Duplicated, invalid, or out-dated bugs should be removed.
    4. Many bugs in pcmanfm will be solved by the newly developed libfm and will be closed when new pcmanfm is released.
  • More system tools:
    1. Maybe we need lxde-control-center
    2. Is it possible to integrate this with the file manager?
  • Display manager – LXDM:
    1. Dgod is developing a new display manager named lxdm and this can replace gdm in the future.
    2. Theming support is a must-have
  • Desktop launcher – LXLauncher:
    1. Background image support is not yet added because the time is now spent on the file manager, but we’ll do it this year.
  • Benchmarks, more testings: Can anyone help this part?
  • Code cleanup and optimization:
    1. Fix compiler warnings
    2. Profiling
    3. Developer is needed. Can anyone help this part?

If you like the idea of LXDE, please help the development and join our mailing list for discussion.

If you’re a programmer familar with GTK+, please join us. If you’re not familar with GUI programming, but knows C language and autotools, please help us fix compiler warnings and do profiling parts. If you don’t know programming, please join our translation team to make LXDE available in your language.

We believe that LXDE will be a mature desktop solution in 2010.

LXApperance 0.4.0 out now!

Back from holidays and vacations for a large part of the world we now present the latest component update being LXApperance. Download it at Sourceforge.net.

These are the changes in this release:

  • Replace all Glade-generated code with GtkBuilder
  • Use icon names defined in newer icon naming spec.
  • UI adjustment
  • Fix memory leaks and compiler warnings.
  • Translation update (23 languages completed)

LXMusic 0.4.2 released!

Today Jürgen Hötzel of the LXDE development team released an updated verison of LXMusic. Download it at sourceforge.

The most important changes:

  • fix all gcc compilation warnings
    LXMusic can be compiled using  CFLAGS “-Wall -Werror”
  • on_playlist_content_received
    Request medialib info for whole playlist at once instead of requesting and updating each track successive. This improves speed for loading whole playlist a lot because we get rid of a lot of context switches between lxmusic and xmms2d.
  • on_playlist_content_received
    Use gtk_list_store_insert_with_values. This single call is is more efficient on large playlists than calling gtk_list_store_append and gtk_list_store_set (which emits also row_changed and rows_reordered signals).
  • fix memory leak
    Previously playlist model/filter not freed when switching playlist.
  • Get rid of xmmsv_propdict_to_dict and thus of a lot of intermediate propdicts allocated on the heap
    According to Google perftools this reduces heap usage from 24MB to 2MB when loading a 4000-track play-list!
  • Translation updates

Recent PCManFM/libfm updates

During this weekend, much has been changed in libfm.
Many small bugs are fixed, and some missing features are implemented.
Please test it.

Current libfm-demo in git

Get the latest source code from git repo.
git clone git://pcmanfm.git.sourceforge.net/gitroot/pcmanfm/libfm

Recent Changes:

  • Remote folders get updated when files in them get changed in libfm.
  • Trash can icon in side pane is changed to ‘user-trash-full’ when the trash can contains files.
  • Icons are reloaded when GTK+ icon theme get changed.
  • Fix many bugs and memory leaks
  • Can create new folders and blank files in current folder.
  • Can manage bookmark items in side pane with drag and drop.
  • Libfm became a real installable library and the header files go to /usr/include/fm. Now libfm can be used by other programmers.
  • Auto-completion for path entry becomes more visually-appealing
  • See git logs for more details

Besides, since most planned features/APIs of the libfm was finished, the developement of new pcmanfm is now started and will later be available on git, too.

The performance of libfm was quite acceptable on moderate machine, but will be worse then the original pcmanfm on older machines. However, I haven’t done much optimization yet. So there is still space for further speed optimization.

If you have gvfs installed, libfm can utilize it and can access remote file systems. In addition, trash can support is available.
Cheers!

HUGE success of the Fedora 12 LXDE Spin

The Fedora 12 LXDE spin turns out to be a huge success. It only took us 8 days to become number #2 in the most popular Fedora Spins, although the other spins were released two weeks before LXDE. As I’m writing this post, we had more than 2500 complete BitTorrent downloads.

Thanks to all the people who downloaded the spin and made this possible. I really appreciate the your interest in LXDE and my work. Thanks for all the nice feedback I received so far.

If you don’t have the spin yet, grab the ISO image at http://spins.fedoraproject.org/lxde/#downloads

If you want to install it on a device with no CD drive, you can make a bootable USB key of the image. Attention: Please don’t use UNetbootin, it’s known to be broken. Use liveusb-creator or the livecd-iso-to-disk script from the livecd-tools package instead.

Lxde-spin-fedora12
Fedora 12 LXDE Spin – Screenshot

Links:

* http://wiki.lxde.org/en/Fedora

* spins.fedoraproject.org/lxde/