If it is not run as a sub-shell, using open and then subsequently closing the app will pollute the existing terminal with messages like:
[1] 287915
[1]+ Done xdg-open "$@" > /dev/null 2>&1
Making it a subshell removes this noise and keeps it more like the open command in macOS.
* Add missing icons to Development remove menus
The Install > Development menu shows icons for each language, but the
Remove > Development menu was missing them (only Ruby on Rails had its
icon). This adds the matching icons to:
- show_remove_development_menu
- show_remove_javascript_menu
- show_remove_php_menu
- show_remove_elixir_menu
---------
Co-authored-by: incpo <nixusnekit>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
* Toggle hybrid GPU mode via supergfxctl
Very useful for Asus G14 and other laptops with NVIDIA + AMD iGPU
combos.
* Use correct exit
* Simplify
* Wording
* Revise switching process
* Spacing
* These are sudo actions
* Make it exe
* No need for extensions
Matches existing style
* Relying on the new config should be enough since we are restarting anyway
* Prevent race condition
* Reminder to add to OPR
- Add --webcam-device argument to omarchy-cmd-screenrecord
- Auto-detect first available webcam if none specified
- Add webcam selection UI in omarchy-menu when multiple cameras available
- Skip selection UI when only one webcam is detected
The current 5-second sleep is not enough for all hardware. On my PC (and
likely many others), Windows takes longer to initialize. If the script
tries to connect via RDP before Windows is fully ready, the connection
fails or hangs.
I replaced the fixed sleep with a dynamic loop that checks the Docker
logs for the "Windows started successfully" message. This ensures the
RDP client only starts once Windows has confirmed it's ready, making the
launch process much more reliable across different hardware specs.
Fixes#2599
* Replace yq with pure bash for TOML parsing
The yq-based parsing only worked with jq/yq v3 and broke with go-yq v4.
This change removes the yq and uses bash for parsing. Some additional improvments:
- Handles single and double quoted values
- Strips inline comments (e.g. "#hex" #comment)
* Remove the no-longer-needed yq packages
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
The sed expression for converting scrolltouchpad syntax to Hyprland 0.53
format was broken across two lines, causing the second substitution
pattern to fail silently. Split into separate sed commands to ensure
both class:(pattern) and class:pattern formats are migrated correctly.
Redirect hyprctl output in exit_screensaver() to prevent SIGABRT crash
when the screensaver window is closed externally (via keybind or lock screen).
The crash occurs because hyprctl's std::println() throws when writing to
a broken stdout after the terminal is killed.
Voxtype v0.4.9 adds a --no-post-install flag that suppresses the
"Next steps" instructions after downloading the model. Since Omarchy
handles systemd setup, hotkey configuration, and displays its own
success notification, these generic instructions are redundant and
potentially confusing to users.
The flag still shows download progress, just suppresses the
post-download instructions.
* Add option to enable/disable hibernation
* Actually do it
* Match hibernation toggle words
* Both enable and disable
* Match the tense
* Match options
* Remove excess CR
* Try with voxtype
* Update delay to prevent skipped characters
* Add removal of voxtype
* Use -bin package
* Fix for yay
* Nerdicons!
* Use new, subtle nerdfont glyphs instead of standard icons
* Do this in the waybar config instead
* Make voxtype a permanent fixture so it is not lost on waybar resets
* Record purpose
* Add Dictation hotkeys
* Tweak wording and point to config
* Reuse the same help
* Better communication
* Anticipate moving the package to OPR
* Clarify where the packages are coming from
* input group not needed when using hyprland hotkey
* Explain hotkey off
* Allow for changing of the model on right click
* Allow config on right click
* Be more specific
* Focus on config editing with waybar clicks
---------
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
* Attempt to templaterize the theme specific files
* Cleanup
* Slim down
* Combine render into -set
* Pull out the dynamic template rendering again, but simpler
* Fix vars
* Variables are lowercase
* Better presentation
* Fix missing colors
* Provide stripped values too
* Fix colors for regular hex format
* Bring back explicit btop themes
They're too involved to derive from a basic color set
* Make an atomic swap of the theme directories
* No longer used by walker to cancel
* Explain why
* Remove redundant const
* Consistent const naming
* No longe have $THEMES_DIR
* Correct the blue
* Set opencode colors too
* Fix colors for readability
* Move the templates together with the others in default
* Split user themes and default themes
* Fix paths
* Look for both user themes and default themes
Plus speed things up
* Migrate to the new setup where default themes live inside omarchy
* Explicitly store the name of the current theme
* Cleanup
* No longer need omarchy-theme-next since themes are now fully rendered, not symlinks
* Get current theme name from the new theme.name file
* Look for user background images in dedicated directory
* Need yq for toml
* Need yq to parse colors.toml
* Look for backgrounds matching the new theme.name
We no longer have symlinks
* Migrate existing user backgrounds to the new proper location
* Install user backgrounds in the correct path
* Fix quoting
* Just rely on the system theme for opencode and get ready for USRSIG2 being available to live reload
* Fix template generation for rgb colors
* Add github-copilot-cli to the AI install menu
* Mark the copilot package as coming from AUR
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix: stop paging git diff output when running omarchy-update
* Keep option list similar between the two
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Also, move waybar-less information notifications to Super + Ctrl + Alt +
T/B to make room. These are very specialized and probably not broadly
used.
Closes#3909
Co-authored-by: @ddVital
This was done in a migration in 0588cc8e5b but the menu entry was never updated. So, installs after the migration will get the outdated version.
Added a new migration as well for those that installed after the
previous one.
Screensaver launch is broken when Walker is open: It will fail to go fullscreen and exits right after input read's first iteration, due to the screensaver_in_focus() check. See https://github.com/basecamp/omarchy/issues/2992 for an example report.
This addition will silently quit an opened Walker menu before launching the screensaver terminal. It is mildly intrusive, alas, as a return from screensaver will not present the pre-screensaver state exactly.
The following options are no longer recognized by Kitty and caused warnings during startup:
window_padding_height
show_window_resize_notification
single_instance
They have been removed to keep the configuration compatible with current Kitty versions.
Updated the `omarchy-cmd-screensaver` script to allow screensaver effects to run independently on each monitor in multi-display configurations.
Previously, the effect loop waited for all animations on all monitors to finish before starting the next effect. With this change, each monitor handles its own effect cycle independently, improving smoothness and responsiveness in multi-monitor setups.
Turns out there are control codes for tracking mouse actions in xterm-compatible terminal emulators (mind blown).
This patch adds mouse action awareness to our beloved screensaver setup:
- on setup it sends the respective control codes for movement and click detection
- in the main loop it opens up the input reader to read raw bytes and, thus, enable to detect even so much as a mouse's squeak
Personally, I love swiping my trackpad to exit screensaver. But the explicit pressing-a-key to exit is nice, also.
And I don't know if many people have jitter issues with their mouses or trackpads. Reckon, if they had they wouldn't get to see the glory that TTE is anyway, ever :)
This is tested and working in Ghostty. Sorry for the low-effort testing.
* feat: silently move active window to target workspace
Adds a quality-of-life keybind:
SUPER + ALT + SHIFT + [1-9, 0]
This silently moves the active window from the active workspace to the
chosen destination workspace. The destination workspace re-tiles
correctly upon receiving the window.
The currently active workspace remains active, and the moved window
retains focus throughout the operation (no workspace switch, no
animation, no extra UI noise).
Why:
- Provides fast, silent window reshuffling during multitasking.
- Avoids disruptive workspace switching.
- Matches Omarchy’s focus on efficient Hyprland ergonomics.
- Keeps the user anchored to their current workflow while reorganizing.
Testing:
1. Open multiple windows across several workspaces.
2. Focus a window on the active workspace.
3. Press SUPER + ALT + [1–9, 0].
4. Verify the window appears on the target workspace and re-tiles.
5. Confirm the **source workspace stays active**.
6. Confirm **focus remains on the moved window**.
7. Repeat with multiple applications and workspace combinations.
* We've frozen this old tiling config
* Put on Super + Shift + Alt
This is an alternative version of an existing move
* Fix description
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Update version
* feat: show link to changelog in update confirm window
* Link to scrollable changelog
You may be updating more than one version at the time.
---------
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Exec=$TERMINAL the omarchy-tui-remove wont find newly created TUI-Apps. This fixes it and ensures backwards compability.
Co-authored-by: Gerrit Dolderer <gerrit.dolderer@hey.com>
* feat: fullscreen for ghostty/kitty screensaver
* feat: add ghostty screensaver config
* Remove the extra two bottom lines as well
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Use desktop portal capture option which allows capturing monitors
connected to external gpus (common on laptops with dedicated gpus)
and supports capturing properly when hdr is enabled.
Desktop portal capture allows selecting capture of a window, monitor
or screen region.
Add -fallback-cpu-encoding yes to use cpu encoding if the system
doesn't support gpu encoding. Ideally omarchy should install vaapi
drivers which would fix this issue for most users, but some users
have a gpu that dont support gpu encoding at all so this option is still
needed.
Use pgrep with ^ as is done in waybar indicator screen-recording.sh
to only grep for gpu-screen-recorder program.
Update omarchy-menu to reflect not selecting region/display capture
and instead allow capturing only desktop audio or desktop + microphone
audio.
Fixes#3367 and #3303
* Update style.css
Fixes the uneven spacing between icons on waybar by updating styling.css with Propo font family.
However, Propo introduces a small issue as the volume icons don't have the same with. As a consequence, icons left of volume will move based on the displayed volume icon. To solve this, I added a non-Propo font to the pipewire module as well - this way the volume icons have fixed length but eats a bit into the spacing towards the CPU icon. But I see this as the best trade-off.
* Update waybar config.jsonc
* Update tray spacing in waybar config
* Modify margins in style.css
Adjusted margins for various elements.
* Update waybar css for even spacing
* Update Waybar config tray spacing
* Change expand-icon format character
* Adjust margin-right for custom-expand-icon
* added optional argument for floating a window
* added sample comment
* Style
* This file isn't meant to be changed so not a good place for commented out recommendations
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add theme Ethereal
* Update to follow the Omarchy hot reload
* Add aether to all themes
* Add a vscode theme
* Revert "Add aether to all themes"
This reverts commit 421f467e21.
* Format the kitty file
* Make available to all via migration
* Fix
* Add hot reload
* Change the background image to something of higher quality
This looks a lot better on a 6K monitor
* Highlight border color should be brighter than inactive color
* Add preview.png for new visual theme selector
* Add the ethereal nvim variant of aehter
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add a new theme called hackerman
* Update to follow the Omarchy hot reload
* Add high res wallpapers
* Add an initial vscode color scheme
* Excess CR
* Set the colorscheme name to aether
* Change the nvim plugin name back to aether
* Add hot reload
* Use a variant of aether
* Swap the starting background
* Add migration
* Add preview.png
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add bluetui integration and launch script
- Add omarchy-launch-bluetooth script to launch bluetui TUI
- Create migration scripts for bluetui installation
- Update omarchy-menu and waybar configuration for bluetui support
- Add bluetui to base packages
* Move unblock into launchers and reuse existing launch or focus setup
* Fix installer to remove blueberry and be more surgical with waybar changes
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add optional xpadneo driver prompt to Steam installer
Prompts users during Steam installation to optionally install the xpadneo driver, which fixes common Xbox/Bluetooth controller issues including detection problems and missing rumble support.
* Install xpadneo controller driver by default
* Add idempotency checks and relaunch state
* Remove Steam launch since relaunch required
* Extract xbox controller installer into separate step
* Bring back launch
* Force reinstall
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* improve: uniquely identify btop when launched from waybar.
* align btop app id
* add migration to uniquely identify btop
* also add unique app ids to lazydocker and terminal editor
* introduce new omarchy-launch-tui that sets class.
* align all the tuis and behaviour in waybar
* update migration accordingly
* fixes
* separate terminal from tui
* fix: double setsid uswm-app --
* Standardize namespace on org.omarchy and lowercase
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add new script for themes menu
* remove icons from the themes menu
* Make theme titles human readable and add spacing at the end
* Migrate to using a link for the new menu generator
* Retain consistent width
But we still do have movement when filtering the menu down to a
shorter-than-longest name. Should try to stabilize that.
* Update all previews to 2K resolution and same dimensions
* Update script to use first bg file if theme preview file doesn't exist
* Add padding to preview box instead of spaces to theme name
* Consistent formatting/indenting
* Prevent height jump
* Revert padding change and remove background color
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* hypr: Adding xdph token default of true
The `allow_token_by_default` configuration option under `screencopy` within
`xdg-dektop-portal-hyprland` (xdph) enables the "Allow restore token" checkbox
by default in the screen sharing section dialog. Enabling it to `true` ensures
the checkbox is pre-ticked, which can help avoid repeated selection prompts
during screen sharing sessions, such as those reported with Slack, Google Meet,
Zoom, etc. on Hyprland.
Signed-off-by: Larry Dewey <larry.j.dewey@gmail.com>
* Enable the XDPH config on existing installations
---------
Signed-off-by: Larry Dewey <larry.j.dewey@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
In basecamp@4c97a31, a migration was added to fix this option on
existing installs, but I think the default config was never updated with
the new option.
* Revert "improve: add image/video share and run share commands silently (#3330)"
This reverts commit 03cbbd2f7f.
* Refactor share menu to remove terminal command
* Fix: Jetbrains popup dialog would not get focus automatically
The config shipped with omarchy misbehaves with popups. Opening a popup
would not shift the focus automatically to it, requiring manual click on
it to start typing into it.
You can reproduce with by trying to open any popup dialog (for example
CTRL+T on Rider, or CTRL+SHIFT+F)
This config with `-Dawt.toolkit.name=WLToolkit` in the custom VM options
fixes all the issues I have with jetbrains. I am also making a dedicated
workspace which float all windows just for jetbrains.
* Use existing formatting conventions
* More tweaks
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* improve: add image/video share and run share commands silently
- Added 'image' and 'video' modes to omarchy-cmd-share to quickly send
the most recent screenshot or video without selecting manually.
- Updated show_share_menu to run share commands in the background using
'nohup' to avoid opening a terminal window.
- Comments added to explain each section for clarity and maintainability.
* Match names with folders
* Correct here too
* Don't need to keep this around
* Fix these up for what's needed only
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
AAC provides better cross-platform compatibility compared to Opus when
using MP4 containers. While Opus is supported in MP4, compatibility
varies across different media players and platforms.
In testing, screen recordings with Opus codec sent to Windows users
played without audio in Windows Media Player, while recordings with
AAC codec worked immediately without issues. AAC ensures recordings
are playable out-of-the-box across all platforms without requiring
users to install additional codecs or use alternative media players.
This additional bind lets the user follow the default action of a notification with a keystroke in the same position `,` as the other notification binds.
Replace hardcoded --class flag with xdg-terminal-exec --app-id to properly
support kitty and other terminals. This aligns with the rest of the codebase
and ensures floating window rules work correctly across different terminals.
Solves the issue from ae10133b5e the right
way using the actual xdg-terminal-exec package and provides resillient
fallbacks no matter what the user might do.
This also removes the need to restart after changing terminals at all.
fixes#2198fixes#2329fixes#2673fixes#1754
Because of [hardcoded terminals in
glib](https://gitlab.gnome.org/GNOME/glib/-/blob/main/gio/gdesktopappinfo.c#L2755)
the previous fix still doesn't work well with Alacritty and Kitty.
Using our `omarchy-launch-terminal` aliased to `xdg-terminal-exec` does
the trick and doesn't introduce any new dependencies or rely on a lib
that isn't stable.
* Apply Omarchy theme; Install Neovim extension (automatically scoops up LazyVim config).
* Just set the Omarchy theme
Removed installation of Neovim extension from script.
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix(jetbrains.conf): allow focus for Android Studio’s first dialog by unsetting nofocus rules for empty-title windows
* Refactor window rules for JetBrains apps
Updated window rules for JetBrains applications to allow focus and interaction with dialogs.
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Ghostty will only use the last `shell-integration-features` line found
in the config, so multiple options need to be presented as a
comma-separated list. Including them on separate lines meant that only
the `ssh-env` option was getting set, causing the `no-cursor` option to
be ignored. This prevented the cursor from going into the `block` style.
Moving to symlink fixes the following issues:
- App removes from launchers if you uninstall Nvim
- Nvim launches in the correct terminal without invalid desktop entry
Symlink setup moved to omarchy-nvim-setup (Ref:
bb7a0f4c1f)
* Fix auto-generated everforest obsidian theme
* Update `--text-muted` and `--text-faint` to be readable against
background color
* Add contrast detection and color correction logic
* Remove dedicated Obsidian CSS file
* Add dedicated text color variables to obsidian theme generation
* Replace closest color logic with generated color for code bg in Obsidian
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* imv: add default Ctrl+P binding to print current image via CUPS
* Add imv config migration with backup
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add bindings for scratchpad support
This is great for hiding windows temporarily and bringing them up when
needed in an overlay, I'm using it to hide away my webcam control in
meetings. ;)
* Change shortcut to move window to scratchpad
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Some applications (e.g. Aether) use xdg-desktop-portal-gtk to open folder chooser dialogs titled "Choose Export Directory" or similar. These were not matched by the previous floating-window regex, causing them to tile instead of float.
This change expands the title regex to include "Choose …" patterns, ensuring these dialogs float and center properly in Hyprland
Derives the list of required modules for the installer from Chris
McLeod's manual installation steps. His instructions say to use the
surface-linux kernel however the default kernel has the right set
of modules already (as noted by the fact that the right modules are
loaded for the keyboard to work during the install and after the LUKS
unlock screen).
I only have a Surface Laptop 3 to test this on but based on the guide
where Chris is using a newer laptop and the only difference is the
pinctrl module which I attempt to autodetect I think it should "just"
work for others but definitely "use at your own risk".
* New window replaces the current fullscreen or maximized window
Currently if we are in fullscreen or full-width mode and either
start a new application OR
create a new window of an existing application. Like an incognito window
Then those new windows/apps start in the background. There is no indication that something new has been created.
IMHO, if I am opening an application then I want to switch to it. I cannot think of any common use case for having new applications open in the background.
This change will cause new application to replace current application as the fullscreen / fullwidth window
Please see docs: https://wiki.hypr.land/Configuring/Variables/#misc
Option:
new_window_takes_over_fullscreen
Desc:
if there is a fullscreen or maximized window, decide whether a new tiled window opened should replace it, stay behind or disable the fullscreen/maximized state. 0 - behind, 1 - takes over, 2 - unfullscreen/unmaxize [0/1/2]
Type:
int
Default:
0
* fix the setting name
* fix(hyprland): match Brave portal dialogs in floating-window rule
Brave on Wayland uses xdg-desktop-portal-gtk for permission and file dialogs.
These windows use website-based titles (e.g. "chatgpt.com wants to open")
instead of "Open File" or "Save File", so they were not matched by the
floating-window rule. This commit expands the title regex to include those
patterns, ensuring Brave dialogs float properly.
* Shrink scope
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Corrected a typo and fixed grammar in the comment regarding web app URLs. (changed hyperland to hyprland and fixed grammar in the same line)
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
adding /sound and /microphone to omarchy-windows-vm
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix: make RAM detection compatible with all locales (free output in any language)
* Look at total RAM, not just free
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
This seems niche, but you might like it. Binds Super + Ctrl + F to force-tile a fullscreen app. It works nice for things including running games in a tile or watching YouTube in a pip tile without needing to configure these apps specifically to do so.
Google Chrome reports itself as google-chrome in `hyprctl clients` but
the matching for the windowrule did not work, probably because since
hyprland 0.46.0 the regex matching needs to span the entire string.
This change makes "google-chrome" get recognized so that windows of that
browser receive the chromium-based-browser tag, which in turn provides
better opacity settings for Chrome windows. Since "chrome" was matched
by the regex before, this fix now should restore the originally intended
behavior for Google Chrome.
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Update style.css
Fixes the uneven spacing between icons on waybar by updating styling.css with Propo font family.
However, Propo introduces a small issue as the volume icons don't have the same with. As a consequence, icons left of volume will move based on the displayed volume icon. To solve this, I added a non-Propo font to the pipewire module as well - this way the volume icons have fixed length but eats a bit into the spacing towards the CPU icon. But I see this as the best trade-off.
* Update waybar config.jsonc
* Update tray spacing in waybar config
* Modify margins in style.css
Adjusted margins for various elements.
* Update waybar css for even spacing
* Update Waybar config tray spacing
* feat: obsidian theme to tie into Omarchy theme
* better color matching for search result matches
* feat: simplify install flow
* Removed install/remove scripts and flow
* First `omarchy-theme-set-obsidian` run will look for vaults in
Documents and Dropbox folders and add them to
`/.local/state/omarchy/obsidian-vaults`
* Point of this is such that we assume a couple locations to look for
vaults but allow people to add vaults to the file for custom locations.
Subsequent theme-set invocations aren't impacted by find/search on large
systems
* Each `omarchy-theme-set` invocation will install the themes on all
found/registered vaults if missing and update the live theme
* Added an option of `omarchy-theme-set-obsidian --reset` to wipe out
themes in registered vaults and remove the registry file. This would be
the option to re-run to the automatic vault registration.
* Added migration to trigger install immediately in Obisdian, note that
you still need to pick Omarchy theme.
* Add smart snapshot selection
* Add wayfreeze
* Update to only include current workspace in rectangles
* Fix if there are no windows on screen
* Add option to sidestep slurp and copy straight to clipboard
* Update capture menu
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* adding TUI for starting up windows VM
* updating to use docker-compose
* adding possibility to set windows product-key
* ram and cpu settings
* first time run notes
* add two needed pacman packages
* key and package install
* Revert "add two needed pacman packages"
This reverts commit 04dc96cee0.
* add install and remove scripts
* install icon
* rename scripts and menu to Windows VM
* rename also launch script to windows vm
* update nameing
* remove quotes
* fix paramter and quiting after installation
* fix launch script
* update
* certificate acceptance and remove of desktop app
* move desktop app
* rename app from "Windows VM" to "Windows"
* add example of sharing local share with Windows
* merge 'dev' into windows-docker-vm
* exchange rdesktop with freerdc
* accept certificates automatically so user don't fail first try
* remove certi during normal launch (handled in install process)
* remove volumes and orphans to have clean state (avoids hang on login)
* /cert option still needed
* Simplify package installs
* Fix icon + desktop to prevent creation on initial install
* omarchy-windows-vm in working form
* Don't need this anymore
* Fix commands
* Always use uwsm-app
* We are generating it instead
* Make omarchy-pkg-add quiet when the packages are already there
* Improve the questionnaire
* Show where you change resource usage
* Add default Windows share
---------
Co-authored-by: sspaeti <simon@ssp.sh>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Improve theme-set-vscode to support jsonc and respect symlinks (#1756)
* Ghostty needs a very different scrollfactor than Alacritty and Kitty
cc @mitchellh
* Hide hyperland cursor while typing (#1812)
* Fix Matte Black theme ghostty and vscode configs (#1801)
* Update Matte Black ghostty.conf with more color settings
* Rename theme from 'MatteBlack' to 'Matte Black'
* Catch obsidian vault dialog too
* Add Update > Hardware > Audio for restarting pipewire service
* Give output on what's intended to happen
* Ensure libyaml is available for installs made before that was on the ISO
* Limit pattern to prevent incorrect matches
* fix: ghostty config typos
* No longer used
Closes#1815
* Revert "Ensure libyaml is available for installs made before that was on the ISO"
This reverts commit ad01082a86.
* Add Helium browser to supported browsers list in omarchy-launch-webapp
* Fix Helium browser detection in launch script
* feat: Added MacBook10,1 to the fix-apple-spi-keyboard.sh
* Suggest how to have a smaller-than-max-width single window aspect ratio
* Add more Mac models to SPI keyboard support
Added:
MacBook 8,1
MacBook 9,1
MacBook 8,1 uses slightly different moduels from what I can tell, so I’ve added a case statment. Please tweak as needed.
* Fix conflict + rearrange
* Added fix for ealy 2013 macbook pro's using an older chipset, BCM4331
* Tried with a different approach for cleaner code
* Clean up
Tested the logic on the MacBook. It worked and the install of the
drivers are reenabled.
* Combine ifs
* Update install script name
* Fix for '(null)' display on AirPod source selection
* Use output display or region geometry to record
The previous code did not identify the output display correctly,
leading to wf-recorder asking the user to select the region when the
user requested the display output to be selected.
With this change the bash script will use slurp with the -o flag to
identify the display output.
This has not been tested with wl-screenrec as no change has been made to
its call signature in omarchy-cmd-screenrecord and the wl-screenrec
binary is not included in the default omarchy installation.
* Fix TUI install script
- $TERMINAL should remain variable
* Add migration to fix Docker and Disk Usage TUIs
* Replace "--class" with "--class="
* Revert "Fix for '(null)' display on AirPod source selection"
* Typo
* Fix comment
* Change up firewall setup
* Enable ufw
* Disable ufw-docker (isolation test)
* Add some reboot on done debugging
* Debug firewall install/config
* Add first-run logging
* Don't suppress output from apparently-failing systemctl reboot command
* Fix logging
* Use old reboot. Still chrooted so probably won't work.
* Allow systemctl on first run
* Revert logging and other changes
---------
Co-authored-by: Omar Skalli <omar.skalli7@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Johan Sørensen <johan@johansorensen.com>
Co-authored-by: Taha <paprikataha@gmail.com>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: Che-Wei Lin <linton.tw@gmail.com>
Co-authored-by: Patrick Byrne <pby.software@byrne.dk>
Co-authored-by: Eduardo Mínguez <e.minguez@gmail.com>
Co-authored-by: Joel Gaff, Jr <joelga@hey.com>
Co-authored-by: Michael Larsen <michaelarsen@gmail.com>
Co-authored-by: Shawn Yeager <shawn@shawnyeager.com>
Co-authored-by: observable <hello@observable.art>
Co-authored-by: Djordje Kovacevic <djordjek65@gmail.com>
* fix: prevent Chromium crash when moving windows between monitors
Adds --disable-features=WaylandWpColorManagerV1 to Chromium and Brave
flag configs to prevent crashes when moving windows between monitors or
workspaces on Hyprland. This is a workaround for a Chromium/Wayland
color management conflict.
Upstream Chromium fix exists but won't reach stable for ~a month. This
provides a temporary bridge until the fix lands in stable releases.
Fixes#2384
Refs #2184
Refs: https://github.com/hyprwm/Hyprland/issues/11957
Refs: https://github.com/hyprwm/Hyprland/discussions/11961
Refs: https://issues.chromium.org/issues/40263183
Refs: https://chromium-review.googlesource.com/c/chromium/src/+/7003036
* Add migration to update existing Chromium/Brave configs with crash fix
Adds migration script to append --disable-features=WaylandWpColorManagerV1
to existing users' chromium-flags.conf and brave-flags.conf files.
The script:
- Checks if config files exist before attempting to modify them
- Uses grep to verify the flag isn't already present
- Only adds the flag and explanatory comment if needed
- Handles both Chromium and Brave configurations
This ensures existing Omarchy users get the Hyprland crash workaround
without needing to manually update their configs.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
* Fix warnings and make conditional explicit
---------
Co-authored-by: Derek Castillo <d-cas@users.noreply.github.com>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
When we call `omarchy-launch-walker` with `-w`, we get the following
error.
echo -e $'Adwaita Mono\nBerkeley Mono\nBerkeley Mono Variable\nCaskaydiaMono Nerd Font\nCaskaydiaMono Nerd Font Mono\niA Writer Mono S\nIosevka Fixed\nJetBrainsMono Nerd Font\nJetBrainsMono Nerd Font Mono\nJetBrainsMonoNL Nerd Font\nJetBrainsMonoNL Nerd Font Mono\nLiberation Mono\nNimbus Mono PS' | omarchy-launch-walker --dmenu --width 295 --minheight 1 --maxheight 600 -p Font… -w 350 -c 3
Error parsing option -w
Instead, we now pass `--width`, to properly override the default
`--width 295` for fonts.
Closes: https://github.com/basecamp/omarchy/issues/2404
Signed-off-by: Luke Hsiao <luke@hsiao.dev>
* alacritty.toml wity proper bg and fg
background = "#1e1e2e"
foreground = "#cdd6f4"
are the proper colors for terminal bg and fg when themeing with Catppuccin
* Update alacritty.toml with proper Catppuccin Mocha colors
* vscode.json to use Proper Catppuccin Mocha
* Add firmware update script and include in update process
* typo
* type 2
* add sudo
* Add firmware update option to update menu
* Remove firmware update command from update process
* Lazy-install firmware updater
* Move option down and change icon
* Only lazy install if missing
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix placeholder position and adjust fail text on lock screen
* Expand input field to fully fit fingerprint authentication failure message
* Better explain what's happening
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix: remove theme-flag
* migration: walker 1.0.0-beta
* Fixups
* Add elephant and walker
* Update for new layout.xml
* Clean up some styling
* add unicode and todo providers
* remove default quick activate keybinds
* Update keybinds and remove defaults to prevent conflict
* Fix menu option
* Fixes
* Remove
* Update height
* Add elephant service
* Remove from hyprland
* Restart service now
* Trim
* Update height
* Fix keybindings style
* Fix install location
* Add walker restart
* Fix indention
* Fix indention
* Fix indention
* Fix indention
* Advance to present
* Need to refresh to bring over the new config
* style adjustments
* Correct the installation of the 1pw policy installer
* Skip the prebuilt for a second while we test
* Need libyaml to build ruby
* No longer needed, gcc-15 compatibility has been added
* Let's just stick to the official path
* GCC15 compatibility for Ruby has been achieved
* No longer necessary
The other mise option is set on Ruby on Rails install
* Added ZLS - Zig's Language Server when installing Zig (#1718)
* style adjustments
* styling changes
* add only_search_title
* css adjustments to fix broken styles
* Be tall again
* Remove for future variable height menu
* Update height / width params
* fix: remove theme-flag
* Fix spacing..again
* Remove service and add launch util
* Fix
* fix: wrong emojis flag
* remove flag, its dmenu only
* set min content width to prevent flickering if the item list contains shorter items
* Remove unused service
* Megakill needed
* Remove any old themes too
* Remove min-width
* Style adjustments
* changes for walker/elephant updates
* Match current width
* Add a little more space between icon and text
* fix: bluetooth find bind
* remove archlinux provider, fix migration with missing providers
* fix: css import
* Fix theme path
* fix: add new error label to layout
* Fix migration
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: DoKoB0512 <123281216+DoKoB0512@users.noreply.github.com>
* Change DM to SDDM
* Move to custom named UKI
* Skip creation on Mac
* Add entry to make sure VSCode uses gnome keyring
* Fix order for UKI generation
* Limine only
* BTRFS only
* Add checks for possible issues
* Remove
* Add verification to omarchy-pkg-add and speed up installs
* Use omarchy-pkg-add
* Update files to include dirs
* Fix relaunch
* use helix instead of hx in omarchy-launch-editor
fixes#1739
* add both hx and helix
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Prevent false positives when another window title contains 'Obsidian'.
The helper script matches with a case-insensitive regex against class+title,
so anchoring to '^obsidian$' ensures we only target the Obsidian window class.
Before: SUPER+O could focus a YouTube webapp/FreeTube titled 'Obsidian is great!'.
After: SUPER+O focuses Obsidian or launches it if not running.
* Configure grouping functionality
* Change google message shortcut to CTRL + SUPER, fix typo
* Standardize all group hotkeys around SUPER ALT
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix comment
* Use systemd-resolved's stub resolver
On first run, symlink systemd-resolved's resolver into /etc/resolv.conf
Matches migration 1754984623
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Move common mako settings to `core.ini`
* Use monospace font, set font size in px
* Increase line height
* Adjust paddings
* Add 10px width so the Welcome notification fits on one line
* Remove extra whitespace
* Remove extra whitespace, adjust wording
* Improve text-to-bg contrast in Tokyo Night
* Follow the system font
* Use sans-serif font
* Restore width and extra space characters
* Adjust vertical paddings
* Remove `omarchy-restart-mako` (no longer needed)
* fix: change uwsm app to uwsm-app for performance
* Do not run uwsm-app in parallel as it's not supported
* Fix comment
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
This resolves the issue where extra arguments like Chromium's --profile-directory were ignored when launching a web app via omarchy-launch-or-focus-webapp.
The script now uses 'shift' to isolate the window pattern ($1) and passes all remaining arguments ($@), which include the URL and flags, to the omarchy-launch-webapp function.
Closes#1977
* Imitating VSCode omarchy-theme-set
* Changed VSCode theme setter take arguments to Cursor theme setter could call it.
* All omarchy commands are in path
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: @adelplace
* Fix comment
* fix(presentation-terminal): Ensure consistent ASCII logo alignment
The presentation terminal's ASCII logo, displayed by 'omarchy-show-logo',
would misalign if the user had a non-default font size set in their
global Alacritty configuration.
This change fixes the issue by explicitly setting the font size to 9
for this specific terminal instance using the flag.
This approach guarantees correct rendering of the logo without overriding
the user's personal font preferences for their regular terminal sessions.
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix comment
* Adjust database installation message to only one
Follow up to e260d28f43
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix comment
* added gnome-disk-utility next to nautilus in install/omarchy-base-packages
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Change DM to SDDM
* Move to custom named UKI
* Skip creation on Mac
* Add entry to make sure VSCode uses gnome keyring
* Fix order for UKI generation
* Limine only
* BTRFS only
* Add MVP variant of nvim switcher
* Update nvim configs
* Remove config
* Add migration for the new live themeing
* Fix plugin
* Remove theme
* Update to actually work
* Make it faster
* Fix quirks
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Turn a fresh Arch installation into a fully-configured, beautiful, and modern web development system based on Hyprland by running a single command. That's the one-line pitch for Omarchy (like it was for Omakub). No need to write bespoke configs for every essential tool just to get started or to be up on all the latest command-line tools. Omarchy is an opinionated take on what Linux can be at its best.
Omarchy is a beautiful, modern & opinionated Linux distribution by DHH.
Read more at [omarchy.org](https://omarchy.org).
## License
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
# Launch a floating terminal with the Omarchy logo presentation, then execute the command passed in, and finally end with the omarchy-show-done presentation.
# Overwrite all the user configs in ~/.config/hypr with the Omarchy defaults.
omarchy-refresh-config hypr/autostart.conf
omarchy-refresh-config hypr/bindings.conf
omarchy-refresh-config hypr/envs.conf
omarchy-refresh-config hypr/input.conf
omarchy-refresh-config hypr/looknfeel.conf
omarchy-refresh-config hypr/hyprland.conf
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.