Compare commits

...

76 Commits

Author SHA1 Message Date
David Heinemeier Hansson
a881b7c45f Ensure Linux kernel is running preempt=full to avoid audio/linux jitter under load 2025-11-09 13:08:12 +01:00
David Heinemeier Hansson
70d15921b9 Add Super + Shift + Alt + Left/Right to move workspaces between monitors
Closes #1373, #3010
Co-authored-by: @jheuing
2025-11-09 11:37:43 +01:00
David Heinemeier Hansson
283a41c494 Add Super + Alt + PageUp/Down for tiling groups to mimic browser
More ergonomic to press than tab, but we will keep tab so not to confuse
folks who already adopted that.
2025-11-09 11:36:41 +01:00
David Heinemeier Hansson
3d10b38054 Ensure we can wake screen on both mouse and keyboard
Closes #2146
Co-authored-by: @nicoestrada
2025-11-09 11:14:32 +01:00
David Heinemeier Hansson
d33e947b99 We were already doing this! 2025-11-09 09:25:35 +01:00
David Heinemeier Hansson
79d48b4d8a Notify user that font changes require a Ghostty restart 2025-11-09 09:25:00 +01:00
David Heinemeier Hansson
4d3c02c69d Only restart if they are running 2025-11-09 09:22:48 +01:00
Dylan
e96bd085a5 Improve contrast on volume notification for Matte Black theme (#3212) 2025-11-09 08:10:12 +01:00
Rob Zolkos
64e581e5aa Use AAC audio codec for screen recordings (#3220)
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.
2025-11-09 08:08:23 +01:00
Chris Roth
694c83f518 Add binding to invoke last mako notification (#3232)
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.
2025-11-09 08:07:09 +01:00
MatyiFKBT
49308eb12a Update Helium browser in omarchy-launch-webapp (#3225)
* Update Helium browser in omarchy-launch-webapp

see https://github.com/basecamp/omarchy/pull/1945#discussion_r2401957283

* Fix browser pattern matching in launch script for helium

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-11-09 08:06:23 +01:00
Adam
26d37ca2e0 Fix: hard-coded binding for changegroupactive (#3233)
Changed default bindings for switching to a window in a group. The original values did not respect different keyboard layouts.
2025-11-09 08:02:35 +01:00
Miguel P
c92362937a Use xdg-terminal-exec in TUI installer for terminal compatibility (#3237)
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.
2025-11-09 08:01:37 +01:00
Dmytro Budnyk
7a0fa07454 Update icon URL placeholder to accept SVG format (#3253)
SVGs work just fine, changing misleading caption
2025-11-09 07:50:36 +01:00
David Heinemeier Hansson
917279bff7 Merge branch 'master' into dev 2025-11-09 07:45:37 +01:00
David Heinemeier Hansson
8350b84eee This has been swapped 2025-11-09 07:17:38 +01:00
Ryan Hughes
d9acd35ef4 Version bump 2025-11-09 00:54:44 -05:00
Ryan Hughes
044e826bb7 Merge pull request #3258 from sk4rrjin/patch-1
Update pip.conf, fix Invalid rule/parameter errors after hyprland update
2025-11-09 00:43:25 -05:00
karr
57e726f0c5 Update pip.conf, fix Invalid rule/parameter errors after hyprland update
Updated hyprland throws Invalid rule / Invalid parameter on the pip windowrule
2025-11-08 23:37:30 +01:00
David Heinemeier Hansson
06fc4db4db Merge branch 'master' into dev 2025-11-07 21:54:13 +01:00
Ryan Hughes
15b5ee92d7 Merge pull request #3234 from basecamp/hotfix-limine-conf-location
Hotfix limine.conf order sourcing causing boot errors
2025-11-07 15:50:55 -05:00
Ryan Hughes
f6aa97350e Update to prevent error 2025-11-07 15:48:45 -05:00
David Heinemeier Hansson
5192c9b687 Ensure successful ending of migration 2025-11-07 21:35:41 +01:00
Ryan Hughes
e263b5d00a Only run for Limine installs 2025-11-07 15:09:34 -05:00
Ryan Hughes
26821c9b34 Cleanup on install 2025-11-07 15:04:23 -05:00
Ryan Hughes
7cd5661f89 Bump version 2025-11-07 14:57:19 -05:00
Ryan Hughes
6cdf4a3790 Remove any alternative limine.conf files 2025-11-07 14:46:29 -05:00
Ryan Hughes
c92a7eab81 Revert "Kill the actual screensaver command"
This reverts commit 33dde26902.
2025-11-06 11:32:19 -05:00
Ryan Hughes
8aa2d295e5 Revert "Make screensaver work with xdg-terminal-exec"
This reverts commit fc8e4c0400.
2025-11-06 11:32:10 -05:00
Ryan Hughes
5fb29c199a Revert "Update screensaver with 2x version"
This reverts commit b1b6e5d2a7.
2025-11-06 11:30:02 -05:00
David Heinemeier Hansson
962aca303d Change order and let it live forever 2025-11-06 09:14:33 +01:00
David Heinemeier Hansson
870356ecc3 Fix max_results to live under [providers]
Re #3175
2025-11-06 08:32:07 +01:00
David Heinemeier Hansson
cb03d7d84b Raise walker max_entries to 256
The default is only 50

Closes #3175
2025-11-05 17:29:10 +01:00
y0no
7a0bdaafa4 Scale with the right monitor (#3174) 2025-11-05 16:08:25 +01:00
David Heinemeier Hansson
638e35fcac Hyprland envs are superseeded by uwsm/env 2025-11-05 15:15:01 +01:00
David Heinemeier Hansson
904d253b4d Restart terminal (reload config) when changing font as well
This doesn't work for Ghostty (yet?) but it does work for Kitty
2025-11-05 11:59:51 +01:00
innerviewer
a40ff463c9 (Hypr) Added 'stayfocused' window rule for DaVinci Resolve dialog windows. (#3064) 2025-11-05 11:44:30 +01:00
Patrick Roza
8e210088c1 Fix class name for Microsoft Edge in browser.conf (#3145) 2025-11-05 11:20:28 +01:00
David Heinemeier Hansson
bf26366be4 Setting PS1 is not necessary when we have starship 2025-11-05 11:13:49 +01:00
David Heinemeier Hansson
4391df6853 Fix declining an update 2025-11-04 08:47:17 +01:00
David Heinemeier Hansson
2498216a4f Merge branch 'master' into dev 2025-11-04 08:35:27 +01:00
Ryan Hughes
33dde26902 Kill the actual screensaver command 2025-11-03 21:37:51 -05:00
Ryan Hughes
b1b6e5d2a7 Update screensaver with 2x version 2025-11-03 21:34:22 -05:00
Ryan Hughes
fc8e4c0400 Make screensaver work with xdg-terminal-exec 2025-11-03 21:34:22 -05:00
Ryan Hughes
f9557177dc Merge pull request #2648 from wolfgangw/patch-1
TTE go fullscreen: --no-eol (tte 0.12.2/0.13.0)
2025-11-03 21:33:06 -05:00
Ryan Hughes
3065ca9f2a Fix --dir 2025-11-03 15:37:46 -05:00
Ryan Hughes
ba5343ca11 Bump version 2025-11-03 15:37:27 -05:00
Ryan Hughes
7f9ee95e1a Merge pull request #3084 from basecamp/dev
Omarchy 3.1.5
2025-11-03 12:13:01 -05:00
David Heinemeier Hansson
e369d68fe1 Take the rounding back a notch 2025-11-03 17:46:31 +01:00
Ryan Hughes
661abc89a6 Add omarchy-walker meta package 2025-11-03 11:37:20 -05:00
David Heinemeier Hansson
28ba448020 Merge branch 'master' into dev 2025-11-03 10:51:19 +01:00
David Heinemeier Hansson
4b15fe9a52 More wordsmithing 2025-11-03 10:50:54 +01:00
David Heinemeier Hansson
886a9f6f2c More wordsmithing 2025-11-03 10:49:35 +01:00
David Heinemeier Hansson
54795a2f55 Direct enhancements and ideas to discussions 2025-11-03 10:48:24 +01:00
Miha Rekar
d528393df6 Do not create eza theme symlink (#3092) 2025-11-03 10:19:54 +01:00
Ryan Hughes
4c97a31c98 Switch to xdg-terminal-exec
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 #2198
fixes #2329
fixes #2673
fixes #1754
2025-11-03 01:11:09 -05:00
Ryan Hughes
66b5f7eab8 Move a few more to OPR 2025-11-02 22:50:25 -05:00
Ryan Hughes
9e971e3e56 Fix not working with alacritty 2025-11-02 18:58:11 -05:00
Ryan Hughes
ae10133b5e Fix neovim launching from files
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.
2025-11-02 17:57:25 -05:00
David Heinemeier Hansson
0f64a11f4e Follow naming convention from other hyprland scripts 2025-11-02 20:36:42 +01:00
Ryan Robitaille
b738c77acf Feature (hypr): add “Pop window” (float+pin) on SUPER+O (#2954)
* Feature (hypr): add “Pop window” (float+pin) on SUPER+L

* fix: changed default keybinding to SUPER+O
2025-11-02 20:36:28 +01:00
killeik
f76ba69f70 Make omarchy-launch-editor check that setted $EDITOR exists (#3072) 2025-11-02 20:28:41 +01:00
David Heinemeier Hansson
bfeb3a1e65 Gemini is now on extra/gemini-cli
Closes #3040
Co-authored-by: @maromalo
2025-11-02 20:12:08 +01:00
Wojciech Wnętrzak
3c89acadc1 Further instructions for auto nightlight (#3082)
Follow up to https://github.com/basecamp/omarchy/pull/2446l

I noticed that it did not work because the process was not running by default, vide d9efaac906
2025-11-02 20:04:53 +01:00
David Heinemeier Hansson
58ecda3b80 Make Yes the default 2025-10-31 14:34:08 +01:00
David Heinemeier Hansson
dd3b64ef7f Extract the confirmation into its own file 2025-10-31 14:33:54 +01:00
Brian Blakely
fc0983624e VS Code: Apply Omarchy theme during install (#2983)
* 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>
2025-10-31 14:22:30 +01:00
David Heinemeier Hansson
fb3271f3af Fix phantom recording indicator
Closes #2656
Co-authored-by: @davidszp
2025-10-31 14:09:51 +01:00
Ryan Hughes
3344f33104 Use xdg-mime to set nvim as default
As @abenz1267 pointed out, the previous solution wasn't the greatest.
This is the proper solution.
2025-10-29 13:25:48 -04:00
David Heinemeier Hansson
407d283cb7 Rephrase 2025-10-29 10:58:24 +01:00
Joshua Fouch
ac8073fc81 Fix: Low Battery notification returning empty value on reboot (#2949)
* Fix: Low Battery notification returning empty value on reboot

* Simplify the check

* Double paste

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-10-29 10:58:06 +01:00
David Heinemeier Hansson
7770f49c1a Looks better without margin 2025-10-28 18:20:39 +01:00
David Heinemeier Hansson
9490e714c3 Moved 2025-10-28 18:19:28 +01:00
David Heinemeier Hansson
d3a54dc32e Show keybindings notice right away and vary update based on internet or not 2025-10-28 18:19:17 +01:00
David Heinemeier Hansson
d7cd1950ce Bump for the next version 2025-10-28 16:56:07 +01:00
Wolfgang Woehl
1388a2558a Screensaver go fullscreen: --no-eol (tte 0.12.2/0.13.0) and --canvas-height 0 2025-10-21 02:44:41 +02:00
58 changed files with 327 additions and 147 deletions

View File

@@ -1,5 +1,8 @@
blank_issues_enabled: false blank_issues_enabled: false
contact_links: contact_links:
- name: 🛟 Support 🛟 - name: Suggestion
url: https://github.com/basecamp/omarchy/discussions/categories/suggestions
about: Suggest a new feature, change to existing feature, or other ideas in Discussions.
- name: Support
url: https://omarchy.org/discord url: https://omarchy.org/discord
about: Need help? Join our Discord community for support with any issues. GitHub issues should be used for verified bugs, documentation, and enhancement proposals only. about: Need help? Join our Discord community for support with any issues. GitHub issues should be used for verified bugs only.

View File

@@ -1,16 +0,0 @@
name: Documentation
description: New pages or changes to existing
labels: [documentation]
body:
- type: markdown
attributes:
value: |
Remember: Omarchy is an open source gift, not a product you bought from a vendor
- type: textarea
id: steps
attributes:
label: What correction or addition do we need?
description: Please provide reference links and specifics of what should be updated
validations:
required: true

View File

@@ -1,15 +0,0 @@
name: Enhancement
description: Suggest a feature or change
labels: [enhancement]
body:
- type: markdown
attributes:
value: |
Remember: Omarchy is an open source gift, not a product you bought from a vendor
- type: textarea
id: steps
attributes:
label: What do you need?
validations:
required: true

View File

@@ -0,0 +1,21 @@
[Desktop Entry]
Type=Application
TryExec=alacritty
Exec=alacritty
Icon=Alacritty
Terminal=false
Categories=System;TerminalEmulator;
Name=Alacritty
GenericName=Terminal
Comment=A fast, cross-platform, OpenGL terminal emulator
StartupNotify=true
StartupWMClass=Alacritty
Actions=New;
X-TerminalArgExec=-e
X-TerminalArgAppId=--class=
X-TerminalArgTitle=--title=
X-TerminalArgDir=--working-directory=
[Desktop Action New]
Name=New Terminal
Exec=alacritty

View File

@@ -11,6 +11,7 @@ send_notification() {
notify-send -u critical "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000 notify-send -u critical "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
} }
if [[ -n "$BATTERY_LEVEL" && "$BATTERY_LEVEL" =~ ^[0-9]+$ ]]; then
if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]]; then if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]]; then
if [[ ! -f $NOTIFICATION_FLAG ]]; then if [[ ! -f $NOTIFICATION_FLAG ]]; then
send_notification $BATTERY_LEVEL send_notification $BATTERY_LEVEL
@@ -19,3 +20,4 @@ if [[ $BATTERY_STATE == "discharging" && $BATTERY_LEVEL -le $BATTERY_THRESHOLD ]
else else
rm -f $NOTIFICATION_FLAG rm -f $NOTIFICATION_FLAG
fi fi
fi

View File

@@ -14,6 +14,6 @@ if [[ -f "$FIRST_RUN_MODE" ]]; then
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh" bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
sudo rm -f /etc/sudoers.d/first-run sudo rm -f /etc/sudoers.d/first-run
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
bash "$OMARCHY_PATH/install/first-run/welcome.sh" bash "$OMARCHY_PATH/install/first-run/welcome.sh"
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
fi fi

View File

@@ -62,7 +62,7 @@ start_screenrecording() {
# Merge audio tracks into one - separate tracks only play one at a time in most players # Merge audio tracks into one - separate tracks only play one at a time in most players
[[ "$AUDIO" == "true" ]] && audio_args="-a default_output|default_input" [[ "$AUDIO" == "true" ]] && audio_args="-a default_output|default_input"
gpu-screen-recorder -w "$@" -f 60 -c mp4 -o "$filename" $audio_args & gpu-screen-recorder -w "$@" -f 60 -c mp4 $audio_args -ac aac -o "$filename" &
toggle_screenrecording_indicator toggle_screenrecording_indicator
} }

View File

@@ -18,7 +18,7 @@ hyprctl keyword cursor:invisible true &>/dev/null
while true; do while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1) effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
tte -i ~/.config/omarchy/branding/screensaver.txt \ tte -i ~/.config/omarchy/branding/screensaver.txt \
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \ --frame-rate 240 --canvas-width 0 --canvas-height 0 --anchor-canvas c --anchor-text c --no-eol \
"$effect" & "$effect" &
while pgrep -x tte >/dev/null; do while pgrep -x tte >/dev/null; do

View File

@@ -29,6 +29,10 @@ if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
omarchy-restart-swayosd omarchy-restart-swayosd
omarchy-restart-walker omarchy-restart-walker
if pgrep -x ghostty; then
notify-send " You must restart Ghostty to see font change"
fi
omarchy-hook font-set "$font_name" omarchy-hook font-set "$font_name"
else else
echo "Font '$font_name' not found." echo "Font '$font_name' not found."

22
bin/omarchy-hyprland-window-pop Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/bash
# Toggle to pop-out a tile to stay fixed on a display basis.
active=$(hyprctl activewindow -j)
pinned=$(echo "$active" | jq .pinned)
addr=$(echo "$active" | jq -r ".address")
[ -z "$addr" ] && { echo "No active window"; exit 0; }
if [ "$pinned" = "true" ]; then
hyprctl -q --batch \
"dispatch pin address:$addr;" \
"dispatch togglefloating address:$addr;" \
"dispatch tagwindow -pop address:$addr;"
else
hyprctl -q --batch \
"dispatch togglefloating address:$addr;" \
"dispatch centerwindow address:$addr;" \
"dispatch pin address:$addr;" \
"dispatch alterzorder top address:$addr;" \
"dispatch tagwindow +pop address:$addr;"
fi

View File

@@ -7,15 +7,41 @@ fi
package="$1" package="$1"
# Map package name to desktop entry ID
case "$package" in
alacritty)
desktop_id="Alacritty.desktop"
;;
ghostty)
desktop_id="com.mitchellh.ghostty.desktop"
;;
kitty)
desktop_id="kitty.desktop"
;;
*)
echo "Unknown terminal: $package"
exit 1
;;
esac
# Install package # Install package
if omarchy-pkg-add $package; then if omarchy-pkg-add $package; then
# Set as default terminal # Set as default terminal
echo "Setting $package as new default terminal..." echo "Setting $package as new default terminal..."
sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default
# Restart is needed for new default to take effect # Copy custom desktop entry for alacritty with X-TerminalArg* keys
echo if [ "$package" = "alacritty" ]; then
gum confirm "Restart to use new terminal?" && systemctl reboot --no-wall mkdir -p ~/.local/share/applications
cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.local/share/applications/
fi
# 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 else
echo "Failed to install $package" echo "Failed to install $package"
fi fi

View File

@@ -21,4 +21,7 @@ EOF
# Ensure VSC's own auto-update feature is turned off # Ensure VSC's own auto-update feature is turned off
printf '{\n "update.mode": "none"\n}\n' > ~/.config/Code/User/settings.json printf '{\n "update.mode": "none"\n}\n' > ~/.config/Code/User/settings.json
# Apply Omarchy theme to VSCode
omarchy-theme-set-vscode
setsid gtk-launch code setsid gtk-launch code

View File

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec setsid uwsm-app -- alacritty --class=Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Omarchy -e bash -c 'fastfetch; read -n 1 -s'

View File

@@ -1,8 +1,10 @@
#!/bin/bash #!/bin/bash
case "${EDITOR:-nvim}" in omarchy-cmd-present "$EDITOR" || EDITOR=nvim
case "$EDITOR" in
nvim | vim | nano | micro | hx | helix) nvim | vim | nano | micro | hx | helix)
exec setsid uwsm-app -- "$TERMINAL" -e "$EDITOR" "$@" exec setsid uwsm-app -- xdg-terminal-exec "$EDITOR" "$@"
;; ;;
*) *)
exec setsid uwsm-app -- "$EDITOR" "$@" exec setsid uwsm-app -- "$EDITOR" "$@"

View File

@@ -1,4 +1,4 @@
#!/bin/bash #!/bin/bash
cmd="$*" cmd="$*"
exec setsid uwsm-app -- alacritty -o font.size=9 --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done" exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"

View File

@@ -1,3 +0,0 @@
#!/bin/bash
exec setsid uwsm-app -- "${TERMINAL:-alacritty}" "$@"

View File

@@ -3,7 +3,7 @@
browser=$(xdg-settings get default-web-browser) browser=$(xdg-settings get default-web-browser)
case $browser in case $browser in
google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium-browser*) ;; google-chrome* | brave-browser* | microsoft-edge* | opera* | vivaldi* | helium*) ;;
*) browser="chromium.desktop" ;; *) browser="chromium.desktop" ;;
esac esac

