Desktop usability ideas.

WOB wayofbsd at verizon.net
Sat Sep 17 14:52:10 PDT 2005


I am in the process of making FreeBSD my primary desktop OS, which is 
not always easy since I have a limited amout of *nix experience.  I 
chose FreeBSD after doing the Linux distro-dance, and eventually settled 
on FreeBSD because it seemed to be the best behaving OS.  Based on 
word-of-mouth, and netcraft figures, the FreeBSD team has accomplished 
the goal of creating a completely free world-class Operating System.  My 
problem is that my goal is slightly out-of -alignment with the FreeBSD 
teams's goal, since I *also* want an OS that is easy to use as a desktop 
OS. 

When I was having problems getting the Helix player to work on FreeBSD, 
I briefly went and tried "Ubuntu Linux", since it appeared to be a good 
desktop OS.  I quickly found that using Ubuntu meant learning how to do 
everything "the Ubuntu way", which would not have been so bad if things 
worked as advertised.  Trying to play an mp3 file in XMMS resulted in my 
machine locking up.  There are some good Ubuntu sites that have detailed 
explanations of how to accomplish certain tasks, but it quickly became 
apparently that getting Ubuntu to work wasn't going to be any easier 
that using FreeBSD - so I might as well stick with FreeBSD.  Which is 
what I did.

I know about DesktopBSD and PC-BSD.  They both appear to use KDE, which 
I think might be a fatal flaw (for my puposes).  I tend to use Gnome, 
but I also think Gnome would be a mistake.  I prefer to use programs 
that have as few dependencies as possible.  I currently use FluxBox, and 
plan to use FVWM2 (once I figure out how to control it).  I've had sound 
problems when I used KDE, and heard about CD-burning problems when 
people use Gnome.  KDE and GNOME are probably fine if you are going to 
use them exclusively, but I prefer a best-of-breed approach.  I want a 
lean and  fast machine, that doesn't break easily.

Recently I have been able to get my FreeBSD desktop PC to an ideal 
state.  I got my deskjet printer working.  I can play enemy-fortress now 
that I have the nvidia drivers loaded.  Anjuta is a good IDE with 
wxWidgets support.  XMMS doesn't hang.  Pptpclient can connect to my 
workplace's Win XP machine.  QEMU can run Win2k when I need to.  Life is 
good and getting better.  It just took a long time to get here.

One remaining issue is that I tend to update my machine, which sometimes 
breaks things.  It occurred to me, that the solution to this should be 
to not track x-current.  I'm not completely familiar with the way the 
branches are named, but I believe a "release" is a stable snapshot in 
time - the type of release that would be burned on a CD.  At that point 
in time, "release" is frozen, and "current" continues to march ahead 
with new features and fixes.  I think there is another type of branch 
called "tracking"(?), which only adds fixes to a "release".  The 
"tracking" branch is better for servers where you don't want new 
features and the bugs that sometimes accompany them.  I now realize that 
a desktop machine running a lot of GUI apps should probably be tracking 
"tracking" instead of "current".  That way, a new fancier version of 
some dependency would not break portions of my desktop.  Instructions on 
how to configure a desktop system might suggest the user not track 
"current", but instead the "tracking" branch that only has security fixes.

What I wish existed is a document that I will eventually write, if it 
does not already exist somewhere.  This document what be how to 
configure a functional desktop that had a high chance of working, and a 
high chance of not breaking.  It would have to assume certain things, 
like a deskjet-compatible printer, ne2000 compatible NIC, nvidia based 
video, VESA compliant monitor, etc.  If those requirements were met, 
there could be a long list of apps that were guaranteed to work 
out-of-the-box for a specific "release" of FreeBSD - if specific 
instructions were followed.  This might sound draconian to people with a 
lot of FreeBSD experience, but for newbies trying to escape the Windows 
World it is a passport to the New World.

