Compare commits

...

60 Commits

Author SHA1 Message Date
Ryan Hughes
d36e2ba7a5 Update version reporting 2025-09-17 13:09:21 -04:00
David Heinemeier Hansson
f6383fd3e9 Now it is opt-in 2025-09-17 16:40:38 +02:00
David Heinemeier Hansson
e81994f182 Dont let the update system notification expire 2025-09-17 16:36:11 +02:00
David Heinemeier Hansson
7ca60bd590 We no longer need gcc14 for Ruby 2025-09-17 16:16:32 +02:00
David Heinemeier Hansson
dac34aa5e0 Move adding Google Account into Install > Service > Chromium Account
Otherwise it'll prompt on first start for everyone.
2025-09-17 16:13:49 +02:00
David Heinemeier Hansson
81165f1947 This made it seem like the extension couldn't be removed by the user (#1722) 2025-09-17 16:07:48 +02:00
David Heinemeier Hansson
fc3d1a4af5 Less isn't installed if the packages are the ones failing 2025-09-17 16:02:09 +02:00
David Heinemeier Hansson
020a4659ec Output something if we don't have timing 2025-09-17 15:56:58 +02:00
David Heinemeier Hansson
d66909de14 Include the browser policies 2025-09-17 15:53:46 +02:00
David Heinemeier Hansson
0e17c419be Bring back the walker service for now even with the known memory leak
The move to Walker 1.0 is going to take a little longer. We will fix
this in Omarchy 3.1.
2025-09-17 15:31:22 +02:00
David Heinemeier Hansson
75f035ddb6 Ensure a default theme is used if none exist 2025-09-17 15:12:25 +02:00
DoKoB0512
a039a0fdae Added ZLS - Zig's Language Server when installing Zig (#1718) 2025-09-17 14:40:01 +02:00
David Heinemeier Hansson
9a24ca8a36 No longer necessary
The other mise option is set on Ruby on Rails install
2025-09-17 14:18:03 +02:00
David Heinemeier Hansson
0b8540e663 GCC15 compatibility for Ruby has been achieved 2025-09-17 14:16:33 +02:00
David Heinemeier Hansson
ebb12f187e Let's just stick to the official path 2025-09-17 14:15:04 +02:00
David Heinemeier Hansson
1669832693 No longer needed, gcc-15 compatibility has been added 2025-09-17 14:14:56 +02:00
David Heinemeier Hansson
80bd5e5979 Need libyaml to build ruby 2025-09-17 14:13:21 +02:00
David Heinemeier Hansson
832a33eb93 Skip the prebuilt for a second while we test 2025-09-17 13:51:53 +02:00
David Heinemeier Hansson
a15ccdd1ed Correct the installation of the 1pw policy installer 2025-09-17 13:40:31 +02:00
David Heinemeier Hansson
6d9ae608e5 Move learn back, it was better before 2025-09-17 12:31:21 +02:00
David Heinemeier Hansson
f6df59c9ed Ensure powerprofilesctl always use system python to prevent conflicts with mise 2025-09-17 12:30:35 +02:00
David Heinemeier Hansson
1514c5c633 Fix references 2025-09-17 12:16:41 +02:00
David Heinemeier Hansson
d92e13143f Updates 2025-09-17 10:43:52 +02:00
David Heinemeier Hansson
e14d58fe54 Allow changing Omarchy branches from the menu 2025-09-17 10:28:20 +02:00
David Heinemeier Hansson
f592bca968 Fix download with proper path 2025-09-17 10:12:15 +02:00
Helmut Januschka
b5b4dea4ff Add 1Password extension policy configuration (#1708)
* 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>
2025-09-17 09:53:57 +02:00
Taha
4cda82bc98 Rename theme and update extension identifier (#1711) 2025-09-17 08:19:21 +02:00
David Heinemeier Hansson
69ec570aad Make sure binding starts $TERMINAL 2025-09-16 22:33:40 +02:00
David Heinemeier Hansson
a51c58c20c Ensure directories are present 2025-09-16 22:14:40 +02:00
David Heinemeier Hansson
761a51fac0 Add ALT + F11 to go full width on a window
Closes #1679
Co-authored-by: @c4software
2025-09-16 21:57:16 +02:00
Simon Dawson
654723aa7f Looser GUI editor handling in omarchy-launch-editor script (#1702)
* fix: Default to nvim if $EDITOR not set in omarchy-launch-editor

Refs: https://github.com/basecamp/omarchy/pull/1697/files#r2352727184

* fix: Handle $EDITOR as GUI application by default

If we do not definitively handle $EDITOR as a known TUI editor,
assume a GUI editor and launch without using the terminal.

Refs: https://github.com/basecamp/omarchy/pull/1697/files#r2352727184
2025-09-16 21:53:51 +02:00
David Heinemeier Hansson
b9dfbb8f4c Correct default configs 2025-09-16 21:50:23 +02:00
David Heinemeier Hansson
eec51b1fb5 Add a migration to ensure that ghostty and kitty configs are available if someone switches over 2025-09-16 21:46:06 +02:00
Amit
a1228dac6b add kitty.conf for each theme; config switches with theme (#1296)
* add kitty.conf for each theme; config switches with theme

* Revise default config

* Correct restart location

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-16 21:40:07 +02:00
David Heinemeier Hansson
432ffb508c Themeing for ghostty (#1701)
* 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
2025-09-16 21:31:40 +02:00
David Heinemeier Hansson
bf0c2cc9a5 Allow custom editor, like we do custom terminal (#1697) 2025-09-16 15:14:29 +02:00
Ofir Miller
7e1c88b932 update to use $TERMINAL instead of alacitty (#1648)
* 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>
2025-09-16 14:32:40 +02:00
David Heinemeier Hansson
c8fa96f382 Revert "Feed the image folder to the Image Viewer so the next/previous image navigation works (#1444)"
This reverts commit 55bf2457d4.
2025-09-16 10:31:55 +02:00
Gustavo Nascimento
2e4c9d0de8 fix: correct ANSI escape sequence in boot branch message (#1689)
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.
2025-09-16 08:39:45 +02:00
Manuel
facae82630 Bugfix screensaver not exiting (#1687)
* exit if screensaver not in focus

* Extract explaining function

* Consistent function style

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-15 22:46:15 +02:00
David Heinemeier Hansson
2719db01f9 Separate out the bulk of omarchy-update so we can get any changes from git to it first
Also run migrate after we have updated system packages
2025-09-15 21:58:11 +02:00
David Heinemeier Hansson
461f8186f6 Reliably dismiss notification based on a summary match 2025-09-15 20:30:57 +02:00
David Heinemeier Hansson
c5d04e8e9c Fix new references 2025-09-15 19:04:11 +02:00
Stefan Gründel
c072715ebe add themes from https://github.com/eza-community/eza-themes (#1242)
* 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>
2025-09-15 19:02:57 +02:00
David Heinemeier Hansson
55911ebf7d Cleanup and extract theme setting 2025-09-15 18:56:49 +02:00
Omar Skalli
d3304c4a88 Automatically change VS Code theme along with Omarchy themes (#800)
* 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>
2025-09-15 18:20:02 +02:00
Guilherme Nandi Tiscoski
f401c72ea2 Add omarchy-cmd-share script/menu (#884)
* 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>
2025-09-15 16:39:13 +02:00
David Heinemeier Hansson
3986afd0c5 Quote for multi word 2025-09-15 15:22:07 +02:00
Ofir Levitan
415896605e revert: Fix screen recording on Intel graphics #669 (#1559)
* remove intel

* remove accidental paste

* Update omarchy-cmd-screenrecord
2025-09-15 12:23:46 +02:00
Jankees van Woezik
1e6ddf55ce Copy URL to clipboard from Chromium apps (#1458)
* 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>
2025-09-15 12:22:28 +02:00
David Heinemeier Hansson
5582c51676 Add invitation to update the system to the latest 2025-09-15 11:36:07 +02:00
David Heinemeier Hansson
5f56f4ccc7 Expose Hyprland styling directly
Closes #660
Co-authored-by: @med502
2025-09-14 22:14:29 +02:00
v-oleg
e4ca98301b Add focus or launch script (#925)
* 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>
2025-09-14 21:58:08 +02:00
David Heinemeier Hansson
e228a987a8 Add migration to ensure Obsidian binding is using wayland-ime 2025-09-14 21:16:04 +02:00
David Heinemeier Hansson
f9edbfe10c Enable wayland IME to cure compatibility with fcitx5 and other languages
Closes #1036
Co-authored-by: @ashutoshbw
2025-09-14 21:12:03 +02:00
David Heinemeier Hansson
2cb285c267 Add Super + Ctrl + Tab to go to former workspace
Closes #1218
Co-authored-by: @zaborowskimichal
2025-09-14 20:47:57 +02:00
Ryan Hughes
5be0e4de44 Skip adding UKI EFI entry for Apple 2025-09-14 14:28:57 -04:00
Luis Daniel Casais
5f92574586 Add option to show PKGBUILD in omarchy-pkg-aur-install (#1146)
* Add option to show PKGBUILD in omarchy-pkg-aur-install

* Fix extra parenthesis

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 20:08:59 +02:00
Ryan Hughes
772a75376e Add T2 MacBook support (#1657)
* 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>
2025-09-14 19:49:43 +02:00
Helmut Januschka
d5314cecb7 Enable Google Signin / sync (#1365)
* Enable Google Signin / sync

* Add migration to add the flags

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 19:45:02 +02:00
122 changed files with 1824 additions and 184 deletions

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Name=Image Viewer
Exec=sh -c 'imv -n "$1" "$(dirname "$1")"' sh %f
Exec=imv %F
Icon=imv
Type=Application
MimeType=image/png;image/jpeg;image/jpg;image/gif;image/bmp;image/webp;image/tiff;image/x-xcf;image/x-portable-pixmap;image/x-xbitmap;

View File

@@ -2,7 +2,7 @@
Name=Neovim
GenericName=Text Editor
Comment=Edit text files
Exec=alacritty --class=nvim --title=nvim -e nvim -- %F
Exec=$TERMINAL --class=nvim --title=nvim -e nvim -- %F
Terminal=false
Type=Application
Keywords=Text;editor;

View File

@@ -17,7 +17,7 @@ AUDIO=$([[ $2 == "audio" ]] && echo "--audio")
start_screenrecording() {
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
if lspci | grep -Eqi 'nvidia|intel.*graphics'; then
if lspci | grep -qi 'nvidia'; then
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@" &
else
wl-screenrec $AUDIO -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@" &

View File

@@ -1,6 +1,10 @@
#!/bin/bash
function exit_screensaver {
screensaver_in_focus() {
hyprctl activewindow -j | jq -e '.class == "Screensaver"' >/dev/null 2>&1
}
exit_screensaver() {
hyprctl keyword cursor:invisible false
pkill -x tte 2>/dev/null
pkill -f "alacritty --class Screensaver" 2>/dev/null
@@ -18,7 +22,7 @@ while true; do
"$effect" &
while pgrep -x tte >/dev/null; do
if read -n 1 -t 3; then
if read -n 1 -t 3 || ! screensaver_in_focus; then
exit_screensaver
fi
done

44
bin/omarchy-cmd-share Executable file
View File

@@ -0,0 +1,44 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-cmd-share [clipboard|file|folder]"
exit 1
fi
MODE="$1"
shift
if [[ $MODE == "clipboard" ]]; then
TEMP_FILE=$(mktemp --suffix=.txt)
wl-paste >"$TEMP_FILE"
FILES="$TEMP_FILE"
else
if (($# > 0)); then
FILES="$*"
else
if [[ $MODE == "folder" ]]; then
# Pick a single folder from home directory
FILES=$(find "$HOME" -type d 2>/dev/null | fzf)
else
# Pick one or more files from home directory
FILES=$(find "$HOME" -type f 2>/dev/null | fzf --multi)
fi
[ -z "$FILES" ] && exit 0
fi
fi
# Run LocalSend in its own systemd service (detached from terminal)
# Convert newline-separated files to space-separated arguments
if [[ $MODE != "clipboard" ]] && echo "$FILES" | grep -q $'\n'; then
# Multiple files selected - convert newlines to array
readarray -t FILE_ARRAY <<<"$FILES"
systemd-run --user --quiet --collect localsend --headless send "${FILE_ARRAY[@]}"
else
# Single file or clipboard mode
systemd-run --user --quiet --collect localsend --headless send "$FILES"
fi
# Note: Temporary file will remain until system cleanup for clipboard mode
# This ensures the file content is available for the LocalSend GUI
exit 0

View File

@@ -1,3 +1,3 @@
#!/bin/bash
grep -oP 'family\s*=\s*"\K[^"]+' ~/.config/alacritty/alacritty.toml | head -n1
grep -oP 'font-family:\s*["'\'']?\K[^;"'\'']+' ~/.config/waybar/style.css | head -n1

View File

@@ -4,7 +4,20 @@ font_name="$1"
if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
if fc-list | grep -iq "$font_name"; then
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
fi
if [[ -f ~/.config/kitty/kitty.conf ]]; then
sed -i "s/^font_family .*/font_family $font_name/g" ~/.config/kitty/kitty.conf
pkill -USR1 kitty
fi
if [[ -f ~/.config/ghostty/config ]]; then
sed -i "s/font-family = \".*\"/font-family = \"$font_name\"/g" ~/.config/ghostty/config
pkill -SIGUSR2 ghostty
fi
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/waybar/style.css
sed -i "s/font-family: .*/font-family: '$font_name';/g" ~/.config/swayosd/style.css
xmlstarlet ed -L \

View File

@@ -0,0 +1,13 @@
#!/bin/bash
if [[ -f ~/.config/chromium-flags.conf ]]; then
CONF=~/.config/chromium-flags.conf
grep -qxF -- "--oauth2-client-id=77185425430.apps.googleusercontent.com" "$CONF" ||
echo "--oauth2-client-id=77185425430.apps.googleusercontent.com" >>"$CONF"
grep -qxF -- "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" "$CONF" ||
echo "--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT" >>"$CONF"
echo "Now you can login to your Google Account in Chromium."
fi

View File

@@ -119,6 +119,7 @@ java)
zig)
echo -e "Installing Zig...\n"
mise use --global zig@latest
mise use -g zls@latest
;;
ocaml)
echo -e "Installing OCaml...\n"

19
bin/omarchy-install-terminal Executable file
View File

@@ -0,0 +1,19 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-install-terminal [alacritty|ghostty|kitty]"
exit 1
fi
package="$1"
# Install package
omarchy-pkg-add $package
# Set as default terminal
echo "Setting $package as new default terminal..."
sed -i "/export TERMINAL=/ c\export TERMINAL=$package" ~/.config/uwsm/default
# Relaunch is needed for new default to take effect
echo
gum confirm "Relaunch Hyprland to use new terminal?" && uwsm stop

3
bin/omarchy-launch-about Executable file
View File

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

10
bin/omarchy-launch-editor Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/bash
case "${EDITOR:-nvim}" in
nvim | vim | nano | micro | hx)
exec setsid uwsm app -- "$TERMINAL" -e "$EDITOR" "$@"
;;
*)
exec setsid uwsm app -- "$EDITOR" "$@"
;;
esac

View File

@@ -1,4 +1,4 @@
#!/bin/bash
cmd="$*"
setsid alacritty --class Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"
exec setsid uwsm app -- alacritty --class=Omarchy --title=Omarchy -e bash -c "omarchy-show-logo; $cmd; omarchy-show-done"

16
bin/omarchy-launch-or-focus Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-launch-or-focus [window-pattern] [launch-command]"
exit 1
fi
WINDOW_PATTERN="$1"
LAUNCH_COMMAND="${2:-"uwsm app -- $WINDOW_PATTERN"}"
WINDOW_ADDRESS=$(hyprctl clients -j | jq -r --arg p "$WINDOW_PATTERN" '.[]|select((.class+" "+.title)|test($p;"i"))|.address' | head -n1)
if [[ -n $WINDOW_ADDRESS ]]; then
hyprctl dispatch focuswindow "address:$WINDOW_ADDRESS"
else
eval exec $LAUNCH_COMMAND
fi

View File

@@ -0,0 +1,8 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-launch-or-focus-webapp [window-pattern] [url]"
exit 1
fi
exec omarchy-launch-or-focus "$1" "omarchy-launch-webapp '$2'"

View File

@@ -17,6 +17,8 @@ focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
hyprctl dispatch focusmonitor $m
# FIXME: Find a way to make this generic where we it can work for kitty + ghostty
hyprctl dispatch exec -- \
alacritty --class Screensaver \
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \

3
bin/omarchy-launch-wifi Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
exec setsid uwsm app -- "$TERMINAL" --class=Impala -e impala "$@"

View File

@@ -9,4 +9,4 @@ if pgrep -x "1password" >/dev/null; then
fi
# Avoid running screensaver when locked
pkill -f "alacritty --class Screensaver"
pkill -f "$TERMINAL --class Screensaver"

View File

@@ -37,16 +37,16 @@ menu() {
}
terminal() {
alacritty --class Omarchy -e "$@"
alacritty --class=Omarchy -e "$@"
}
present_terminal() {
omarchy-launch-floating-terminal-with-presentation $1
}
edit_in_nvim() {
open_in_editor() {
notify-send "Editing config file" "$1"
alacritty -e nvim "$1"
omarchy-launch-editor "$1"
}
install() {
@@ -61,6 +61,10 @@ install_font() {
present_terminal "echo 'Installing $1...'; sudo pacman -S --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
}
install_terminal() {
present_terminal "omarchy-install-terminal $1"
}
aur_install() {
present_terminal "echo 'Installing $1 from AUR...'; yay -S --noconfirm $2"
}
@@ -81,41 +85,21 @@ show_learn_menu() {
esac
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background\n󱄄 Screensaver\n About") in
*Theme*) show_theme_menu ;;
*Font*) show_font_menu ;;
*Background*) omarchy-theme-bg-next ;;
*Screensaver*) edit_in_nvim ~/.config/omarchy/branding/screensaver.txt ;;
*About*) edit_in_nvim ~/.config/omarchy/branding/about.txt ;;
show_trigger_menu() {
case $(menu "Trigger" " Capture\n Share\n󰔎 Toggle") in
*Capture*) show_capture_menu ;;
*Share*) show_share_menu ;;
*Toggle*) show_toggle_menu ;;
*) show_main_menu ;;
esac
}
show_theme_menu() {
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
back_to show_style_menu
else
omarchy-theme-set "$theme"
fi
}
show_font_menu() {
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
back_to show_style_menu
else
omarchy-font-set "$theme"
fi
}
show_capture_menu() {
case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in
*Screenshot*) show_screenshot_menu ;;
*Screenrecord*) show_screenrecord_menu ;;
*Color*) pkill hyprpicker || hyprpicker -a ;;
*) show_main_menu ;;
*) show_trigger_menu ;;
esac
}
@@ -138,40 +122,79 @@ show_screenrecord_menu() {
esac
}
show_share_menu() {
case $(menu "Share" " Clipboard\n File \n Folder") in
*Clipboard*) terminal bash -c "omarchy-cmd-share clipboard" ;;
*File*) terminal bash -c "omarchy-cmd-share file" ;;
*Folder*) terminal bash -c "omarchy-cmd-share folder" ;;
*) back_to show_trigger_menu ;;
esac
}
show_toggle_menu() {
case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in
*Screensaver*) omarchy-toggle-screensaver ;;
*Nightlight*) omarchy-toggle-nightlight ;;
*Idle*) omarchy-toggle-idle ;;
*Bar*) omarchy-toggle-waybar ;;
*) show_trigger_menu ;;
esac
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in
*Theme*) show_theme_menu ;;
*Font*) show_font_menu ;;
*Background*) omarchy-theme-bg-next ;;
*Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;;
*Screensaver*) open_in_editor ~/.config/omarchy/branding/screensaver.txt ;;
*About*) open_in_editor ~/.config/omarchy/branding/about.txt ;;
*) show_main_menu ;;
esac
}
show_theme_menu() {
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
back_to show_style_menu
else
omarchy-theme-set "$theme"
fi
}
show_font_menu() {
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
back_to show_style_menu
else
omarchy-font-set "$theme"
fi
}
show_setup_menu() {
local options=" Audio\n Wifi\n󰂯 Bluetooth\n󱐋 Power Profile\n󰍹 Monitors"
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
options="$options\n󰱔 DNS\n Config\n󰈷 Fingerprint\n Fido2"
options="$options\n Defaults\n󰱔 DNS\n Security\n Config"
case $(menu "Setup" "$options") in
*Audio*) alacritty --class=Wiremix -e wiremix ;;
*Audio*) $TERMINAL --class=Wiremix -e wiremix ;;
*Wifi*)
rfkill unblock wifi
alacritty --class=Impala -e impala
omarchy-launch-wifi
;;
*Bluetooth*)
rfkill unblock bluetooth
blueberry
;;
*Power*) show_setup_power_menu ;;
*Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;;
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
*Monitors*) open_in_editor ~/.config/hypr/monitors.conf ;;
*Keybindings*) open_in_editor ~/.config/hypr/bindings.conf ;;
*Input*) open_in_editor ~/.config/hypr/input.conf ;;
*Defaults*) open_in_editor ~/.config/uwsm/default ;;
*DNS*) present_terminal omarchy-setup-dns ;;
*Security*) show_setup_security_menu ;;
*Config*) show_setup_config_menu ;;
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-fido2 ;;
*) show_main_menu ;;
esac
}
@@ -188,20 +211,28 @@ show_setup_power_menu() {
show_setup_config_menu() {
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in
*Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;;
*Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
*Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;;
*Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
*Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
*Walker*) edit_in_nvim ~/.config/walker/config.toml && omarchy-restart-walker ;;
*Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
*XCompose*) edit_in_nvim ~/.XCompose && omarchy-restart-xcompose ;;
*Hyprland*) open_in_editor ~/.config/hypr/hyprland.conf ;;
*Hypridle*) open_in_editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
*Hyprlock*) open_in_editor ~/.config/hypr/hyprlock.conf ;;
*Hyprsunset*) open_in_editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
*Swayosd*) open_in_editor ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
*Walker*) open_in_editor ~/.config/walker/config.toml && omarchy-restart-walker ;;
*Waybar*) open_in_editor ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
*XCompose*) open_in_editor ~/.XCompose && omarchy-restart-xcompose ;;
*) show_main_menu ;;
esac
}
show_setup_security_menu() {
case $(menu "Setup" "󰈷 Fingerprint\n Fido2") in
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-fido2 ;;
*) show_setup_menu ;;
esac
}
show_install_menu() {
case $(menu "Install" "󰣇 Package\n󰣇 AUR\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI\n Gaming") in
case $(menu "Install" "󰣇 Package\n󰣇 AUR\n Web App\n TUI\n Service\n Style\n󰵮 Development\n Editor\n Terminal\n󱚤 AI\n Gaming") in
*Package*) terminal omarchy-pkg-install ;;
*AUR*) terminal omarchy-pkg-aur-install ;;
*Web*) present_terminal omarchy-webapp-install ;;
@@ -210,6 +241,7 @@ show_install_menu() {
*Style*) show_install_style_menu ;;
*Development*) show_install_development_menu ;;
*Editor*) show_install_editor_menu ;;
*Terminal*) show_install_terminal_menu ;;
*AI*) show_install_ai_menu ;;
*Gaming*) show_install_gaming_menu ;;
*) show_main_menu ;;
@@ -217,10 +249,11 @@ show_install_menu() {
}
show_install_service_menu() {
case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden") in
case $(menu "Install" " Dropbox\n Tailscale\n󰟵 Bitwarden\n Chromium Account") in
*Dropbox*) present_terminal omarchy-install-dropbox ;;
*Tailscale*) present_terminal omarchy-install-tailscale ;;
*Bitwarden*) install_and_launch "Bitwarden" "bitwarden bitwarden-cli" "bitwarden" ;;
*Chromium*) present_terminal omarchy-install-chromium-google-account ;;
*) show_install_menu ;;
esac
}
@@ -237,6 +270,15 @@ show_install_editor_menu() {
esac
}
show_install_terminal_menu() {
case $(menu "Install" " Alacritty\n Ghostty\n Kitty") in
*Alacritty*) install_terminal "alacritty" ;;
*Ghostty*) install_terminal "ghostty" ;;
*Kitty*) install_terminal "kitty" ;;
*) show_install_menu ;;
esac
}
show_install_ai_menu() {
ollama_pkg=$(
(command -v nvidia-smi &>/dev/null && echo ollama-cuda) ||
@@ -342,8 +384,9 @@ show_remove_menu() {
}
show_update_menu() {
case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n󰇅 Hardware\n Password\n Timezone") in
case $(menu "Update" " Omarchy\n Branch\n Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Password\n Timezone") in
*Omarchy*) present_terminal omarchy-update ;;
*Branch*) show_update_branch_menu ;;
*Config*) show_update_config_menu ;;
*Themes*) present_terminal omarchy-theme-update ;;
*Process*) show_update_process_menu ;;
@@ -354,6 +397,13 @@ show_update_menu() {
esac
}
show_update_branch_menu() {
case $(menu "Branch" "master\ndev" "" "$(omarchy-version-branch)") in
*master*) present_terminal "omarchy-update-branch master" ;;
*dev*) present_terminal "omarchy-update-branch dev" ;;
*) show_update_menu ;;
esac
}
show_update_process_menu() {
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in
*Hypridle*) omarchy-restart-hypridle ;;
@@ -408,25 +458,25 @@ show_system_menu() {
}
show_main_menu() {
go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System")"
go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n󱓞 Trigger\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System")"
}
go_to_menu() {
case "${1,,}" in
*apps*) walker -p "Launch…" ;;
*learn*) show_learn_menu ;;
*trigger*) show_trigger_menu ;;
*share*) show_share_menu ;;
*style*) show_style_menu ;;
*theme*) show_theme_menu ;;
*capture*) show_capture_menu ;;
*screenshot*) show_screenshot_menu ;;
*screenrecord*) show_screenrecord_menu ;;
*toggle*) show_toggle_menu ;;
*setup*) show_setup_menu ;;
*power*) show_setup_power_menu ;;
*install*) show_install_menu ;;
*remove*) show_remove_menu ;;
*update*) show_update_menu ;;
*about*) alacritty --class Omarchy -o font.size=9 -e bash -c 'fastfetch; read -n 1 -s' ;;
*about*) omarchy-launch-about ;;
*system*) show_system_menu ;;
esac
}

