Skip to content

Conversation

dhh
Copy link
Member

@dhh dhh commented Sep 10, 2025

What changed?

BETA ISO: https://iso.omarchy.org/omarchy-3.0.0-beta.iso (this is set to use dev branch)

Omarchy 3.0 is a major upgrade for new installations and a wonderful level-up for existing users. The new ISO doesn't require internet at all, and you can install it in less than two minutes on the fastest systems.

You can now also install Omarchy on most pre-M MacBooks with support for keyboards, wifi, and the T1 and T2 security chips. This is a decade-long hardware portfolio that we're trying to cover as well as we can out of the box. There may still be issues and trade-offs, so only install this on hardware that you're okay experimenting with!

Existing installations can upgrade as per-normal using Update > Omarchy. New installations should download the fresh, all-inclusive ISO before beginning.

New super-fast installation ISO

MacBook Compatibility

  • Add support for T2 macs with custom kernel and drivers by @ryanrhughes + @nunix
  • Add compatibility with T1 MacBook keyboards so they work on the decryption screen by @joelgaff
  • Add compatibility with Broadcom BCM4360 MacBooks (2013-2015) to get working wifi by @ryanrhughes

New features

  • Add screen recording indicator to the top bar when recording (clicking will stop) by @eifr + @dhh
  • Add option to sign into Google account for settings sync in Chromium via Install > Service > Chromium Account by @hjanuschka
  • Add omarchy-launch-or-focus to either launch or focus an app and apply it to several binding defaults by @v-oleg
  • Add default ~/Work directory (with mise configuration for ./bin PATH to avoid security issue) by @ryanrhughes
  • Add option to view PKGBUILD before installing AUR packages on alt+b under Install > AUR by @rajayonin
  • Add support for zoom meeting links in the zoom web app by @ATeal
  • Add support for changing terminal and editor system-wide in ~/.config/uwsm/default by @eifr + @dhh
  • Add Install > Terminal for picking between Alacritty, Ghostty, Kitty as your default terminal by @dhh
  • Add 1password web extension to Chromium + Brave on new installs by @hjanuschka
  • Add Zig language server when installing from Install > Development by @DoKoB0512

New hotkeys

  • Add Alt + Shift + L to copy current URL from Chromium and the frameless webapps by @jankeesvw
  • Add Ctrl + Super + S (or Trigger > Share) and for using LocalSend to share clipboard/file/folder quickly by @guilhermetk
  • Add Super + Backspace to toggle transparency on/off for any window by @dhh
  • Add Super + Shift + B to start browser in private mode by @kodnin
  • Add Super + Ctrl + Tab to go to the former workspace by @zaborowskimichal
  • Add Alt + F11 to go full width on a window by @c4software
  • Add calculator key binding for default calculator by @SamrudhNelli

Aesthetics

  • Add blurred theme background to the lock screen by @dhh
  • Add theme switching for VS Code by @OmarSkalli
  • Add theme switching for eza by @sgruendel
  • Add browser theme switching based on upcoming --refresh-platform-policy flag shipping in Chromium 141 and next Brave by @hjanuschka
  • Add ~/.config/hypr/looknfeel.conf to new installations to suggest ways to change the Hyprland aesthetics by @dhh
  • Add Style > Hyprland to tweak Hyprland look'n'feel from the menu by @med502
  • Add kitty styles to all default themes by @vyrx-dev

Bug fixes

  • Fix waybar flashing or disappearing after update-available icon kicked off an update by @dhh
  • Fix setting gnome dark mode and themes on first install by @dhh
  • Fix audio output switch should only move between available outputs by @elpritchos
  • Fix config error warning from Hyprland 0.51 yanking workspace_swipe by @dhh
  • Fix incompatibility with freetype2 update and plymouth by @ryanrhughes
  • Fix that default hyprsunset config shouldn't turn off until 7am by default by @tmkn
  • Fix remove --freeze from hyprshot again as it was unstable by @dhh
  • Fix cursor was visible during screensaver by @alexperreault
  • Fix updating time + tz should give you feedback while its happening by @dhh
  • Fix fcitx5 issue with other languages in Obsidian by running it with --wayland-ime by @ashutoshbw
  • Fix screenrecording on Intel should now use accelerated graphics by @eifr
  • Fix gum should be available to the install script as soon as possible so we can offer retry on failures by @dhh
  • Fix screensaver would persists in workspace after using other workspaces by @manuel1618
  • Fix power profile not opening after folks had installed Python via mise by @dhh
  • Fix the temporary patch to force Ruby to build with gcc14 by @dhh

