Omakub Documentation

repository·master·Indexed 27 days ago

https://github.com/basecamp/omakub

An opinionated framework that transforms a fresh Ubuntu installation into a fully-configured web development environment via a single command. It includes tools for managing system themes, installing programming fonts, configuring development editors like Cursor, Zed, and RubyMine, and installing optional applications. Omakub provides an interactive configuration menu via omakub-sub to handle updates, migrations, and uninstallation.

Tokens
1.5K
Snippets
0
Records
12
Agent score
93%

What's inside Omakub

  1. Install Omakub on a fresh Ubuntu installation

    master

    Omakub transforms a fresh Ubuntu installation into a fully-configured web development system using a single command. This process installs and configures essential modern command-line tools and provides an opinionated, pre-configured environment.

    To install, run the single-line installation command provided by the Omakub project (refer to the official website for the current command).

  2. Explore Omakub extensions and customizations

    master
    Omakub is designed to be opinionated, but you can adjust, replace, or enrich your development environment using community-provided extensions and add-ons. You can browse available customizations in the EXTENSIONS.md file within the repository.
  3. Install a development editor

    master

    You can install various development editors as part of the Omakub setup process. When prompted by the interactive menu, you can choose from the following editors:

    • Cursor: AI Code Editor
    • Doom Emacs: Emacs framework with curated list of packages
    • RubyMine: IntelliJ's commercial Ruby editor
    • Windsurf: AI Code Editor
    • Zed: Fast all-purpose editor

    Selecting an editor will trigger the corresponding installation script located in $OMAKUB_PATH/install/desktop/optional/.

  4. Manage system themes with omakub-sub theme

    master

    The theme subcommand allows you to switch the visual theme across multiple applications including Alacritty, Zellij, Neovim, btop, GNOME, Tophat, and VS Code.

    When a theme is selected, the script performs the following actions:

    • Alacritty: Copies the theme configuration to ~/.config/alacritty/theme.toml.
    • Zellij: Copies the theme to ~/.config/zellij/themes/$THEME.kdl and updates ~/.config/zellij/config.kdl to use the new theme.
    • Neovim: If ~/.config/nvim exists, it copies the theme configuration to ~/.config/nvim/lua/plugins/theme.lua.
    • btop: Copies the theme to ~/.config/btop/themes/$THEME.theme and updates ~/.config/btop/btop.conf.
    • System/Other: Sources theme-specific scripts for GNOME, Tophat, and VS Code.

    Available Themes:

    • Tokyo Night
    • Catppuccin
    • Nord
    • Everforest
    • Gruvbox
    • Kanagawa
    • Ristretto
    • Rose Pine
    • Matte Black
    • Osaka Jade
  5. Install optional applications via omakub-sub

    master

    The omakub-sub subcommand provides an interactive menu to install specific optional applications or development environments. When run, it presents a list of choices using gum.

    Available categories and applications include:

    • Development: Dev Editor, Dev Language, Dev Database
    • Productivity/Tools: 1password, Audacity, ASDControl, Brave, Dropbox, Discord, Gimp, Geekbench, Mainline Kernels, Ollama, Tailscale, VirtualBox, Zoom, Web Apps
    • Entertainment/Gaming: Minecraft, OBS Studio, Retroarch, Spotify, Steam
    • Utilities: Mesh VPN (Tailscale)

    Options:

    • > All: Re-runs the main Omakub installer located at $OMAKUB_PATH/install.
    • << Back: Cancels the installation process.

    Note: This script requires the $OMAKUB_PATH environment variable to be set and uses the gum CLI tool for the interactive interface.

  6. Access the Omakub interactive configuration menu

    master

    You can access the Omakub interactive configuration menu to manage themes, fonts, updates, and installations. If no argument is provided, the script launches an interactive selection menu using gum.

    Available options in the interactive menu:

    • Theme
    • Font
    • Update
    • Install
    • Uninstall
    • Manual
    • Quit
  7. Configure terminal font size via font-size.sh

    master

    The font-size.sh subcommand provides an interactive interface to change the terminal font size in Alacritty. It presents a selection menu of sizes ranging from 7 to 14.

    When a numeric size is selected, the script updates the size value in ~/.config/alacritty/font-size.toml. If the user selects << Back, the script returns to the previous font configuration menu (font.sh).

  8. Migrate Omakub configurations

    master
    The migrate.sh subcommand updates your local Omakub installation and applies any pending configuration migrations. It performs a git pull to fetch the latest changes and then iterates through the files in the migrations/ directory, executing any script whose timestamp is newer than the last recorded update.
  9. Manage and install programming fonts

    master

    The font.sh subcommand allows you to select and install specific Nerd Font programming fonts. When a font is selected, the script downloads the font files, installs them to ~/.local/share/fonts, updates the font cache, and automatically configures the following applications:

    • GNOME Desktop: Sets the monospace font name.
    • Alacritty: Updates the font configuration in ~/.config/alacritty/font.toml.
    • VS Code: Updates the editor.fontFamily setting in ~/.config/Code/User/settings.json.

    Available font options via the interactive menu:

    • Cascadia Mono (installs CaskaydiaMono Nerd Font)
    • Fira Mono (installs FiraMono Nerd Font)
    • JetBrains Mono (installs JetBrainsMono Nerd Font)
    • Meslo (installs MesloLGS Nerd Font)

    If you select > Change size, the script redirects to the font-size.sh subcommand.

  10. Uninstall Omakub from the system

    master
    To remove Omakub from your system, run the uninstall subcommand. This process will prompt you for confirmation via a UI dialog. Once confirmed, the uninstaller script will execute and clean up the Omakub installation. After completion, the environment is reloaded to reflect the changes.
  11. Update manually-managed applications via Omakub subcommand

    master

    You can manually trigger updates for specific Omakub components and applications using the omakub-sub/update.sh subcommand. This provides an interactive menu to select which application or service you wish to update or migrate.

    Available update targets include:

    • Omakub: Updates the Omakub installation itself and runs any necessary migrations.
    • Ollama: Updates the local LLM runner.
    • LazyGit: Updates the Git TUI.
    • LazyDocker: Updates the Docker TUI.
    • Neovim: Updates the terminal text editor.
    • Zellij: Updates the terminal multiplexer.