The list of possible tasks would be something like: Connect to work via 
VPN and RemoteDesktop, browse with Firefox+Java+Flash, print on an HP 
printer, play 2-3 OpenGL games, develop within Anjuta C++ IDE, 
play-rip-burn  DVDs and CDs, connect to iPod, connect digital camera, 
connect scanner, update system (without it breaking), run QEMU, run 
WINE, Thunderbird email, and just about everything else a typical 
desktop user might want to do.  It would *not* be things like, "run a 
major Apache website", or configure email for 10,000 users, etc.  It 
would be about being Free and functional.

I liked DesktopBSD's goal of being FreeBSD+otherstuff, where the base 
system is still 100% FreeBSD.  I also like what PC-BSD will probably be 
trying soon, to mimic the way Mac OSX runs apps with all their 
dependencies in a type of "jail" - that would make installing desktop 
apps a breeze. I think PC-BSD is going to have to petition video to be 
allowed in/out of the jail, or something like that.  I have also  heard 
about the KDE "klik" initiative, but it sounds KDE-dependent.   As far 
as I could tell, neither DBSD or PCBSD had a way to install via 
floppies, which negated my ability to run them on my preferred (if not 
old) laptop.  It seemed to me that a "standard desktop configuration" 
for a "standard FreeBSD installation" would suit me better. 

Does such a thing exist?

If not, what I plan to do is document what I have done.  The goal would 
be to help people with a little-to-moderate amount of *nix experience 
get a functional system up and running, and that would stay up and 
running.  Giant apps like KDE and Gnome would be avoided.  Best-of-breed 
would be encouraged.  Questions and answers would generally be 
restricted to the recommended apps.  As users became more experienced, 
they would naturally drift away and do more of there own thing. 

When I first started running FreeBSD, I didn't want choice - I wanted to 
be able to get things done.  My level of experience was not high enough 
for me to figure out things on my own, so I ended up running back to 
Windows or Linux.  I recently passed a milestone where I started to feel 
as if my core personal files were safer on FreeBSD than on Windows - 
which was a big deal.  Now I run back to FreeBSD.  This is where I would 
want other beginners to be, as soon as possible.

One important function of such a usability document should be "how to 
never lose your data files".   I actually use a 2nd machine as a 
Subversion server, but I think an extra partition with a local 
repository would allow someone with a single machine to accomplish the 
same thing.  It is hard for me to put in to words how big a deal it is 
to be able to guarantee your stuff isn't going to disappear 
unexpectedly.  When you're a complete newbie, a dead X server might mean 
a fresh install - complete with drive format if thats all you know how 
to do.

Dru's "BSD Hacks" book has a good hack about using "g4u"(?) ("ghost four 
you"), which shows how to make an image copy of your machine to a FTP 
server - so you can restore it exactly if you your drive gets wiped 
out.  Image copies are good for newbies, since they can "back up" to a 
point before the user broke something important.  Data protection and 
recovery should be stressed to beginners.  No one will use a system for 
very long, if they fear it.

So my overall idea is to use a "tracking" branch so the core OS doesn't 
break during updates, uses a "best-of-breed" software package approach, 
has a lightweight WindowManager (flux, fvwm, or xfce), expects recommend 
hardware (ne2000-compat, soundblaster-compat, hayes-compat, vesa-compat, 
etc), and has procedures for safe-guarding configuration and personal 
data.   If this could be done, it could function as a "training area" 
for new FreeBSD users.

I would want to do this a little bit separate from the normal FreeBSD 
mailing lists.  Maybe on a forum or email list somewhere.  One effect it 
might have would be to pull some of the absolute newby questions off the 
primary lists and in to the "training area", at least for newbies 
willing to follow the recommended path.  I'm not a FreeBSD expert, and 
some questions would certainly get escalated to the "real" FreeBSD 
lists, but at least there would be a buffer.

Again I want to stress, I'm not talking about a fork, new software, or 
anything like that - just a well lit path for beginners.  We *are* 
talking about an OS that's mascot is a "daemonic beastie", :-)

Any suggestions?

thanks for reading this!






More information about the freebsd-questions mailing list