FreeBSD Screen Shots

Making some progress on CWE (Common Workstation Environment). I gained some fairly good experience from developing a FreeBSD DaaS (Desktop as a Service) front-end as part of my day job, plus OpenCDE back in the day so thought I would give a potentially open-source(able) project a shot.


Some highlights:
  • File manager mostly complete. Built from scratch; mostly modeled after Windows 98. We did a usability study for the DaaS and Windows 98 came out top so thought I would do similar here. The file manager codebase also provides desktop icons.
  • Terminal mostly complete. Basically a cleaned up / consistent fork of FLTerm.
  • Window manager 60% complete. A forked Blackbox. Made to behave a little more like Windows NT (again, win32 came out top for the usability study).
  • Calculator complete. Built upon some FLTK tech demo. I don't think we need a more complex one or we have bc anyway.
  • Text Editor. 75% complete. Built upon another FLTK tech demo.
  • Image Viewer. 2% complete. I have barely started this one, mostly because it is likely the easiest. At some point I need to track down an MS Paint clone using FLTK. I would really like to include something like that.
  • Taskbar. 2%. Its there. Doesn't do much yet. Undecided on how it should look. Might just clone Windows NT again.
A really cool feature is that the entire desktop environment is all a single executable with only one static dependency (FLTK) and no external files (all images / data is embedded). So it should be dead easy to build and/or install. No GNU/Gnome style dependency mess.

Interestingly the File Manager and Terminal are probably the hardest parts of a DE and they are pretty much there. It is amazing how much decent (but abandoned) FLTK code there already is out there. Some of it just needs fixing up and hopefully a substantial desktop environment can be made from it. The key thing for me is consistency; things like menu bars all being the same, etc which you should hopefully be able to see in the screenshot.

Deleted member 67862

So I recently was thinking about how desktop environments aren't so modular anymore but maybe I'm wrong.. Switched from plain icewm to using xfce4-panel with openbox. My favorite thing about icewm was just the configuration, not how it functions as being a window manager or its panel. I sorely missed having the double-panel layout I could get with xfce4 or TDE. Thankfully you can still install xfce4-panel without, y'know, installing the entire desktop environment. ;) Might try different window managers on top of xfce4-panel.
Yes, Xfce and LXQt (which I use) are definitely modular. LXQt doesn't even have its own window manager, the metapackage comes with Openbox by default but you can use whatever you want.

Deleted member 43773

No GNU/Gnome style dependency mess.
EXACTLY! 😁 That's a reason for my decision for a "simple" wm instead of desktop environment - less mess, more flexibility & independent customizability.

Interestingly the File Manager and Terminal are probably the hardest parts of a DE
I had the very same experience.

I tried several FM and figured out:
- Interesting: The origin of the need for FM seems to be MS Windows.
In general there are two types:
Windows Explorer like principle of Copy-Paste-within-One-Tree
Norton Commander like with the Source-and-Destiny-principle.

- Interesting: For unixlike OS I did not find a single FM that really would have convinced and satisfied me fully.
Catseye, Sunflower and Filerunner were the last ones I've tried.
If one puts a bit learning and config effort into it Filerunner can be made really powerful; but because of its usage is designed to be highly efficient instead of moron-save & looking good its handling needs a bit acquiring to get the hang of it.

- Interesting: The more I got into using the shell, the less I needed a filemanager.
I rather like to learn shell instead of relearning semi-intuitive FMs again and again.

