Merge LXDE-Qt and Razor-Qt

From LXDE.org
Jump to: navigation, search

Introduction

Since both of LXDE-Qt and Razor-Qt projects have the same goals, we decided to merge the two teams, focusing on delivering the best lightweight Qt desktop environment. Razor-qt 0.6 will still be released as planned, and the original gtk+ 2 version of LXDE is still maintained.

This page is a draft proposing what can be done to achieve the merge.

Preperation

Split razor-qt code base

  • Make the components built outside the razor-qt source tree
  • split razor-qt components into smaller repos with "git filter-branch"

Rename components

  • To avoid conflicts with older versions of razor-qt and lxde, rename the binaries and config files is needed.
  • Prefix "lxqt-" is suggested by some developers

Unify git repositories

  • We'll use the same place to host the git repos. Currently github is more favored.
  • razor-qt components are currently in https://github.com/Razor-qt/razor-qt
  • lxde-qt components are currently in https://github.com/lxde
  • After splitting razor components into smaller repos, we may put them in the same github organization.

Merge the translator teams

  • razor-qt translation team is currently using Transifex. Current translation coordinator is: ?
  • lxde translation team is using own Pootle server moderated and coordinated by Martin Bagge (brother).
    • the future of how and where to do translations are not settled yet, the LXDE Qt components can not be translated through a provided service for the time being, it is still too early for that - use git forks and speak to the developers to pursue it.

Make UI consistent

  • No human interface guideline exists for the merged projects at the moment
  • We can choose one from KDE, Gnome, and Apple HIG and stick to it.

Component Status

Base libraries

Name Maintainer Comment
librazorqt The razor-qt team Base lib for all components, providing some useful classes
  • about dialog
  • addplugindialog - a general purpose dialog used for adding plugins
  • razorpower - interfacing with upower
  • xfitman - X11 related stuff, mostly useful for the panel (like libwnck for gtk+). Should this be a separate lib?
  • screensaver controller?
  • autostart entry - Xdg autostart spec implementation.
  • razorapplication - A base application class for all applications
  • razornotifications - Show notification windows
  • other utility functions

PCMan: can this be split into smaller libs since some classes are not general purpose and only used by specific components? BTW, should the lib be renamed to liblxqt?

razormount Alexander Sokoloff Mount devices (udisks, udisks2 backends)
sysstat Kuzma Shapran provide system statistics (cpu load, netstatus, ...)
razor-global-key-shortcuts-client Kuzma Shapran Register global hotkeys for applications
qtxdg Alexander Sokoloff Xdg base dir spec implementation, Xdg icon theme fixes for QIconTheme, and Xdg mime info partial implementation (using libmagic, not fully compatible with xdg spec).
libfm/libfm-qt Andriy Grytsenko, PCMan Base lib of file manager PCManFM-Qt, providing file manager related classes
libmenu-cache Andriy Grytsenko, PCMan Plain C xdg menu implementation which create a cache for the generated menu for fast loading and search.

Core Components

Component Name Comment
Window manager Openbox We did not develop our own window manager. Instead, we use Openbox. To support Wayland, we need to find a new one if we want to migrate to Wayland later.
File manager PCManFM-Qt The file manager also provides libfm-qt, which is a core library reusable outside LXDE.
Desktop icons manager PCManFM-Qt The file manager also manages desktop icons and auto-mount of removable devices.
Desktop panel razor-panel great desktop panel from razor-qt project, alternatively we can use LxPanel-Qt (less recommended)
Session manager LXSession session manager, or we can also use razor-session from razor-qt
Power manager N/A Razor-qt has some related stuff, and we can use it.
Policykit agent razorqt-policykit handle policykit related authentications
Display manager sddm or Lightdm+razorqt-lightdm-greeter Or alternatively any other lightweight DMs.
Notification daemon razorqt-notificationd Notification daemon which can be used with libnotify.
Global hotkeys/shortcuts razorqt-globalkeyshortcuts Applications can register global hotkeys via this daemon
Execute commands razor-runner Awsome tool from razor-qt to let users execute command and other actions with keyboard

Panel applets

Currently, razor-panel is much more complete and polished. By default we use razor-panel.

Applet Status Comment
Application menu
Desktop pager
Application launch buttons
Task buttons
Volume control supports pulseaudio and ALSA
Clock
World clock supports multiple timezones, requires ICU
System tray
Show desktop
Battery requires upower
Network status
CPU load
Misc system statistics Uses sysstat (one of razor-qt libraries)
Keyboard LED indicator

Accessories

Component Name Comment
Image viewer LxImage-Qt A fast and lightweight image viewer
Text editor N/A Please use your favorate text editor, or we should have a built-in one?
Calculator ? It's not very difficult to either find one or develop one
Music player Qmmp We did not have a built-in music player, but qmmp is a good one.
Quick command launcher razor-runner Alternatively, we can implement this in LxPanel-Qt as we did in the gtk+2 version.
Terminal emulator qterminal We did not maintain this. It's developed by qterminal developers.
Clipboard manager qlipper We did not maintain this. It's developed by qlipper developers.
Find files PCManFM-Qt PCManFM-Qt will have a simple built-in file searching utility.
Screenshot utility LxImage-Qt LxImage has a built-in screenshot utility
OpenSSH askpass daemon razorqt-openssh-askpass OpenSSH can ask the user for user/password via this GUI dialog.

Configuration Tools

Component Name Comment
Control center N/A, just open menu://applications/DesktopSettings with PCManFM-Qt Alternatively, we can use razor-qt configuration tools
Keyboard and mouse input LxInput-Qt Currently only work with LXSession, but making it work with razor-session should not be difficult.
Screen configuration LxRandR-Qt Alternatively you can use razorxrandr
Theme configuration not done yet, use the ugly qtconfig-qt4 tool now Razor-qt has some good tools for it
Window manager configuration obconf This is gtk+-based. A Qt port is planned
Network configuration N/A A good alternative to nm-applet is wanted
Mime type/file association ? there seems to be such a tool in razor-qt