View File

@@ -0,0 +1,13 @@
#!/bin/bash
if (($# == 0)); then
echo "Usage: omarchy-notification-dismiss <summary>"
exit 1
fi
# Find the first notification whose 'summary' matches the regex in $1
notification_id=$(makoctl list | grep -F "$1" | head -n1 | sed -E 's/^Notification ([0-9]+):.*/\1/')
if [[ -n $notification_id ]]; then
makoctl dismiss -n $notification_id
fi

View File

@@ -2,13 +2,15 @@
fzf_args=(
--multi
--preview 'yay -Sii {1}'
--preview-label='alt-p: toggle description, alt-j/k: scroll, tab: multi-select, F11: maximize'
--preview 'yay -Siia {1}'
--preview-label='alt-p: toggle description, alt-b/B: toggle PKGBUILD, alt-j/k: scroll, tab: multi-select, F11: maximize'
--preview-label-pos='bottom'
--preview-window 'down:65%:wrap'
--bind 'alt-p:toggle-preview'
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
--bind 'alt-k:preview-up,alt-j:preview-down'
--bind 'alt-b:change-preview:yay -Gpa {1} | tail -n +5'
--bind 'alt-B:change-preview:yay -Siia {1}'
--color 'pointer:green,marker:green'
)

View File

@@ -1,7 +1,7 @@
#!/bin/bash
pkill walker
# FIXME: Reenable the walker service once the memory leak has been fixed
# FIXME: Just deal with the memory leak for now.
# See https://github.com/basecamp/omarchy/issues/698
# setsid uwsm app -- walker --gapplication-service &
setsid uwsm app -- walker --gapplication-service &
echo # Always end in success so we don't terminate further running

View File

@@ -20,52 +20,19 @@ fi
# Update theme symlinks
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
# Change gnome modes
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
else
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
fi
# Change gnome icon theme color
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
else
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
fi
# Change browser colors via policies
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
rgb=$(<~/.config/omarchy/current/theme/chromium.theme)
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
else
# Use a default, neutral grey if theme doesn't have a color
THEME_HEX_COLOR="#1c2027"
fi
if omarchy-cmd-present chromium; then
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
chromium --refresh-platform-policy --no-startup-window
fi
if omarchy-cmd-present brave; then
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
brave --refresh-platform-policy --no-startup-window
fi
fi
# Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml"
# Change background with theme
omarchy-theme-bg-next
# Restart components to apply new theme
pkill -SIGUSR2 btop
omarchy-restart-waybar
omarchy-restart-swayosd
makoctl reload
hyprctl reload
pkill -SIGUSR2 btop
makoctl reload
# Set new background
omarchy-theme-bg-next
# Change gnome, browser, vscode themes
omarchy-theme-set-terminal
omarchy-theme-set-gnome
omarchy-theme-set-eza
omarchy-theme-set-browser
omarchy-theme-set-vscode

23
bin/omarchy-theme-set-browser Executable file
View File

@@ -0,0 +1,23 @@
#!/bin/bash
CHROMIUM_THEME=~/.config/omarchy/current/theme/chromium.theme
if omarchy-cmd-present chromium || omarchy-cmd-present brave; then
if [[ -f $CHROMIUM_THEME ]]; then
rgb=$(<$CHROMIUM_THEME)
THEME_HEX_COLOR=$(printf '#%02x%02x%02x' ${rgb//,/ })
else
# Use a default, neutral grey if theme doesn't have a color
THEME_HEX_COLOR="#1c2027"
fi
if omarchy-cmd-present chromium; then
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/chromium/policies/managed/color.json" >/dev/null
chromium --refresh-platform-policy --no-startup-window
fi
if omarchy-cmd-present brave; then
echo "{\"BrowserThemeColor\": \"$THEME_HEX_COLOR\"}" | tee "/etc/brave/policies/managed/color.json" >/dev/null
brave --refresh-platform-policy --no-startup-window
fi
fi

7
bin/omarchy-theme-set-eza Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
if [ -f ~/.config/omarchy/current/theme/eza.yml ]; then
ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml
else
rm -f ~/.config/eza/theme.yml
fi

18
bin/omarchy-theme-set-gnome Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
# Change gnome modes
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
gsettings set org.gnome.desktop.interface color-scheme "prefer-light"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita"
else
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
fi
# Change gnome icon theme color
GNOME_ICONS_THEME=~/.config/omarchy/current/theme/icons.theme
if [[ -f $GNOME_ICONS_THEME ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<$GNOME_ICONS_THEME)"
else
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
fi

14
bin/omarchy-theme-set-terminal Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
case "$TERMINAL" in
"alacritty") touch ~/.config/alacritty/alacritty.toml ;;
"kitty") killall -SIGUSR1 kitty ;;
"ghostty")
# Use a default theme if none exists
if [[ ! -f ~/.config/omarchy/current/theme/ghostty.conf ]]; then
echo "theme = Spacegray" >~/.config/omarchy/current/theme/ghostty.conf
fi
killall -USRSIG2 ghostty
;;
esac

26
bin/omarchy-theme-set-vscode Executable file
View File

@@ -0,0 +1,26 @@
#!/bin/bash
VS_CODE_THEME="$HOME/.config/omarchy/current/theme/vscode.json"
VS_CODE_SETTINGS="$HOME/.config/Code/User/settings.json"
VS_CODE_SKIP_FLAG="$HOME/.local/state/omarchy/toggles/skip-vscode-theme-changes"
if omarchy-cmd-present code && [[ ! -f "$VS_CODE_SKIP_FLAG" ]]; then
if [[ -f "$VS_CODE_THEME" ]]; then
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
extension=$(jq -r '.extension' "$VS_CODE_THEME")
# Install VS Code theme extension
if [[ -n "$extension" ]] && ! code --list-extensions | grep -Fxq "$extension"; then
notify-send " Installing VS Code theme for $theme_name"
code --install-extension "$extension" >/dev/null
fi
# Update theme in settings.json
jq -n --arg t "$theme_name" '(input? // {}) | .["workbench.colorTheme"] = $t' "$VS_CODE_SETTINGS" >"${VS_CODE_SETTINGS}.new"
else
# Remove theme from settings.json when the theme doesn't have vscode support
jq 'del(.["workbench.colorTheme"])' "$VS_CODE_SETTINGS" >"${VS_CODE_SETTINGS}.new"
fi
mv "${VS_CODE_SETTINGS}.new" "$VS_CODE_SETTINGS"
fi

View File

@@ -43,7 +43,7 @@ cat >"$DESKTOP_FILE" <<EOF
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=alacritty --class $APP_CLASS -e $APP_EXEC
Exec=$TERMINAL --class $APP_CLASS -e $APP_EXEC
Terminal=false
Type=Application
Icon=$ICON_PATH

View File

@@ -6,7 +6,7 @@ DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -eq 0 ]; then
# Find all TUIs
while IFS= read -r -d '' file; do
if grep -q '^Exec=.*alacritty.*-e' "$file"; then
if grep -q '^Exec=.*$TERMINAL.*-e' "$file"; then
TUIS+=("$(basename "${file%.desktop}")")
fi
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)

