
Although it sounds like a Genesis album from the 1980s, Omakub is actually a heavily curated Ubuntu environment. Its creator David Heinemeier Hansson (DHH) describes Omakub as turning “a fresh Ubuntu installation into a fully-configured, beautiful, and modern web development system by running a single command.” DHH adds that the name is a portmanteau of “Omakase Ubuntu” (Omakase is a Japanese phrase commonly used in restaurants, meaning ‘I leave it up to you’).
A very familiar problem to all software corporations is how to set up their work laptops. Ensuring that every machine that your employees have (whether marketing staff or developers) looks similar, or at least carries the required tools and configurations, is a hard skill. Not being prepared for rapid onboarding can slow down agile projects more than anything else. Behind the “bring your own device” fad was a squirrel’s nest of network protections, policy software, and update emails from a busy IT department. The current CrowdStrike problem is a result of trying to make different machines outwardly safer when connected up.
While many developers use MacOS, the lingua franca operating system for developers is still Linux; and Ubuntu is a popular distribution.
New developers may be told for weeks about how they just need to install one more tool for everything to work on the current project. Virtuals and containers massively improve the situation, but there is still a great deal of tools, setups and configurations to fiddle with. While many developers use MacOS, the lingua franca operating system for developers is still Linux; and Ubuntu is a popular distribution.
So when DHH recently introduced his curated Ubuntu environment, there was a lot of interest. This was the setup he was giving his own staff, so we were getting a taste of a strong software culture in the form of an opinionated and pragmatic mixtape. “Omakub was started by me, David Heinemeier Hansson, to streamline my own Linux box bootstrapping, as well as to help our technical employees at 37signals switch to Linux,” he wrote. “That’s very much a specific context where Ruby on Rails, web development tooling, and commercial services all intermingle.”
In addition, this can be installed with a single command.
I used to use Ubuntu, although like most developers I abandoned it during one of its less stable periods (I suspect the last distro I used was Mint). But I’ve been back on Windows and MacOS for some time, so I feel fairly unfamiliar with modern Linux development.
Installing Omakub
What I’ll do in this post is install Ubuntu onto a virtual machine, then install Omakub, and then assess the setup.
As I don’t have a spare laptop to try Omakub on, I’m going to install it onto VirtualBox. If you want to try it directly on your laptop, then you can skip this bit.
First, we need Ubuntu 24.04 LTS. Download the ISO file, and then download VirtualBox. We are setting up a virtual machine, and need to allocate drive space and memory from the host machine.
Remember to fully install Ubuntu. Otherwise, we just have the equivalent of the “try-out” mode on what originally would have been a CD-ROM. You need about 4G memory and 32GB of drive for the virtual. When Ubuntu invites you to set up, go through all the steps (but don’t connect to the internet). That way it will install onto the virtual drive you made.
After getting a couple of error messages on screen during setup, Ubuntu seemed to appear, responding to the mouse and keyboard just fine.
Ok, so we have a fresh Ubuntu 24.04 sitting in our virtual machine. The next trick will be to use the one line installer:
> wget -qO- https://omakub.org/install | bash
As I was on a virtual, I didn’t set the screen resolution to the suggested 200%, I just pressed Ctrl-Alt-T to get a terminal:
It did have an install error, but eventually, it just carried straight on. It is estimated to take about 30 minutes on a fresh machine. I had to re-run it a couple of times to get it working, but my virtual is running on an old Windows box. If there are install problems, you can then use the Omakub program itself to try again. This is Linux, so everything is a bunch of scripts, which you can always rerun.
The installation is not fully automatic; you will get a set of questions near the end before it asks permission to log out and save everything.
A Tour of Omakub
Ok, all looks good. Let’s now take a tour of Omakub, using the manual.
This is a very keyboard-centric setup, which is natural to most old-school developers. The idea is that much of what you do becomes finger muscle memory, not continual mouse movements. But there are always a few options to do any basic actions.
The other thing to remember is that it is very space conscious, because it is targeting laptop workers.
If you were expecting just weird Open Source Nirvana Linux tools, you would only be half right. The default browser is Chrome, and you might recognize Docker, Visual Code and Obsidian. There are, of course, many more tools installed.
Those numbers at the top are workspaces. The idea is that you run one or maybe two apps in any one workspace, and you can return quickly to any workspace to resume flow in that environment.
Omakub documentation refers a lot to a “super key,” which will vary depending on your host machine’s keyboard. It may be the Mac Command key or the Windows key. Pressing “super key”-1 will instantly shift you to the first workspace.
You can fire up apps by keystroke too. So, for example, pressing Alt-1 opens the first app on the dock (Chrome) in your current workspace, and subsequent presses of Alt-1 will take you back to that instance.
Once you are in an app, the dock will disappear — but a tap of the “super key” will make it reappear. If you press “super key”-space, you will get an app search much like the Mac launchpad.
Tiling is used quite a lot to arrange the screen, and using the “super key” and arrow keys, you can easily place two apps next to each other. Again, this makes sense for laptops:
The terminal program Alacrity, which runs several panes/sessions, looks nice, but I would need to practice to get around it. Below I seem to have summoned my command history, but I’m not sure what I did:
Neovim is the in-terminal editor, which I think started to build itself when I first opened it. There are of course options for themes and fonts, many accessible from the omakub command in a terminal.
Conclusion
It is likely I would use Warp and Zed as my terminal and general editor respectively, but what has been chosen in Omakub works well in harmony with the other chosen tools, and is part of a common practical mindset.
I’d be happy to take the plunge if I went from MacOS to Linux for development (the Framework laptop is often recommended), as I’m sure there is already a big enough community to maintain this. Also, I trust the taste of DHH. If you just want to focus on your software, then letting someone else worry about you or your team’s laptop setup seems like a good move. The cost of learning time should be worth it if it will make you a more efficient and organized developer.
The post Introduction to Omakub, a Curated Ubuntu Environment by DHH appeared first on The New Stack.
Omakub is a heavily curated Ubuntu installation for developers, offered by Ruby on Rails creator David Heinemeier Hansson. We test it out.