View File

@@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec setsid uwsm-app -- "$TERMINAL" --class=Impala -e impala "$@" exec setsid uwsm-app -- xdg-terminal-exec --app-id=com.omarchy.Impala -e impala "$@"

View File

@@ -37,7 +37,7 @@ menu() {
} }
terminal() { terminal() {
alacritty --class=Omarchy -e "$@" xdg-terminal-exec --app-id=com.omarchy.Omarchy "$@"
} }
present_terminal() { present_terminal() {
@@ -178,7 +178,7 @@ show_setup_menu() {
options="$options\n Defaults\n󰱔 DNS\n Security\n Config" options="$options\n Defaults\n󰱔 DNS\n Security\n Config"
case $(menu "Setup" "$options") in case $(menu "Setup" "$options") in
*Audio*) $TERMINAL --class=Wiremix -e wiremix ;; *Audio*) xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix ;;
*Wifi*) *Wifi*)
rfkill unblock wifi rfkill unblock wifi
omarchy-launch-wifi omarchy-launch-wifi
@@ -264,7 +264,7 @@ show_install_editor_menu() {
*VSCode*) present_terminal omarchy-install-vscode ;; *VSCode*) present_terminal omarchy-install-vscode ;;
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;; *Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;; *Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;; *Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
*Helix*) install "Helix" "helix" ;; *Helix*) install "Helix" "helix" ;;
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;; *Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
*) show_install_menu ;; *) show_install_menu ;;
@@ -287,11 +287,11 @@ show_install_ai_menu() {
echo ollama echo ollama
) )
case $(menu "Install" "󱚤 Claude Code\n󱚤 Cursor CLI [AUR]\n󱚤 Gemini [AUR]\n󱚤 OpenAI Codex\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in case $(menu "Install" "󱚤 Claude Code\n󱚤 Cursor CLI\n󱚤 Gemini\n󱚤 OpenAI Codex\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;; *Claude*) install "Claude Code" "claude-code" ;;
*Cursor*) aur_install "Cursor CLI" "cursor-cli" ;; *Cursor*) install "Cursor CLI" "cursor-cli" ;;
*OpenAI*) install "OpenAI Codex" "openai-codex-bin" ;; *OpenAI*) install "OpenAI Codex" "openai-codex-bin" ;;
*Gemini*) aur_install "Gemini" "gemini-cli" ;; *Gemini*) install "Gemini" "gemini-cli" ;;
*Studio*) install "LM Studio" "lmstudio" ;; *Studio*) install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" $ollama_pkg ;; *Ollama*) install "Ollama" $ollama_pkg ;;
*Crush*) install "Crush" "crush-bin" ;; *Crush*) install "Crush" "crush-bin" ;;
@@ -304,7 +304,7 @@ show_install_gaming_menu() {
case $(menu "Install" " Steam\n RetroArch [AUR]\n󰍳 Minecraft") in case $(menu "Install" " Steam\n RetroArch [AUR]\n󰍳 Minecraft") in
*Steam*) present_terminal omarchy-install-steam ;; *Steam*) present_terminal omarchy-install-steam ;;
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;; *RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
*Minecraft*) aur_install_and_launch "Minecraft [AUR]" "minecraft-launcher" "minecraft-launcher" ;; *Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
*) show_install_menu ;; *) show_install_menu ;;
esac esac
} }

