Not related to OpenBSD itself, more for "minimalistic" approach - screenshots with irssi were popular like 25 or 20 years ago.
I see kinda nothing new here, just fly stuck in amber.
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 have a similar setup as I mentioned in another comment.
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.
One's needs are much different from other one's needs.
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.
I don't need nor desire desktop software written with web technologies or other bloated UIs to be productive, thank you.
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.
Do I understand it right that taskset you need to cover with computer is quite static and not that much focused on collaboration with others? For example - other team members have daily stand up in Slack's huddle, with screen sharing and even drawing from time to time, but you are not actively involved or even cannot attend at all?
Wider question - how it makes your productivity/life better?
I used Slack for the first time the other day and I don't see the fascination and buzz behind it. I'd rather an open source / in-house solution, regardless of whether it's for a business or non-profit project; Mattermost or Zulip, for example. Perhaps even IRC.
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 :)
Admittedly he does very little with his computer. He often said these days it's mostly reading and writing emails and merging patches. And he often stated he does not know nor care much about how his desktop works. He uses stock Fedora and spends his time inside his Micro Emacs clone, and laments he's not even doing much coding these days.
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.
Writing version 0.1 of a kernel from scratch very much does mean you are a computer wiz, how else are you going to make it run? You need to program the base hardware of the computer manually!
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.
Not really it does not. We differ on the definition of wiz: you mean one that knows really well how the hardware works, in this context I mean someone that knows how to "program" a computer. This is why I used the very generic word "wiz" and not software engineer. I mean being generally proficient, and he said he is not.
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.
In my opinion a computer wiz has enough talent and knowledge about tech that he can very quickly learn how to do all these things. And I don’t doubt for a second that Linus would be able to learn Wireguard, systemd or any networking system within a few days to a level far exceeding most people, insofar he doesn’t already know.
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.
you are right and I agree with you on fast learning path, knowledge and being smart in general. The original point though, it all started with
> 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.
The screenshot was mostly to break up the article - it's not a picture book, the meat is in the words.
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.
After you log in to iCloud, of course. And then you have to download the Xcode tools, which is fine because it only takes ~8 hours. You'll probably want to reboot after the latest version of Monterey downloads, but make sure you do this after the Xcode tools are done downloading. While you're at it, you should also disable SIP so you can use the filesystems on your external drive, and you'll also want to double-check that your docks/Ethernet components are all MacOS-compatible. You'll also need a copy of GNU's coreutils, so grab those after installing Homebrew/Nix or else you'll get dozens of bash errors. Can't forget Docker, either! That's okay, just go to the Docker website and download their Commercial Client, and only run it when you need a container. We can't just run Docker in the background of a modern OS, can we?
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).
I'm only taking issue with the "Just Works" comment, because it's most certainly not true when you're talking about development workflows. If you're a video editor or a music producer, MacOS becomes a much better value proposition. For developers though, MacOS gets treated like a second-class citizen. Entire swaths of Open-Source software will not run on MacOS out of the box. You don't even get a package manager without installing it yourself!
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'm only taking issue with the "Just Works" comment,
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).
NixOS is definitely more complicated than an OS snapshot - but that's why I like it. That kinda flexibility is what makes Linux great and completely unapproachable, which is why I won't make a bid for Linux domination any time soon. For developers and certain gamers, though, Linux could be a direct upgrade from Windows on their current hardware.
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.
Nix OS with Gnome just requires a few tweaks to the config file. Then it's pretty plug and play like as OSX. Devices, network manager, screen sharing...
Why would you do all that when the minimalist desktop apparently is running a mail client, an irc client and an ftp client?
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?
This was true 3-5 years ago, but you can now buy OEM laptops with Linux preinstalled that "just work" the same as a Mac. Granted, in the long run I don't expect many to be able to maintain Linux unless they're pretty technical. But the whole "waste hours" idea just isn't true these days.
> This was true 3-5 years ago, but you can now buy OEM laptops with Linux preinstalled that "just work" the same as a Mac.
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.
Linux != Ubuntu, but yeah, while no one beats Apple's trackpad tech, the rest is there.
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.
I'm currently using a Magic Trackpad 2 with my KDE desktop (5.26). Gesture support is now 1:1 with MacOS, giving you silky-smooth kinetic gestures for changing desktops, going into Overview, etc. If you're using Wayland, it should also have fairly good support on GNOME too. The only thing you're missing is Force Touch, but I didn't even use that on MacOS.
“Just works”, unless you’re doing anything remotely technical. I like macOS, I use it daily, but unless you’re popping open a browser and checking email and that’s it, there’s nothing out-of-the box about it. You’re likely going to set aside some time to set it up for actual work.
I run xfce on my Linux machine and find that it does what I want out of the box.
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.
I enjoy KDE more than Gnome nowadays but it's far from being more minimalistic; it has way too much options, applications, dropdowns, buttons, etc. compared to Gnome and pretty much any other DE.
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.
I haven't tried it out in awhile, but I wonder if LXQt might be worth looking at for something more configurable than GNOME, yet more simple than KDE. Of course, there's also always XFCE, MATE, and Cinnamon. I just don't see LXQt mentioned much.
I prefer Gnome but I also use KDE because that's what's on my Steam Deck.
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).
I think the parent comment's choice of "minimal work" was key. In my experience, KDE requires quite a bit of work to set up because it encourages you to adapt the system for your workflow. GNOME, on the other hand, encourages you to adapt your workflow to the system, which is minimal out-of-the-box, and IMO doesn't take much effort or work to do so.
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.
> 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 won't reply to every inane comment asking "why use X?", "minimalism is easy if you aren't doing anything", or "MacOS is better because it loads my CP out-of-the-box"...
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'.
The Web is where so much of the UI mindshare and skills are. Wondering if an OSS, vendor-neutral competitor for ChromeOS would lead to better Linux Desktop adoption? I still think Firefox OS could have been a precursor for that.
ubuntu is just the apple of linux world
ubuntu is everything working out of the box
ubuntu is made with the foundation of an ex businessman whom dislikes win/mac
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 ;)
Ubuntu was my first choice to make the jump from Windows. My current daily driver is Pop!OS, which seems equally user friendly to Ubuntu with minor differences in the details of usage.
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.
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 )
You don't have to go to that extreme. Although, /usr/local should be its own partition for the wxallowed, and /var/log should be its own to keep some nasty logging from screwing everything up. I have a standard /, /home, /tmp, /usr, /usr/local, /var, /var/log. I also am a heretic so I also do /opt.
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
I kinda wish Linux distributions would do this. Sure the /usr/X11R6 is a bit weird, but otherwise I think you should.
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.
OpenBSD's X distribution (xenocara) is based on X11R7.7 + updated components, it's just a historical naming convention. Other systems have merged X into /usr or /usr/local, OpenBSD kept the install prefix.
All of them that I can remember. Note that this is from the '90s. At some point they all merged the X stuff into /usr. Maybe it was with the x.org switch, as XFree86 does indeed mention /usr/X11R6 in the docs.
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.
Yeah. I don't quite remember now, but I think many of the packages don't work if you don't have a separate /usr/local fs, since the packages need wxallowed.
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.
I'm honestly in much doubts here. To make it proper reply it must be lengthy, will try to highlight at least several points and keep it short.
* 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
I guess that's part of "adaptation" and for humans probably not a bit deal
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.
OpenBSD has certain flags it sets on various partitions to enable/disable performance and security features. Sort of like setting `noexec` on /tmp, using XFS instead of BTRFS on your database volume, etc. Like most OpenBSD things, it stays way on the "correctness/security" side of the "security--convenience" scale
> If you are not using xfce, then you will need to enable messagebus/dbus with:
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.
If I wasn't clear, I think that's fair! And certainly appreciate your blog entry. I think if anything my quibble is with our/some's obsession with "minimalism". Like, in one sense, it's less complicated to live in the woods, in another, it's tremendously difficult for some. And I'm not certain we should glorify it. It's just a different way of living.
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 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?
If this hasn't changed recently, the two official compilers for OpenBSD are clang and gcc 4.2, the latter for some more obscure architectures unsupported by clang. The specific version is used because gcc changed its license after that, and I think this was before the C99 support of gcc was basically finished (4.5?).
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.
The last attempt I'm aware of was over a decade ago now, at the time there was some interest in building the system (kernel+userland) with pcc (Portable C Compiler), ultimately LLVM/clang won out in the end.
Well, projects like the BSDs need a lot of platform support, where even LLVM is still lacking. You wouldn’t want a different compiler for each arch. There simply aren’t that many candidates.
eat the bullet: cleanup syscalls, write a full kernel using risc-v assembly with a conservative usage of the preprocessor. Get done with compilers for good... and only for that it would be even worth maintaining full assembly code for the few major ISAs and a generic C implementation which compiles with naive, small and simple C compilers and certainly not gcc or clang.
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.