Visuals

New super fast ISO installer

screenshot-2025-09-15_20-04-42 screenshot-2025-09-15_20-05-11 image

Lock screen now has blurred out background image

20250915_103532

Ghostty as a fully-themed terminal option

image

Live VS Code theming

screenshot-2025-09-15_19-31-52

Themes need to include vscode.json, like this, to enable the live themeing.

Screen recording dot in the top bar

image

Clicking the dot will stop the recording too.

View PGKBUILD before installing AUR package

image

elpritchos and others added 12 commits September 10, 2025 08:51
Filter audio sinks to include only available ports.
* init

* remove comment
format

* add pulse animation

* change to signals

* Move file to an internal location, match signal with what's being sent

* Need to sleep a second to ensure that the recording has either started or stopped before we render config

* Put it in a more prominent place

* Use OMARCHY_PATH

* Sharpen icons and add on-click to stop

* Drop animation but reserve space

* Lean entirely on waybar indicator rather than notification when starting

* Use an explaining function instead of comments

* Give time to ensure the process is dead before updating the indicator

* No longer needed

* Don't need to repeat the on-click

* Don't need a full second

* Naming

* SIRGTMIN shouldn't be here

* Don't need any of this that isn't seen or used

* Explain the sleep

* Mirror start/stop functions

* Go all-in on explaining functions

* Inline audio toggle

* Better just to move the clock rather than have it be permanently offset

* Fix all parameters and name them

* Add migration

* There is now a later omarchy-refresh-waybar offer

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>
This had problems and like this we also won't have an ugly flash
* Set fonts for plymouth to solve freetype2 issue

* Fix typo in plymouth theme update message

Clarified the reason for the plymouth theme update.

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>
* Required -y to run

* Update omarchy-refresh-plymouth to account for limine changes

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>
There's now more advanced features we have to look into.
@brink-lab

This comment was marked as resolved.

@elpritchos

This comment was marked as resolved.

c4software and others added 16 commits September 12, 2025 15:22
* Change lazyvim and asdcontrol to packages

* Remove asdcontrol and lazyvim

* Add lazyvim setup

* Don't trigger rebuild. We already rebuild later.

* Add new pacman.conf after install

* Update config to keep mirrors in mirrorlist

* Add lazyvim setup back

* Make webapp installer work with local images

* Update tuis to work offline

* Update pacman config situation

* Extract the reboot segment into its own file

* Explainer

* Can't return in executed scripts

* Add post-install

* Extract the reboot segment into its own file

* Fix rebase doubling up

* Add run wrapper function for feedback

* Redirect output to log

* Move gnome updates to first-run

* Add theme to first-run

* Updat to try to get logging working

* Create the file and give permissions

* Test gsettings

* Revert "Test gsettings"

This reverts commit 49c27d3.

* Stop logging

* Add time outputs to end of logs

* Rearrange some scripts to cleanup

* Cleanup

* Add timing to run script

* Don't enable multilib for offline

* Add prebuild ruby

* Try spinner setup

* Prevent exit 1 due to grep not matching

* Update limine config to work for USB installs as well

* Add offline install to env report

* Fix grep pipefailure

* Update logs exports to work with subshells

* Fix backward logic

* Attempt to fix logging again

* Export chrootable for subshells

* Clean up outputs

* Move chrootable up

* Source chroot instead

* Changes for logging

* Center up reboot notice

* Update fixed paths

* Update trap

* Revert reverting precompiled ruby due to issues

* Revert "Revert reverting precompiled ruby due to issues"

This reverts commit c159e7d.

* Remove junk to cleanup fixed paths now that we have relative

* Add git branch check to transition beta to main

* Log output

* Add time output on summary screen

* We don't need sudo here

