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>
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.
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.
* Install libyaml before attempting to install ruby
* Use omarchy helper
And unsafe -Sy
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* 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 <david@hey.com>
* Themeing for ghostty
* Fix theme name
* Set font for ghostty too if its on the system
* Use correct class for ghostty styling
* Uniformity
* Need to keep this alacritty until we have it fully working for other terminals
* Stick to alacritty so we can control font size
* Stick with alacritty for system terminals
* Add menu to install different terminal
* Use taha approved colors
* update to use $TERMINAL instead of alacitty
* revert
* move env to hyprconfig
* Only set if we have alacritty
* Add launcher for wifi settings so it can be used in mako config
* Set system terminal in config/uwsm/env to ensure its available everywhere
* Ensure that $TERMINAL is available after update
* Didn't work to have the TERMINAL env in Hyprland
* Configure terminal settings against a full set of options
* Make About usable with any terminal
* One more alacritty-specific setting
* Use the new wifi launcher bin
* Only require the update/relaunch if TERMINAL isn't already set in config/uwsm/env
* More alacritty usage converted to $TERMINAL
* Use new launcher
* Change scrolltouchpad input rule to apply to all terminals
* Its a singular match
* Take current font from waybar, in case we don't have alacritty
* Only set font for alacritty if its being used
* Get ready to be terminal agnostic on the refresh of config too
* Use new launcher
* Note the last reliance we have on alacritty
* Make theme setting for terminals generic and include kitty
* Set font_family for kitty as well
* Quiet grep
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
The branch message had an incomplete ANSI escape sequence that was
cutting off the first character and breaking the display formatting.
Before: \eUsing branch: master (displayed as 'sing branch: master')
After: \e[32mUsing branch: master\e[0m (displayed as 'Using branch: master' in green)
This fix ensures the complete message is displayed with proper green coloring.
* exit if screensaver not in focus
* Extract explaining function
* Consistent function style
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* 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>
* Copy current URL to clipboard with browser extension
In Omarchy web apps it's impossible to get the curent URL to share it in
another applications. This commit adds a browser extension which is
included by default via the chromium-flags.conf config. With this
extension you can get the current URL via a keyboard shortcut.
The default shortcut for getting the current URL is `Ctrl+Shift+L`, this
shortcut can be changed via this page: chrome://extensions/shortcuts.
* Change the shortcut to Alt+Shift+L
In my testing and research I found out that not all shortcuts
are available as suggested_key. We still want to use L because
that's easy to remember because we associate it with the location bar.
* Improve notification language
* Move it to just Alt + L since that's not used
Better mirrors Ctrl + L as well
* Move this under default/chromium
* Fix symlink
* It didn't like Alt+L alone after all
---------
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>
* First swing at t2 support
* Remove unnecessary enables
* Trim up
* Trim
* Need to use official mirror until we have our own setup
* Use GitHub mirror for now
---------
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>
* Update waybar config with proper sized mute icon
Update waybar config with proper sized mute icon - same size as the two volume indicators. Current mute icon is smaller.
* Update config.jsonc
* Feed the image folder to the Image Viewer so the next/previous image navigation works
When double clicking an image in Nautilus, my expectation is that I can navigate to the other images in the folder with the arrow keys.
This doesn't happen currently because the imv command receives only the filename as a parameter.
However, if we use:
`imv -n /myfolder/image.jpg /myfolder`
works becasue we're opening the folder starting at the image given by the -n parameter.
* add migration for imv.desktop update
* Simplify migration
---------
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>
* Create ~/Work with ./bin in the path for contained projects
* Split out the mise work setup as its own configurator
* Fixup the migration to reuse config logic
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* macbook: enable internal keyboard at LUKS by loading applespi in initramfs
- Detect T1 models (MacBookPro13,2/13,3 and 14,2/14,3)
- Add mkinitcpio drop-in: MODULES+=(applespi intel_lpss_pci spi_pxa2xx_platform)
- Add HOOKS+=(keyboard) for early input
- Prefer in-kernel applespi; fallback to DKMS via AUR helper if needed
* macbook: expand SPI keyboard support to include 12-inch MacBook
- Add support for MacBook12,1 (12-inch MacBook 2015-2017) with SPI keyboards
- Rename configuration from T1-specific to SPI-keyboard-specific terminology
- Update mkinitcpio drop-in filename: omarchy-macbook-t1.conf -> omarchy-macbook-spi.conf
- Clarify that this fix targets SPI keyboard interface, not just T1 chip models
- Improved detection: covers all models with SPI keyboards needing applespi
- Update comments and messages to reflect broader hardware support scope
* Integrate MacBook SPI keyboard detection into limine-snapper.sh
- Move MacBook detection from separate hardware script into limine-snapper.sh
- Add comprehensive error handling with systemd journal logging
- Ensure persistent MacBook SPI module loading for every boot
- Remove redundant separate macbook-keyboard.sh file
- Consolidate terminal and log output using tee with process substitution
* Add support for MacbookPro13,1 and 14,1 models
* change log tags
from “omarchy” to “macbook” which is more appropriate.
* Slim down and rearrange code
* Unrelated change
* More specific naming and make sure its actually run
---------
Co-authored-by: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com>
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>
* 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>
Replace Google DNS fallback with Quad9 (9.9.9.9, 149.112.112.112)
for better privacy consistency. Users choosing Cloudflare likely
value privacy, so Quad9 is a more appropriate fallback than Google.
As discussed in #752 and approved by @dhh in #1043.
Implements DHH's requirement to ensure wlan0 and ethernet interfaces
respect the DNS configuration while excluding docker/loop interfaces.
When using Cloudflare or Custom DNS:
- Sets UseDNS=no in DHCPv4 sections
- Sets UseDNS=no in IPv6AcceptRA sections
- Only configures primary interfaces (en*, eth*, wl*)
- Restarts both systemd-networkd and systemd-resolved
When using DHCP:
- Removes UseDNS=no to allow DHCP provided DNS
- Restores default behavior for all interfaces
Script size increased from 58 to 89 lines to properly handle all
network interfaces as requested.
* Add omarchy-setup-cloudflare-dns script
Addresses issue #745 by providing user choice for DNS configuration.
Features:
- Makes Cloudflare DNS opt-in instead of forced default
- Preserves local development environments with DHCP option
- Includes custom DNS configuration support
- Provides backup/restore functionality
- Follows Omarchy naming conventions
Fixes#745
* Address DHH feedback on DNS configuration script
Changes based on maintainer review:
- Rename script to omarchy-setup-dns (more generic name)
- Remove /usr/local/bin installation (use PATH instead)
- Add migration to reset automatic Cloudflare DNS to DHCP
- Force DNS on physical interfaces only using systemd-networkd
- Exclude docker/virtual interfaces from forced DNS
Fixes local development environment issues while making Cloudflare DNS opt-in.
* Use timestamped backups and remove restore function
Follow Omarchy backup standards by using timestamped backup files
instead of fixed names. Remove restore function since backups now
have unpredictable names - users can manually restore if needed.
This matches the pattern used in omarchy-refresh-config.
* Add DNS over TLS support for enhanced security
Enable opportunistic DNS over TLS when using Cloudflare DNS. This
encrypts DNS queries when possible while falling back to regular DNS
if TLS isn't available, providing security without breaking compatibility.
Thanks to the suggestion in #696 for highlighting this improvement.
* Add certificate validation for DNS over TLS
The DNS servers now include their proper hostnames for certificate
validation (cloudflare-dns.com and dns.google). This ensures we're
actually talking to the real DNS servers when using encrypted DNS,
not some imposter.
Completes the implementation suggested in #696.
* Prevent backup file accumulation
Clean up old backup files before creating new ones to prevent the
accumulation of .bak.* files over time. Keeps only the most recent
backup while maintaining the timestamped naming pattern.
This ensures the system doesn't get cluttered with countless backup
files from repeated script runs.
* Simplify DNS setup script per review feedback
Reduced script complexity from 227 to 58 lines while maintaining core functionality.
Removed unnecessary backup system and systemd-networkd configuration.
Kept essential features: Cloudflare DNS with TLS, DHCP mode, and custom DNS option.
Script now follows established Omarchy conventions for simplicity and size.
* Allow setup from omarchy-menu
* Integrate into Omarchy Menu
* Align parameter
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
This will allow us to change GitHub's default branch to `dev`, so that
PRs will target the correct branch by default, but new installations
will still default to using the stable `master` branch.
* Add Omarchy icon to waybar
* Add step to fonts.sh to install omarchy icon font
* Style and fixup
* Fixup installation of the omarchy font
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Abstract default browser to omarchy-browser (a wrapper)
* Fix the omarchy-browser command as it used to loop. Extract info from the browser .desktop files.
* Clean up and fix bugs
* Cleanup unused change
* Fix indentation
* Separate out omarchy-browser from omarchy-webapp so that we don't break webapps for browsers other than Chromium or Google Chrome.
* Fix incorrect function call
* Add a migration script
* Migration script fixes
* Simplify the browser and webapp commands. Rename commands to align with launch terminology.
* Add support for Microsoft Edge, Opera and Vivaldi
* Fix errors
* Remove --name and --class -- They're not respected when --app is defined
* We don't ship with Chrome
* Simplify launchers
* Use launch commands everywhere
---------
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
* Persist urgent notifications
* Create omarchy-snapshot
* Create snapshot before pulling
* Extract alternative bootloader configs
* Add limine-snapper config
* Fix check
* Update login scripts
* Make chroot friendly
* Extract cmdline instead of using blkid due to error
* Add restore command
* Export $TERMINAL so we get clickable restore notifications
* Remove sync -- causes errors...we have nothing to sync yet
* Executable
* Minor cleanup and compatibility for non-ISO
* Give login its own section
* Give no-arg guard and inline commands
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* feat: Add notification status indicator to waybar
Adds a visual indicator in the waybar to show when notifications are silenced (do-not-disturb mode).
- Shows a red dot when notifications are disabled
- Shows a dimmed dot when notifications are enabled
- Clicking the indicator toggles do-not-disturb mode
- Syncs with the existing SUPER+CTRL+, keyboard shortcut
This provides immediate visual feedback about notification status, making it easier for users to know when they've silenced notifications.
* feat: Convert to unified status cluster that only shows active states
- Only displays indicators when states are actually active
- Supports multiple status types: DND, night light, screen recording, idle lock
- Uses distinct symbols: • for DND, ◐ for night light, ● for recording, ◯ for idle lock
- Completely hides module when no states are active (no visual clutter)
- Extensible design for future status indicators
- Improved performance with better error handling
* Implement lightweight hybrid status monitoring
* Enhance notification status cluster with modular design
* Add waybar configuration for status cluster
* Add recording click handler and fix process detection
- Add wl-screenrec detection for non-nvidia systems
- Add click handler to start/stop recording
- Fix idle lock toggle functionality
* minor alignment tweaks
* improved recording detection to be more specific
* Rely on Omarchy bin in PATH and lower interval to feel more snappy
* Seperate out screencording stop so it doesn't start when trying to stop OBS
* Add migration to add the status notifications
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Include VerbosePkgLists for better pacman -Syu
* Add migration for the verbose package lists
* Amend comment
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add omarchy icon to fastfetch config
* Add migration file for fastfetch update
* Use consistent branding placement for spots you can change
* Allow editing the about icon
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add SUPER + MUTE for audio output switching
* Fix migration bc stupidness
* Simplify implementation and ensure the new sink is not muted
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Use power button to open omarchy-menu system
* Added migration script
* setsid so it doesn't exit with the terminal
* Spacing
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix multi-package removal in omarchy-pkg-remove
The script already had multi-selection enabled with --multi flag,
but wasn't handling multiple selections correctly. When users
selected multiple packages with Tab, they wouldn't all get removed.
Fixed by using xargs to properly convert newline-separated package
names from fzf into individual arguments for yay.
Fixes#805
* Add multi-select explainer
* Fix multi install like we did for remove
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add safeguard to prevent omarchy-update from beginning an update during an AUR ddos
* Fix spacing
* Update omarchy-update
Return a non-zero error code when failing to reach AUR
* Add user-agent string
Good courtesy that makes it easier for the AUR folks to interpret the HEAD requests and tell us if there is an issue.
* Ensure entire icon will fit
* Migration to fit entire icon for update-available in waybar
* feat: add precise media control shortcut
* Fix a handful of typos
* Add state based app restarts for migrations (#637)
* Look for app restart state files and restart them after update
* Convert existing migrations to set states
* Revert "Convert existing migrations to set states"
This reverts commit 1eb8a56b07.
* Fix waybar update icon spacing (#672)
* Fix waybar update icon spacing
Remove clock from margin rule and add custom-update to prevent horizontal cutoff and reduce excessive spacing between clock and update icon.
* making the update icon smaller, looks better in the center
* Fixed this in CSS instead
* We now have a global $OMARCHY_PATH
* Fix screen recording on Intel graphics (#669)
* Fix screen recording on Intel graphics
Use wf-recorder for Intel graphics instead of wl-screenrec due to VAAPI compatibility issues that prevent recording from starting.
* combining greps for nvidia and intel graphics
* Update omarchy-cmd-screenrecord
* Force working version of uwsm until we get the fixed one from upstream
* Split upgrading system packages into two steps
* uwsm was already fixed upstream with 0.23.2
* Add burst limit to login to prevent endless retries (#690)
* Fix kernel update detection for alternative kernel variants (#585)
* Fix omarchy-update kernel update message to support alternative kernel variants
* fix: omarchy-update-restart kernel update message to support alternative kernel variants
* Add elan to the keywords used to detect if a fingerprint reader exists (#692)
* fix pgrep and pkill (#687)
* Make a function to create a smaller webshare version
* Set sudo max tries to 10, binary for easy lockout reset (#686)
* set sudo max fail count to 10, bin for easy reset
* Slim down
Let the failure just fail in the shell
* Rename to be more descriptive
* No need for the 00- prefix
* Add migration to raise sudo try limit
---------
Co-authored-by: Manuel <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Install `gum` prior to the preflight guard (#684)
* Use `read` instead of `gum` in the preflight guard
* Revert "Use `read` instead of `gum` in the preflight guard"
This reverts commit 759dbb70454dccc27b78b198bf077e076750fefc.
* Install `gum`, if required, at the beginning of `install.sh`
* `gum` is already installed by the `presentation.sh` stage
* Use existing structure
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Always install `base-devel` in case `yay` needs to build a package (#710)
* chore: Enable Walker list cycling (#709)
Enable the `cycle` behaviour for Walker lists; this allows one to
quickly jump from the default-selected first item in a list, to the
last item, simply by pressing the "up" arrow key (or other key
sequence bound to "previous").
Refs: https://github.com/abenz1267/walker/wiki/Basic-Configuration
* Add one wallpaper for nord (#707)
* Use `pacman` instead of `yay` to install `gum` (#705)
* Direct access to Walker clipboard + emojis with hotkey
* Turn off the walker service until the memory leak is fixed
See https://github.com/basecamp/omarchy/issues/698
* Can't use clipboard module when Walker is not running as a service
See https://github.com/basecamp/omarchy/issues/698
* pacman needs sudo
* Add disable chaotic aur env flag (#746)
* Add missing modifier combinations to omarchy-menu-keybindings (#715)
While these aren't currently used directly in the Omarchy code, when the
user adds custom bindings they are not properly displayed by the
omarchy-menu-keybindings script.
Co-authored-by: Chris Miller <chris@diddado.com>
* Make this resilient to file already being removed
* Use omarchy-chromium-bin to give live theme changes
* Transcoding is really from any image format
* Include Brave in the same opacity treatment as chromium
* Only ask for the identification if it has not already been provided
* Need to make the new disk writeable too
* Stop using tte until package is fixed
* Use host's DNS resolver in Docker containers (#812)
* Symlink /etc/resolve.conf to systemd-resolved's stub
Since systemd-resolved is managing the DNS configuration, ensure that
/etc/resolv.conf uses it.
* Use systemd-resolved from Docker containers
* No longer needed now that we have .config/chromium-flags.conf
* Add brave-flags.conf as a new default to ensure that anyone using Brave as their browser runs it under wayland
* Must restart waybar when timezone is changed to have it reflect immediately
* Add migration for adding .config/brave-flags.conf
* Only do system package updates if there is a network connection
This prepares us for offline ISO install
* Catch both cases of brave-browser identification
* Skip pinta until we can resolve the certificate issue on manual build
cc @Torxed
* Add dust to reveal used space
Co-authored-by: @tobi
* Add minimal starship prompt to terminal
Co-authored-by: @tobi
* Always noconfirm
* If NOT starship, install it
* Add `--force` when enabling ufw to bypass prompt (#794)
* Add current theme to fastfetch config (#889)
* Turn off tte until the package is fixed
* Turn off auto-launching screensaver until tte is fixed
* Add current theme to fastfetch config
fastfetch has a module for displaying colors, which is often used by
default. It shows the current colors in use by the terminal. Given that
themes are core to Omarchy, I thought it made sense to show the current
theme in fastfetch. I've also added a compressed version of the palette
(similar to the circle config of the colors module).
* Add migration
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Don't fail in case chromium package is not there
In case another package has been used to provide chromium
* No prefix needed
* Lines up better with the new starship prompt
* fix: missing python-poetry-core make Omarchy install fail (#862)
* fix: missing python-poetry-core
* added migration
* Flesh out migration to fix all tte issues
* Turn TTE back on
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add color to install / remove to differentiate (#858)
* Add color to install / remove to differentiate
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Ensure Zoom is not made transparent
* Ensure the directory is present
* No double logo
* fix: add python-object to make installation of Omarchy work (#806)
* Explicitly add python-object to make powerprofile work
* added migration
* Explain the why, not the how
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Turn screensaver back on now that we have fixed the tte install
* Add migration to turn on screensaver again
* Even more minimal and theme matching
* Use italic instead of bold for git branch
* Minimal git status too
* Correct spacing
* Less aggressive untracked icon
* Consistent color before the >
* Stick to color
* Really just stick to one color everywhere
* Force the link
* Make resilient towards it already being the same file
* Offer install scripts a way to know if they're in chroot
* Different iwd needed on chroot install
* Address installation inside a chroot
* Can't reuse when needing to set for user
* Simplify
No other args
* Get the latest indexes if online
* Now available as an official package instead of AUR
* Add single server for mirrorlist for now
* Try a different mirror for testing and need to use pacman for pkg update before we have yay
* Use same shebang as everywhere
* Let it roll for testing
* Add debug to failure
* Force wifi to unblock when we go to set it up
Wifi can sometimes get turned off by computers when running on low power
or in some sleep modes
* Fix positive exit
* Put chroot provision into its own preflight
* Restore to the global mirror
* Clean up after ISO install without sudo
* Reduce ceremony -- a start and an end is enough
* If we installed from the installer, we should remind user to unplug USB
* Extra CR not needed
* Bring uwsm out of the doghouse
* Ensure latest uwsm is installed now that we have lifted the lock
* Fix JetBrains IDEs flickering and focus issues in Hyprland (#888)
* Fix JetBrains IDEs flickering and focus issues in Hyprland
Add window rules to prevent tooltip and tab dragging flickering issues
in JetBrains IDEs when running under Hyprland compositor.
* Fix JetBrains IDEs flickering and focus issues in Hyprland
Add window rules to prevent tooltip and tab dragging flickering issues
in JetBrains IDEs when running under Hyprland compositor.
Uses the new windowrule syntax (Hyprland v0.48.0+) instead of deprecated windowrulev2.
# Conflicts:
# default/hypr/apps/jetbrains.conf
* Fix JetBrains floating popup size issue in Hyprland
* Style
---------
Co-authored-by: Mike Veerman <mike@nonect.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Don't need wget, since curl is already part of arch
* This is still a problem
* Feature/screensaver toggle instead of launch (#784)
* sceensaver-toggle and run if enabled using state file
* replace commands in menu and hyperidle
* migration file
* sed corrections
* added backup of changed files in migration
* review comments implemented
* hypridle config restore
* Use normal path style
* Use nerdfont icon for notification
* Make executable
* Allow a force start of screensaver so it can run even when disabled when manually triggered
* Add screensaver to system menu now that the toggle actually means toggle
* Known path without expansion spaces
* It should be an error return when it doesn't start
---------
Co-authored-by: Manuel <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add 60 second inactivity timeout to Walker launcher (#701)
* Add 60 second timeout to Walker launcher
This will close the launcher after 60 seconds of inactivity.
* Update 1754929737.sh
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* adding mongodb docker install (#972)
* Add suggestion for eu keyboard layout for iso
Closes#937
Co-authored-by: @chriopter
* Add Super + Tab to go forward through workspaces and Super + Shift + Tab to go backwards
Co-authored-by: @rafaelbernard
Closes#652
* move import to bottom (#917)
* Add missing package for Intel Graphics Card based device (#910)
* Add missing package for Intel Graphics Card based device
* Add migration to add the missing package
* Fix USB autosuspend causing peripheral disconnection issues (#906)
* Fix USB autosuspend causing peripheral disconnection issues
Add configuration to disable USB autosuspend by setting usbcore.autosuspend=-1
in modprobe.d configuration. This prevents USB devices from being automatically
suspended which can cause keyboards, mice, and other peripherals to disconnect
unexpectedly.
* Add migration to apply autosuspend to existing systems
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* retry cmd on failed install should take into consideration bare mode (#904)
* retry cmd on failed install should take into consideration bare mode
* A little duplication beats too much indirection
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Switch from lazydocker-bin to lazydocker
It's now in the official repo as a compiled version!
* add reverse window cycling with cycleprev (#874)
* add reverse window cycling with cycleprev
* Include the bringactivetotop fix
---------
Co-authored-by: observable <x@observable.art>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Stop using SIGUSR1 with Waybar to prevent stacking
Closes#873
* Omarchy install - capture install log (#868)
* Omarchy install log
* Slim down the logging setup a bit, put it in a known directory, tell user about it
* Stick to what was
* Not needed here
* Prefer the duplication
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Allow customizing the screensaver logo (#863)
* check for custom screensaver logo or fall back to default
* move logo location to omarchy config folder
* fix missed location check
* add menu item to copy logo.txt and open in editor
* move to setup menu
* Just always use a user-editable screensaver.txt file
* No longer needed
* Be clearer
---------
Co-authored-by: Christopher Moore <cmoore@yozu.co.uk>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Visual improvements for pkg-install and pkg-remove (#852)
* Shorten it up a bit
* Extract precondition into its own file and use it for the package installer too
* But don't actually fail unless it is down!
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Michal Zaborowski <zaborowskimchl@gmail.com>
Co-authored-by: Richard Macklin <code@rmacklin.dev>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: Alan Sikora <alansikora@gmail.com>
Co-authored-by: Eric Swanson <960576+ericrswanny@users.noreply.github.com>
Co-authored-by: not-NEK0 <86556080+not-NEK0@users.noreply.github.com>
Co-authored-by: Maximiliano Guzenski <maxguzenski@gmail.com>
Co-authored-by: Manuel <manuel.ramsaier89@gmail.com>
Co-authored-by: Manuel <manuel.ramsaier@gmail.com>
Co-authored-by: Dylan Bridgman <light@ether.org.za>
Co-authored-by: Simon Dawson <spdawson@gmail.com>
Co-authored-by: Swarnim <134050970+Swarnim114@users.noreply.github.com>
Co-authored-by: Bruce <hi+gh@bruceroettgers.eu>
Co-authored-by: Chris Miller <github@reaperville.com>
Co-authored-by: Chris Miller <chris@diddado.com>
Co-authored-by: Kevin McConnell <kevin.mcconnell@gmail.com>
Co-authored-by: Gary Rennie <gazler@gmail.com>
Co-authored-by: Shigeto Kumagai <shk@all.daynight.jp>
Co-authored-by: David Anderson <kataqatsi@gmail.com>
Co-authored-by: MikeVeerman <mike.veerman@gmail.com>
Co-authored-by: Mike Veerman <mike@nonect.com>
Co-authored-by: Rob Zolkos <rob@zolkos.com>
Co-authored-by: Valberto Enoc <valbertoenoc@gmail.com>
Co-authored-by: Saeed Vaziry <61919774+saeedvaziry@users.noreply.github.com>
Co-authored-by: Brosseau Valentin <c4software@gmail.com>
Co-authored-by: jw <jw@codasite.ai>
Co-authored-by: michaldziurowski <mdziurowski@gmail.com>
Co-authored-by: Observable Art <123117871+iamobservable@users.noreply.github.com>
Co-authored-by: observable <x@observable.art>
Co-authored-by: Chris24680 <moore12321@gmail.com>
Co-authored-by: Christopher Moore <cmoore@yozu.co.uk>
Co-authored-by: Luis Daniel Casais <71148501+rajayonin@users.noreply.github.com>
* check for custom screensaver logo or fall back to default
* move logo location to omarchy config folder
* fix missed location check
* add menu item to copy logo.txt and open in editor
* move to setup menu
* Just always use a user-editable screensaver.txt file
* No longer needed
* Be clearer
---------
Co-authored-by: Christopher Moore <cmoore@yozu.co.uk>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Omarchy install log
* Slim down the logging setup a bit, put it in a known directory, tell user about it
* Stick to what was
* Not needed here
* Prefer the duplication
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* retry cmd on failed install should take into consideration bare mode
* A little duplication beats too much indirection
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix USB autosuspend causing peripheral disconnection issues
Add configuration to disable USB autosuspend by setting usbcore.autosuspend=-1
in modprobe.d configuration. This prevents USB devices from being automatically
suspended which can cause keyboards, mice, and other peripherals to disconnect
unexpectedly.
* Add migration to apply autosuspend to existing systems
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add 60 second timeout to Walker launcher
This will close the launcher after 60 seconds of inactivity.
* Update 1754929737.sh
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* sceensaver-toggle and run if enabled using state file
* replace commands in menu and hyperidle
* migration file
* sed corrections
* added backup of changed files in migration
* review comments implemented
* hypridle config restore
* Use normal path style
* Use nerdfont icon for notification
* Make executable
* Allow a force start of screensaver so it can run even when disabled when manually triggered
* Add screensaver to system menu now that the toggle actually means toggle
* Known path without expansion spaces
* It should be an error return when it doesn't start
---------
Co-authored-by: Manuel <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix JetBrains IDEs flickering and focus issues in Hyprland
Add window rules to prevent tooltip and tab dragging flickering issues
in JetBrains IDEs when running under Hyprland compositor.
* Fix JetBrains IDEs flickering and focus issues in Hyprland
Add window rules to prevent tooltip and tab dragging flickering issues
in JetBrains IDEs when running under Hyprland compositor.
Uses the new windowrule syntax (Hyprland v0.48.0+) instead of deprecated windowrulev2.
# Conflicts:
# default/hypr/apps/jetbrains.conf
* Fix JetBrains floating popup size issue in Hyprland
* Style
---------
Co-authored-by: Mike Veerman <mike@nonect.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Explicitly add python-object to make powerprofile work
* added migration
* Explain the why, not the how
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix: missing python-poetry-core
* added migration
* Flesh out migration to fix all tte issues
* Turn TTE back on
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Turn off tte until the package is fixed
* Turn off auto-launching screensaver until tte is fixed
* Add current theme to fastfetch config
fastfetch has a module for displaying colors, which is often used by
default. It shows the current colors in use by the terminal. Given that
themes are core to Omarchy, I thought it made sense to show the current
theme in fastfetch. I've also added a compressed version of the palette
(similar to the circle config of the colors module).
* Add migration
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Symlink /etc/resolve.conf to systemd-resolved's stub
Since systemd-resolved is managing the DNS configuration, ensure that
/etc/resolv.conf uses it.
* Use systemd-resolved from Docker containers
While these aren't currently used directly in the Omarchy code, when the
user adds custom bindings they are not properly displayed by the
omarchy-menu-keybindings script.
Co-authored-by: Chris Miller <chris@diddado.com>
Enable the `cycle` behaviour for Walker lists; this allows one to
quickly jump from the default-selected first item in a list, to the
last item, simply by pressing the "up" arrow key (or other key
sequence bound to "previous").
Refs: https://github.com/abenz1267/walker/wiki/Basic-Configuration
* Use `read` instead of `gum` in the preflight guard
* Revert "Use `read` instead of `gum` in the preflight guard"
This reverts commit 759dbb70454dccc27b78b198bf077e076750fefc.
* Install `gum`, if required, at the beginning of `install.sh`
* `gum` is already installed by the `presentation.sh` stage
* Use existing structure
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* set sudo max fail count to 10, bin for easy reset
* Slim down
Let the failure just fail in the shell
* Rename to be more descriptive
* No need for the 00- prefix
* Add migration to raise sudo try limit
---------
Co-authored-by: Manuel <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Fix omarchy-update kernel update message to support alternative kernel variants
* fix: omarchy-update-restart kernel update message to support alternative kernel variants
* Fix screen recording on Intel graphics
Use wf-recorder for Intel graphics instead of wl-screenrec due to VAAPI compatibility issues that prevent recording from starting.
* combining greps for nvidia and intel graphics
* Update omarchy-cmd-screenrecord
* Fix waybar update icon spacing
Remove clock from margin rule and add custom-update to prevent horizontal cutoff and reduce excessive spacing between clock and update icon.
* making the update icon smaller, looks better in the center
* Look for app restart state files and restart them after update
* Convert existing migrations to set states
* Revert "Convert existing migrations to set states"
This reverts commit 1eb8a56b07.
* omarchy-version alias
* instead of alias, created command omarchy-version
* remove previously added alias, use omarchy-version command, instead
* set OMARCHY_PATH in the script
* updated OMARCHY_PATH
* Fix missing default PHP extensions to create laravel Project
* iconv is required for Symfony project
* Add PHP only installation
* Add PHP only option in the menu
* Extract logic to avoid adding composer in the path multiple times and add Symfony
* Add missing usage
* Use the official script to install Symfony installer
* Use AUR package
* Move PHP and Composer install in function to avoid duplication.
* Add explicit usage for symfony-cli
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Added Zig because it uses "mise use" install so very easy to add-in
My first ever commit woohoo!
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add omarchy to system path
* Remove unnecessary duplicate
* Remove path def since it's global now
* Migration for system-wide path
* Remove debug code
* Refresh after update
* Add common state script
* Restart on state detected
* Set state instead
* Export own path for menu
* instead of alias, created command omarchy-version
* Revert "instead of alias, created command omarchy-version"
This reverts commit 87e45db6d5.
wrong commit to dev
* Fix font size of About so it will stay in similar size
* Add OCaml
Add OCaml according to https://ocaml.org/install#linux_mac_bsd
I included also the development environment (LSP and some tools) as I figured this would be actually omakase but I can also remove it if we want to keep it clean.
* small fix
* better pkg manager with shotcuts
* removed ctrl-d, it conflict with terminal
* reveal keybinds to user
* We don't need yayf any more now we have full integration in Omarchy menu
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* add sceensaver alacritty config file and changed screensaver cmd
* Move the screensaver config into defaults
Since its not meant to be user edited
---------
Co-authored-by: Manu <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add Osaka Jade Theme
* Use jpg for bg for lower size with no quality difference
---------
Co-authored-by: Justin Lowry <j.lowry@hey.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Add Osaka Jade Theme
* Use jpg for bg for lower size with no quality difference
---------
Co-authored-by: Justin Lowry <j.lowry@hey.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* fix: Use dynamic bindings list in omarchy-menu-keybindings
We can use `hyprctl binds` to get a dynamic list of the currently-set
key bindings. This allows for a custom user configuration that is
split into arbitrary config files, and which makes use of `unbind` to
remove default Omarchy key bindings.
* chore: Support optional description for key bindings
If the description is present, use it in the key
bindings menu, instead of displaying some version
of the dispatched command.
* chore: Add some key binding description strings
* install hyprsunset when installing other hypr packages
* add hyprsunset to autostart
* add default hyprsunset config to make it do nothing by default
* waybar: add hyprsunset shortcut next to bluetooth shortcut to quickly toggle blue light filtering
* waybar: fix icon switching for hyprsunset widget
* add migration for hyprsunset
* waybar: rename "Blue Light Filter" to "Nightlight"
* waybar: make nightlight module appear next to bluetooth module
* waybar: do not include nightlight module by default
* add omarchy-toggle-nightlight script
* add default keybinding for toggling hyprsunset nightlight (SUPER + CTRL + N)
* waybar: remove nightlight module from config entirely
* waybar: remove nightlight from css
* update hyprsunset migration to skip yay install if already installed
* omarchy-toggle-nightlight: use `omarchy-restart-waybar` script instead of pkill with -SIG
* omarchy-toggle-nightlight: only restart waybar if nightlight is in the waybar config
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Create omarchy-cmd-restart-waybar
* Replace -SIGUSR2 waybar instances
* Add migration
* Add or statment in case waybar is dead
* Just use omarchy-restart-waybar
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Opacity for indicators of empty waybar workspaces
Adds opacity to the workspace indicators on waybar, if the workspace is empty. Makes the indicator appear dimmer to make it easier to find empty workspaces. Purely cosmetic UI tweak.
* Bump up opacity to be easier to read on light themes
* Add migration
* Apply grep to something!
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Update migration that looks for prefix with '.' as it matches the other prefixes in the file. Also mod walker prefix to use double quotes for consistency to match the others.
* Rename fixed migration to ensure it runs again for all users
* Update location of sourced install script
* Add OMARCHY_PATH for easy access
* Formatting
* Enable using finder in walker (#396)
* Enable using finder in walker
* capitalize name property
* Hot reload theme for quick switching
* Use fonts from AUR instead of downloading them directly like an animal
* Include the common JetBrains substitution
* Add a very basic font selector for terminal
* Give the new font selector a bit of room to breathe
* Swap Spotify GUI to TUI
* Correct package name
* Add theme update script (#391)
* Move updating themes from Updates to theme menu
Yeah, it could go in either spot, but since we have one entire category
dedicated to themes, lets keep it there.
* Revert "Correct package name"
This reverts commit 4c46c2208a.
* Revert "Swap Spotify GUI to TUI"
This reverts commit b09d2d68cd.
* Added backup timestamps to various omarchy-refresh-* files to prevent clobbering (#402)
* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times
* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation
* update plymouth logo (#406)
* Track migrations via state files to avoid running migrations that have already been performed. (#411)
* Just use set -e instead of manually checking for return values
* Fix migration
* Unused
* Migrate fonts to packages
* No longer needed
* Use fd for better performance on walker finder
* Add walker config refresh to enable the finder
* Dropbox is now an optional setup
---------
Co-authored-by: Shigeto Kumagai <shk@all.daynight.jp>
Co-authored-by: Mohamedsayhii <63726183+Mohamedsayhii@users.noreply.github.com>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: Andy Davis <developer.andy@gmail.com>
Co-authored-by: Taha <paprikataha@gmail.com>
* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times
* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation
Update fzf completion source path from /usr/share/bash-completion/completions/fzf
to /usr/share/fzf/completion.bash to match the actual file location on Arch Linux.
This is the case with Typora which will retain its ugly menu bar when
Hyprland does the fullscreening, but be beautifully bare when its doing
its own fullscreening. The best would be if we could make F11 work such
that the app got a shot at fullscreening first, then if it wasn't
capable, we let Hyprland do it. But not sure there's a way to do that?
* use wf-recorder instead of wl-screenrec
wl-screenrec does not support NVIDIA drivers as of now
* install wf-recorder and migration for it
* use wl-screenrec for non-nvidia and wf-recorder otherwise
* useless comment
* only use one of the screen recording features
* Make these executable
* Replace pavucontrol with wiremix (#225)
Add to install
* Revert "Replace pavucontrol with wiremix (#225)"
This reverts commit 620b397859.
* Add swayOSD to show brightness and volume status
* Add swayOSD migration
* Move swayosd from desktop to hyperlandia
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
Previously, `omarchy-update` used the timestamp of the most recent git
commit to determine which migrations are "new" and should be executed.
Unfortunately, that strategy can (and did) fail in certain scenarios. If
a migration was generated at time T1 but not merged until time T3, and
meanwhile omarchy's `master` branch was updated to a new release with
commit timestamp T2 (where T1 < T2 < T3), then anyone who runs
`omarchy-update` between T2 and T3 would end up with `last_updated_at`
equal to T2; thus, on their next `omarchy-update` it would fail to
detect the migration with timestamp T1 as a "new" migration that should
be executed.
This commit changes the strategy for detecting "new" migrations to avoid
that problem. Rather than recording the most recent commit's timestamp,
we record its SHA. Then, after pulling the new changes, we can leverage
`git diff --name-only --diff-filter=A $SHA.. migrations/*.sh`
to return precisely the list of migration files that were introduced by
our `git pull`. It doesn't matter if any of those migrations have a
timestamp that was earlier than the timestamp of the commit we started
on - we will always execute *every* migration that didn't exist before
our `git pull`!
* Change launcher from wofi -> walker
* Add migration
* More wofi -> walker locations
* Add rose pine theme
* Rename refresh script
* Minor improvements to walker + add uwsm
* Back out running as service
* Make these executable
* Add plugins dir for now to resolve open issue 355 from v0.13.0 release
* Replace pavucontrol with wiremix (#225)
Add to install
* Revert "Replace pavucontrol with wiremix (#225)"
This reverts commit 620b397859.
* Fix reference
* Add libqalculate so calc works out of the box
* Actually add libqalculate
* Re-add media
* Add catppuccin-latte
* Final cleanup
* Remove partially baked theme
* Remove failing migration
* Remove failing migration
* Fix refresh script
* Simplify css setup
* Rearrange walker theme files
* Change theme name
* Remove unnecessary file
* Clear everything
* Only worry about the config file now
* Disable load in animation for walker
* Run walker as service
* Make sure we have fresh package db
* Add keybindings theme
* Remove history
* Explain section
* Assume wofi is gone, only run if walker isn't there
* Move as the latest
---------
Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
If the worktree has conflicts after applying the user's changes from the
autostash, we should reset them before proceeding to ensure we are in
a working state. When there are conflicts, git still keeps the stash
entry, so the user will still be able to manually re-pop the stash and
resolve the conflicts after `omarchy-update` has finished.
In the case of conflicts, the output will look something like this (I've
omitted most of the normal `git pull` output, hence the `[...]`):
```
Updating 729cd6a..45b5d3e
Created autostash: 91853c4
Fast-forward
bin/omarchy | 10 +++++++---
[...]
create mode 100644 themes/tokyo-night/backgrounds/2--Milad-Fakurian-Abstract-Purple-Blue.jpg
Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.
bin/omarchy:65: leftover conflict marker
```
before proceeding with the rest of the `omarchy-update` script from a
clean state. So the user will see 1) that there were conflicts when
applying the autostashed changes, 2) that their changes are still safe
in the stash, and 3) which files (and lines) had conflict markers.
This is a minor follow-up to dcc4071979
to leverage the `--autostash` flag of `git pull` which does the same
thing we were doing in three separate commands.
This also avoids the possibility of popping something from the stash
that `omarchy-update` didn't actually stash. In other words, if the
initial `git stash` was a no-op (because there were no changes in the
working tree), it's actually not desirable for `omarchy-update` to
`git stash pop` at the end, since that potentially pops something the
user had manually stashed (we only want `omarchy-update` to pop its own
stash entry). Using `--autostash` handles this correctly.
Ref:
https://git-scm.com/docs/git-pull#Documentation/git-pull.txt---autostash
* Add main CLI interface for Omarchy
Introduces the omarchy script, providing a command-line interface with options for current version, update, and waybar configuration refresh. Includes help documentation.
* Add really cool Omarchy ASCII art to help menu in cli
* Refactor Omarchy CLI to include a TUI menu with system, theme, and tools options.
* Add .desktop for Omarchy TUI
* Make omarchy script executable
* Refactor omarchy cli and add new theme tools
* Add help menu
* Add omarchy theme remove
* Add theme installer
* Add migration to make theme management scripts executable
* Refactor theme installation script to simplify directory structure and remove unnecessary symlinks.
The script now directly clones themes into the ~/.config/omarchy/themes directory and updates paths accordingly for backgrounds and fonts.
* Update permissions for theme scripts and remove unnecessary migration file
* Refactor theme installation script to always use swaybg-next
* Remove fonts from omarchy-theme-install
* Refactor omarchy-theme-remove by swiitching to theme dir and removing unnecessary symlink checks
* Refactor theme installer to use omarchy-theme-set
* Fix Omarchy theme remove removing current theme and throwing error
* Making theme management scripts quiet
* Add theme menu for quick theme switching
* Bind theme menu
* Fix current theme being selected
* Replace omarchy-theme-next binding with theme menu
* Add omarchy-theme-set and refactor theme menu script
* Add solid black fallback if background image does not exist in current theme
* Add override to only require one network interface online
* refactor: extensible, evenly spaced waybar style.css
- Use @define-color directive to define colour variables for each theme
(@foreground for text, @background for background-color)
- apply the colour variables in the main theme config, making it more
extensible
- make waybar elements more evenly spaced with consistent margin and
padding values
- add migration to apply the above changes to existing users
* Update style.css
better pixel spacing
---------
Co-authored-by: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
* Working concept with SDDM
* Working concept without SDDM dep
* Working concept w/o SDDM and w/ UWSM
* Cleanup and UWSM tweaks
* Cleanup
* Remove call to seamless-login.sh
* Don't allow the progress to go backwards
* Add refresh to migration
* feat: Add a keyboard shortcuts helper
This commit:
* Changes keybinds to use `bindd` and adds descriptions for each one
* Changes the keybinds script to use `hyprctl binds` to inspect runtime keybinds
and generate a wofi menu to search/inspect keybinds
* Rely on 'order defined' for sorting
Using `hyprctl binds` lets us get the binds in the order they're
defined. This lets us be deliberate about what keybinds we want to show
up at the top of the presented window.
* Skip cache file for keybinds
* Strip extra newline causing double spacing
* install: explicitly install iwd
When archinstall is run using an ethernet connection, iwd will not be
installed. Explicitly install and enable the service
* Just a slight indication of the current audio volume with 3 diffrent icons
---------
Co-authored-by: Tim Culverhouse <tim@timculverhouse.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
hyprpolkit was not designed well for fingerprint authentication. It
doesn't allow you to easily deal with both fingerprints and passwords in
the same configuration.
The script attempted to perform driver selection by echoing the
`$gpu_info` variable, but the variable had not yet been populated
with the output from the `lspci` command.
This resulted in the `if` condition always failing and the driver package
incorrectly defaulting to `nvidia-dkms` for all hardware.
This commit moves the `gpu_info` assignment to before it is
referenced, ensuring the detection and selection logic works as intended.
Some layouts (like AZERTY or Bépo) do not provide direct access to number keys.
Using key codes improves compatibility across different keyboard configurations.
Additionally, check if the current theme is accessible
and loadable else, fallback to a default theme as to not
break the theme.
Signed-off-by: Pratik Karki <pratik@prertik.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).
Read more at [omarchy.org](https://omarchy.org).
## License
## License
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
Omarchy is released under the [MIT License](https://opensource.org/licenses/MIT).
# Update xdg-terminals.list to prioritize the proper terminal
cat > ~/.config/xdg-terminals.list << EOF
# Terminal emulator preference order for xdg-terminal-exec
# The first found and valid terminal will be used
$desktop_id
EOF
else
echo "Failed to install $package"
fi
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.