* add themes from https://github.com/eza-community/eza-themes
* init eza theme during install
* add migration
* refactor migration script to only link eza theme if it exists for current theme
* only link to eza theme if current theme supports it
* only link to eza theme if current theme supports it
* Cleanup
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Automatically change VS Code theme along with Omarchy themes
* Create a way to skip vscode auto-theming
* Make theme setting resilient to different states of the settings.json
* Improve setting and removing theme and notify when waiting on install
* Explain what we're doing
* Extract dedicated bin for vscode theme change
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* add: omarchy-cmd-share-files script
* add: call script from main menu
* add: hyprland binding for sharing files
* fix: dispatcher syntax
* fix: make script executable
* fix: script name on main menu
* fix: show share menu call
* fix: dispatcher order
* fix: script call via shorcut
* fix: share shortcut and share class for alacritty
* add parameters to share files, folders and clipboard content
* do not clean tmp files in clipboard mode
* make tmp file txts for clipboard sharing
* add menu options for folder and clipboard sharing
* rename script
* shortcut opens walker share menu
* fix spacing in share menu
* fix: share menu calls
* Files with spaces in the path were breaking 'send' action
* Add Trigger menu to house capture/share/toggle
* Style
* Fix going straight to share menu on Ctrl + Super + S
* Combine
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add focus or launch script
* Replace eval with exec
* Use eval so it properly expands the variables
* Apply to the apps where it makes most sense
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add Chrome and Brave browser policy support for theme colors
Replace chromium --set-theme-color commands with managed policies
- Add RGB to hex conversion function
- Create /etc/chromium/policies/managed/color.json for Chrome
- Create /etc/brave/policies/managed/color.json for Brave
- Remove deprecated chromium command line theme setting
* force reload
* remove sudo
* renamed flag due to code review on google side
* Add the required directories
* Cleanup
* Slim down
* Unnecessary
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Support for exec and mime types. Zoom integration
In order to better support webapp zoom:
- Added optional params for omarchy-webapp-install
- exec, defaults to omarchy-launch-webapp
- mimetypes, defaults blank
- added zoom webapp launcher that parses meeting links and transforms
them and calls launch webapp to join meeting links
- migration to convert existing zoom installs to the new custom
handler
- updated the base installer to call new zoom handler and set
mimetypes
* default should be in the else
* Add new line at end of file
* Missed new line on migration
* Updated conditionals to be a little more clean
* This is a rare setup so let's just save it for the direct CLI
* Use new bash conditionals
* Rename to fit under the existing namespace of cmds
* Fix after merge
* Use new syntax and add missing segment comments
* Cleanup a bit
* Use local icon for zoom with migration
* Fix regexp
* Refer to raw local icon references
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* 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 49c27d319407f6c95fcbb4c5a2646e54b50c9ab4.
* 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 c159e7dc51cfdd2fb750c49c66bc4468e1208446.
* 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 <david@hey.com>
* 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 <david@hey.com>
Co-authored-by: DoppioJP <jakub@doppio.jp>
* Required -y to run
* Update omarchy-refresh-plymouth to account for limine changes
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* 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 <david@hey.com>
* fix: implement proper hierarchical menu navigation
Add intelligent exit behavior that respects menu hierarchy and direct access:
**Direct Access Behavior:**
- When menus are accessed via command line arguments or keybindings
- Pressing Escape/Cancel exits the application completely
- Example: `omarchy-menu theme` → Escape → exits completely
**Hierarchical Navigation:**
- When navigating through menu system (Main → Style → Theme)
- Pressing Escape/Cancel returns to parent menu
- Examples:
- Theme menu → Style menu (not main menu)
- Font menu → Style menu (not main menu)
- Power menu → Setup menu (not main menu)
- Update Process/Config menus → Update menu (not main menu)
**Implementation:**
- `DIRECT_ACCESS` global variable tracks access method
- `handle_exit(parent_menu)` provides consistent behavior
- Applied to theme, font, power, and update submenus
- Maintains backward compatibility for all existing navigation
* Naming and add to system menu too
* Naming
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* add visual feedback for super + mute
- show visual feedback (device name and volume icon) when super+mute is pressed
- avoid reassigning the sink when only one is available, since this prevents devices (e.g. headphones) from regaining audio after reconnect
* cleanup
* changes needed
* fix: remove hardcoded channel reference
* Added Clojure to the Development Omarchy Menu
also implemented it in omarchy-install-dev-env
* Update the icon to use the Clojure logo from Nerd Fonts
Thanks to @Sgierek106
* Use omarchy-pkg-add
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Empty DNS= and FallbackDNS= in resolved.conf were blocking VPN DNS
servers when VPN clients replaced /etc/resolv.conf.
Removing these empty values allows systemd-resolved to:
- Use DHCP DNS from network interfaces (existing behavior)
- Fall back to system defaults when needed
- Switch to 'foreign' mode for VPN DNS override
Fixes#1509
While working in a non-trivial feature, debugging support was needed.
Since Xdebug is the official PHP debugger, is available in Arch's
official repositories, and is trivial to configure, it makes sense to
include it in the PHP development environment.
This addition improves the overall development experience for PHP
developers by enabling easier inspection and troubleshooting.
With this PR, the debugger now shows up an enabled extension:
```
$ php -v
PHP 8.4.12 (cli) (built: Aug 27 2025 06:23:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.12, Copyright (c) Zend Technologies
with Xdebug v3.4.4, Copyright (c) 2002-2025, by Derick Rethans
```