* 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>
* Required -y to run
* Update omarchy-refresh-plymouth to account for limine changes
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* 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 <david@hey.com>
* 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 <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 wireless-regdb alongside iwd
Needed for regulatory compliance for Wi-Fi and enabling some bands on some chipsets
* Add wireless-regdb
* Changed location of wireless-regdb install
* configure the wireless-regdom during install
* remove extra newline
* don't unset the variable too early
* also set the region as part of the script
* writing to wireless-regdom requires root
* need to use tee
* changing logic since this is brought in as source
* handle timezones that start with country code already
---------
Co-authored-by: Nirav Patel <eclecticc@users.noreply.github.com>
* install the needed packages for intel GPUs
* keep forgetting that this is included by source
---------
Co-authored-by: Nirav Patel <eclecticc@users.noreply.github.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
* Added a core.ini file for setting persistent notification settings
* migration
* remove: max-icon-size from core.ini
* rearranging mako files
* moving core.ini mako config inside omarchy
* added core.ini to migration
* We don't actually need this
Mako is already loaded. The new config will get picked up automatically
on next reboot.
* Don't change
* No change required here
---------
Co-authored-by: robert stringer <bitmap+github@gmail.com>
Co-authored-by: xz <xz>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
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
```
I believe this is a sensible default for those that have keyboards with num pads. Whenever I want to enter a number I reach for the numpad, just to realize that numlock is off and it doesn't do what I expect it.
The cursor and text color in the ristretto alactritty theme config are currently the same. This change sets the cursor text color to match the background color. This should be the expected behavior.
I'm creating dotfiles that as soon as Omarchy is installed, allow me to
perform my own customizations to get the system up and running in no
time according to my own needs.
One of them for example runs:
~/.local/share/omarchy/bin/omarchy-install-dev-env laravel
However, something like that is not possible with the Docker databases
because it assumes interactivity via `gum`.
This PR fixes that by either taking the choices as arguments or
providing interactivity when that's not the case.
~/.local/share/omarchy/bin/omarchy-install-docker-dbs MySQL
I tried to install `Minecraft` through Omarchy's menu, however it fails
with the following error message:
error: target not found: minecraft-launcher
This occurs because, according to Arch's documentation, the package is
available through AUR rather than the official repositories.
Reference: https://wiki.archlinux.org/title/Minecraft#Installation
* Quick fix for lazyvim bufferline error when using catppuccin
* This is a slightly better fix
* Adding the fix in theme, actually messed up the theme colors
* Adding the migration file
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* install ollama from the official website
* installing ollama-cuda if nvidia-smi exists
* add check for rocminfo installation for AMD GPUs
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
As well as installing the `emacs-wayland` package, we enable and start
the `emacs` systemd service. A GUI Emacs client can then be started
using e.g. `emacsclient -c`.
* fix: symlinks to default icons to prevent text chevron fallbacks
* consistent symlink syntax
* Needs sudo and had extra quotes
* Add migration
* added gtk-update-icon-cache for symlinked files
* pkill any running Files windows
* Cleanup and ensure successful exit so as not to halt migrations
* Excess CR
---------
Co-authored-by: xz <xz>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: robert stringer <bitmap+github@gmail.com>
* Allow failed migrations to be skipped
Failed migrations can be now be skipped by a prompt. This means that if
a migration is "stuck" then a user can opt to store it in a separate
skipped directory. Skipped migrations will be considered for the
purposes of running the pending migrations, however in future, we can
allow the user to run their skipped migrations with a flag.
To allow the script to continue and prompt for failed migrations, the
`set -e` has been removed. A manual check on the exit code is used
instead.
* Cleanup implementation a bit
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* add gvfs-smb to packages
gvfs-smb and its dependencies (smbclient, samba, and cifs-utils) afford access to Samba servers in Nautilus/Files.
* Add migration
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix DNS migration to handle UseDNS=no in network files
Issue #1246: Migration 1755109182.sh only fixes resolved.conf but doesn't
remove UseDNS=no from network files. When UseDNS=no persists, it blocks
DHCP DNS and forces fallback to Cloudflare after reboot.
Fix: Remove UseDNS=no from all network files, matching omarchy-setup-dns DHCP behavior.
* Add new migration 1756491748.sh for existing users
Fixes DNS issue for users who already ran migration 1755109182.sh.
Removes UseDNS=no from network files to enable DHCP DNS.
* Apply requested changes
- Revert 1755109182.sh to original state
- Consolidate all fixes in new migration 1756491748.sh
- Follow migration style guidelines
* No using custom chromium.desktop any more
* Spacing
* Rely on $OMARCHY_PATH
* Add common pkg and cmd functions for use in migrations and elsewhere
* Simple pkg-adds
* Later migration does it
* Ensure running migrations on older installs have the new pkg/cmds available
* Spacing
* Use new abstractions
* Installed in later migration
* Needless comment
* Use new commands
* Fix package name from 'batt' to 'bat'
* Use ttf-jetbrains-mono-nerd font instead of the non-nerd variant.
* Update font installation script for JetBrains Mono
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Drop Chaotic AUR repo
Now that we have the AUR packages we need on the OPR, we don't need this
as a default.
* Fix escape issue and rename so it will run again
When running `laravel new`, if a starter kit like `React` or `Vue` are
selected, the installer will ask:
```
Would you like to run npm install and npm run build?
```
And in order for it to work, `npm` should be available.
Having this installed will definitively smooth out the experience from
install to up-and-running!
* Get rid of -Sy and -Syy
* Get rid of all naked -Sy usage
* Don't need a full system update for this
* Combine
* Does not need a full system update
* Need to refresh even just for Omarchy repository
* Does not warrant a full system update
* No longer need the sudoless pacman runs
* We have already added the Omarchy repo before getting to here
So fine to just do a straight install
* Don't update system packages to prevent issues from something too new at the wrong time
* Add system to pin and ignore bad packages
To deal with the abseil-cpp issue
* include more chromium browsers in chromium rules
* Use tag to avoid declaring the match twice
* Fix the match to actual browser class names as reported by hyprctl clients
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
bindd = CTRL ALT SHIFT, PRINT, Screen record display with audio, exec, omarchy-cmd-screenrecord output audio
# Color picker
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.