View File

@@ -2,6 +2,6 @@
omarchy-refresh-config hypr/autostart.conf omarchy-refresh-config hypr/autostart.conf
omarchy-refresh-config hypr/bindings.conf omarchy-refresh-config hypr/bindings.conf
omarchy-refresh-config hypr/envs.conf
omarchy-refresh-config hypr/input.conf omarchy-refresh-config hypr/input.conf
omarchy-refresh-config hypr/looknfeel.conf
omarchy-refresh-config hypr/hyprland.conf omarchy-refresh-config hypr/hyprland.conf

View File

@@ -4,5 +4,10 @@ if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
touch ~/.config/alacritty/alacritty.toml touch ~/.config/alacritty/alacritty.toml
fi fi
if pgrep -x kitty; then
killall -SIGUSR1 kitty killall -SIGUSR1 kitty
fi
if pgrep -x ghostty; then
killall -SIGUSR2 ghostty killall -SIGUSR2 ghostty
fi

View File

@@ -28,12 +28,12 @@ if pgrep -x waybar >/dev/null; then
omarchy-restart-waybar omarchy-restart-waybar
fi fi
omarchy-restart-swayosd omarchy-restart-swayosd
omarchy-restart-terminal
hyprctl reload hyprctl reload
pkill -SIGUSR2 btop pkill -SIGUSR2 btop
makoctl reload makoctl reload
# Change gnome, browser, vscode, cursor themes # Change gnome, browser, vscode, cursor themes
omarchy-theme-set-terminal
omarchy-theme-set-gnome omarchy-theme-set-gnome
omarchy-theme-set-browser omarchy-theme-set-browser
omarchy-theme-set-vscode omarchy-theme-set-vscode

