Other possible TODO items of LXDE

From LXDE.org
Jump to: navigation, search
Outdated icon.svg This page is outdated and is only kept for historical reference.

Old Ideas List for Google Summer of Code

Things listed here are not for LXDE GSoC anymore since most of them are too easy for a whole summer. So let's leave it as a list for possible future TODO and propose some other more challenging items for SoC.

Please leave your ideas here.

  • Add Tablet features: Tablet PCs and devices with a touchscreen require support.
  • Accessibility improvements: Try to address accessibility issues in addition to usability ones. ATK must be properly supported to make sure users who are handicapped can use LXDE.
  • Multi-screen and small screen support: Try to make LXDE components work in multi-screen setup and make sure most LXDE components can adopt small screen environments for handheld devices and netbooks.
  • Make LXDE a multi-platform optimized build, set up a builtbot and try alternative compilers like ICC and settings.
  • Add PDF functionality using mupdf http://ccxvii.net/mupdf/ or another lightweight library, provide similar features as APPLE's MAC OS X "preview" tool, and enable LXDE users to turn their netbook or LXDE-OLPC into a fast and user friendly "ebook reader" using a standard format.
    • not necessary IMHO since we already have too many pdf readers. For example, epdf is a good one. (PCMan)
    • Not very familiar with epdf, but my experience with mupdf is that it's extremely lightweight and works very well on netbooks. Don't know if LXDE is the place to add ebook functionality though. I would think it would be easier for end users to grab packages like mupdf and fbreader to create a customized ebook reader for themselves. All LXDE would need to do is include support for calling up the appropriate application (whichever the user prefers for files with a particular file extension) in its file manager. Many file managers already support this functionality.
  • lightweight usable cdripping gui
  • lxpanel support for Gnome-panel applets
    • This should never be supported. If you need many gnome panel applets, just use gnome-panel. (PCMan)
  • A common config place/gui to setup various component applications (like panel=lxpanel, logout=lxsession-logout, desktop-manager=pcmanffm etc)
  • A generic lxpanel application which can work like a filter. Input would be command or periodic execution of the command. Optionally usage in panel, desktop etc.
    • can the person who propose this provide more explanation? What is it? (PCMan)
  • icon overlays for pcmanfm
    • Only if a way which won't degrade performance is found. (PCMan)
  • Lxtweet: Lightweight Twitter, facebook and other social media desktop integration.
  • There are some nice third party applications to put icons in a panel such as volumeicon and volumeicon. Would be very interested to see lxtask or another third party application do something similar and show CPU usage in the panel. As an example, see how the Windows Task Manager works. When the Task Manager is minimized, an icon appears that shows CPU Usage level as it varies on the machine. It's nice having a small graphical indicator of when your machine may be doing something resource intensive without always needing to have the task manager open and taking up screen space to tell if something's going on.
    • Just found out lxpanel has cpu monitoring capability. Still, it would be really nice if this code could be shared with lxtask or run as a separate application by itself. That way users who prefer tint2 or some other panel besides lxpanel can still access this functionality.

The file manager: PCMan FM 0.5 is quite broken in many parts.

  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.
  • Please add references
Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

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.


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

LXPPanel, an alternative desktop panel:

  1. LXpanel suit netbooks very well but does not suit Desktops, LXPPanel would be a simple drop-in replacement which resplicates the Redmond XP panel experience while not sacrificing LXDE objectives.


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Background/More info: Windows_Linux_Lookalikes_v02

LXPolkit, a minimalized policykit authentication agent and sudo frontend

  1. To fully utilize policykit, we need our own policykit authentication agent and even a sudo frontend based on policykit.

Currently this item is already started and its source code can be obtained from git repo with following command:

git clone git://lxde.git.sourceforge.net/gitroot/lxde/lxpolkit
Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Background/More info: http://hal.freedesktop.org/docs/polkit/polkit-agents.html

