<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>bene</title>
	<atom:link href="http://desktopbene.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://desktopbene.wordpress.com</link>
	<description>The bene desktop environment</description>
	<lastBuildDate>Mon, 09 Mar 2009 22:28:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='desktopbene.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>bene</title>
		<link>http://desktopbene.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://desktopbene.wordpress.com/osd.xml" title="bene" />
	<atom:link rel='hub' href='http://desktopbene.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Opening files</title>
		<link>http://desktopbene.wordpress.com/2009/03/09/opening-files/</link>
		<comments>http://desktopbene.wordpress.com/2009/03/09/opening-files/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:16:09 +0000</pubDate>
		<dc:creator>DanielRM</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Functionality]]></category>
		<category><![CDATA[Modules]]></category>

		<guid isPermaLink="false">http://desktopbene.wordpress.com/?p=7</guid>
		<description><![CDATA[Since I last posted almost a month ago now, promising to expand on my comment that one component had reached a semi-usable state, I have neglected to pay any attention to this blog other than occasionally thinking &#8216;yes, I really need to make that post&#8217;. Rest assured that I have not been quite so lax [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=7&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Since I last posted almost a month ago now, promising to expand on my comment that one component had reached a semi-usable state, I have neglected to pay any attention to this blog other than occasionally thinking &#8216;yes, I really need to make that post&#8217;. Rest assured that I have not been quite so lax with bene itself.</p>
<p>One of the buzzwords of the moment, and what looks to be a movement with an increasing momentum within the open-source community (even stretching itself into the GNOME project), is that of the document-oriented desktop.</p>
<p>This is opposed to the traditional application-oriented desktop in which the program is the key. Application-oriented designs are the sort of thing developers would come up with; they&#8217;re constantly looking for ways to tweak things, so nothing should be hidden.</p>
<p>The focus of document-oriented desktops is to minimise the amount of conscious interaction between the user and the program in favour of leaving the user to simply get on with working with his documents. The theory is that it promotes greater usability and efficiency; the user doesn&#8217;t think of how to work with their program but instead how to work with their data. No longer does the user think of Evince or epdfview or Acrobat; they think of &#8216;a PDF viewer&#8217;.</p>
<p>Likewise there is increasingly an attempt to increase the dynamism of the desktop, with recognition that old static models just don&#8217;t cut it any more. Thus there is a move away from manual saving and undo/redo histories towards applying a revision control system to every document, with &#8216;milestones&#8217; taking the place of the old save system. The aim is to minimise data loss and maximise workflow. Then there are many other potentially world-changing ideas; it really is a whole new paradigm.</p>
<p>I&#8217;m hoping that bene can take the best parts of these ideas. That&#8217;s the point, really.</p>
<p>The first component of bene I wrote was a shell script to open specific files using specific applications, part of a move towards a document-oriented environment. It really bothers me that I can&#8217;t choose to open <em>just</em> this file in Gnumeric, <em>just</em> this file in gedit.</p>
<p>I&#8217;m an A-Level student who makes notes for politics and physics using his laptop. I use ODT almost exclusively as my file format for these notes; however, I really don&#8217;t need the overhead of Openoffice.org Writer in politics lessons; I don&#8217;t need the power of OO.o just to make notes. So I use Abiword for politics notes.</p>
<p>But on the other hand, I do need the power of OO.o for physics lessons. I need embedded spreadsheets and diagrams and equations in my documents; Abiword can&#8217;t do all of this.</p>
<p>The problem is when we continue notes from previous lessons; I can&#8217;t just double-click a file in the file-browser when I&#8217;m in politics because Writer is set as the default application for opening .odt files. I find it quite frankly shocking that in the year 2009 we&#8217;re still unable to choose to open a specific file by default in a different application to other files of its type.</p>
<p>That&#8217;s the point then of this first bene module; to open a file using the specified application. It has very little error-handling at the moment, and the code&#8217;s not as clean or elegant as it could be. It&#8217;ll be improved though.</p>
<p><code>#!/bin/bash<br />
## This script opens a file with the appropriate application, which might be different for some files than others, even of the same type. Thus one might want to open the vast majority of PNG images in an image viewer such as gthumb, but open photos from a wedding in the GIMP.</p>
<p>## Import necessary code<br />
source core/bene-settings-manager.sh</p>
<p>## Assign the first argument to the command variable<br />
command=&#34;$1&#34;<br />
## Assign the second argument to the file variable<br />
file=&#34;$2&#34;</p>
<p>## Create the config file if it does not exist<br />
if [ ! -e $HOME/.bene/bene-applications ]; then<br />
	echo &#34;Configuration file not found&#34;<br />
	echo &#34;Attempting to create file&#34;<br />
	create_file=&#34;$HOME/.bene/bene-applications&#34;<br />
	## Inherited from core/bene-settings-manager.sh<br />
	_create-config-file<br />
fi</p>
<p>echo &#34;$command&#34;</p>
<p>_open-file () {<br />
	## Check to see if the file has been opened before; identify it by the inode number so it's not affected by changes in path<br />
	inode=&#34;`ls -i $file | cut -d &#34; &#34; -f 1`&#34;<br />
	if [ ! `grep &#34;$inode&#34; ~/.bene/bene-applications | sed -e &#34;s,${inode}|[^|]*,${inode},&#34;` ]; then<br />
		echo &#34;File has not been opened before, adding to config file&#34;<br />
		echo &#34;Choosing an application to open with&#34;<br />
		_get-app<br />
		_set-file-new<br />
	fi</p>
<p>	## Take the application for this file from the config file<br />
	application=`grep &#34;$inode&#34; ~/.bene/bene-applications | cut -d '|' -f 2`</p>
<p>	## Launch the application for the file<br />
	echo &#34;Opening $file with $application&#34;<br />
	$application $file</p>
<p>	## If the inode number should change when the application closes then update the inode entry in the config file<br />
	echo &#34;Updating the inode number&#34;<br />
	newinode=&#34;`ls -i $file | cut -d &#34; &#34; -f 1`&#34;<br />
	sed -i -e &#34;s,${inode}|[^|]*,${newinode}|${application},&#34; &#34;$HOME/.bene/bene-applications&#34;</p>
<p>}		</p>
<p>## Function to get the application to open a file with using Zenity GTK dialogs<br />
_get-app () {<br />
		## Set the default application to be xdg-open so it's opened with a suitable application if a specific one isn't chosen<br />
		application=&#34;/usr/bin/xdg-open&#34;<br />
		## Choose between opening with a specific application or the default<br />
		choice=`zenity --list --radiolist --text=&#34;What do you wish to open this file with?&#34; --column Option --column Action 1 &#34;Use the default application to open it&#34; 0 &#34;Open this file with a specific application&#34;`</p>
<p>		## Choose the application for this file if it was chosen to use a specific application<br />
		if echo $choice | grep &#34;specific&#34;; then<br />
			application=`zenity --entry --title=&#34;Choose application&#34; --text=&#34;Please enter the path of the application you wish to open this file with.<br />
			Use '/usr/bin/xdg-open' if you wish to use the default application.&#34;`<br />
		fi<br />
}	</p>
<p>## Function to insert a new entry into the config file<br />
_set-file-new () {<br />
		## Echo the file's inode number and the application, seperated by |, into the config file<br />
		echo &#34;$inode|$application&#34; &gt;&gt; &#34;$HOME/.bene/bene-applications&#34;<br />
}</p>
<p>## Function to change the application associated with a file<br />
_reset-file () {<br />
	inode=&#34;`ls -i $file | cut -d &#34; &#34; -f 1`&#34;<br />
	echo &#34;getting app&#34;<br />
	_get-app<br />
	sed -i -e &#34;s,${inode}|[^|]*,${inode}|${application},&#34; &#34;$HOME/.bene/bene-applications&#34;<br />
}</p>
<p>## Function to delete a file and app from the config file<br />
_delete-file () {<br />
	inode=&#34;`ls -i $file | cut -d &#34; &#34; -f 1`&#34;<br />
	sed -i -e &#34;s,${inode}|[^|]*,,&#34; &#34;$HOME/.bene/bene-applications&#34;<br />
	sed -i -e '/^$/d' &#34;$HOME/.bene/bene-applications&#34;<br />
}</p>
<p>if [ &#34;$command&#34; == &#34;--open&#34; ]; then<br />
	echo &#34;Opening $file&#34;<br />
	_open-file<br />
elif [ &#34;$command&#34; == &#34;--delete&#34; ]; then<br />
	echo &#34;Deleting $file's entry&#34;<br />
	_delete-file<br />
elif [ &#34;$command&#34; == &#34;--reconfigure&#34; ]; then<br />
	echo &#34;Reconfiguring $file&#34;<br />
	_reset-file<br />
else<br />
	echo &#34;Command not recognised&#34;<br />
	exit<br />
fi</p>
<p>exit</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/desktopbene.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/desktopbene.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/desktopbene.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=7&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://desktopbene.wordpress.com/2009/03/09/opening-files/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5e788de5d962b421b5f81375ea1a9775?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Daniel</media:title>
		</media:content>
	</item>
		<item>
		<title>Dependencies</title>
		<link>http://desktopbene.wordpress.com/2009/03/09/dependencies/</link>
		<comments>http://desktopbene.wordpress.com/2009/03/09/dependencies/#comments</comments>
		<pubDate>Mon, 09 Mar 2009 22:12:21 +0000</pubDate>
		<dc:creator>DanielRM</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Functionality]]></category>
		<category><![CDATA[Modules]]></category>

		<guid isPermaLink="false">http://desktopbene.wordpress.com/?p=25</guid>
		<description><![CDATA[Every desktop environment has dependencies, and we all hate managing them. My intention is that bene itself should have as few dependencies as possible, and one way of achieving this is modularity. Make as many things optional as possible; if there&#8217;s a feature which it&#8217;s merely pleasant to have rather than essential to the spirit [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=25&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Every desktop environment has dependencies, and we all hate managing them.<br />
My intention is that bene itself should have as few dependencies as possible, and one way of achieving this is modularity. Make as many things optional as possible; if there&#8217;s a feature which it&#8217;s merely pleasant to have rather than essential to the spirit of bene then don&#8217;t make it required.<br />
Currently bene offers very little of this, to be fair, but the impending rewrite will fix this. It&#8217;s a goal I&#8217;ve had in mind from the start and one I will keep.<br />
bene&#8217;s dependency management, on the other hand, I like to think works well. In order to avoid the hell of catering for every package manager out there (at some point I will write modules for them, though; it&#8217;s an important feature on my todo list) at the moment it uses a directory of shell scripts, one for each dependency, to determine whether it&#8217;s there or not and also give important metadata about the dependency. This metadata needs expanding though.<br />
This is the example script which would ideally be used as a base for all real dependencies. It&#8217;s not got execute permission, unlike the real ones; this prevents the settings manager from running it and finding out that the dependency &#8216;example&#8217;, which in this case is obviously not a real dependency, doesn&#8217;t exist.</p>
<p><code>#!/bin/bash<br />
## Copy this file, modify it as needed and then make it executable to use it</p>
<p>depends_name=&#34;filename&#34;		## The filename of the dependency<br />
required=&#34;required&#34;		##<br />
custom_location=&#34;&#34;		## If you know where the file should be or have a custom location for it then put it here</p>
<p>use_whereis=&#34;true&#34;		## Set this to false if you don't wish to use whereis if your custom location fails<br />
use_locate=&#34;true&#34;		## Set this to false if you don't wish to use locate if both other methods fail<br />
## locate will not be used if $required is not optional, no matter what $use_locate is</p>
<p>## An exit status of 0 means the dependency was found</p>
<p>## Attempt to find it in the custom location<br />
if test -e &#34;$custom_location&#34;; then<br />
	echo &#34;$required dependency $depends_name found&#34;<br />
	exit 0<br />
fi</p>
<p>## Attempt to find it using whereis<br />
if [[ &#34;$use_whereis&#34; == &#34;true&#34; ]]; then<br />
	if whereis &#34;$depends_name&#34; | sed -e 's/'&#34;$depends_name&#34;'://' | sed -e /^$/d | grep &#34;&#34; &gt; /dev/null; then<br />
		echo &#34;$required dependency $depends_name found&#34;<br />
		exit 0<br />
	fi<br />
fi</p>
<p>## Last attempt to find the dependency with locate; high likelihood of false positives - don't use this for required dependencies!<br />
if [[ &#34;$use_locate&#34; == &#34;true&#34; ]]; then<br />
	if [[ &#34;$required&#34; == &#34;optional&#34; ]]; then<br />
		locate &#34;$depends_name&#34; &gt; /dev/null &amp;&amp; echo &#34;$required dependency $depends_name found&#34; &amp;&amp; exit 0<br />
	fi<br />
fi</p>
<p>## If your dependency has been found then the script should not reach this far<br />
echo &#34;$required dependency $depends_name not found&#34;<br />
## If an exit value of 2 is returned then the calling program should abort as a non-optional dependency is missing<br />
if [[ &#34;$required&#34; == &#34;optional&#34; ]]; then<br />
	exit 1<br />
else<br />
	exit 2<br />
fi</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/desktopbene.wordpress.com/25/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/desktopbene.wordpress.com/25/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/desktopbene.wordpress.com/25/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=25&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://desktopbene.wordpress.com/2009/03/09/dependencies/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5e788de5d962b421b5f81375ea1a9775?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Daniel</media:title>
		</media:content>
	</item>
		<item>
		<title>The settings manager</title>
		<link>http://desktopbene.wordpress.com/2009/03/08/the-settings-manager/</link>
		<comments>http://desktopbene.wordpress.com/2009/03/08/the-settings-manager/#comments</comments>
		<pubDate>Sun, 08 Mar 2009 22:15:00 +0000</pubDate>
		<dc:creator>DanielRM</dc:creator>
				<category><![CDATA[Design]]></category>
		<category><![CDATA[Functionality]]></category>
		<category><![CDATA[Modules]]></category>

		<guid isPermaLink="false">http://desktopbene.wordpress.com/?p=13</guid>
		<description><![CDATA[Every environment, it seems, has a settings manager of some kind, and it&#8217;s my personal opinion that GNOME&#8217;s bloody irritating gnome-settings-daemon is practically a textbook on how not to do it. With its tendency to monopolise a system in terms of setting wallpapers, screensavers and GTK themes it is bad enough, but what is worse is [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=13&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Every environment, it seems, has a settings manager of some kind, and it&#8217;s my personal opinion that GNOME&#8217;s bloody irritating gnome-settings-daemon is practically a textbook on <em>how not to do it</em>.</p>
<p>With its tendency to monopolise a system in terms of setting wallpapers, screensavers and GTK themes it is bad enough, but what is worse is the way in which it does so.</p>
<p>There is little modularity of which I am aware; why can&#8217;t I make it call Nitrogen, my preferred wallpaper application, to set the wallpaper for example? Why can&#8217;t I set one GTK theme for some applications and another for other applications (an ability which comes in very useful when you want to use a dark theme, which most web browsers inherit very badly from)?</p>
<p>Why, especially, are so many GNOME applications programmed not to take some acceptable defaults, or rely on a backup config file, when they can&#8217;t find a running gnome-settings-daemon process, and instead will immediately and without asking launch it to destroy my wallpaper and carefully crafted balance of themes within my Openbox desktop?</p>
<p>Why isn&#8217;t changing my preferred panel easier, rather than relying on arcane gconf modification and .desktop entries? Isn&#8217;t part of the aim of GNOME to be simple?</p>
<p>I suppose my frustrations boil down to the question of why, in short, can&#8217;t GNOME be less of an arrogant pig when it comes to my environment and actually allow some flexibility in the applications used?</p>
<p>Don&#8217;t get me wrong; on the whole I like GNOME. It&#8217;s certainly more elegant than most of the credible alternatives; xfce to my mind is crippled and KDE looks like someone let a tasteless and flamboyant three year old loose with plasticine and glitter. If I were feeling generous I might call it avant-garde.</p>
<p>I want to avoid making the same mistakes in bene. There will be a settings manager, but it won&#8217;t run all the time; I don&#8217;t see any need for it to do so.  Instead any applications which need to read a setting can source it by running the settings manager when needed; there should be no need to run any component of bene longer than it&#8217;s needed.</p>
<p>In addition, bene should be flexible. It already shows some flexibility merely in in the existence of its file opening script, which is soon to be rewritten to have an even greater amount of flexibility in addition to functionality.</p>
<p>At the moment the settings manager&#8217;s main role is to handle dependencies and define some generic functions for other components. It&#8217;s very incomplete, largely because I didn&#8217;t plan it; I&#8217;m going to rewrite it and expand it in future however. The main reason for this post, to be honest, was so that the later post on the open-file script would be useful, as the open-file script sources the settings manager.</p>
<p><code>#!/bin/bash<br />
echo &#34;SM - Hello from the settings manager&#34;     ## Check for dependencies<br />
echo &#34;SM - Checking for dependencies&#34;<br />
for file in `ls core/dependencies/*.sh`<br />
do<br />
if [[ ! &#34;$file&#34; == &#34;core/dependencies/example.sh&#34; ]]; then<br />
$file<br />
if [ $? -eq 2 ]; then<br />
## A required dependency was not found; exit<br />
exit 1<br />
fi<br />
fi<br />
done     ## Check for config directory<br />
if [ ! -e &#34;$HOME/.bene/&#34; ]; then<br />
mkdir &#34;$HOME/.bene&#34;<br />
fi     ## Define function to create config files; only to be used by scripts sourcing this one<br />
_create-config-file () {<br />
if [ `touch "$create_file"` ]; then<br />
echo &#34;SM:$FUNCNAME - File not created, exiting script&#34;<br />
exit 1<br />
else<br />
echo &#34;SM:$FUNCNAME - File created successfully&#34;<br />
fi<br />
}</code></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/desktopbene.wordpress.com/13/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/desktopbene.wordpress.com/13/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/desktopbene.wordpress.com/13/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=13&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://desktopbene.wordpress.com/2009/03/08/the-settings-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5e788de5d962b421b5f81375ea1a9775?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Daniel</media:title>
		</media:content>
	</item>
		<item>
		<title>Hello world!</title>
		<link>http://desktopbene.wordpress.com/2009/02/13/hello-world/</link>
		<comments>http://desktopbene.wordpress.com/2009/02/13/hello-world/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 17:44:08 +0000</pubDate>
		<dc:creator>DanielRM</dc:creator>
				<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Apologies if this post is a bit disjointed. I&#8217;m slightly unsure about what the content should be at the moment. I first announced the bene project in the #ubuntu-uk channel on the Freenode IRC network as &#8216;hopefully fun, likely naive, certainly unnecessary and, more likely than not, already doomed before it begins.&#8217; The first three [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=1&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Apologies if this post is a bit disjointed. I&#8217;m slightly unsure about what the content should be at the moment.</p>
<p>I first announced the bene project in the #ubuntu-uk channel on the Freenode IRC network as &#8216;hopefully fun, likely naive, certainly unnecessary and, more likely than not, already doomed before it begins.&#8217;</p>
<p>The first three are almost certainly still the same. The last&#8230; well, the project has begun, and the first component has reached a semi-usable state (more about that later). It was then wrong to say it was doomed before it began.</p>
<p>It still has time to become so, of course. Ah well.</p>
<p>What is bene, then?</p>
<p>This is quite a good question. When I announced it on IRC I described it as a desktop environment, and certainly that&#8217;s the objective &#8211; to create a lightweight, functional and above all <em>modern</em> desktop environment.</p>
<p>I&#8217;ve seen a thousand and one brilliant ideas for the future of the Linux desktop experience on these here Intertubes, and so far I&#8217;ve not really seen any implemented. I&#8217;ve also had a few ideas myself which I&#8217;ve not seen implemented, and which I don&#8217;t expect to see implemented because I can&#8217;t code the patches myself.</p>
<p>Ideally bene should be lighter than GNOME and at most only slightly heavier than Xfce, but with the functionality that people have come to expect of modern environments.</p>
<p>A great problem here, I feel, will be maintaining this slimness while forging ahead with the innovations I hope that bene will.</p>
<p>One phrase can summarise the idea that should lie at the heart of bene, and that is &#8216;paradigm shift&#8217;. bene should perpetually be pushing the frontiers of technology, attempting to keep one step ahead of everyone else. And this causes problems in that we cannot build on the efficiencies of the past; we can&#8217;t reuse code which hasn&#8217;t been written.</p>
<p>At some point I&#8217;ll make a list of components which should be the baseline for bene to be considered a &#8216;minimal&#8217; environment; in the meantime feel free to make suggestions.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/desktopbene.wordpress.com/1/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/desktopbene.wordpress.com/1/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/desktopbene.wordpress.com/1/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=desktopbene.wordpress.com&amp;blog=6573093&amp;post=1&amp;subd=desktopbene&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://desktopbene.wordpress.com/2009/02/13/hello-world/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/5e788de5d962b421b5f81375ea1a9775?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Daniel</media:title>
		</media:content>
	</item>
	</channel>
</rss>