View File

@@ -5,7 +5,7 @@ if [ "$#" -ne 4 ]; then
APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI") APP_NAME=$(gum input --prompt "Name> " --placeholder "My TUI")
APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'") APP_EXEC=$(gum input --prompt "Launch Command> " --placeholder "lazydocker or bash -c 'dust; read -n 1 -s'")
WINDOW_STYLE=$(gum choose --header "Window style" float tile) WINDOW_STYLE=$(gum choose --header "Window style" float tile)
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)") ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG or SVG!)")
else else
APP_NAME="$1" APP_NAME="$1"
APP_EXEC="$2" APP_EXEC="$2"
@@ -43,7 +43,7 @@ cat >"$DESKTOP_FILE" <<EOF
Version=1.0 Version=1.0
Name=$APP_NAME Name=$APP_NAME
Comment=$APP_NAME Comment=$APP_NAME
Exec=\$TERMINAL --class=$APP_CLASS -e $APP_EXEC Exec=xdg-terminal-exec --app-id=$APP_CLASS -e $APP_EXEC
Terminal=false Terminal=false
Type=Application Type=Application
Icon=$ICON_PATH Icon=$ICON_PATH

View File

@@ -4,17 +4,8 @@ set -e
trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m"' ERR trap 'echo ""; echo -e "\033[0;31mSomething went wrong during the update!\n\nPlease review the output above carefully, correct the error, and retry the update.\n\nIf you need assistance, get help from the community at https://omarchy.org/discord\033[0m"' ERR
gum style --border normal --border-foreground 6 --padding "1 2" --margin "1 0" \ if omarchy-update-confirm; then
"Ready to update Omarchy?" \
"" \
"• You cannot stop the update once you start!" \
"• Make sure you're not on battery power or have sufficient charge"
if ! gum confirm --default=false "Continue with update?"; then
echo "Update cancelled"
exit 0
fi
omarchy-snapshot create || [ $? -eq 127 ] omarchy-snapshot create || [ $? -eq 127 ]
omarchy-update-git omarchy-update-git
omarchy-update-perform omarchy-update-perform
fi

12
bin/omarchy-update-confirm Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
gum style --border normal --border-foreground 6 --padding "1 2" \
"Ready to update Omarchy?" \
"" \
"• You cannot stop the update once you start!" \
"• Make sure you're connected to power or have a full battery"
if ! gum confirm "Continue with update?"; then
echo "Update cancelled"
exit 1
fi

View File

@@ -327,7 +327,7 @@ To stop: omarchy-windows-vm stop"
"$LIFECYCLE" "$LIFECYCLE"
# Detect display scale from Hyprland # Detect display scale from Hyprland
HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[0].scale') HYPR_SCALE=$(hyprctl monitors -j | jq -r '.[] | select (.focused == true) | .scale')
SCALE_PERCENT=$(echo "$HYPR_SCALE" | awk '{print int($1 * 100)}') SCALE_PERCENT=$(echo "$HYPR_SCALE" | awk '{print int($1 * 100)}')
RDP_SCALE="" RDP_SCALE=""

View File

@@ -1,8 +1,8 @@
# Application bindings # Application bindings
$terminal = uwsm-app -- $TERMINAL $terminal = uwsm-app -- xdg-terminal-exec
$browser = omarchy-launch-browser $browser = omarchy-launch-browser
bindd = SUPER, RETURN, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)" bindd = SUPER, RETURN, Terminal, exec, $terminal --dir="$(omarchy-cmd-terminal-cwd)"
bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER SHIFT, B, Browser, exec, $browser bindd = SUPER SHIFT, B, Browser, exec, $browser
bindd = SUPER SHIFT ALT, B, Browser (private), exec, $browser --private bindd = SUPER SHIFT ALT, B, Browser (private), exec, $browser --private