I have no filemanager installed anymore.
I don't need it. I have a shell.
The basic FreeBSD shells ([t]c)sh are pretty useful and more than sufficient for the everyday use.
Of course I have bash installed. But I use it for scripting. For the everyday use of simple tasks I find the other ones way more easy and intuitive to use.
(And not using Linux I don't have all that "sudo ... - password..."-junk neither. I'm either user or root.
Tip: I use colorful prompts. That way it's more easy to see where the former prompts are, and to distunguish user (green) from root (red))
From my ~/.cshrc
set prompt = "%B%{\033[42m%}%n@%m%b %B%{\033[32m%}%C4%b %# "
(Colors can be found in the lower part of man tcsh )

Very easy and small tasks like copy, move or delete a single file are done more quickly in a shell, before a FM is even started.
And in most cases it's needed to be set to the right directory first, too. With a shell I also don't need no slogging about "favorites", "last used", "frequently used", discussions about garbage cans, or if I'm sure and all this superflous cruft junk flooding and trashing the system only without being remotely useful.
If your are not the total sloth on the keyboard for most small tasks your quite faster by using the shell than a FM.

More complicated things like renaming more than one file at a time are better done within the shell anyhow - if the FM is even capable of doing such.
(Most FM's capable of doing such are doing it by giving the user a CLI aka shell - so you start a FM to use a shell... 🤪)

The one point left I see what a FM is actually good for is browsing a filesystem.
But if you keep your system clean, have your files sorted and know what's where, you don't need that. And to handle directories with large numbers of files or to clean up a mess you're better off with the shell again anyway.
And for the very rest the programs provide their own simple Filebrowser. E.g. Gimp, picture viewer or mediaplayer a Filebrowser with a preview is already included.
So bottom line:
There really is no need for a Filemanager, actually.
It's just the question of what you are used to, only.
I needed a couple of years to learn that. That's why I here share my experiences with you for you may take the shortcut directly😁

For terminals I have likewise experiences. Some may laugh, but I really use xterm.
I tried several such as rxvt and urxvt. I simply don't see the point what a terminal needs pulldown menus for but using more resources, slowing its start and wasting usable space. I have one config. I don't need to reconfigure the appearence of a program every now and then, especially not the terminal.
 xterm -fg white -bg black -fn "-adobe-courier-medium-r-normal--17-120-100-100-m-100-iso10646-1"
This command is linked to a button.
That's all I want. It's all I need. The rest is within the shell anyway.

To increase your productivity you need to (re)learn the usage of the keyboard.
And for that you need to wean yourself from the overindulgence mouse-usage. 🍼😁
(Even if it's not mentioned explicitely I've seen some users presenting complete mouseless desktop environments. I'll bet some would be astonished how quick those guys work on their computers :cool:)

I also don't need no transparancy terminal. It only looks cool but it's no improvement of productivity at all.
In contrary this even lowers the productivity because you sacrifice clearness and readability especially when using some pictures as desktop background.

But of course I'm aware of observing that this thread is not only about "which useful/interesting things can be done, what alternatives there are"
but it also seems to be some contest of who's presenting the most cool desktop background picture.

That's why I wrote this.
I admire kpedersen's presentation of a clear desktop showing primarily functionality and not participating only at "who's posting the fanciest picture show".

But not to end seeming destuctive I add some ideas you create a desktop background that may be useful and productive:
If you are using many icons on the desktop create a unicolor picture (black, or dark color at best) with exactly the used resolution (e.g. 1920x1080 pixel).
Then place squares in different colors on it. So you can group your icons thematically, such as having anything to do multimedia is within a orange square, all system settings related stuff within a dark blue field...
Another tip to get a homogene but not boring, high quality looking background that is not killing clearness:
Make an actual foto of something regular: the sky, sand on the beach, ocean surface...


  • Blauer_Himmel_1920x1080.jpg
    728.8 KB · Views: 137
So bottom line:
There really is no need for a Filemanager, actually.
I do generally agree with this; I think the mindset that for it to be a desktop or a workstation, it must have a GUI is a little bit strange (did it arrive with the popularity of Windows 3.1?).
We were at a bit of a hard place at work, we want to provide a remote desktop to people but they really do expect a full fledged graphical desktop (annoyingly we had to write much of it from scratch, we found so much of the current offerings inadequate for many reasons (i.e usability or streamability).
But at the same time, I kind of understand, not too many people want to look into a black terminal all day unless you actively *like* the simplicity.

but it also seems to be some contest of who's presenting the most cool desktop background picture.
It kind of reminds me of Linux / open-source magazines. They review all these distros and new versions of i.e Gnome 3 and basically you are looking at the exact same thing minus a different desktop background!

Deleted member 43773

they really do expect
That's exactly the crucial point.
You can teach yourself to become better. But if the customer expects crap you cannot teach them, you need to serve crap 😂

not too many people want to look into a black terminal
Of course I neither don't do anything with a teminal only. But one has to decide what's best for what. Especially if it's not for private fun but on the job for the company one shall suppose work efficiency should be top priority.
But it's not. It's all about appearences, what people are used to, what others use and what seems to have no learning effort.
So many people are simply not aware how dull, tideous, and above all unefficient some of those mouseclicking orgies within non-intuitive option-cluster-arrays are...

"No! We don't have no time to learn it. We need to get this harbor excavated as quickly as possible. So get rid of this fancy hacker-digger-stuff, get yourself a teaspoon and start working as anybody else!" 🤪

you actively *like* the simplicity.
Simplicity is not per se a bad thing. Don't get me wrong. I'm neither ascetic, nor do I plead "back to the stoneage".
All I trying to say is: "Get rid of overfluid junk. It's just useless ballast." And it's your energy that is used to carry it around.

Many things promising more power by features are in fact worse, because they bring no benefit but trashing up only.

One need become aware of we're living in a sellers world where many (most?) people actually believe "more is better". All I want is to try open someones eyes for to see, that's not necessarily true. More is more. Better is better. Don't mix this up! Even if salesmen want you to, because salesmen want to sell you quantity, only. And the less alternatives aka competition, the less they are concerned of quality.

You see a device with more features is in fact more that is sold. Anyway you pay for it, either the one way or another.
And in software we observe many people employed on projects that actually are finished developed.
So what they are doing? They're creating new work for themselves. But you're not forced to buy it.
At least not if there are enough alternatives and options anybody can decide for himself how many simplicity or ballast he wants.

As Luigi Colani (and many others - the best) has teached us: In simplicity lies the true beauty.
Did you recognized the fewer buttons a remote control has the more expensive the TV is? :cool:
That's exactly I want to point out: The difference between good design and decoy by number of features.

If you can distinguish between useful and hokum you also understand what Albert Einstein said: "As complex as necessary, as simple as possible."
And you find that again in the KISS-principle which is not only part of good engineering but also of UNIX philosophy.

And besides that:
The less modules, the less problems.

And that's all I want to say:
Sometimes remind people not get lost in too many hokum crap our today's world is trashed up with, but become aware to distinguish what really is useful and what's ballast only, showing there are more alternatives but different forms of hokum.
I'd say that it's useful to know the command line and be comfortable using it... but there's a reason we have net/samba413, NFS, and filemanagers like Dolphin. :cool: And yes, I am familiar with stuff like tar, cp and scp. That did come in handy for me just the other day.

Oh, and to respond to the point about TV remotes:
Did you recognized the fewer buttons a remote control has the more expensive the TV is? :cool:
Not true since middle of 2010's. Even cheap Samsung TV's can be controlled by a cheap Samsung phone with an app via IR (not even wi-fi). And the app can be configured to have as many buttons as you like. Roku TV is cheaper, but the few buttons on either app or physical remote don't do much, I still have to go back to the TV's remote to do anything useful. Good thing that Roku setup was not mine to begin with, I just played with it in an AirBnB unit I stayed at a few months ago. :p
PS after making the screen recording, with Terminology for Ranger, I identified a method that's better (and reliable with Konsole): ueberzug


Now I can start getting used to Ranger instead of nnn :)
I'd be interested to hear you experience working with nnn and why you'd want to switch to ranger.

Now I'm looking into bspwm... damit man, this might be more what I had in mind than i3.

Can misc/nnn do Miller columns? <> closed, not merged.

I'd be interested to hear you experience working with nnn and why you'd want to switch to ranger.

Now I'm looking into bspwm... damit man, this might be more what I had in mind than i3.
It's almost a topic for blogpost itself, but in short:

nnn was really a difficult beast for me. What I always struggled with was the configuration, which is done via environment variables. I had to basically create my own shell script to launch it from sxhkd, otherwise the command itself was like one kilometer long. Another thing that took me really long time master was plugin support. I used only one called nuke and even that took me while to properly configure. You might say I wasn't patient enough, but as a user, I simply had different expectations. What I liked on it was that I could quickly filter directories by pressing "/" and just typing. Something I have to learn how to do in ranger, because slash works differently there. What I like so far on ranger (after an hour of using it) is the simplicity of configuration via config files, plus the fact that I managed to get image previews done within couple of seconds (thanks to the generous people here).

I definitely encourage you to try bspwm, although I cannot tell you how different is from i3, because I skipped i3 and sway and started using it straight away. My most favorite feature is monocle and switching between tiling and floating windows. Also I like polybar, because it has nice support for bspwm out of the box. I haven't done any heavy customization of bspwm, I almost use it in default settings for half year already and I'm very happy with it.
Nice desktop from fellow bspwm user! It's curious to see that you don't use anything like polybar, etc. - I would certainly miss it.

I have a question - what is the file browser you use in the lower left corner? I use 'nnn', but I didn't figured out how to do previews. Mostly because of my lazyness I must admit...
I do messy scripting with notify-send to get basic info like volume stat, battery etc. Not working with a panel just feels cleaner aesthetic-wise to me. And yes, as @grahamperrin mentioned, it is sysutils/py-ranger and py-ueberzug for image previews. Image previewing is actually quite simple to set up in Ranger. It is just a matter of changing a few options in the rc.conf.