public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] ROX Desktop for Gentoo
@ 2003-06-01 17:59 Thomas de Grenier de Latour
  0 siblings, 0 replies; only message in thread
From: Thomas de Grenier de Latour @ 2003-06-01 17:59 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 1230 bytes --]

Hi,

I've recently discovered the ROX Desktop environment, and I'm
really starting to appreciate it. It's a nice and fast GTK2 desktop
based on ROX-Filer: http://rox.sourceforge.net

I'm working on an ebuilds collection for this desktop, and because
ROX-Filer-2.0.0 is out today, I've thought it was time to share my work:
http://tdegreni.free.fr/rox/gentoo-rox-20030601.tar.bz2
This archive contains an eclass and 26 ebuilds (most of them are really
short). You will find more information in the README.rox file.

I'm now looking for a few testers/reviewers...
 
This packages are some work in progress, things seems to work for me,
but it has not been heavily tested yet. You may also disapprove some 
of the choices I've made writing this ebuilds. I've not submitted
that to bugzilla yet because I've thought it was too early, I would like
to have a kind of green light about things like the choosen installation
prefix, the new packages categories or the way the eclass works, etc.
This things can be probably be modified, all that I need to do it is
some feedback and critics. (And there are also a few short term items I
would like to remove from the TODO before submitting it.)
 
Thanks,
 
-- 
Thomas de Grenier de Latour.

[-- Attachment #2: README.rox --]
[-- Type: application/octet-stream, Size: 5669 bytes --]


              ---  ROX Desktop for Gentoo, README ---
                (first preview version, 2003/06/01)


* What is the ROX Desktop?
--------------------------

The ROX-Filer is a small, fast and powerful filer for Linux and Unix 
systems. The ROX Desktop is a desktop based around ROX-Filer. For
more information, read this page:
http://rox.sourceforge.net/rox.html


* Why this ebuilds?
-------------------

The only package that was available in Portage was ROX-Filer (app-misc/
rox). I've thought it was not enough, because ROX Desktop is more than
a file manager. It provides an unusual way to manage application (1 app
= 1 directory), a desktop with panels and pinboard, a session manager,
some C and a Python librairies, some panel applets, etc. It's a whole 
desktop environment. This packages try to provide all that a user need
to use ROX as a replacement for his Gnome or KDE session.


* What are the requirements to use the ROX Desktop?
---------------------------------------------------

ROX Desktop is written in C and Python. The UI toolkit is Gtk2 (a Gtk1 
version also exists but this packages are only for the Gtk2 version). 
Python apps also use the pygtk2 library. 

Here is a list of this requirements in terms of Gentoo packages:

 virtual/x11
 >=x11-libs/gtk+-2.0.5
 >=dev-libs/glib-2.0.4
 >=dev-libs/libxml2-2.4.23
 >=x11-libs/pango-1.1.2
 >=x11-misc/shared-mime-info-0.11
 >=gnome-base/libgtop-2.0.1
 >=dev-lang/python-2.2
 >=dev-python/pygtk-1.99.13

Another (weak) requirement is to use UTF8 locales. But don't worry, I'm
personnaly still in iso-8859-1. The point is that if ROX-Filer doesn't
make any utf8->locale conversion, so if you manipulate file named with
some non-ASCII characters, they will have UTF8 encoded names on the 
disk, which may not be what you expect.


* How are the ebuilds organized?
--------------------------------

 - "rox.eclass" provides all the usual functions to install a ROX app.
 - "rox-base" contains packages for the core of the desktop (session
 manager, files manager, C and Python libraries, environment setup, 
 utilities to create wrappers for non-ROX apps).
 - "rox-apps" contains a few optional ROX-based applications.
 - "rox-applets" contains ebuilds for the various panel applets.


* What directories are used by the ROX desktop?
-----------------------------------------------

A basic installation of the ROX desktop require two directories: 
 - "<prefix>/Apps" for the applications directories.
 - "<prefix>/Choices" for the configuration files, mime types, etc.
For a non user-local installation, the user will also have his own 
"~/Choices" for his preferencies, and "~/Apps" for his applications.
And libraries must be in "<prefix>/Apps" or somewhere in the 
$LIBDIRPATH.

I've choosed "/usr/rox" as a prefix. I've also choosed to split "Apps" 
in several parts: "Apps" for real applications, "Applets" for panel 
applets, and "Wrappers" for fake applications that are only non-ROX 
apps wrappers. I've also choose to prefix the user's directories by 
"~/rox/" ("~/rox/Choices", "~/rox/Wrappers", etc).

Look at the "rox-base/rox-env" ebuild for details.


* What does the "rox.eclass"?
-----------------------------

 - It set default values for various variables pointing to directories
 ($ROXPREFIX, $APPDIR, etc).

 - It provides several ways to compile the package ("AppRun" for the C 
package compilation through "AppRun --compile", "python" for the python
packages bytecode generation through the compileall module, and "none"
for data only packages).

 - It provides an installation function which copy the application 
 directory to the right place, clean program sources, and convert icons
 of apps using the old format (AppIcon.xpm -> .DirIcon).

 - It can also create a shell wrapper to use the ROX apps in a non-ROX
 environment.

 - It is not really documented yet, sorry about that, will do it soon :)