* Add ansi helpers to make code cleaner

* Add dry-run helpers for testing

* Split out some common / reused items

* Add log output function

* Use gum log to output cleaner

* Cleanup

* Update trap with options

* Fix reboot and pad it

* Cleanup

* Add dry-run for testing

* Use default $PADDING for gum

* More styles

* Styles and really exit

* Update to new format

* Add ansi vars

* Update log output to prevent flickering

* Fix logo exporting

* Trap updates

* Add exit handler

* Prevent double-trapping

* Update traps

* Consolidate logic

* Update reboot to work in chroot

* Eliminate double-guard

* Attempt to speed up by removing mkinitcpio hooks

* Add multilib for nvidia users

* Add back wireless-regdom

* Remove dryrun items

* Fix to be offline

* Set fonts for plymouth to solve freetype2 issue

* Required -y to run

* Update omarchy-refresh-plymouth to account for limine changes

* Update omarchy-refresh-plymouth to account for limine changes (#1575)

* Required -y to run

* Update omarchy-refresh-plymouth to account for limine changes

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>

* Update modes

* Remove direct executions of .sh files

* Add variable safety

* Add omarchy-upload-log

* Add broadcome fix for MBP

* Prevent printing on screen when rebooting

* Make packages list universal

* Rename

* Remove retry message

* Fix packages target

* Add system info to upload

* Update variable name

* Remove unnecessary executable statuses

* Remove gesture default

* Add bcm4360 fix to install

* Add useful debug info

* Add OMARCHY_PATH

* Only look locally offline

* Rename / rearrange files

* Export so they're available to subshells

* Update for alternate

* Rearrange

* Log install time if no arch

* Add limine to packages list

* Update comments

* Update sizing method

* Update mode switcher

* Move icons to be embedded in installer

* Set install mode to online

* shebang and sudo

* Remove deleted branch check

* Elim banners

* Elim verbosity

* Rename LOG_FILE

* Multilib on by default

* Flip to positive

* Switch to gnome-theme.sh for first run

* Elim ansi-codes helper

* Move guard up to be the first thing that's hit

* Extract a couple of functions

* Trim

* Trim

* Move back to trap

* Update to single gum file

* Just show total

* Pulled function to a helper

* Extract explaining function

* Use complete conditional flows where possible

* Reference variable close to its use

* Use modern bash conditional syntax

* Comment before function

* Use a simpler shared exit headline

Doesn't matter how we stopped, just that we did

* CRs

* Keep constants together

* Style on comment

* Explain QR Code

* Modern bash conditional and use lowercase for all local variables

* Use bash calculation syntax for numbers

* Use calculation syntax where possible

* cleanup was not intention revealing enough imo

* Spacing

* Retry won't produce something different in offline mode

* Not needed

* Use modern bash conditional style

* String-wrapping not needed in [[ ]]

* Might as well use constants for all of these

* Don't need the wrapping

* Move the output saving into where we're working with it

* Not needed as long as we just source this

* Gum is a helper

* Slim down logging setup

* Reflect broader scope of work

* Everything should live in file

* Simpler

* Ordering

* Style

* Better separation of concerns

* Stop pretending these are meant to run directly

* Move all packaging execution together

* No longer used in an offline centric setup

* None of these are directly executable any more either

* Modern bash conditional

* Better name

* Explain what's going on

* Use modern bash conditional

* Use modern bash styule

* No need for bashing

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>
Co-authored-by: DoppioJP <[email protected]>
tahayvr and others added 26 commits September 17, 2025 08:19
* Add 1Password extension policy configuration for Chromium and Brave

- Added policy files in config/chromium/policies/managed/ and config/brave/policies/managed/
- Created migration to copy policies to system directories /etc/chromium and /etc/brave

* I don't want to push it into existing installations at the moment

We just leave it for new installs

---------

Co-authored-by: David Heinemeier Hansson <[email protected]>
The other mise option is set on Ruby on Rails install
The move to Walker 1.0 is going to take a little longer. We will fix
this in Omarchy 3.1.
Otherwise it'll prompt on first start for everyone.
@dhh dhh merged commit cf41eca into master Sep 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.