LXScreenshot, a minimalized gtk+ only screenshot tool

  1. We always need a good screenshot tool that contains most frequetly used features and remains minimalist. Or, another possible way to do this is to provide screenshot functionality in GPiView.
  • Making screenshot tool a built-in functionality of GPicView is a better idea than create a new program from scratch. Here is the rationale:
    • Screenshot tool needs to show the user the captured image. This is what GPicView provides, image viewing and storing facilities.
    • The only parts that an image viewer and a screenshot tool may differ are mostly menu and toolbar. So, they can share most of the source code.
    • Maintaince cost can be much lower as we only need to maintain one program.
    • Privoding a desktop entry file for gpicview --screenshot is enough for this. The user will show an icon for screenshot in applications menu and won't even notice that it's also provided by gpicview.
Useful Skills: C / Vala
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Background/More info:


LXShortcut, the desktop entry flie editing tool, requires some rework

  1. Previously we hope to integrate this with lxlauncher, lxpanel, and other programs which need to edit desktop entry files (*.desktop) in them. However, this didn't work well in the past. Here are some ideas to improve this:
  • Make lxshortcut a runtime loadable library rather than a separate app. The rationale and advantages:
    • Both gnome and xfce use a separate program to do desktop entry file editing, so initially LXDE follows them. However, this approach has some problems and limitations. Also it's hard to integrate it to other programs.
    • We should move the whole program into a library. Say liblxshortcut.
    • The program lxshortcut can still be kept, but it's now just a simple frontend calling liblxshortcut. So, people can still use it from command line.
    • Programs which need to edit desktop entry files can dynamically load this lib at runtime and can call its APIs. Integrating with a library is much easier than integrating with another running process.
    • I found that in Glade, they implemented a nice dialog to choose icons from icon themes. We can borrow that and use it in lxshortcut.
Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Background/More info:

LXSession Edit, the tool used to edit autostart applications

  1. LXSession Edit is a tool used to change programs that are automatically started on session login.
  • Integrate with lxshortcut and let the user add or remove applications from the autostart list. Currently the users can only turn the apps on or off. We should support adding custom commands to this list with a user-friendly way.
Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Background/More info:

LXWeb

  1. Explore ways to integrate, load webkit with LXLauncher.


Useful Skills: C, Webkit
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
4 Semi-Professional

LX Benchmark

#We want LXDE to be the fastest and a less memory consuming desktop. For this reason we need a benchmarking and testing environment to be executed by endusers.


Useful Skills: C, Shell
Type of Work: Scripting, Coding, Testing, Package Systems, Building packages, software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

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.


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

More system tools

  1. Maybe we need lxde-control-center
  2. Is it possible to integrate this with the file manager?


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

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


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

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.


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Code cleanup and optimization:

  1. Fix compiler warnings
  2. Profiling
  3. Developer is needed. Can anyone help this part?


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

A search bar in pcmanfm

  1. Requriements : C, in depth understanding of GTK+, experience on multi-threaded programming
  2. Idea :
    • A key stroke or mouse click activates the toolbar
    • A search query triggers search in the current directory and its subdirectory
    • Results are filtered with each keystroke
    • Results are displayed in the pane where files are normally displayed, Back button takes you back to file browsing mode
    • Advanced search options can be implemented using keywords and widgets


Useful Skills: C
Type of Work: Coding, Testing, Package Systems, Building packages, Integrating software
Level from Beginner
1-5 Professional:
3-4 Semi-Professional

Benchmarks, more testings:

Create API documents with gtk-doc and add Vala vapi files for libfm and menu-cache

This is not about writing code, but reading. Libfm and menu-cache are two libraries used in several places of LXDE. However, their APIs are not documented. So someone needs to read the code to see how it works, and document the APIs for them. Doing this can make you understand how to create a file manager from scratch. Although you only need to write comments for every public API, this can be quite challenging as you need to understand what the code does.

These are the requirements:

  • Add gtk-doc support to libfm and menu-cache to generate API docs from comments in source code.
  • Write gtk-doc style comments for every pulbic class, interface, and APIs for libfm documenting the usage, properties, signals, and methods.
  • Write gtk-doc style comments for every APIs for libfm.
  • Generate API docs for libfm and menu-cache from the comments above.
  • Create vala vapi files for libfm and menu-cache. So later we can develop programs in vala and can still use those two libraries.

See Also

External link