Skip to content

Conversation

Kasui92
Copy link
Contributor

@Kasui92 Kasui92 commented Sep 3, 2025

Note

This PR is now mostly complete.
The migration process between versions, however, cannot be tested properly until it’s available on an Omakub branch.

In the meantime, I’d still appreciate any feedback from those willing to try out fresh installations or test the new features, given the amount of work involved in the refactoring.

Although Omakub is close to completion, I believe it could benefit from a fresh approach, inspired by the work carried out with Omarchy. The structure, themes, and menus developed there not only provide more than what comes by default with Omakub and Ubuntu, but also make it easier to contribute to the maintenance and improvement of the ecosystem. In addition, they simplify the creation of themes and customizations, which are currently harder to implement in Omakub.

In my view, these changes would be an improvement for everyone who still relies on Omakub in their daily workflows.

Table of Content


Installation

For anyone interested in trying this out—and possibly contributing or sharing feedback—I’ve prepared an installation script.

Important

This is not a migration. Do not use it on machines already running Omakub. It is intended only for fresh setups or test environments (e.g. custom-built VMs).

Note

Installation on systems using LVM with disk encryption is not supported. See Known Issues.

To install Omakub as proposed in this PR, simply run:

curl -fsSL https://omakasui.org/omakub | bash

Like Omakub, the installation process takes quite a long time. You might want to grab a coffee while it runs. ☕

Hotkeys

The following hotkeys have been added:

Hotkey Action
Super + Space App launcher (Wofi)
Super + Alt + Space Omakub Menu (Wofi)
Super + F File Manager (Nautilus)
Super + Ctrl + Space Next Background
Super + Shift + Ctrl + Space Omakub Theme Menu (Wofi)

Unified Menu

Among the features imported from Omarchy, the one that stands out the most is the Unified Menu.

While gum does a great job of providing a simple TUI with just a few commands, I believe a dedicated, more visually polished tool can serve as the real control center for Omakub.

Taking inspiration from Omarchy, I rebuilt the menu entirely using what’s available in Omakub. The only significant change is the use of wofi instead of walker. I’d rather wait for version 1.0.0 (which currently requires compiling from source) to avoid introducing a heavy migration. In the meantime, wofi is already available in the Ubuntu repositories.

Screencast.from.2025-09-04.09-50-22.webm

App Launcher

With the introduction of wofi, we also took the opportunity to migrate the application launcher from ULauncher to it.
This provides a single tool for managing on-screen launchers, improves compatibility, and ensures consistent styling.

Themes

In addition to the default themes, two new ones have been introduced: osaka-jade and catppuccin-latte.

Osaka Jade

Screenshot from 2025-09-04 09-55-34

Catppuccin Latte

Screenshot from 2025-09-04 09-56-05

Extra Themes

Support for installing additional themes has also been added, following the same rules already in place for Omarchy:

You can install any of these themes by copying the GitHub URL and selecting Install > Style > Theme via the Omakub menu (Super + Alt + Space). If you want to remove it again, just use Remove > Style > Theme and select it there.

Obviously, you can't use Omarchy themes. You'll need to create new ones, again following similar rules to Omarchy's.

If you want to distribute your theme so others can use it, you need to put it on a public git server, like GitHub. Then people can install it using Install > Theme in the Omakub menu using that URL. It's recommended that you follow the naming convention of omakub-[themename]-theme, as the theme will show correctly as just [themename] in the theme selection menu after installation.

Creating new themes no longer requires separate style installation scripts.
All that’s needed now are the appropriate .theme files.

Some files are optional (for example: VSCode, Light/Dark, Chromium, and Cursor).

Here’s an overview of the files that should be included:

 \backgrounds
alacritty.toml
btop.theme
gnome.theme
icons.theme
neovim.lua
tophat.theme
vscode.theme
wofi.css
zellij.kdl

I’ve also created some test themes as examples:

Synthwave '84

Screenshot from 2025-09-04 09-54-09

Rose Pine (Dark)

Screenshot from 2025-09-05 17-14-29

Boot / Login Screen

These components have also been updated, following the approach used in Omarchy. Full-disk encryption is not included, but GDM3 has been retained for consistency and ease of use.

Logos, positioning, and color choices were made at my discretion—and with limited expertise in this area. If anyone with more design experience is willing to help refine them, contributions would be very welcome.

Default Apps

Following the approach taken with Omarchy and the Omakase Doctrine, I’ve decided to remove the step of selecting applications during installation. Instead, Omakub will come preconfigured with the default apps from both Omarchy and Omakub.

To make customization easier, I plan to add the option to uninstall multiple apps or web apps at once. This way, new users will get a ready-to-use, functional system out of the box, while those who prefer can later tailor it by removing what they don’t need.

These are the default apps

  • Chromium (instead of Google Chrome)
  • LibreOffice
  • Obsidian
  • Signal
  • Typora
  • VLC
  • Xournalpp
  • 1password
  • Spotify

What's Changed