View File

@@ -1,2 +0,0 @@
# Extra env variables
# env = MY_GLOBAL_ENV,setting

View File

@@ -16,7 +16,6 @@ source = ~/.config/omarchy/current/theme/hyprland.conf
source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/envs.conf
source = ~/.config/hypr/looknfeel.conf source = ~/.config/hypr/looknfeel.conf
source = ~/.config/hypr/autostart.conf source = ~/.config/hypr/autostart.conf

View File

@@ -5,7 +5,9 @@ profile {
identity = true identity = true
} }
# Enable auto switch to nightlight: # To enable auto switch to nightlight, set in your .config/hypr/autostart:
# exec-once = uwsm app -- hyprsunset
# and use the following:
# profile { # profile {
# time = 20:00 # time = 20:00
# temperature = 4000 # temperature = 4000

View File

@@ -1,7 +1,7 @@
# Changes require a restart to take effect. # Changes require a restart to take effect.
# Install other terminals via Install > Terminal # Install other terminals via Install > Terminal
export TERMINAL=alacritty export TERMINAL=xdg-terminal-exec
# Use code for VSCode # Use code for VSCode
export EDITOR=nvim export EDITOR=nvim

View File

@@ -10,6 +10,7 @@ additional_theme_location = "~/.local/share/omarchy/default/walker/themes/"
quick_activate = [] quick_activate = []
[providers] [providers]
max_results = 256 # 256 should be enough for everyone
default = [ default = [
"desktopapplications", "desktopapplications",
"menus", "menus",

View File

@@ -41,7 +41,7 @@
"custom/omarchy": { "custom/omarchy": {
"format": "<span font='omarchy'>\ue900</span>", "format": "<span font='omarchy'>\ue900</span>",
"on-click": "omarchy-menu", "on-click": "omarchy-menu",
"on-click-right": "omarchy-launch-terminal", "on-click-right": "xdg-terminal-exec",
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space" "tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
}, },
"custom/update": { "custom/update": {
@@ -56,7 +56,7 @@
"cpu": { "cpu": {
"interval": 5, "interval": 5,
"format": "󰍛", "format": "󰍛",
"on-click": "$TERMINAL -e btop" "on-click": "xdg-terminal-exec btop"
}, },
"clock": { "clock": {
"format": "{:L%A %H:%M}", "format": "{:L%A %H:%M}",
@@ -105,7 +105,7 @@
}, },
"pulseaudio": { "pulseaudio": {
"format": "{icon}", "format": "{icon}",
"on-click": "$TERMINAL --class=Wiremix -e wiremix", "on-click": "xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix",
"on-click-right": "pamixer -t", "on-click-right": "pamixer -t",
"tooltip-format": "Playing at {volume}%", "tooltip-format": "Playing at {volume}%",
"scroll-step": 5, "scroll-step": 5,

View File

@@ -1,7 +0,0 @@
# Technicolor dreams
force_color_prompt=yes
color_prompt=yes
# Simple prompt with path in the window/pane title and caret for typing line
PS1=$'\uf0a9 '
PS1="\[\e]0;\w\a\]$PS1"

View File

@@ -1,7 +1,6 @@
source ~/.local/share/omarchy/default/bash/shell source ~/.local/share/omarchy/default/bash/shell
source ~/.local/share/omarchy/default/bash/aliases source ~/.local/share/omarchy/default/bash/aliases
source ~/.local/share/omarchy/default/bash/functions source ~/.local/share/omarchy/default/bash/functions
source ~/.local/share/omarchy/default/bash/prompt
source ~/.local/share/omarchy/default/bash/init source ~/.local/share/omarchy/default/bash/init
source ~/.local/share/omarchy/default/bash/envs source ~/.local/share/omarchy/default/bash/envs
[[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc [[ $- == *i* ]] && bind -f ~/.local/share/omarchy/default/bash/inputrc

View File

@@ -1,5 +1,5 @@
# Browser types # Browser types
windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable|helium) windowrule = tag +chromium-based-browser, class:((google-)?[cC]hrom(e|ium)|[bB]rave-browser|[mM]icrosoft-edge|Vivaldi-stable|helium)
windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf) windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
# Force chromium-based browsers into a tile to deal with --app bug # Force chromium-based browsers into a tile to deal with --app bug

View File

@@ -0,0 +1,2 @@
# Focus floating DaVinci Resolve dialog windows
windowrule = stayfocused, class:.*[Rr]esolve.*, floating:1

View File

@@ -1,5 +1,5 @@
# Picture-in-picture overlays # Picture-in-picture overlays
windowrule = tag +pip, title:(Picture.{0,1}in.{0,1}[Pp]icture) windowrule = tag +pip, title:(Picture.?in.?[Pp]icture)
windowrule = float, tag:pip windowrule = float, tag:pip
windowrule = pin, tag:pip windowrule = pin, tag:pip
windowrule = size 600 338, tag:pip windowrule = size 600 338, tag:pip

View File

@@ -1,9 +1,9 @@
# Floating windows # Floating windows
windowrule = float, tag:floating-window windowrule = float, tag:floating-window
windowrule = center, tag:floating-window windowrule = center, tag:floating-window
windowrule = size 800 600, tag:floating-window windowrule = size 875 600, tag:floating-window
windowrule = tag +floating-window, class:(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float) windowrule = tag +floating-window, class:(blueberry.py|com.omarchy.Impala|com.omarchy.Wiremix|com.omarchy.Omarchy|org.gnome.NautilusPreviewer|com.gabm.satty|Omarchy|About|TUI.float)
windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*) windowrule = tag +floating-window, class:(xdg-desktop-portal-gtk|sublime_text|DesktopEditors|org.gnome.Nautilus), title:^(Open.*Files?|Open [F|f]older.*|Save.*Files?|Save.*As|Save|All Files|.*wants to [open|save].*|[C|c]hoose.*)
windowrule = float, class:org.gnome.Calculator windowrule = float, class:org.gnome.Calculator
@@ -12,3 +12,6 @@ windowrule = fullscreen, class:Screensaver
# No transparency on media windows # No transparency on media windows
windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$ windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
# Popped window rounding
windowrule = rounding 8, tag:pop

View File

@@ -9,6 +9,7 @@ bindd = SUPER, T, Toggle window floating/tiling, togglefloating,
bindd = SUPER, F, Full screen, fullscreen, 0 bindd = SUPER, F, Full screen, fullscreen, 0
bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2 bindd = SUPER CTRL, F, Tiled full screen, fullscreenstate, 0 2
bindd = SUPER ALT, F, Full width, fullscreen, 1 bindd = SUPER ALT, F, Full width, fullscreen, 1
bindd = SUPER, O, Pop window out (float & pin), exec, omarchy-hyprland-window-pop
# Move focus with SUPER + arrow keys # Move focus with SUPER + arrow keys
bindd = SUPER, LEFT, Move window focus left, movefocus, l bindd = SUPER, LEFT, Move window focus left, movefocus, l
@@ -47,6 +48,10 @@ bindd = SUPER, TAB, Next workspace, workspace, e+1
bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1 bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1
bindd = SUPER CTRL, TAB, Former workspace, workspace, previous bindd = SUPER CTRL, TAB, Former workspace, workspace, previous
# Move workspaces to other monitors
bindd = SUPER SHIFT ALT, LEFT, Move workspace to left monitor, movecurrentworkspacetomonitor, l
bindd = SUPER SHIFT ALT, RIGHT, Move workspace to right monitor, movecurrentworkspacetomonitor, r
# Swap active window with the one next to it with SUPER + SHIFT + arrow keys # Swap active window with the one next to it with SUPER + SHIFT + arrow keys
bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l bindd = SUPER SHIFT, LEFT, Swap window to the left, swapwindow, l
bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r bindd = SUPER SHIFT, RIGHT, Swap window to the right, swapwindow, r
@@ -86,14 +91,14 @@ bindd = SUPER ALT, DOWN, Move window to group on bottom, moveintogroup, d
# Navigate a single set of grouped windows # Navigate a single set of grouped windows
bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f bindd = SUPER ALT, TAB, Next window in group, changegroupactive, f
bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b bindd = SUPER ALT SHIFT, TAB, Previous window in group, changegroupactive, b
bindd = SUPER ALT, page_up, Next window in group, changegroupactive, f
# Scroll through a set of grouped windows with SUPER + ALT + scroll bindd = SUPER ALT, page_down, Previous window in group, changegroupactive, b
bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f bindd = SUPER ALT, mouse_down, Next window in group, changegroupactive, f
bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b bindd = SUPER ALT, mouse_up, Previous window in group, changegroupactive, b
# Activate window in a group by number # Activate window in a group by number
bindd = SUPER ALT, 1, Switch to group window 1, changegroupactive, 1 bindd = SUPER ALT, code:10, Switch to group window 1, changegroupactive, 1
bindd = SUPER ALT, 2, Switch to group window 2, changegroupactive, 2 bindd = SUPER ALT, code:11, Switch to group window 2, changegroupactive, 2
bindd = SUPER ALT, 3, Switch to group window 3, changegroupactive, 3 bindd = SUPER ALT, code:12, Switch to group window 3, changegroupactive, 3
bindd = SUPER ALT, 4, Switch to group window 4, changegroupactive, 4 bindd = SUPER ALT, code:13, Switch to group window 4, changegroupactive, 4
bindd = SUPER ALT, 5, Switch to group window 5, changegroupactive, 5 bindd = SUPER ALT, code:14, Switch to group window 5, changegroupactive, 5

View File

@@ -18,6 +18,7 @@ bindd = SUPER SHIFT, BACKSPACE, Toggle workspace gaps, exec, omarchy-hyprland-wo
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all bindd = SUPER SHIFT, COMMA, Dismiss all notifications, exec, makoctl dismiss --all
bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications" bindd = SUPER CTRL, COMMA, Toggle silencing notifications, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
bindd = SUPER ALT, COMMA, Invoke last notification, exec, makoctl invoke
# Toggle idling # Toggle idling
bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle bindd = SUPER CTRL, I, Toggle locking on idle, exec, omarchy-toggle-idle

View File

@@ -14,3 +14,8 @@ input {
natural_scroll = false natural_scroll = false
} }
} }
misc {
key_press_enables_dpms = true # key press will trigger wake
mouse_move_enables_dpms = true # mouse move will trigger wake
}

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
if pgrep -f "gpu-screen-recorder" >/dev/null; then if pgrep -f "^gpu-screen-recorder" >/dev/null; then
echo '{"text": "󰻂", "tooltip": "Stop recording", "class": "active"}' echo '{"text": "󰻂", "tooltip": "Stop recording", "class": "active"}'
else else
echo '{"text": ""}' echo '{"text": ""}'

View File

@@ -36,3 +36,22 @@ xdg-mime default mpv.desktop application/ogg
# Use Hey for mailto: links # Use Hey for mailto: links
xdg-mime default HEY.desktop x-scheme-handler/mailto xdg-mime default HEY.desktop x-scheme-handler/mailto
# Open text files with nvim
xdg-mime default nvim.desktop text/plain
xdg-mime default nvim.desktop text/english
xdg-mime default nvim.desktop text/x-makefile
xdg-mime default nvim.desktop text/x-c++hdr
xdg-mime default nvim.desktop text/x-c++src
xdg-mime default nvim.desktop text/x-chdr
xdg-mime default nvim.desktop text/x-csrc
xdg-mime default nvim.desktop text/x-java
xdg-mime default nvim.desktop text/x-moc
xdg-mime default nvim.desktop text/x-pascal
xdg-mime default nvim.desktop text/x-tcl
xdg-mime default nvim.desktop text/x-tex
xdg-mime default nvim.desktop application/x-shellscript
xdg-mime default nvim.desktop text/x-c
xdg-mime default nvim.desktop text/x-c++
xdg-mime default nvim.desktop application/xml
xdg-mime default nvim.desktop text/xml

View File

@@ -20,9 +20,6 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current
mkdir -p ~/.config/mako mkdir -p ~/.config/mako
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config
mkdir -p ~/.config/eza
ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml
# Add managed policy directories for Chromium and Brave for theme changes # Add managed policy directories for Chromium and Brave for theme changes
sudo mkdir -p /etc/chromium/policies/managed sudo mkdir -p /etc/chromium/policies/managed
sudo chmod a+rw /etc/chromium/policies/managed sudo chmod a+rw /etc/chromium/policies/managed

View File

@@ -1,2 +1 @@
notify-send " Update System" "When you have internet, click to update the system." -u critical
notify-send " Learn Keybindings" "Super + K for cheatsheet.\nSuper + Space for application launcher.\nSuper + Alt + Space for Omarchy Menu." -u critical notify-send " Learn Keybindings" "Super + K for cheatsheet.\nSuper + Space for application launcher.\nSuper + Alt + Space for Omarchy Menu." -u critical

View File

@@ -1,3 +1,6 @@
if ! ping -c3 -W1 1.1.1.1 >/dev/null 2>&1; then if ! ping -c3 -W1 1.1.1.1 >/dev/null 2>&1; then
notify-send "󰖩 Click to Setup Wi-Fi" "Tab to navigate, Space to select, ? for help." -u critical -t 30000 notify-send " Update System" "When you have internet, click to update the system." -u critical
notify-send "󰖩 Click to Setup Wi-Fi" "Tab to navigate, Space to select, ? for help." -u critical
else
notify-send " Update System" "Click to update the system." -u critical
fi fi

View File

@@ -33,7 +33,7 @@ TARGET_OS_NAME="Omarchy"
ESP_PATH="/boot" ESP_PATH="/boot"
KERNEL_CMDLINE[default]="$CMDLINE" KERNEL_CMDLINE[default]="$CMDLINE"
KERNEL_CMDLINE[default]+="quiet splash" KERNEL_CMDLINE[default]+="quiet splash preempt=full"
ENABLE_UKI=yes ENABLE_UKI=yes
CUSTOM_UKI_NAME="omarchy" CUSTOM_UKI_NAME="omarchy"
@@ -78,6 +78,11 @@ term_background_bright: 24283b
EOF EOF
# Remove the original config file if it's not /boot/limine.conf
if [[ "$limine_config" != "/boot/limine.conf" ]] && [[ -f "$limine_config" ]]; then
sudo rm "$limine_config"
fi
# Match Snapper configs if not installing from the ISO # Match Snapper configs if not installing from the ISO
if [[ -z ${OMARCHY_CHROOT_INSTALL:-} ]]; then if [[ -z ${OMARCHY_CHROOT_INSTALL:-} ]]; then

View File

@@ -22,19 +22,6 @@ docker
docker-buildx docker-buildx
docker-compose docker-compose
dust dust
elephant
elephant-bluetooth
elephant-calc
elephant-clipboard
elephant-desktopapplications
elephant-files
elephant-menus
elephant-providerlist
elephant-runner
elephant-symbols
elephant-todo
elephant-unicode
elephant-websearch
evince evince
expac expac
eza eza
@@ -58,7 +45,7 @@ gvfs-nfs
gvfs-smb gvfs-smb
hypridle hypridle
hyprland hyprland
hyprland-qtutils hyprland-guiutils
hyprlock hyprlock
hyprpicker hyprpicker
hyprsunset hyprsunset
@@ -98,6 +85,7 @@ obs-studio
obsidian obsidian
omarchy-chromium omarchy-chromium
omarchy-nvim omarchy-nvim
omarchy-walker
pamixer pamixer
pinta pinta
playerctl playerctl
@@ -132,7 +120,6 @@ ufw
ufw-docker ufw-docker
unzip unzip
uwsm uwsm
walker
waybar waybar
wayfreeze wayfreeze
whois whois
@@ -143,6 +130,7 @@ wl-clipboard
woff2-font-awesome woff2-font-awesome
xdg-desktop-portal-gtk xdg-desktop-portal-gtk
xdg-desktop-portal-hyprland xdg-desktop-portal-hyprland
xdg-terminal-exec
xmlstarlet xmlstarlet
xournalpp xournalpp
yaru-icon-theme yaru-icon-theme

View File

@@ -1,7 +0,0 @@
echo "Ensure nvim started from app launcher always starts nvim not $EDITOR"
if [ -f /usr/share/applications/nvim.desktop ]; then
rm ~/.local/share/applications/nvim.desktop
ln -s /usr/share/applications/nvim.desktop ~/.local/share/applications/nvim.desktop
update-desktop-database ~/.local/share/applications
fi

21
migrations/1761758552.sh Normal file
View File

@@ -0,0 +1,21 @@
echo "Set nvim as default via xdg-mime"
rm ~/.local/share/applications/nvim.desktop || true
xdg-mime default nvim.desktop text/plain
xdg-mime default nvim.desktop text/english
xdg-mime default nvim.desktop text/x-makefile
xdg-mime default nvim.desktop text/x-c++hdr
xdg-mime default nvim.desktop text/x-c++src
xdg-mime default nvim.desktop text/x-chdr
xdg-mime default nvim.desktop text/x-csrc
xdg-mime default nvim.desktop text/x-java
xdg-mime default nvim.desktop text/x-moc
xdg-mime default nvim.desktop text/x-pascal
xdg-mime default nvim.desktop text/x-tcl
xdg-mime default nvim.desktop text/x-tex
xdg-mime default nvim.desktop application/x-shellscript
xdg-mime default nvim.desktop text/x-c
xdg-mime default nvim.desktop text/x-c++
xdg-mime default nvim.desktop application/xml
xdg-mime default nvim.desktop text/xml

64
migrations/1762121828.sh Normal file
View File

@@ -0,0 +1,64 @@
echo "Setting up xdg-terminal-exec for gtk-launch terminal support"
# Solve for hardcoded glib terminals
# https://github.com/basecamp/omarchy/issues/1852
# Remove old symlink if it exists -- if someone ran the previous migration early
if [ -L /usr/local/bin/xdg-terminal-exec ]; then
sudo rm /usr/local/bin/xdg-terminal-exec
fi
omarchy-pkg-add xdg-terminal-exec
# Set up xdg-terminals.list based on current $TERMINAL
if [ -n "$TERMINAL" ]; then
case "$TERMINAL" in
alacritty)
desktop_id="Alacritty.desktop"
;;
ghostty)
desktop_id="com.mitchellh.ghostty.desktop"
;;
kitty)
desktop_id="kitty.desktop"
;;
esac
if [ -n "$desktop_id" ]; then
mkdir -p ~/.config
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
fi
fi
# Copy custom desktop entries with proper X-TerminalArg* keys
if command -v alacritty > /dev/null 2>&1; then
cp "$OMARCHY_PATH/applications/Alacritty.desktop" ~/.local/share/applications/
fi
# Update hyprland bindings to use xdg-terminal-exec
sed -i 's/\$terminal = uwsm-app -- \$TERMINAL/$terminal = uwsm-app -- xdg-terminal-exec/' ~/.config/hypr/bindings.conf
# Update --working-directory to --dir for xdg-terminal-exec
sed -i 's/--working-directory=/--dir=/g' ~/.config/hypr/bindings.conf
# Update TERMINAL variable in uwsm config
sed -i 's/export TERMINAL=.*/export TERMINAL=xdg-terminal-exec/' ~/.config/uwsm/default
# Update waybar config to use xdg-terminal-exec
waybar_config=~/.config/waybar/config.jsonc
if [ -f "$waybar_config" ]; then
sed -i 's|"on-click-right": "omarchy-launch-terminal"|"on-click-right": "xdg-terminal-exec"|' "$waybar_config"
sed -i 's|"on-click": "\$TERMINAL -e btop"|"on-click": "xdg-terminal-exec btop"|' "$waybar_config"
sed -i 's|"on-click": "\$TERMINAL --class=Wiremix -e wiremix"|"on-click": "xdg-terminal-exec --app-id=com.omarchy.Wiremix -e wiremix"|' "$waybar_config"
omarchy-state set restart-waybar-required
fi
# Update hyprland window rules to use DNS-format class names
system_conf=~/.config/hypr/apps/system.conf
if [ -f "$system_conf" ]; then
if grep -q 'class:(.*|Impala|' "$system_conf" || grep -q 'class:(.*|Wiremix|' "$system_conf" || grep -q '|Omarchy|' "$system_conf"; then
sed -i 's/\bImpala\b/com.omarchy.Impala/g; s/\bWiremix\b/com.omarchy.Wiremix/g; s/|Omarchy|/|com.omarchy.Omarchy|/g' "$system_conf"
fi
fi