* How to try it?
----------------

First, you must unmerge "app-misc/rox" if installed. You will also have
to set ACCEPT_KEYWORDS="~x86".

Then, you have to unpack the ebuilds tarball in your $PORTDIR_OVERLAY.
You then have to run "$PORTDIR_OVERLAY/add-rox.sh" to add the eclass in
the portage tree and register the "rox-*" categories (and re-run it 
after every "emerge sync").

You can now install whatever you want to try. I suggest at least:
 rox-base/rox-env
 rox-base/rox-filer
 rox-base/rox-session
 rox-base/rox-wrappers
Anyway, the whole set of packages is really lightweight and quick to 
install. 

You should now source /etc/profile.d/rox.sh in your ~/.bashrc:
 [ -f /etc/profile.d/rox.sh ] && source /etc/profile.d/rox.sh

"rox-base/rox-session" should have created a session script:
"/etc/X11/Sessions/ROX-Desktop" 
Hence, you should be able to login through gdm/xdm using this session
(I don't know about kdm or login.app, do they also use this files?).
You can also copy this file to "~/.xinitrc" if you prefer to use startx.

The session manager will ask you to choose a WM, and you will be ready.
It will also create a default panel, which I've not yet customized for
the new apps dirs ("Applets" and "Wrappers"). You can access this dirs
by clicking the "Apps" icon, then go up one dir, and add them to the 
panel. You may want to add your own wrappers dir (~/rox/Wrappers) to the
panel and create there all that you need (using Desktop2App or 
AppFactory).

And you should probably give a look to the doc:
http://rox.sourceforge.net/Guide/Guide.html


* What's next?
--------------

I've already a few things on my stack, cf. "TODO.rox". I'm opened to 
any new entry to this list.


-- 
Thomas de Grenier de Latour
<degrenier@easyconnect.fr> 



[-- Attachment #3: TODO.rox --]
[-- Type: application/octet-stream, Size: 1479 bytes --]


               ---  ROX Desktop for Gentoo, TODO ---
                (first preview version, 2003/06/01)


Before bugzilla submission:
---------------------------

* Modify Desktop2App to create wrappers in ~/rox/Wrappers.
  Try to make it create .DirIcon file (or link). (?)
  Add some shell script for batch menu conversion. (?)

* Customize the default desktop to use the different app dirs, etc:
  /usr/rox/Apps/ROX-Session/SetupPanel
  Move the user dirs creation from /etc/profile.d/rox.sh to this 
  script. (?)

* Add the Trashcan:
  http://www.cerias.purdue.edu/homes/zamboni/rox/

* Add the files filter:
  http://freefall.homeip.net/code/ROXFilter/

* Add some nice icons:
  http://www.alfaelektro.com.pl/~fred/ROX-Filer/

* Create some installation meta-packages. (?)

* Add some einfo where needed:
  - rox-env
  - rox-filer
  - rox-session
  - ...

* Put packages back to some usual categories (???)

* Add some doc files somewhere (probably rox-env), at least a README.

* Add some doc to the eclass.

* Check that session file works with kdm or login.app.

* Check if there have been some success with non-x86 arch.


Later:
------

* Experiments with the bash AppDirs support patch:
  http://www.kerofin.demon.co.uk/rox/patch/
  (this could be added to bash if USE="rox")

* Experiments with the AVFS ROX-Filer support:
  http://www.inf.bme.hu/~mszeredi/avfs/
  (if successful, package this)

* Try to patch ROX-Filer to make it takes locales into account (?)


[-- Attachment #4: Type: text/plain, Size: 37 bytes --]

--
gentoo-dev@gentoo.org mailing list

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-06-01 18:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-06-01 17:59 [gentoo-dev] ROX Desktop for Gentoo Thomas de Grenier de Latour

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox