Ubuntu offers a powerful, configurable, and easy-to-use desktop experience out of the box. However, as the saying goes, one size doesn’t fit all.

Customising Ubuntu’s look and layout, installing apps and awesome GNOME Shell extensions, and taking time out to tailor the distro to something in-tune with our own needs is something we all do. The beauty of using Linux is that we can do this.

For most of us, this is not a major task: adding a few apps, setting a nice wallpaper, maybe installing an extension or two, and everything runs smoothly.

But what about those who need more bespoke setups? The choices can be paralysing, the setup process intimidating, and the time required to discover, learn, and fine-tune the various tools and dotfiles considered too great.

Wouldn’t it be great if you could run a command to have someone else set it up for you?

Enter Omakub.

Omakub – One Command Transformation

So what is Omakub? It’s a new bash script that, when run, will transform a fresh Ubuntu 24.04 LTS installation into a system optimised for web development, all by running a single command.

“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. That’s very much a specific context where Ruby on Rails, web development tooling, and commercial services all intermingle.”

“No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools,” the website says.

It bills itself “an opinionated take on what Linux can be at its best” and opinionated is really the word to keep in mind with this.

Nothing Omakub does can’t be done other ways, manually, or using other tools. The developer notes that choices the script makes aren’t necessarily better than choices made in other distros, setups, or configuration guides.

Rather, it’s just a faster way to get a solid, preconfigured setup easily on a vanilla Ubuntu install – a jump-start, if you will.

Why is it only for Ubuntu?

Given that many Linux developers choose ‘bleeding edge’ distros like Arch to work on, why is this script focusing on Ubuntu?

Omakub creator David Heinemeier Hansson explains “it’s using vanilla Ubuntu because that’s one of the most widely adopted Linux distributions, and one that is even a pre-install option from many computer vendors.”

“But while Ubuntu has a great package manager in apt, many of the tools that developers want either haven’t been packaged, need more recent versions than what has been frozen in the LTS, or need actions post-install necessary for the best operation.”

Those already knee-deep in the world of nixOS or an avowed advocate of Arch, etc., won’t have need for a script that makes bold choices for them. They know which tools they like, where to get them, how to configure them, and keep a backup of dotfiles to use them.

But those switching to Linux from Windows might not know, and might not want to spend countless hours watching YouTube tutorials, researching Reddit threads, or gawking at Github wikis to try and figure out what they’d like.

Hence Omakub.

An opinionated and pragmatic mixtape

Omakub is all-in on Alcritty

While Omakub helps curate a web-dev-friendly setup on Linux it is far from being a FOSS nirvana.

Anyone allergic, anti, or otherwise antagonised by the idea of having closed-source and commercial software at their fingertips should avoid it.

Software choices here opt for pragmatism over dogmatism – it’s a mixtape in tune with practical needs, not a manifesto beating the drum for idealised ones.

For example, Google Chrome is set as the default web browser. This is not a value judgement. It’s a rational realisation that many day-to-day web devs will need to work for/within a Chromium homogeny.

Omakub script also installs a selection of other GUI software to ‘bootstrap’ a practical coding environment. Austere and utilitarian isn’t the aim, but including everything one could need for a usable and enjoy able Linux daily driver (hence Spotify and VLC) via one script: –

  • Google Chrome
  • VScode
  • Zoom
  • 1Password
  • Pinta
  • Ulauncher
  • Xournal++
  • Flameshot
  • VLC
  • Spotify

The Alacritty terminal is also onboard and, arguably, serves as the real centrepiece. It’s configured to use Zellij for multiple-pane shenanigans, and integrates additional CLI tools, including exa, fuzzy-finder fzf, zoxide, rg and bg.

Some of the command-line and non-GUI tools included:

  • Docker (preconfigured with MySQL + Redis)
  • Lazydocker (for fancy Docker control)
  • NeoVim
  • gh Github CLI
  • rbenv for Ruby management
  • nodenv for Nodejs management

GNOME Shell remains the default desktop experience, albeit altered with add-ons to effect a keyboard-driven, window-tiling workflow. Pointer-led interaction is still there but the compelling UX features which make this what it is use keyboard shortcuts.

Several custom themes with corresponding wallpapers are available, and easy to switch between. Cascadia Mono is used as the default terminal font, and there are a myriad of other smaller tuneups throughout.

But, just like on any operating system (well, maybe not Windows) Omakub convertees are free to ignore, remove, or disable anything the script does which doesn’t suit their own needs – it’s not set in stone just a preconfigured starting point.

Want to try Omakub?

Omakub with the EverForest theme set

You can check the contents of the Omakub bash script on Github and hit up the (rather epic) website to see the results in action in a comprehensive 25 minute video. That explains the “why” behind its creation, who it’s aimed at, and why you might want to try it.

And if you do want to try it you’ll find the command you need to run on that website.

Omakub MUST be run on a FRESH Ubuntu 24.04 LTS install, or to one on which you have not made any major changes. Run it on an existing setup by all means but keep in mind it’s configured to alter a pristine one – you’re be on your own if things go Oma-kaboom!

The command downloads and executes the script. Everything else is automated save for approval for 4 GNOME Extensions. Once the scripts completes, logout to ensure the new settings take effect. I recommend a reboot too, but YOLO.

Obviously keep in mind that running scripts from the internet is generally frowned upon in Linux circles. If you are doing to run this PLEASE look at what it does first. You can preview the script on Github – though it may have changed since I looked at it for this article.

Also keep in mind that undoing the changes this script makes will require more than a single command!

But, at face value since I lack the bandwidth to try this, Omakub looks to be a terrific transformation tool that delivers a lot of value with little effort.

Omakub’s software choices and aesthetic changes won’t be universally adored, but that is sort of the point: a one-command opinionated time-saving jump-start for newbies switching to Linux to focus on a specific type of web dev.

Thanks Makhate