View File

@@ -4,7 +4,4 @@ set -e
omarchy-snapshot create || [ $? -eq 127 ]
omarchy-update-git
omarchy-migrate
omarchy-update-system-pkgs
omarchy-update-restart
omarchy-update-available-reset
omarchy-update-perform

33
bin/omarchy-update-branch Executable file
View File

@@ -0,0 +1,33 @@
#!/bin/bash
set -e
if (($# == 0)); then
echo "Usage: omarchy-verion-branch-set [master|dev]"
exit 1
fi
branch="$1"
# Snapshot before switching branch
omarchy-snapshot create || [ $? -eq 127 ]
if ! git -C "$OMARCHY_PATH" diff --quiet || ! git -C "$OMARCHY_PATH" diff --cached --quiet; then
stashed=true
git -C "$OMARCHY_PATH" stash push -u -m "Autostash before switching to $branch"
else
stashed=false
fi
# Switch branches
git -C "$OMARCHY_PATH" switch "$branch"
# Reapply stash if we made one
if [[ $stashed == true ]]; then
if ! git -C "$OMARCHY_PATH" stash pop; then
echo "⚠️ Conflicts when applying stash — stash kept"
fi
fi
# Update the system from the new branch
omarchy-update-perform

8
bin/omarchy-update-perform Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
set -e
omarchy-update-available-reset
omarchy-update-system-pkgs
omarchy-migrate
omarchy-update-restart

View File

@@ -1,3 +1,2 @@
#!/bin/bash
git -C "$OMARCHY_PATH" describe --tags $(git -C "$OMARCHY_PATH" rev-list --tags --max-count=1)
cat $OMARCHY_PATH/version

View File

@@ -24,7 +24,9 @@ if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_REF" ]]; then
fi
# Refer to local icon or fetch remotely from URL
ICON_DIR="$HOME/.local/share/applications/icons"
if [[ $ICON_REF =~ ^https?:// ]]; then
ICON_PATH="$ICON_DIR/$APP_NAME.png"
if curl -sL -o "$ICON_PATH" "$ICON_REF"; then
ICON_PATH="$ICON_DIR/$APP_NAME.png"
else
@@ -32,7 +34,7 @@ if [[ $ICON_REF =~ ^https?:// ]]; then
exit 1
fi
else
ICON_PATH="$HOME/.local/share/applications/icons/$ICON_REF"
ICON_PATH="$ICON_DIR/$ICON_REF"
fi
# Use custom exec if provided, otherwise default behavior

View File

@@ -29,7 +29,7 @@ git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/
# Use custom branch if instructed, otherwise default to master
OMARCHY_REF="${OMARCHY_REF:-master}"
if [[ $OMARCHY_REF != "master" ]]; then
echo -e "\eUsing branch: $OMARCHY_REF"
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
cd ~/.local/share/omarchy
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
cd -

View File

@@ -1,3 +1,4 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url

21
config/ghostty/config Normal file
View File

@@ -0,0 +1,21 @@
# Dynamic theme colors
config-file = "~/.config/omarchy/current/theme/ghostty.conf"
# Font
font-family = "CaskaydiaMono Nerd Font"
font-style = Regular
font-size = 9
# Window
window-padding-x = 14
window-padding-y = 14
confirm-close-surface=false
resize-overlay = never
# Cursor stlying
cursor-style = "block"
cursor-style-blink = false
shell-integration-features = no-cursor
# Keyboard bindings
keybind = f11=toggle_fullscreen

View File

@@ -1,17 +1,17 @@
# Application bindings
$terminal = uwsm app -- alacritty
$terminal = uwsm app -- $TERMINAL
$browser = omarchy-launch-browser
bindd = SUPER, return, Terminal, exec, $terminal --working-directory="$(omarchy-cmd-terminal-cwd)"
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private
bindd = SUPER, M, Music, exec, uwsm app -- spotify
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
bindd = SUPER, M, Music, exec, omarchy-launch-or-focus spotify
bindd = SUPER, N, Editor, exec, omarchy-launch-editor
bindd = SUPER, T, Activity, exec, $terminal -e btop
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
bindd = SUPER, G, Signal, exec, omarchy-launch-or-focus signal "uwsm app -- signal-desktop"
bindd = SUPER, O, Obsidian, exec, omarchy-launch-or-focus obsidian "uwsm app -- obsidian -disable-gpu --enable-wayland-ime"
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
# If your web app url contains #, type it as ## to prevent hyperland treat it as comments
@@ -19,9 +19,9 @@ bindd = SUPER, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
bindd = SUPER SHIFT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
bindd = SUPER, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
bindd = SUPER, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
bindd = SUPER, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-webapp "https://web.whatsapp.com/"
bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-webapp "https://messages.google.com/web/conversations"
bindd = SUPER, Y, YouTube, exec, omarchy-launch-or-focus-webapp YouTube "https://youtube.com/"
bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
bindd = SUPER, X, X, exec, omarchy-launch-webapp "https://x.com/"
bindd = SUPER SHIFT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"

View File

@@ -1,3 +1,2 @@
# Extra env variables
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
# env = MY_GLOBAL_ENV,setting

View File

@@ -28,7 +28,7 @@ input {
}
# Scroll faster in the terminal
windowrule = scrolltouchpad 1.5, class:Alacritty
windowrule = scrolltouchpad 1.5, tag:terminal
# Enable touchpad gestures for changing workspaces
# See https://wiki.hyprland.org/Configuring/Gestures/

30
config/kitty/kitty.conf Normal file
View File

@@ -0,0 +1,30 @@
include ~/.config/omarchy/current/theme/kitty.conf
# Font
font_family CaskaydiaMono Nerd Font
bold_italic_font auto
font_size 9.0
# Window
window_padding_width 14
window_padding_height 14
hide_window_decorations yes
show_window_resize_notification no
confirm_os_window_close 0
# Keybindings
map F11 toggle_fullscreen
# Allow remote access
single_instance yes
allow_remote_control yes
# Aesthetics
cursor_shape block
enable_audio_bell no
# Minimal Tab bar styling
tab_bar_edge bottom
tab_bar_style powerline
tab_powerline_style slanted
tab_title_template {title}{' :{}:'.format(num_windows) if num_windows > 1 else ''}

4
config/uwsm/default Normal file
View File

@@ -0,0 +1,4 @@
# Changes require a relaunch of Hyprland to take effect.
export TERMINAL=alacritty
export EDITOR=nvim

View File

@@ -1,7 +1,11 @@
# Changes require a relaunch of Hyprland to take effect.
# Ensure Omarchy bins are in the path
export OMARCHY_PATH=$HOME/.local/share/omarchy
export PATH=$OMARCHY_PATH/bin/:$PATH
export TERMINAL=alacritty
if command -v mise &> /dev/null; then
eval "$(mise activate bash)"
fi
# Set default terminal and editor
source ~/.config/uwsm/default
# Activate mise if present on the system
omarchy-cmd-present mise && eval "$(mise activate bash)"

View File

@@ -55,7 +55,7 @@
"cpu": {
"interval": 5,
"format": "󰍛",
"on-click": "alacritty -e btop"
"on-click": "$TERMINAL -e btop"
},
"clock": {
"format": "{:L%A %H:%M}",
@@ -74,7 +74,7 @@
"tooltip-format-disconnected": "Disconnected",
"interval": 3,
"spacing": 1,
"on-click": "alacritty --class=Impala -e impala"
"on-click": "omarchy-launch-wifi"
},
"battery": {
"format": "{capacity}% {icon}",
@@ -104,7 +104,7 @@
},
"pulseaudio": {
"format": "{icon}",
"on-click": "alacritty --class=Wiremix -e wiremix",
"on-click": "$TERMINAL --class=Wiremix -e wiremix",
"on-click-right": "pamixer -t",
"tooltip-format": "Playing at {volume}%",
"scroll-step": 5,

View File

@@ -1,4 +1,3 @@
# Editor used by CLI
export EDITOR="nvim"
export SUDO_EDITOR="$EDITOR"
export BAT_THEME=ansi

View File

@@ -6,9 +6,3 @@ source ~/.local/share/omarchy/default/bash/rc
#
# Make an alias for invoking commands you use constantly
# alias p='python'
#
# Use VSCode instead of neovim as your default editor
# export EDITOR="code"
#
# Set a custom prompt with the directory revealed (alternatively use https://starship.rs)
# PS1="\W \[\e]0;\w\a\]$PS1"

View File

@@ -0,0 +1,21 @@
chrome.commands.onCommand.addListener((command) => {
if (command === 'copy-url') {
chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
const currentTab = tabs[0];
chrome.scripting.executeScript({
target: { tabId: currentTab.id },
func: () => {
navigator.clipboard.writeText(window.location.href);
}
}).then(() => {
chrome.notifications.create({
type: 'basic',
iconUrl: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==',
title: ' URL copied to clipboard',
message: ''
});
});
});
}
});

View File

@@ -0,0 +1 @@
../../../../icon.png

View File

@@ -0,0 +1,19 @@
{
"manifest_version": 4,
"name": "Copy URL",
"version": "1.0",
"description": "Copy current URL to clipboard, this extension is installed by Omarchy",
"permissions": ["activeTab", "scripting", "notifications"],
"icons": {
"16": "icon.png",
"48": "icon.png",
"128": "icon.png"
},
"commands": {
"copy-url": {
"suggested_key": {"default": "Alt+Shift+L"},
"description": "Copy URL"
}
},
"background": {"service_worker": "background.js"}
}

View File

@@ -4,9 +4,11 @@ source = ~/.local/share/omarchy/default/hypr/apps/bitwarden.conf
source = ~/.local/share/omarchy/default/hypr/apps/browser.conf
source = ~/.local/share/omarchy/default/hypr/apps/hyprshot.conf
source = ~/.local/share/omarchy/default/hypr/apps/jetbrains.conf
source = ~/.local/share/omarchy/default/hypr/apps/localsend.conf
source = ~/.local/share/omarchy/default/hypr/apps/pip.conf
source = ~/.local/share/omarchy/default/hypr/apps/qemu.conf
source = ~/.local/share/omarchy/default/hypr/apps/retroarch.conf
source = ~/.local/share/omarchy/default/hypr/apps/steam.conf
source = ~/.local/share/omarchy/default/hypr/apps/system.conf
source = ~/.local/share/omarchy/default/hypr/apps/terminals.conf
source = ~/.local/share/omarchy/default/hypr/apps/walker.conf

View File

@@ -0,0 +1,3 @@
# Float LocalSend and fzf file picker
windowrule = float, class:(Share|localsend)
windowrule = center, class:(Share|localsend)

View File

@@ -0,0 +1,2 @@
# Define terminal tag to style them uniformly
windowrule = tag +terminal, class:(Alacritty|kitty|com.mitchellh.ghostty)

View File

@@ -4,6 +4,7 @@ exec-once = uwsm app -- waybar
exec-once = uwsm app -- fcitx5
exec-once = uwsm app -- swaybg -i ~/.config/omarchy/current/background -m fill
exec-once = uwsm app -- swayosd-server
exec-once = uwsm app -- walker --gapplication-service &
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
exec-once = wl-clip-persist --clipboard regular --all-mime-type-regex '^(?!x-kde-passwordManagerHint).+'
exec-once = omarchy-cmd-first-run

View File

@@ -7,6 +7,7 @@ bindd = SUPER, J, Toggle split, togglesplit, # dwindle
bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER, V, Toggle floating, togglefloating,
bindd = SHIFT, F11, Force full screen, fullscreen, 0
bindd = ALT, F11, Full width, fullscreen, 1
# Move focus with SUPER + arrow keys
bindd = SUPER, left, Move focus left, movefocus, l
@@ -41,6 +42,7 @@ bindd = SUPER SHIFT, code:19, Move window to workspace 10, movetoworkspace, 10
# Tab between workspaces
bindd = SUPER, TAB, Next workspace, workspace, e+1
bindd = SUPER SHIFT, TAB, Previous workspace, workspace, e-1
bindd = SUPER CTRL, TAB, Former workspace, workspace, previous
# 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

View File

@@ -42,3 +42,6 @@ bindd = CTRL ALT SHIFT, PRINT, Screen record display with audio, exec, omarchy-c
# Color picker
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a
# File sharing
bindd = CTRL SUPER, S, Share, exec, omarchy-menu share

View File

@@ -16,4 +16,7 @@ invisible=false
default-timeout=0
[summary~="Setup Wi-Fi"]
on-button-left=exec sh -c 'alacritty --class=Impala -e impala & makoctl dismiss -n "$id"'
on-button-left=exec sh -c 'omarchy-notification-dismiss "Setup Wi-Fi"; omarchy-launch-wifi'
[summary~="Update System"]
on-button-left=exec sh -c 'omarchy-notification-dismiss "Update System"; omarchy-launch-floating-terminal-with-presentation omarchy-update'

BIN
icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@@ -9,8 +9,8 @@ run_logged $OMARCHY_INSTALL/config/increase-lockout-limit.sh
run_logged $OMARCHY_INSTALL/config/ssh-flakiness.sh
run_logged $OMARCHY_INSTALL/config/detect-keyboard-layout.sh
run_logged $OMARCHY_INSTALL/config/xcompose.sh
run_logged $OMARCHY_INSTALL/config/mise-ruby.sh
run_logged $OMARCHY_INSTALL/config/mise-work.sh
run_logged $OMARCHY_INSTALL/config/fix-powerprofilesctl-shebang.sh
run_logged $OMARCHY_INSTALL/config/docker.sh
run_logged $OMARCHY_INSTALL/config/mimetypes.sh
run_logged $OMARCHY_INSTALL/config/localdb.sh
@@ -26,3 +26,4 @@ run_logged $OMARCHY_INSTALL/config/hardware/nvidia.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-bcm4360.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-spi-keyboard.sh
run_logged $OMARCHY_INSTALL/config/hardware/fix-apple-t2.sh

View File

@@ -0,0 +1,2 @@
# Ensure we use system python3 and not mise's python3
sudo sed -i '/env python3/ c\#!/bin/python3' /usr/bin/powerprofilesctl

View File

@@ -0,0 +1,28 @@
# Detect T2 MacBook models using PCI IDs
# Vendor: 106b (Apple), Device IDs: 1801 or 1802 (T2 Security Chip)
if lspci -nn | grep -q "106b:180[12]"; then
echo "Detected MacBook with T2 chip. Installing support items..."
sudo pacman -S --noconfirm --needed \
linux-t2 \
linux-t2-headers \
apple-t2-audio-config \
apple-bcm-firmware \
t2fanrd \
tiny-dfr
echo "apple-bce" | sudo tee /etc/modules-load.d/t2.conf >/dev/null
echo "MODULES+=(apple-bce usbhid hid_apple hid_generic xhci_pci xhci_hcd)" | sudo tee /etc/mkinitcpio.conf.d/apple-t2.conf >/dev/null
cat <<EOF | sudo tee /etc/modprobe.d/brcmfmac.conf >/dev/null
# Fix for T2 MacBook WiFi connectivity issues
options brcmfmac feature_disable=0x82000
EOF
sudo mkdir -p /etc/limine-entry-tool.d
cat <<EOF | sudo tee /etc/limine-entry-tool.d/t2-mac.conf >/dev/null
# Generated by Omarchy installer for T2 Mac support
KERNEL_CMDLINE[default]+="intel_iommu=on iommu=pt pcie_ports=compat"
EOF
fi

View File

@@ -1,26 +0,0 @@
# Install Ruby using gcc-14 for compatibility
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"
# Trust .ruby-version
mise settings add idiomatic_version_file_enable_tools ruby
# Install pre-built Ruby + Rails for x86_64
if [[ $(uname -m) == "x86_64" ]]; then
RUBY_VERSION="3.4.5"
RUBY_TARBALL="ruby-$RUBY_VERSION-rails-8.0.2.1-x86_64.tar.gz"
RUBY_URL="https://pkgs.omarchy.org/ruby/$RUBY_TARBALL"
MISE_RUBY_DIR="$HOME/.local/share/mise/installs/ruby"
OFFLINE_CACHE="/var/cache/omarchy/ruby"
mkdir -p "$MISE_RUBY_DIR"
if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
echo "Downloading pre-built Ruby $RUBY_VERSION..."
curl -fsSL "$RUBY_URL" | tar -xz -C "$MISE_RUBY_DIR"
else
echo "Installing Ruby from offline cache..."
tar -xzf "$OFFLINE_CACHE/$RUBY_TARBALL" -C "$MISE_RUBY_DIR"
fi
mise use --global "ruby@${RUBY_VERSION}"
fi

View File

@@ -20,6 +20,9 @@ ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current
mkdir -p ~/.config/mako
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
sudo mkdir -p /etc/chromium/policies/managed
sudo chmod a+rw /etc/chromium/policies/managed

View File

@@ -1 +1,2 @@
notify-send "👋 Welcome to Omarchy" "You're in for a great computing adventure. Have fun!" -t 30000
notify-send " Update System" "When you have internet, click to update the system." -u critical
notify-send "👋 Welcome to Omarchy" "You're in for a great computing adventure. Have fun!" -t 30000

View File

@@ -1,3 +1,3 @@
if ! ping -c3 -W1 1.1.1.1 >/dev/null 2>&1; then
notify-send "󰖩 Click to Setup Wi-Fi" "Tab between sections, space selects, ? for help." -u critical -t 30000
notify-send "󰖩 Click to Setup Wi-Fi" "Tab between sections, space selects, ? for help." -u critical -t 30000
fi

View File

@@ -126,7 +126,11 @@ catch_errors() {
break
;;
"View full log")
less "$OMARCHY_INSTALL_LOG_FILE"
if command -v less &>/dev/null; then
less "$OMARCHY_INSTALL_LOG_FILE"
else
tail "$OMARCHY_INSTALL_LOG_FILE"
fi
;;
"Upload log for support")
omarchy-upload-install-log

View File

@@ -98,7 +98,8 @@ fi
# Add UKI entry to UEFI machines to skip bootloader showing on normal boot
if [[ -n $EFI ]] && efibootmgr &>/dev/null && ! efibootmgr | grep -q Omarchy &&
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends"; then
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "American Megatrends" &&
! cat /sys/class/dmi/id/bios_vendor 2>/dev/null | grep -qi "Apple"; then
sudo efibootmgr --create \
--disk "$(findmnt -n -o SOURCE /boot | sed 's/p\?[0-9]*$//')" \
--part "$(findmnt -n -o SOURCE /boot | grep -o 'p\?[0-9]*$' | sed 's/^p//')" \

View File

@@ -31,7 +31,6 @@ fd
ffmpegthumbnailer
fontconfig
fzf
gcc14
github-cli
gnome-calculator
gnome-keyring
@@ -57,6 +56,7 @@ kvantum-qt5
lazydocker
lazygit
less
libyaml
libqalculate
libreoffice
llvm

View File

@@ -43,3 +43,11 @@ webp-pixbuf-loader
wget
yay-debug
zram-generator
# T2 MacBook support packages
apple-bcm-firmware
apple-t2-audio-config
linux-t2
linux-t2-headers
t2fanrd
tiny-dfr

View File

@@ -16,6 +16,8 @@ if [[ -f $OMARCHY_INSTALL_LOG_FILE ]] && grep -q "Total:" "$OMARCHY_INSTALL_LOG_
if [ -n "$TOTAL_TIME" ]; then
echo_in_style "Installed in $TOTAL_TIME"
fi
else
echo_in_style "Finished installing"
fi
if sudo test -f /etc/sudoers.d/99-omarchy-installer; then

View File

@@ -1,3 +1,12 @@
# Configure pacman
sudo cp -f ~/.local/share/omarchy/default/pacman/pacman.conf /etc/pacman.conf
sudo cp -f ~/.local/share/omarchy/default/pacman/mirrorlist /etc/pacman.d/mirrorlist
if lspci -nn | grep -q "106b:180[12]"; then
cat <<EOF | sudo tee -a /etc/pacman.conf >/dev/null
[arch-mact2]
Server = https://github.com/NoaHimesaka1873/arch-mact2-mirror/releases/download/release
SigLevel = Never
EOF
fi

View File

@@ -1,3 +0,0 @@
echo "Add chromium-flags.conf"
omarchy-refresh-config chromium-flags.conf

8
migrations/1756372498.sh Normal file
View File

@@ -0,0 +1,8 @@
echo "Add eza themeing"
mkdir -p ~/.config/eza
if [ -f ~/.config/omarchy/current/theme/eza.yml ]; then
ln -snf ~/.config/omarchy/current/theme/eza.yml ~/.config/eza/theme.yml
fi

View File

@@ -1,3 +1,5 @@
echo "Remove opacity from alacritty.toml so Hyprland can control fully"
sed -i '/opacity = 0.98/d' ~/.config/alacritty/alacritty.toml
if [[ -f ~/.config/alacritty/alacritty.toml ]]; then
sed -i '/opacity = 0.98/d' ~/.config/alacritty/alacritty.toml
fi

3
migrations/1757021485.sh Executable file
View File

@@ -0,0 +1,3 @@
echo "Install Copy URL extension for Chromium"
omarchy-refresh-config chromium-flags.conf

View File

@@ -1,4 +0,0 @@
echo "Allow Image Viewer to see all images in directory and use arrow keys to navigate"
cp -f "$HOME/.local/share/omarchy/applications/imv.desktop" "$HOME/.local/share/applications/imv.desktop"

7
migrations/1757877123.sh Normal file
View File

@@ -0,0 +1,7 @@
echo "Obsidian should be using Wayland IME for better compatibility with fcitx5 and other languages"
if [[ -f ~/.config/hypr/bindings.conf ]]; then
sed -i '/^bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu/{
/--enable-wayland-ime/! s/$/ --enable-wayland-ime/
}' ~/.config/hypr/bindings.conf
fi

10
migrations/1757877852.sh Normal file
View File

@@ -0,0 +1,10 @@
echo "Switch select bindings to launch or focus mode"
if [[ -f ~/.config/hypr/bindings.conf ]]; then
sed -i '/SUPER, M, Music, exec/ c\bindd = SUPER, M, Music, exec, omarchy-launch-or-focus spotify' ~/.config/hypr/bindings.conf
sed -i '/SUPER, O, Obsidian, exec/ c\bindd = SUPER, O, Obsidian, exec, omarchy-launch-or-focus obsidian "uwsm app -- obsidian -disable-gpu --enable-wayland-ime"' ~/.config/hypr/bindings.conf
sed -i '/SUPER, G, Signal, exec/ c\bindd = SUPER, G, Signal, exec, omarchy-launch-or-focus signal "uwsm app -- signal-desktop"' ~/.config/hypr/bindings.conf
sed -i '/SUPER SHIFT, G, WhatsApp, exec/ c\bindd = SUPER SHIFT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"' ~/.config/hypr/bindings.conf
sed -i '/SUPER ALT, G, Google Messages, exec/ c\bindd = SUPER ALT, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"' ~/.config/hypr/bindings.conf
fi

10
migrations/1757879836.sh Normal file
View File

@@ -0,0 +1,10 @@
echo "Ensure .config/hypr/looknfeel.conf is available and included"
if [[ ! -f ~/.config/hypr/looknfeel.conf ]]; then
cp $OMARCHY_PATH/config/hypr/looknfeel.conf ~/.config/hypr/looknfeel.conf
fi
if [[ -f ~/.config/hypr/hyprland.conf ]]; then
grep -qx 'source = ~/.config/hypr/looknfeel.conf' ~/.config/hypr/hyprland.conf ||
sed -i '/^source = ~\/.config\/hypr\/envs\.conf$/a source = ~/.config/hypr/looknfeel.conf' ~/.config/hypr/hyprland.conf
fi

21
migrations/1758019332.sh Normal file
View File

@@ -0,0 +1,21 @@
echo "Set \$TERMINAL and \$EDITOR in ~/.config/uwsm/default so entire system can rely on it"
# Set terminal and editor default in uwsm
omarchy-refresh-config uwsm/default
omarchy-refresh-config uwsm/env
omarchy-state set relaunch-required
# Ensure scrolltouchpad setting applies to all terminals
if grep -q "scrolltouchpad 1.5, class:Alacritty" ~/.config/hypr/input.conf; then
sed -i 's/windowrule = scrolltouchpad 1\.5, class:Alacritty/windowrule = scrolltouchpad 1.5, tag:terminal/' ~/.config/hypr/input.conf
fi
# Use default editor for keybinding
if grep -q "bindd = SUPER, N, Neovim" ~/.config/hypr/bindings.conf; then
sed -i '/SUPER, N, Neovim, exec/ c\bindd = SUPER, N, Editor, exec, omarchy-launch-editor' ~/.config/hypr/bindings.conf
fi
# Use default terminal for keybinding
if grep -q "terminal = uwsm app" ~/.config/hypr/bindings.conf; then
sed -i '/terminal = uwsm app -- alacritty/ c\$terminal = uwsm app -- $TERMINAL' ~/.config/hypr/bindings.conf
fi

11
migrations/1758051607.sh Normal file
View File

@@ -0,0 +1,11 @@
echo "Copy configs for ghostty + kitty so they're available as alternative terminal options"
if [[ ! -f ~/.config/ghostty/config ]]; then
mkdir -p ~/.config/ghostty
cp -Rpf $OMARCHY_PATH/config/ghostty/config ~/.config/ghostty/config
fi
if [[ ! -f ~/.config/kitty/kitty.conf ]]; then
mkdir -p ~/.config/kitty
cp -Rpf $OMARCHY_PATH/config/kitty/kitty.conf ~/.config/kitty/kitty.conf
fi

3
migrations/1758104201.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Prevent powerprofilesctl from using Mise python and not working"
bash $OMARCHY_PATH/install/config/fix-powerprofilesctl-shebang.sh

3
migrations/1758111304.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Remove Ruby build options to force GCC14 now that GCC15 is compatible"
mise settings unset ruby.ruby_build_opts

View File

@@ -0,0 +1 @@
theme = Catppuccin Latte

View File

@@ -0,0 +1,78 @@
## name: Catppuccin Latte 🐑
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/latte.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #4C4F69
background #EFF1F5
selection_foreground #EFF1F5
selection_background #DC8A78
# Cursor colors
cursor #DC8A78
cursor_text_color #EFF1F5
# URL underline color when hovering with mouse
url_color #7287FD
# Kitty window border colors
active_border_color #8839EF
inactive_border_color #7C7F93
bell_border_color #E64553
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #EFF1F5
active_tab_background #8839EF
inactive_tab_foreground #4C4F69
inactive_tab_background #9CA0B0
tab_bar_background #BCC0CC
# Colors for marks (marked text in the terminal)
mark1_foreground #EFF1F5
mark1_background #1E66F5
mark2_foreground #EFF1F5
mark2_background #8839EF
mark3_foreground #EFF1F5
mark3_background #209FB5
# The 16 terminal colors
# black
color0 #4C4F69
color8 #6C6F85
# red
color1 #D20F39
color9 #D20F39
# green
color2 #40A02B
color10 #40A02B
# yellow
color3 #DF8E1D
color11 #DF8E1D
# blue
color4 #1E66F5
color12 #1E66F5
# magenta
color5 #EA76CB
color13 #EA76CB
# cyan
color6 #179299
color14 #179299
# white
color7 #ACB0BE
color15 #ACB0BE

View File

@@ -0,0 +1,4 @@
{
"name": "Catppuccin Latte",
"extension": "catppuccin.catppuccin-vsc"
}

104
themes/catppuccin/eza.yml Normal file
View File

@@ -0,0 +1,104 @@
# see https://github.com/eza-community/eza-themes/blob/main/themes/catppuccin.yml
colourful: true
filekinds:
normal: {foreground: "#BAC2DE"}
directory: {foreground: "#89B4FA"}
symlink: {foreground: "#89DCEB"}
pipe: {foreground: "#7F849C"}
block_device: {foreground: "#EBA0AC"}
char_device: {foreground: "#EBA0AC"}
socket: {foreground: "#585B70"}
special: {foreground: "#CBA6F7"}
executable: {foreground: "#A6E3A1"}
mount_point: {foreground: "#74C7EC"}
perms:
user_read: {foreground: "#CDD6F4"}
user_write: {foreground: "#F9E2AF"}
user_execute_file: {foreground: "#A6E3A1"}
user_execute_other: {foreground: "#A6E3A1"}
group_read: {foreground: "#BAC2DE"}
group_write: {foreground: "#F9E2AF"}
group_execute: {foreground: "#A6E3A1"}
other_read: {foreground: "#A6ADC8"}
other_write: {foreground: "#F9E2AF"}
other_execute: {foreground: "#A6E3A1"}
special_user_file: {foreground: "#CBA6F7"}
special_other: {foreground: "#585B70"}
attribute: {foreground: "#A6ADC8"}
size:
major: {foreground: "#A6ADC8"}
minor: {foreground: "#89DCEB"}
number_byte: {foreground: "#CDD6F4"}
number_kilo: {foreground: "#BAC2DE"}
number_mega: {foreground: "#89B4FA"}
number_giga: {foreground: "#CBA6F7"}
number_huge: {foreground: "#CBA6F7"}
unit_byte: {foreground: "#A6ADC8"}
unit_kilo: {foreground: "#89B4FA"}
unit_mega: {foreground: "#CBA6F7"}
unit_giga: {foreground: "#CBA6F7"}
unit_huge: {foreground: "#74C7EC"}
users:
user_you: {foreground: "#CDD6F4"}
user_root: {foreground: "#F38BA8"}
user_other: {foreground: "#CBA6F7"}
group_yours: {foreground: "#BAC2DE"}
group_other: {foreground: "#7F849C"}
group_root: {foreground: "#F38BA8"}
links:
normal: {foreground: "#89DCEB"}
multi_link_file: {foreground: "#74C7EC"}
git:
new: {foreground: "#A6E3A1"}
modified: {foreground: "#F9E2AF"}
deleted: {foreground: "#F38BA8"}
renamed: {foreground: "#94E2D5"}
typechange: {foreground: "#F5C2E7"}
ignored: {foreground: "#7F849C"}
conflicted: {foreground: "#EBA0AC"}
git_repo:
branch_main: {foreground: "#CDD6F4"}
branch_other: {foreground: "#CBA6F7"}
git_clean: {foreground: "#A6E3A1"}
git_dirty: {foreground: "#F38BA8"}
security_context:
colon: {foreground: "#7F849C"}
user: {foreground: "#BAC2DE"}
role: {foreground: "#CBA6F7"}
typ: {foreground: "#585B70"}
range: {foreground: "#CBA6F7"}
file_type:
image: {foreground: "#F9E2AF"}
video: {foreground: "#F38BA8"}
music: {foreground: "#A6E3A1"}
lossless: {foreground: "#94E2D5"}
crypto: {foreground: "#585B70"}
document: {foreground: "#CDD6F4"}
compressed: {foreground: "#F5C2E7"}
temp: {foreground: "#EBA0AC"}
compiled: {foreground: "#74C7EC"}
build: {foreground: "#585B70"}
source: {foreground: "#89B4FA"}
punctuation: {foreground: "#7F849C"}
date: {foreground: "#F9E2AF"}
inode: {foreground: "#A6ADC8"}
blocks: {foreground: "#9399B2"}
header: {foreground: "#CDD6F4"}
octal: {foreground: "#94E2D5"}
flags: {foreground: "#CBA6F7"}
symlink_path: {foreground: "#89DCEB"}
control_char: {foreground: "#74C7EC"}
broken_symlink: {foreground: "#F38BA8"}
broken_path_overlay: {foreground: "#585B70"}

View File

@@ -0,0 +1 @@
theme = Catppuccin Mocha

View File

@@ -0,0 +1,78 @@
## name: Catppuccin Mocha 🌿
## author: Pocco81 (https://github.com/Pocco81)
## license: MIT
## upstream: https://github.com/catppuccin/kitty/blob/main/mocha.conf
## blurb: Soothing pastel theme for the high-spirited!
# The basic colors
foreground #CDD6F4
background #1E1E2E
selection_foreground #1E1E2E
selection_background #F5E0DC
# Cursor colors
cursor #F5E0DC
cursor_text_color #1E1E2E
# URL underline color when hovering with mouse
url_color #B4BEFE
# Kitty window border colors
active_border_color #CBA6F7
inactive_border_color #8E95B3
bell_border_color #EBA0AC
# OS Window titlebar colors
wayland_titlebar_color system
macos_titlebar_color system
# Tab bar colors
active_tab_foreground #11111B
active_tab_background #CBA6F7
inactive_tab_foreground #CDD6F4
inactive_tab_background #181825
tab_bar_background #11111B
# Colors for marks (marked text in the terminal)
mark1_foreground #1E1E2E
mark1_background #87B0F9
mark2_foreground #1E1E2E
mark2_background #CBA6F7
mark3_foreground #1E1E2E
mark3_background #74C7EC
# The 16 terminal colors
# black
color0 #43465A
color8 #43465A
# red
color1 #F38BA8
color9 #F38BA8
# green
color2 #A6E3A1
color10 #A6E3A1
# yellow
color3 #F9E2AF
color11 #F9E2AF
# blue
color4 #87B0F9
color12 #87B0F9
# magenta
color5 #F5C2E7
color13 #F5C2E7
# cyan
color6 #94E2D5
color14 #94E2D5
# white
color7 #CDD6F4
color15 #A1A8C9

View File

@@ -0,0 +1,4 @@
{
"name": "Catppuccin Macchiato",
"extension": "catppuccin.catppuccin-vsc"
}

View File

@@ -0,0 +1 @@
theme = Everforest Dark Hard

View File

@@ -0,0 +1,69 @@
## name: Everforest Dark Hard
## author: Sainnhe Park
## license: MIT
## upstream: https://github.com/ewal/kitty-everforest/blob/master/themes/everforest_dark_hard.conf
## blurb: A green based color scheme designed to be warm and soft
foreground #d3c6aa
background #272e33
selection_foreground #9da9a0
selection_background #464e53
cursor #d3c6aa
cursor_text_color #2e383c
url_color #7fbbb3
active_border_color #a7c080
inactive_border_color #4f5b58
bell_border_color #e69875
visual_bell_color none
wayland_titlebar_color system
macos_titlebar_color system
active_tab_background #272e33
active_tab_foreground #d3c6aa
inactive_tab_background #374145
inactive_tab_foreground #9da9a0
tab_bar_background #2e383c
tab_bar_margin_color none
mark1_foreground #272e33
mark1_background #7fbbb3
mark2_foreground #272e33
mark2_background #d3c6aa
mark3_foreground #272e33
mark3_background #d699b6
#: black
color0 #343f44
color8 #868d80
#: red
color1 #e67e80
color9 #e67e80
#: green
color2 #a7c080
color10 #a7c080
#: yellow
color3 #dbbc7f
color11 #dbbc7f
#: blue
color4 #7fbbb3
color12 #7fbbb3
#: magenta
color5 #d699b6
color13 #d699b6
#: cyan
color6 #83c092
color14 #83c092
#: white
color7 #859289
color15 #9da9a0

View File

@@ -0,0 +1,4 @@
{
"name": "Everforest Dark",
"extension": "sainnhe.everforest"
}

104
themes/gruvbox/eza.yml Normal file
View File

@@ -0,0 +1,104 @@
# see https://github.com/eza-community/eza-themes/blob/main/themes/gruvbox-dark.yml
colourful: true
filekinds:
normal: {foreground: "#ebdbb2"}
directory: {foreground: "#83a598"}
symlink: {foreground: "#8ec07c"}
pipe: {foreground: "#928374"}
block_device: {foreground: "#fb4934"}
char_device: {foreground: "#fb4934"}
socket: {foreground: "#665c54"}
special: {foreground: "#d3869b"}
executable: {foreground: "#b8bb26"}
mount_point: {foreground: "#fe8019"}
perms:
user_read: {foreground: "#ebdbb2"}
user_write: {foreground: "#fabd2f"}
user_execute_file: {foreground: "#b8bb26"}
user_execute_other: {foreground: "#b8bb26"}
group_read: {foreground: "#ebdbb2"}
group_write: {foreground: "#fabd2f"}
group_execute: {foreground: "#b8bb26"}
other_read: {foreground: "#bdae93"}
other_write: {foreground: "#fabd2f"}
other_execute: {foreground: "#b8bb26"}
special_user_file: {foreground: "#d3869b"}
special_other: {foreground: "#928374"}
attribute: {foreground: "#bdae93"}
size:
major: {foreground: "#bdae93"}
minor: {foreground: "#8ec07c"}
number_byte: {foreground: "#ebdbb2"}
number_kilo: {foreground: "#ebdbb2"}
number_mega: {foreground: "#83a598"}
number_giga: {foreground: "#d3869b"}
number_huge: {foreground: "#d3869b"}
unit_byte: {foreground: "#bdae93"}
unit_kilo: {foreground: "#83a598"}
unit_mega: {foreground: "#d3869b"}
unit_giga: {foreground: "#d3869b"}
unit_huge: {foreground: "#fe8019"}
users:
user_you: {foreground: "#ebdbb2"}
user_root: {foreground: "#fb4934"}
user_other: {foreground: "#d3869b"}
group_yours: {foreground: "#ebdbb2"}
group_other: {foreground: "#928374"}
group_root: {foreground: "#fb4934"}
links:
normal: {foreground: "#8ec07c"}
multi_link_file: {foreground: "#fe8019"}
git:
new: {foreground: "#b8bb26"}
modified: {foreground: "#fabd2f"}
deleted: {foreground: "#fb4934"}
renamed: {foreground: "#8ec07c"}
typechange: {foreground: "#d3869b"}
ignored: {foreground: "#928374"}
conflicted: {foreground: "#cc241d"}
git_repo:
branch_main: {foreground: "#ebdbb2"}
branch_other: {foreground: "#d3869b"}
git_clean: {foreground: "#b8bb26"}
git_dirty: {foreground: "#fb4934"}
security_context:
colon: {foreground: "#928374"}
user: {foreground: "#ebdbb2"}
role: {foreground: "#d3869b"}
typ: {foreground: "#665c54"}
range: {foreground: "#d3869b"}
file_type:
image: {foreground: "#fabd2f"}
video: {foreground: "#fb4934"}
music: {foreground: "#b8bb26"}
lossless: {foreground: "#8ec07c"}
crypto: {foreground: "#928374"}
document: {foreground: "#ebdbb2"}
compressed: {foreground: "#d3869b"}
temp: {foreground: "#cc241d"}
compiled: {foreground: "#83a598"}
build: {foreground: "#928374"}
source: {foreground: "#83a598"}
punctuation: {foreground: "#928374"}
date: {foreground: "#fabd2f"}
inode: {foreground: "#bdae93"}
blocks: {foreground: "#a89984"}
header: {foreground: "#ebdbb2"}
octal: {foreground: "#8ec07c"}
flags: {foreground: "#d3869b"}
symlink_path: {foreground: "#8ec07c"}
control_char: {foreground: "#83a598"}
broken_symlink: {foreground: "#fb4934"}
broken_path_overlay: {foreground: "#928374"}

View File

@@ -0,0 +1 @@
theme = Gruvbox Dark

40
themes/gruvbox/kitty.conf Normal file
View File

@@ -0,0 +1,40 @@
## name: Gruvbox Dark
## author: Pavel Pertsev
## license: MIT/X11
## upstream: https://raw.githubusercontent.com/gruvbox-community/gruvbox-contrib/master/kitty/gruvbox-dark.conf
selection_foreground #ebdbb2
selection_background #d65d0e
background #282828
foreground #ebdbb2
color0 #3c3836
color1 #cc241d
color2 #98971a
color3 #d79921
color4 #458588
color5 #b16286
color6 #689d6a
color7 #a89984
color8 #928374
color9 #fb4934
color10 #b8bb26
color11 #fabd2f
color12 #83a598
color13 #d3869b
color14 #8ec07c
color15 #fbf1c7
cursor #bdae93
cursor_text_color #665c54
url_color #458588
# START_AUTOGENERATED_TAB_STYLE
# Feel free to update these colors manually and remove these comments.
active_tab_foreground #eeeeee
active_tab_background #d65d0e
inactive_tab_foreground #ebdbb2
inactive_tab_background #202020
# END_AUTOGENERATED_TAB_STYLE

View File

@@ -0,0 +1,4 @@
{
"name": "Gruvbox Dark Medium",
"extension": "jdinhlife.gruvbox"
}

View File

@@ -0,0 +1 @@
theme = Kanagawa Wave

View File

@@ -3,4 +3,4 @@ general {
}
# Kanagawa backdrop is too strong for detault opacity
windowrule = opacity 0.98 0.95, class:Alacritty
windowrule = opacity 0.98 0.95, tag:terminal

View File

@@ -0,0 +1,68 @@
## name: Kanagawa
## author: Tommaso Laurenzi
## license: MIT
## upstream: https://github.com/rebelot/kanagawa.nvim/
## blurb: NeoVim dark colorscheme inspired by the colors of the famous painting
## by Katsushika Hokusai.
#: The basic colors
foreground #dcd7ba
background #1f1f28
selection_foreground #c8c093
selection_background #2d4f67
#: Cursor colors
cursor #c8c093
#: URL underline color when overing with mouse
url_color #72a7bc
#: Tab bar colors
active_tab_foreground #c8c093
active_tab_background #1f1f28
inactive_tab_foreground #727169
inactive_tab_background #1f1f28
#: The basic 16 colors
#: black
color0 #16161d
color8 #727169
#: red
color1 #c34043
color9 #e82424
#: green
color2 #76946a
color10 #98bb6c
#: yellow
color3 #c0a36e
color11 #e6c384
#: blue
color4 #7e9cd8
color12 #7fb4ca
#: magenta
color5 #957fb8
color13 #938aa9
#: cyan
color6 #6a9589
color14 #7aa89f
#: white
color7 #c8c093
color15 #dcd7ba
#: You can set the remaining 240 colors as color16 to color255.
color16 #ffa066
color17 #ff5d62

Some files were not shown because too many files have changed in this diff Show More