Added

  • Restructured project with applications/, bin/, default/, config/, themes/ directories replacing old scattered structure
  • Chromium browser installer replacing Chrome
  • VSCode theme support with .theme configuration files
  • Wofi launcher with styling for all themes, used for Apps, Themes and Unified Menu
  • New themes: osaka-jade and catppuccin-latte
  • Add custom GDM3 login and Plymouth boot splash
  • Add firewall config
  • New binary utilities, most imported from Omarchy with the addition of add/remove apps 2 folder, increase/decrease terminal font size and install/remove apps from applications/
  • Add Omakub Logo
  • Add Starhip

Changed

  • Theme system now uses declarative gnome.theme, icons.theme, tophat.theme and vscode.theme files instead of shell scripts
  • Moved all app installers to applications/install/ and removers to applications/remove/
  • Relocated packaging scripts from install/terminal and install/desktop to install/packaging/ and installation configs into install/config
  • Bash configuration split into more modular files (aliases, envs, functions)
  • App installation/uninstallation now suggests from available list
  • Zellij terminal multiplexer use new styles specs
  • .desktop file now syncs with Omakub defaults
  • Improve Alacritty configs
  • Improve installation flow

Fixed

  • Highlight on Zellij
  • More robust theme/configs management (with symslinks)
  • More robust migrations management
  • Now it's easier to understand where the installation stops

Removed

  • 12 legacy migration files and old bin/omakub-sub/ structure
  • Windows installer and Ulauncher integration
  • Shell-based theme scripts for VSCode and Gnome
  • User choices in installation
  • Version file
  • About and Neovim .desktop files, now integrated in Unified Menu or in packages

Fixes and Closes

Known Issues

x11 and wofi

Similar to ULauncher, wofi doesn’t work properly when the session is running on X11. This mainly affects users with NVIDIA graphics cards, where the system is usually forced to use Wayland (through a script in /install/login/gdm3.sh).

I’m looking into a way to enforce Wayland or to find a compatible alternative, but I’d rather take the time to properly understand the options.

In the meantime, if you run into issues with wofi on your first login, just log out and, on the next attempt, select Ubuntu (Wayland) from the bottom-right corner. After that, the system will always remember and use this option.

Omakub Logo

I generated them using python3 scripts and my limited design knowledge, so they may not be the best and may have some irregularities. I'll defer to those with more experience and skill than me!

Boot and LVM

Apparently, if the disk is encrypted using LVM, the boot process hangs. This happens because LVM expects the password to unlock the disk before proceeding with the login.

A solution would be to either prevent installation when LVM is detected, or block the boot process and present a password entry form.

Roadmap

  • Test Installation on Ubuntu 24.04
  • Test installation on Ubuntu 25.04
  • Create Migrations
  • Test Migration on Ubuntu 24.04
  • Test Migration on Ubuntu 25.04

@Kasui92
Copy link
Contributor Author

Kasui92 commented Sep 4, 2025

Updated PR description

@Adriein
Copy link

Adriein commented Sep 5, 2025

wonderful, such an amazing work hope this could be merged someday 😄

@Kasui92
Copy link
Contributor Author

Kasui92 commented Sep 6, 2025

At this point, I’d say the main implementations are complete, so I can now focus on the migrations. 😄

In the meantime, if anyone wants to try installing on a fresh Ubuntu setup, that would be very helpful—along with testing the available features. Any feedback or issues will be useful for fine-tuning the work. 🙏🏻

wonderful, such an amazing work hope this could be merged someday 😄

I hope so! 👀

@Kasui92 Kasui92 marked this pull request as ready for review September 9, 2025 09:26
@Kasui92
Copy link
Contributor Author

Kasui92 commented Sep 9, 2025

I tried this on a fresh 24.04.3, only one hotkey worked, the background switcher. Neovim did not start. So I could not really test this out.

However what you are proposing in this PR is promising, hope you sort out what is not working.

Ultimately, I think it's due to an x11 session and NVIDIA card issue. If you try logging out and selecting Ubuntu (Wayland), it should work fine.

@Kasui92
Copy link
Contributor Author

Kasui92 commented Sep 9, 2025

Updated PR description

@Kasui92
Copy link
Contributor Author

Kasui92 commented Sep 10, 2025

Updated to Omarchy v2.1.1

@dhh
Copy link
Member

dhh commented Sep 11, 2025

This is a big body of work! But it's too much of a departure from the Omakub that I already consider to be in a great state. Feel free to do a fork and add this to a spin-off, though. But I can't take all this for Omarchy as-is. Thanks again for suggesting anyway!

@dhh dhh closed this Sep 11, 2025
@Pedro-Appel
Copy link

This is a big body of work! But it's too much of a departure from the Omakub that I already consider to be in a great state. Feel free to do a fork and add this to a spin-off, though. But I can't take all this for Omarchy as-is. Thanks again for suggesting anyway!

I can see which project is the favorite child 🙄

@Kasui92 Kasui92 deleted the omakub/refactor branch September 12, 2025 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants