OpenBSD Minimalist Desktop
nechtan.io
nechtan.io
Has minimalistic meant to be "limited"? Then makes sense.
TUI based? Somewhat makes a bit of sense.
Minimalistic but yet full featured? I couldn't see that on provided sample.
I wouldn't say it is limited or not fully featured. It does everything one needs. There's nothing missing, rather it lacks the bloat. It begins with a basic system and you build up the things you need and want on top of it (versus starting with a bloated system and trying to remove things you don't need or want).
Why do I prefer the minimal setup? In my mind, stability. I have used the same setup and mostly the same configuration for ~16 years. At times my machine has had an uptime of 700+ days before a reboot.
I like things that "just work" and continue to work, forever (preferably). More moving parts means more potential breakage. Keep it stupid simple and to the point.
Not blaming your setup is bad for your needs, but I'm pessimistic on ideals of 700 days uptime and not changing things for 16 years. Sign of stagnation for me.
My needs includes being able to cast my screen to TV or play music via AirPlay or chat in Slack/Mattermost or run some ML/Cuda stuff or tell (by voice) my laptop (Cortana actually) to set alarm for 5 minutes or...
I'm not sure I could do all that with setup of the sort you have.
Just use HDMI.
> Music
VLC has Chromecast support, and maybe Airplay.
> Slack
Bitlbee has plugins for everything. Just plug your fav IRC client.
I wouldn't be surprised if he had a harder time than an average sweng to set up a LAMP server or troubleshoot networking issues.
Being central to the kernel development doesn't automatically mean you're a computer wiz.
Of course if to you a computer wiz is someone who knows how to write a web page, or how Windows works, or how you use Photoshop, then no that’s not what you need. Then again the people who know that probably aren’t enough of a computer wiz to write a kernel from scratch.
Knowing the exact procedure to enter protected mode in x86 doesn't mean knowing how to troubleshoot network issues, setting up a Wireguard connection or figuring out why systemd doesn't want to start that process.
And in any case, as I mentioned, Linus hasn't been doing much coding these days. These days Linus is a world class product manager. This is main role, and he has admitted that himself. His main responsibilities and daily duties have evolved since 1991, and so has the computing world.
Linus didn’t just build the most used kernel on the planet, he also built the most used revision control system on the planet and has proven to be an effective project manager, whatever people think about his style. You’d probably be short sighted to dismiss any of his abilities.
> It’s very easy to be minimalistic when you’re doing very little.
Still makes sense even for Linus, as he probably not need to have say Hadoop running in Docker Desktop, Chromecast playing videos/casting and whatever beyond things related to kernel development on the coding machine vs general case machine.
If you enjoy the bloat of Electron and using your toy mouse to make your computer do what many people do in a terminal then that's your choice. I won't begrudge someone their TOMY computer experience.
Wider question - how it makes your productivity/life better?
I wouldn't be drawing anything with a mouse or trackpad, that much is certain - perhaps a tablet with a stylus would be more suitable for those things. I could use a digitiser tablet with Gimp or Krita if I wanted to do some drawing.
That said, I have access to a web browser which allows participation in Slack, Zoom, etc if required as well as any other GUI programs I may want to run in my minimalist environment. Even in the screenshot I have IRC and Matrix - those are used for collaboration, it's just the clients aren't written in JavaScript/TypeScript.
Some people consider Discord essential for collaboration - those people are probably bad dangers.
I'm more productive and my life is better because I know every file on my computer and what it is doing or what it is communicating with at any one time; I can customise everything to be used in the way I find most optimal/efficient without permission from anyone :)
The howto also uses an FTP client, and doesn't explain how it got the checksum.
Wayland applications can be used with the Arcan display server, but there is no native support for OpenBSD in Wayland.
As a minimalist setup there's not really anything of note you could screenshot; Just a bunch of windows without decorations and some non-bloated software.
The only thing I liked about Gnome was the appearance, which was something purely superficial.
(I don't use Linux anymore.)
It DOES run great though, but I think they'd do a good job by simplifying some aspects of it, too bad the community seems to be mostly opposed to that as they want KDE to remain a more power-user friendly desktop.
Regardless, I think once KDE is set up to one's workflow properly, it stays out of the way and can remain out of the way on new systems by transferring the config files. It just may take a lot of upfront work to get to that point and you can get easily distracted tweaking the minutiae over time. For that particular reason, I also prefer just using vanilla GNOME (with only the AppIndicator extension for DropBox and Steam tray icons). Granted, that's a "me problem" because I get easily distracted and can never stick with a specific setup when there's so many options available for me to tweak.
TL;DR: Both KDE and GNOME can be minimal, but the latter requires "minimal work" because it's minimal out-of-the-box and there's not much work that can be done.
Both work great and have all the features I need, but KDE feels a bit boring, a bit "Windows XP" while Gnome seems like a more modern desktop to me. I much prefer Gnome's dock to KDE's "start menu" with so many things cramed at the same place (well, like Windows).
That's why I run Mac OS X and don't waste hours setting up a machine/operating system that could just work out of the box.
Depending on your workflow, MacOS is fully capable of wasting your time. Especially if you're a developer, MacOS will frequently go out of it's way to deliver you a worse UNIX environment than Linux. If MacOS makes you happy, use it - but nobody is deploying their web infrastructure to MacOS. You're beholden to Linux usage whether you like it or not.
Um, what? Can't say as I've experienced this. Only time I ever felt like this is when I was downloading rustc and cargo from the FreeBSD repos.
The rest is semi-fair, if not completely understanding of the trade offs (rootless is mostly good, lots of people use docker on Linux, no one is deploying their web infrastructure on MacOS, not because you couldn't, but because it's not free, etc.)
As always, use what works for you! I made a joke about how this OpenBSD desktop has like Linux of 25 years ago vibes ... which I'd amend to say, and Linux has a MacOS of 5-10 year ago vibes without the apps (all the love in the world for Linux and the BSDs, and my M1 Macbook Air too).
All of this is to say, everyone is going to have a different set of needs from their OS. Honestly, I agree with your "MacOS of 5-10 years ago" comment, and it's great that Linux continues to pick up the slack when MacOS "moves on" from various technologies. If I could still run Mojave, I would. Linux really does feel like the next-best thing, and with NixOS I hardly spend 3 minutes setting up my entire system (symlink /etc/nixos/ from my git repo and I'm done).
At least MacOS isn't as bad as Windows in the dev environment sense.
> Can't say as I've experienced this.
That was MacOS' estimate, in reality it only took ~4 hours. Still extremely frustrating when all I need is a 32mb git binary...
I take your point, but "Just Works" on Linux can be a more difficult road than maybe we often care to acknowledge. If you didn't go through the "OMG why won't my laptop suspend properly" years (which maybe still haven't left us...?), then let me tell you UGH, give me a Macbook as my Unix desktop/laptop experience.
I really think it's mostly what you're comfortable/familiar with. Mention NixOS to me and I think interesting, but it actually sounds more complicated than a Time Machine backup on a ZFS NAS to me (although probably much more elegant).
PS, if you are interested in shooting the shit about NixOS, it's actually quite neat. All the time-consuming Linux setup that people loathe can be mostly automated with a config file or two[0]. The package manager (Nix[1]) is pretty badass, and worth checking out if you are on Mac. I much prefer it to Homebrew for dependency management.
Enrollment is 99 USD (or in local currency where available) per membership year.
You can do all that minimal desktop does and much more without MacOS ‘wasting your time’. Do you really want to pretend this minimalist desktop includes Docker?
With the trackpad working as good as it does in Mac? And Bluetooth/WiFi? And as good of battery life due to strong hibernate/standby/sleep when you close the lid working? And equal support for external displays?
If Ubuntu is really 1:1 on par with Mac OS X in all categories, I'd be surprised.
The biggest gotcha is still vendor hardware choices that don't follow spec. Appreciating that MacOS doesn't work on any laptops Apple doesn't make, it's pretty amazing how great the baseline for support is with any general Linux distro, even on Macs.
Also, Mac wifi and BT use some proprietary magic that isn't OS dependent. Just to emphasize that the hardware and OS are separate things.
So openbsd with a small tileing wm(I use spectrwm) is perfect for me.
If I were less addicted to web browsing I would probably use plan 9.
You can run a linux vm using vmx on 9front and run a browser in there. Not fast as lots of vm work is still needed to improve guest performance (send patches.)
I'm sure most of the people here complaining about custom configs can't be bothered to read documentation and hope the gui gives them enough hints to stumble through using it. And this has worked well enough for simple programs as visual hints allow one to stumble through the interface using trial and error.
The gui as documentation has done massive amounts of damage because you can only hint so much before the idea breaks down in the face of 100's of knobs and levers. Then the GUI becomes a liability because once the program becomes stable management (or bored oss devs) find reasons to change the gui breaking the user experience by corrupting the documentation. Now the user has to re-learn everything. The web then becomes a graveyard of obsolete how-to guides.
Goes to show you why emacs or vi and their clones haven't changed much ui wise yet visual studio and other monster ide's are moving targets. man pages and command driven interfaces are very stable.
1) The screenshot was from another system before I decided to do a write-up; my current setup is as per the article without further customisation.
2) cwm provides virtual desktops through grouping. That desktop pictured is what I use for email, IRC, Matrix, and RSS/newsboat.
3) Would I be better off in the console with tmux? No. Could I survive on the console? Yes. I use a web browser and another terminal in desktop 2, and other GUI programs in another virtual desktop. There are very few pieces of software I can't use on OpenBSD; Some people even play Steam games on it!
4) OpenBSD base is exquisite and the operating system itself is so easy to configure and maintain compared to GNU/Linux. It's simplicity and 'retro' configuration doesn't take away from its power or usability in modern computing (for all those saying it looks like an old GNU/Linux screenshot).
Unlike GNU/Linux and the linux kernel itself, the direction of OpenBSD has never and will never be dictated by corporate need or greed. The licence is arguably more open, allowing both innovation in open source and commercial use - but you would never see, for example, Elon Musk's next obsession making its way into the kernel because it was fashionable.
Meanwhile, Ubuntu continues on its downward spiral, Debian has just voted to include firmware blobs by default, and don't get me started on what macOS has become - or should I say 'iMacOS'.
user friendly is not the same thing as simple.
Testify!
ubuntu is a linux among hundreds of linux distros
openbsd is a rock-solid safe regarding security everything is handlymade to get a taylored-made computer.
if I had to compare, ubnutu is a bit like a high rank standing appartment in a big city where openbsd is a very nice home handly made to answer to all your choices and decision, whom might not be delivered with several defaults when you receive the keys ;)
I've been using Linux since RedHat 5.x "pocketbooks" with CDs were available at newsagencies (late nineties?), so I'm not scared of the prospect of having some fiddling to do in setting up OpenBSD. The main concern would be the availability of compatible apps that I use regularly.
As for why: A power loss will likely only affect filesystems being written to. So less risk of ending up with an unbootable system if / and /usr are not being written to.
Even moreso if they are mapped read-only.
I don't know about now, but I've seen people only enable softdep mount option for FSs that need some extra speed, and not on / and /usr. (article does this for /home. look at the listed mount options)
It's also nice to mount /tmp and /home with "nosuid" and "nodev". Some file systems even "noexec".
Edit:
Note that I'm not advocating for it. I'm merely listing reasons one could have.
Among others - is it supported by any hosting vendor or I'll be forced to tinker with it myself without even cloud-init tooling?
* finding FreeBSD guys, who probably the best match here is somewhat puzzle on its own
* highly likely common approaches in modern world would fail - cloud-init, systemd units to be adopted, not even mentioning Docker/podman and highly likely monitoring/metrics tooling. Not checked, but very unsure NewRelic or Datadog are compatible => admins will not be able to use their previous skillset effectively
* convincing people to join team of supporting OpenBSD systems can be somewhat tricky. I'm basing on my own feelings here - I'd rise the bar for salary 2 times and even that will think twice on should I spend my time on such experience
* leaving performance alone, I bet it will require extra hardware planning instead of buying any Supermicro/HP/whatever server and be sure it's Redhat compatible. Must be very serious reasons to put yourself in chores of this sort. And reasonable admins must consider such risks and delays for rollouts of products in production
So on.
But I feel that would be the top of the iceberg - bottom part would be - how much of other tooling, say Ansible will fail? Homegrown scripts will fail?
Amount of efforts seems to be very high for, let's say politely unknown and unclear benefits.
1984.is has OpenBSD as an install option; that's what I use for my mailserver and webserver.
Unless you want to enable wxallowed on / or /usr.
Then of course there's the fact that they don't do journalling. It's not my expertise but if literally everyone is doing journalling instead of softdep, then maybe they're right.
I've used OpenBSD off and on since 2.1, and I've experienced much more data loss on it than on Linux. So yeah I'm also not a fan of OpenBSD's filesystems.
I feel like OpenBSD don't have enough staffing to do the right things (e.g. Wayland, Bluetooth), so instead they try to do what they can, but right.
Which is fair enough, but will become more and more like retro computing for every year that passes.
Yup, the journaling is the nail in the coffin for me. I scratch my head when people recommend it as a network appliance due to the data loss issues.
> retro computing
I kind of do use it in that niche. I enjoy finding the oddball hardware OpenBSD runs on with, at least partial, -current support.
USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
_x11 71289 0.0 0.6 11164 24992 ?? S 9:06AM 0:00.41 /usr/X11R6/bin/X :0 vt05 ...
root 2878 0.0 0.0 2696 1412 ?? IpU 9:06AM 0:00.04 X: [priv] (Xorg)
I understand that their malloc conversion from sbrk to mmap flushed out some long-standing X bugs as well.http://www.undeadly.org/cgi?action=article&sid=2005082419031...
Anyone using ZFS should!
Since ZFS partitions are all taking from the available space of the pool, you can have as many partitions as you need, which is very practical for snapshots and diffs, or if you want to use the same pool for different hosts (=> use a different etc along with a few others like var/lib )
Look at the set of partitions I recommend on https://github.com/csdvrx/zfs-autosnapshot (this is for the host 7275 on the pool nvme)
zfs create -o mountpoint=/ nvme/7275
zfs create -o mountpoint=/etc nvme/7275/etc
zfs create -o mountpoint=/opt nvme/7275/opt
zfs create -o mountpoint=/usr nvme/7275/usr
# for optimization
zfs create -o mountpoint=/img recordsize=1M primarycache=metadata secondarycache=none nvme/7275/img
zfs create -o mountpoint=/img/qcow2 recordsize=64k nvme/7275/images/qcow2
# for safety
zfs create -o mountpoint=/var nvme/7275/var
zfs create -o mountpoint=/var/tmp nvme/7275/var/tmp
zfs create -o mountpoint=/tmp nvme/7275/tmp
zfs set exec=off nvme/7275/var
zfs set setuid=on nvme/7275/var/tmp
zfs set setuid=off devices=off sync=disabled nvme/7275/tmp
# for systemd-journald
zfs create -o mountpoint=/var/log nvme/7275/var/log
zfs set acltype=posixacl nvme/7275/var/log
# for postgresql optimization
zfs create -o mountpoint=/var/lib nvme/7275/var/lib
zfs create -o mountpoint=/var/lib/postgresql nvme/7275/var/lib/postgresql
zfs set recordsize=8K primarycache=metadata logbias=throughput nvme/7275/var/lib/postgresql
It also taints the kernel, which is interesting.
FYI this list was created to address Ubuntu's choices for ZFS datasets, which I think are suboptimal.
> It also taints the kernel, which is interesting.
Oracle could fix the ZFS situation at any time if they wanted to (and then get some positive feelings which they sorely need).
They don't. Personally, I don't care much. They may eventually change, like Microsoft did.
It's in their best interest: adapt or die.
It actually isn't that hard. I do wish OpenBSD had a more robust filesystem. I switch to FreeBSD when I need a server with lots of storage.
[edit] the vultr install of OpenBSD only has / and /usr/local
You should have at least: /tmp/, /var, /home and /usr by themselfs, personally I'd add /var/log as well. I've lost count of the number of times I had to rescue a Ubuntu system here something filled up either of those directories and now the system isn't responding. Having the entire disc filled up doesn't make it easier to fix.
Not too sure of that, on OpenBSD I set this:
export DBUS_SESSION_BUS_ADDRESS="no"
In ~/.xsession to avoid using dbus. My WM is cwm(1). Without dbus I am not missing anything (AFAIK), even when executing firefox. So wondering what dbus gives someone on OpenBSD.
Anyway, nice write-up.
I can't think of anything else it could be needed for other than various GTK-bloat IPC so I'll make a note in the article!
Thanks again,
Daniel
This is not intended to be mean (hey, if it works for you!), but in many ways this is about vibes, and this does have a Linux of 25 years ago vibes.
For example, OpenBSD won't adopt ZFS. Won't adopt Rust within the OS. Won't use hyperthreading. All aren't even up for debate. They have their reasons, but also I do enjoy my creature comforts. Because at a certain level of additional ease does have its benefits?
It feels like the other side of the Simple Made Easy talk by Rich Hickey[0]. Yes, we shouldn't aggravate complexity, but also we need not make things unnecessarily hard on ourselves either for the sake of "simplicity" or "minimalism". It's a balance for the rest of us. I think the goal should be to strive for both easy and simple, and an OpenBSD desktop falls short re: easy for me. And, if the point is "It's simple/minimal!", I think that simplicity should have benefits (it's more composable..., it fits on a very small flash device,...). We shouldn't simply worship simplicity for its own sake.
That's a switch.
> Won't adopt Rust within the OS.
It's in packages. Get it.
> OpenBSD won't adopt ZFS
Hammer2 would be preferable.
That's fair. I supposed what I was getting at is: OpenBSD seems... mono-maniacal(?), and that's one reason it remains niche.
> It's in packages. Get it.
Yeah, but won't adopt inside the base OS.
> Hammer2 would be preferable.
"...from a licensing standpoint..." Otherwise, ZFS is still obviously the state of the art. Most of us shrug and say "Whatever?" re: the licensing noise and run the stuff that works?
So technically speaking, it would sound possible, if such a large code base doesn't trigger various compiler bugs and undefined standard issues, never mind some low level gcc extensions (asm etc.) probably being used.
Haven't heard of someone doing that, though.
Totally unable to compile without such grotesquely and absurdely massive c++ coded compilers like linux.
sad.
I know what to do now.
Aha! you say, just use tmux.
tmux is great, but I like the feel of a tileing window manager more than tmux.
Unless you’re coming in through com0, that is.
Virtual Desktop 2: Firefox, sometimes an additional terminal
Virtual Desktop 3: More GUI apps, though often vim split with something else, depending on what I'm working on.
I use plenty GUI-based software, but there's a lot of unnecessary bloat - both in resources and on the eyes - that we can do without.
- Spleen/Unifont fonts.
- OpenBSD base already has X.
- Image and videos with nsxiv/mpv.
rest of time, using lmde, not bad.. does macos have still users? :D