Desktop usability ideas.
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
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
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", :-)
thanks for reading this!
More information about the freebsd-questions