The Omakub Manual An Opinionated Ubuntu Setup for Web Developers DHH

  • Move The Basics
    The Basics
  • Move Getting Started
    Open Getting Started

    Getting Started

    All it takes to run Omakub is these two steps:

    1. Install a fresh copy of Ubuntu 24.04+ on your computer.
    2. Run wget -qO- https://omakub.org/install | bash in a terminal (start one with Ctrl+alt+T).

    You should be able to complete the whole process in less than 30 minutes, depending on your internet connection. (Note that Omakub has only been tested on a fresh install of Ubuntu 24.04. If you already have an installation, use a different version, or even a different distribution, you'll be on your own.)

    It's highly recommended that you encrypt the drive when you're installing Ubuntu. When you see this screen:

    select-encryption-1.png

    Select "Advanced Options", then:

    select-encryption-2.png

    Remember that to install Ubuntu on your computer, you'll need a USB thumb drive to serve as th

    Getting Started 228 words
  • Move Navigation
    Open Navigation

    Navigation

    Omakub is designed to be used with the keyboard. There are a lot of hotkeys to learn, though, so don't worry if you have to reach for the mouse a few times in the beginning. But by the end of your training, you'll be flying through workspaces, tiling windows, and starting apps exclusively with the keyboard. It's really fast and really fun.

    Note: You'll see a lot of references to the Super key. That's the general name for the Windows key or the Command key. Some keyboards have the Windows logo on it, some have CMD, some have the Apple command sign. It's all the same.

    Workspaces

    There are six preconfigured workspaces. On a small laptop screen, you're recommended to keep only one application, or two at the most, visible on each workspace. Then you navigate between them using the Super + 1/2/3/4/5/6 hotkeys. Since Omakub has no animations, the switching is instant.

    You should get in the habit of leaving the same application on the same workspace, so you can build up muscle memor

    Navigation 535 words
  • Move Tiling
    Open Tiling

    Tiling

    Gnome comes with a simple two-way tiling setup that works great for small laptop screens that can't fit more than a pair of apps side by side anyway. While on an active app, press Super + Left Arrow to fill up the left half of the screen, and Super + Right Arrow to fill up the right. You can use Super + Up Arrow to fill the entire desktop (without hiding the top panel showing the clock).

    Here's an example of aligning a browser and a terminal side by side. Depending on the aspect ratio of your laptop, this can definitely work too, if you don't like the one-app-per-workspace regime:

    two-way-tiling.png

    Advanced tiling with Tactile

    On bigger screens, you'll likely want more than just two applications side by side. That's where Tactile comes in. It splits the screen into 6 different regions by default. A center with two large slots, and two wings, each with two smaller slots. You can place any window in any slot or span i

    Tiling 327 words
  • Move Themes
    Open Themes

    Themes

    Omakub is dressed in the Tokyo Night theme by default. It's a beautiful, moody blue'n'purple hued theme that goes great with some 80s synth wave music for those IN THE ZONE programming sessions. It's my favorite.

    But sometimes you just need to shake things up a little. Maybe the weather is misty and grey, and it just doesn't feel much like a Tokyo Night kinda day. I recommend Everforest in that instance. Soothing, misty pale greens. Yep, that'll do the trick!

    Or how about some light mode for a summery change? Rose Pine might just hit the spot. Imagine the breeze. The wine with some ice cubes. You could do it.

    In total, there are seven carefully curated themes available in Omakub. Here's a look at all of them:

    tokyo-night.png Tokyo Night

    catppuccin.png Catppuccin

    nord.png Nord

    ![everforest.png](https://manua

    Themes 223 words
  • Move Fonts
    Open Fonts

    Fonts

    Omakub uses the beautiful Cascadia Mono font by default, but in a version that's been modified to include the Nerd Font symbols, which are used in the terminal, Neovim, and other TUIs (Terminal User Interfaces) to provide iconography.

    But we also include three other options that can easily be configured for both terminal, Neovim, and even VSCode. Run the Omakub application, pick Font, and you'll be able to choose between Fira Mono, JetBrains Mono, and Meslo.

    If none of these options suit your eye, checkout the full Nerd Font selection. There's also GitHub's new Monaspace font and, if you're a high roller, the $75 Berkeley Mono.

    You can change the size of the font in the Omakub application under Font/Change size. This just affects the terminal and all the applications that run in it. VSCode, and other ap

    Fonts 144 words
  • Move Clipboard
    Open Clipboard

    Clipboard

    Copy/paste is surprisingly complicated in Linux, if you're used to something like the Mac where everything uses the same clipboard and the same hotkeys everywhere. The complexity mainly comes from the fact that Ctrl + c/v does not work in the Linux terminal, since these keys are used for other purposes by various terminal applications. (And if you dive into Neovim, there's further complications!)

    Anyway, for starters, know that in the terminal, you copy with Shift + Ctrl + C and paste with Shift + Ctrl + V. If you forget, you'll get a control character that you first have to delete before you can paste. It'll take a while to muscle memorize this change if you're not used to it!

    To make matters worse, Zellij requires that you hold down Shift when you select a line in the terminal that you wish to copy to the system clipboard. And again, you have to press Shift + Ctrl + C to actually copy. And this mouse selection is even a bit finicky in terms of positioning. But you'll get the h

    Clipboard 190 words
  • Move Filling out PDFs
    Open Filling out PDFs

    Filling out PDFs

    Ubuntu ships with a nice, basic PDF viewer called Document Viewer. This is the program that'll open any PDFs you just double click on.

    But you can only use Document Viewer to fill out PDFs that have been setup as forms. If you need to fill out PDFs that haven't, or you need to sign a PDF, you'll have to right-click the file, select Open With..., and pick Xournal++.

    Xournal++ will let you write anywhere on a PDF using the T tool. If you need to sign a document, you'll need an image of your signature, and you can use the Image tool to insert this signature and resize it.

    When you're done filling out the PDF, use File > Export as PDF to save the final version.

    Filling out PDFs 132 words
  • Move Hotkeys
    Open Hotkeys

    Hotkeys

    The joy of Linux flows from the keyboard. Training yourself to navigate and command as much of the operating system through hotkeys is the path to mastery of your machine.

    Navigating

    Hotkey Function
    Super + Space Type app to launch
    Super + A See all apps
    Super + W Close app
    Super + 1/2/3/4 Jump to workspace
    Shift + Super + 1/2/3/4 Move app to workspace
    Alt + 1/2/3/.. Jump to dock app
    Ctrl + 1/2/3/.. Jump to browser tab

    Tiling

    Hotkey Function
    F11 Go full screen
    Shift + F11 Go full screen w/ title bar
    Super + Left arrow Fill left half
    Super + Right arrow Fill r
    Hotkeys 752 words
  • Move The Applications
    Open The Applications

    The Applications

    The Applications
  • Move Terminal
    Open Terminal

    Terminal

    Omakub's default terminal is called Alacritty. It's GPU-accelerated, so it's really fast, and it's highly configurable. Inside this terminal, we run Zellij, which is what's called a "terminal multiplexer". That's a fancy word for a tool that gives you panes, tabs, and persistent sessions inside your terminal.

    zellij.png

    Alacritty

    You can change the font and size using the Omakub application or by editing ~/.config/alacritty/alacritty.toml. But leave the referenced imports in place, if you want Omakub to be able to theme Alacritty together with the rest of the system.

    If you want to further tweak the terminal, see the Alacritty configuration documentation.

    Note: Alacritty is configured without Gnome decoration, that is, without the normal system title bar. That makes it look a lot better, especially when color-coordinated with the beautiful themes in O

    Terminal 513 words
  • Move Neovim
    Open Neovim

    Neovim

    Neovim is a modern implementation of the vi editor created by Bill Joy all the way back in 1976. It's a modal editor where insert mode and command mode are separated, and it's a bit of a superpower once you learn even just a subset of the incredibly deep key command set. But it's also quite the learning curve!

    If you're totally new to vim-style editing, I recommend you checkout ThePrimeagen's Vim As Your Editor series on YouTube. That'll teach you the basics. Just know that unlike more similar mainstream editors, it's going to take you longer to get basic proficiency with vim. But once you do, the payoff is also larger.

    Now Neovim is basically infinitely configurable. If you really want to go nuts, you can create your own Neovim configuration from scratch. There's a great course from [Typecraft on setting up Neovim from scratch](http

    Neovim 511 words
  • Move Shell Tools
    Open Shell Tools

    Shell Tools

    fzf

    fzf gives you fuzzy finding of files via the ff alias. Go to any directory, type ff, and you'll be able to fuzzy find your way to any file in that tree, while seeing a preview of the files you're narrowing down on the right-hand side.

    You can use Ctrl + R to use fzf to fuzzy find through your command history.

    You can use **<tab> to fuzzy find file arguments to any command, like n **<tab>, to select files to open in Neovim. When you're in that mode, press tab in front of every file you want to add to the set of files to open.

    This tool is also used by Neovim when you type Space Space.

    fzf.png

    Zoxide

    Zoxide is a replacement for cd. It remembers the directories you've been in, so you can more easily jump to them next time. Say you do cd ~/.local/share/omakub once. Next time, you can just do cd omakub, and Zoxide will take you

    Shell Tools 314 words
  • Move TUIs
    Open TUIs

    TUIs

    Lazygit

    Lazygit is a delightful alternative to something like the GitHub Desktop application, and it runs inside the terminal.

    You can run it directly, by going to any directory managed by git and running lzg. Or you can run it inside Neovim where it can be started with Space G G.

    You hop between the different panes using Tab. In the Files pane, you select files for staging using Space, and then you can create a new commit using c. You can see all the commands available using ?.

    lazygit.png

    Lazydocker

    Lazydocker is made in the same spirit like Lazygit, and also gives you a terminal interface for managing your containers and images.

    You can start it yourself in the terminal using lzd or you can use the Docker application that Omakub creates in the dock for it.

    You stop a container using s or start/restart it usi

    TUIs 318 words
  • Move GUIs
    Open GUIs

    GUIs

    Obsidian

    Obsidian is a free and highly extensible note taking application that uses simple Markdown files for storage.

    It offers a commercial add-on for syncing with mobile apps on iOS and Android, but if you don't need that, it's free for personal use (and $50/year for commercial use).

    obsidian.png

    Pinta

    Pinta is a basic image editing tool that's great for cropping, resizing, and other basic manipulations. Just don't expect a Photoshop alternative. But it's still got a Magic Wand and layers!

    pinta.png

    LocalSend

    LocalSend lets you send files to other devices on the same network running the app, like Apple's AirDrop. It's cross-platform, though, so you can send files to and from Windows, macOS, Android, iOS, and of course Li

    GUIs 364 words
  • Move Commercial GUIs
    Open Commercial GUIs

    Commercial GUIs

    Omakub is mostly focused on providing free, open source software, but it's not religious about it. Sometimes the best solution is a commercial offering, and that's just fine. Here are some of the options we provide an easy installation for.

    1Password

    Keeping your passwords in a password manager is a best practice. Doubly so if you're working with a team. And 1password is a great solution, which also comes with a command line tool for integrating key lookups in scripts.

    Dropbox

    Dropbox is a great way to sync files between machines while keeping a backup in the cloud.

    Zoom

    Zoom is the most popular video chat system used in the US. Great connections across the world. And 40-minute meetings can be held without a paying account.

    Spotify

    Spotify is the world's most popular streaming music service. And the Linux application provides everything you'd expect, includ

    Commercial GUIs 261 words
  • Move Development Tools
    Open Development Tools

    Development Tools

    Mise

    Mise lets you install and run multiple versions of a programming language on the same machine. It's like rbenv or rvm for Ruby or virtualenv for Python, but it works for a bunch of different environments.

    To install, say, Ruby 3.3, you'd run mise install ruby@3.3. Or, if your project has a .ruby-version file, you can just run mise i in the root of that project.

    Mise works for Ruby, Python, Go, Java, Elixir, Node.js.

    If you need to install PHP or Rust, you can do so via the Omakub command, which also runs as a front-end for mise, via the Install > Dev Language menu.

    GitHub CLI

    The GitHub CLI let's you authenticate with your GitHub account and clone private repositories using it. To authenticate, run gh auth login. Then you can checkout private repositories using gh repo clone org/repo.

    You can also perform a bunch of other GitHub operations using this command. Just run gh to see everything that'

    Development Tools 305 words
  • Move Web Apps
    Open Web Apps

    Web Apps

    These web apps live in ~/.local/share/applications. They're just .desktop text files. You can make your own or remove the default ones by cloning or deleting these files.

    WhatsApp

    WhatsApp is one of the most popular messaging services in the world, and the web version is a great option for Linux.

    HEY

    HEY is an email and calendar service that serves as a great alternative to people tired of Gmail, Outlook, or Apple Mail. It's made by 37signals where Omakub originated.

    Basecamp

    Basecamp is a project management service that helps small teams move faster and make more progress. Instead of patching together a mishmash of Trello, Slack, Asana, Notion, or whatever, you can have it all in one place with Basecamp. It's made by 37signals where Omakub originated.

    Web Apps 133 words
  • Move The Rest
    The Rest
  • Move Updating
    Open Updating

    Updating

    Omakub itself can be updated using the Omakub application. Just start it up, select Update, and pick Omakub. That'll pull the latest files from git, and run any migrations that might be needed to bring the system up to the most current state.

    omakub-update.png

    From the Update menu, you can also update the applications that have to be installed manually, and thus aren't updated automatically through Ubuntu's own package managing system. By running the update, you'll simply download the latest version, and overwrite whatever version you have installed.

    Updating 90 words
  • Move Version 1.1.0
    Open Version 1.1.0

    Version 1.1.0

    This is a massive upgrade to Omakub, and a huge credit to the substantial community that has already gathered around this project. It turns out that there are a lot of people who just needed a good starting point and a small nudge to checkout Linux, and who've been loving what they've found.

    Together, we've gathered hundreds of people in the invite-only Omakub Campfire to push the project forward, and dozens of people have patches in this release to make everything better. Love to see it!

    Updating

    If you already have Omakub v1.0.0 installed, you can upgrade to the latest by first starting the omakub command, picking Update, then running source $OMAKUB_PATH/migrations/1718359027.sh (going forward these migrations will run automatically when running Update).

    Changes

    Here are the changes:

    Rails, PHP, Python, Go, Elixir, Rust, Java

    Omakub now has a vastly expanded setup of programming languages out of the box. When you run the installer for the first time, you

    Version 1.1.0 724 words