2
migrations/1762150269.sh Normal file
View File

@@ -0,0 +1,2 @@
echo "Install omarchy-walker meta package"
omarchy-pkg-add omarchy-walker

5
migrations/1762352101.sh Normal file
View File

@@ -0,0 +1,5 @@
echo "Increase Walker limit on how many entries can be shown to 256"
if ! grep -q "max_results" ~/.config/walker/config.toml; then
sed -i '/^\[providers\]$/a max_results = 256' ~/.config/walker/config.toml
fi

12
migrations/1762446739.sh Normal file
View File

@@ -0,0 +1,12 @@
echo "Remove alternative limine.conf files"
if omarchy-cmd-present limine; then
if [ ! -f /boot/limine.conf ]; then
echo "Error: /boot/limine.conf does not exist. Do not reboot without resolving this issue!"
exit 1
fi
sudo rm -f /boot/EFI/limine/limine.conf
sudo rm -f /boot/EFI/BOOT/limine.conf
sudo rm -f /boot/limine/limine.conf
fi

7
migrations/1762684663.sh Normal file
View File

@@ -0,0 +1,7 @@
echo "Ensure Linux is running fully preemptible to avoid video/audio issues"
if ! grep -q "preempt=full" /etc/default/limine; then
sudo sed -i 's/^\(KERNEL_CMDLINE\[default\]+=\"[^"]*\)"/\1 preempt=full"/' /etc/default/limine
sudo limine-update
omarchy-state set reboot-required
fi

View File

@@ -1,6 +1,6 @@
@define-color background-color #121212; @define-color background-color #121212;
@define-color border-color #8A8A8D; @define-color border-color #CCCCCC;
@define-color label #8A8A8D; @define-color label #CCCCCC;
@define-color image #8A8A8D; @define-color image #CCCCCC;
@define-color progress #8A8A8D; @define-color progress #CCCCCC;

View File

@@ -1 +1 @@
3.1.4 3.1.7