Compare commits

...

68 Commits

Author SHA1 Message Date
David Heinemeier Hansson
ce00b362a7 Use taha approved colors 2025-09-16 21:30:46 +02:00
David Heinemeier Hansson
8b7fa43b31 Add menu to install different terminal 2025-09-16 21:28:32 +02:00
David Heinemeier Hansson
fb8fc11225 Stick with alacritty for system terminals 2025-09-16 21:27:55 +02:00
David Heinemeier Hansson
d697ef22cd Stick to alacritty so we can control font size 2025-09-16 21:26:41 +02:00
David Heinemeier Hansson
f62086f76d Need to keep this alacritty until we have it fully working for other terminals 2025-09-16 21:13:31 +02:00
David Heinemeier Hansson
ce7b22967a Uniformity 2025-09-16 20:26:52 +02:00
David Heinemeier Hansson
7518b62dca Use correct class for ghostty styling 2025-09-16 20:25:17 +02:00
David Heinemeier Hansson
310a5b1d5a Set font for ghostty too if its on the system 2025-09-16 19:10:34 +02:00
David Heinemeier Hansson
85ef1cf1d2 Fix theme name 2025-09-16 18:34:08 +02:00
David Heinemeier Hansson
198ead1231 Themeing for ghostty 2025-09-16 18:27:57 +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
David Heinemeier Hansson
c16766c8b1 Deal with not-available sinks on audio switcher
Closes #1603
Co-authored-by: @elpritchos
2025-09-14 19:38:17 +02:00
Helmut Januschka
f8ff57e2af Add Chrome and Brave browser policy support for theme colors (#1251)
* Add Chrome and Brave browser policy support for theme colors

Replace chromium --set-theme-color commands with managed policies
- Add RGB to hex conversion function
- Create /etc/chromium/policies/managed/color.json for Chrome
- Create /etc/brave/policies/managed/color.json for Brave
- Remove deprecated chromium command line theme setting

* force reload

* remove sudo

* renamed flag due to code review on google side

* Add the required directories

* Cleanup

* Slim down

* Unnecessary

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 19:30:41 +02:00
David Boot
8e4487ca41 Add private browser key binding (#1324)
* Add private browser key binding

* Include other Firefox-based browsers

* Simplify implementation

* Add migration to add the hotkey

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 18:18:57 +02:00
brink-lab
b422281840 Update waybar config with proper sized mute icon and wifi-off icon in matching style (#1386)
* Update waybar config with proper sized mute icon

Update waybar config with proper sized mute icon - same size as the two volume indicators. Current mute icon is smaller.

* Update config.jsonc
2025-09-14 17:47:47 +02:00
David Heinemeier Hansson
2e41b2c400 Add blurred theme background to the lock screen 2025-09-14 17:33:08 +02:00
Bogdan Tanase
55bf2457d4 Feed the image folder to the Image Viewer so the next/previous image navigation works (#1444)
* Feed the image folder to the Image Viewer so the next/previous image navigation works

When double clicking an image in Nautilus, my expectation is that I can navigate to the other images in the folder with the arrow keys.

This doesn't happen currently because the imv command receives only the filename as a parameter.

However, if we use:

`imv -n /myfolder/image.jpg /myfolder`

works becasue we're opening  the folder starting at the image given by the -n parameter.

* add migration for imv.desktop update

* Simplify migration

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 16:51:24 +02:00
Taha
a77264ae99 Add preview images to system theme folders (#1662)
* add preview images to theme folders

* fix image sizes for previews

* rename all preview images to preview.png
2025-09-14 16:28:15 +02:00
Alex R Teal
13349180b6 Better Zoom Webapp Support for meeting links (#1542)
* Support for exec and mime types. Zoom integration

In order to better support webapp zoom:
  - Added optional params for omarchy-webapp-install
    - exec, defaults to omarchy-launch-webapp
    - mimetypes, defaults blank
  - added zoom webapp launcher that parses meeting links and transforms
them and calls launch webapp to join meeting links
  - migration to convert existing zoom installs to the new custom
handler
  - updated the base installer to call new zoom handler and set
mimetypes

* default should be in the else

* Add new line at end of file

* Missed new line on migration

* Updated conditionals to be a little more clean

* This is a rare setup so let's just save it for the direct CLI

* Use new bash conditionals

* Rename to fit under the existing namespace of cmds

* Fix after merge

* Use new syntax and add missing segment comments

* Cleanup a bit

* Use local icon for zoom with migration

* Fix regexp

* Refer to raw local icon references

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 16:20:08 +02:00
David Heinemeier Hansson
445ccdebbf Give feedback while time + tz is updating
Closes #1546
2025-09-14 15:33:23 +02:00
David Heinemeier Hansson
27f020af4d Add SUPER + BACKSPACE to toggle transparency on/off for a window
Useful for video sites etc
2025-09-14 14:55:32 +02:00
Samrudh Nelli
8920c95586 Bind calculator key with gnome-calculator (#1585) 2025-09-14 14:36:14 +02:00
Ryan Hughes
52680f4b3e Create ~/Work with ./bin in the path for contained projects (#1654)
* Create ~/Work with ./bin in the path for contained projects

* Split out the mise work setup as its own configurator

* Fixup the migration to reuse config logic

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 14:32:07 +02:00
David Heinemeier Hansson
d96322e58a Freeze seems to not be reliable in practice 2025-09-14 13:32:40 +02:00
David Heinemeier Hansson
0f09febf4d Tweak the welcome 2025-09-14 13:29:06 +02:00
David Heinemeier Hansson
d58fe8b4a0 Lower timeout test
Network should be up and runn
2025-09-14 11:41:42 +02:00
David Heinemeier Hansson
4a4ff04741 It was the icon update that was hanging things 2025-09-14 11:40:13 +02:00
David Heinemeier Hansson
a0e3d86c12 Explicitly wait until notifications are available 2025-09-14 10:59:00 +02:00
David Heinemeier Hansson
2132c684ff Try to delay until mako is ready 2025-09-14 10:34:13 +02:00
David Heinemeier Hansson
47bdbec9f1 Wording 2025-09-14 10:17:45 +02:00
David Heinemeier Hansson
5b0deb90ba Add a basic welcome inviting you to start with the Omarchy Menu 2025-09-14 10:13:04 +02:00
David Heinemeier Hansson
3e1e466938 Invite new installations to setup wifi 2025-09-14 10:07:37 +02:00
Joel Gaff, Jr.
e018692e5e Macbook: enable internal keyboard at LUKS (#1313)
* macbook: enable internal keyboard at LUKS by loading applespi in initramfs

- Detect T1 models (MacBookPro13,2/13,3 and 14,2/14,3)
- Add mkinitcpio drop-in: MODULES+=(applespi intel_lpss_pci spi_pxa2xx_platform)
- Add HOOKS+=(keyboard) for early input
- Prefer in-kernel applespi; fallback to DKMS via AUR helper if needed

* macbook: expand SPI keyboard support to include 12-inch MacBook

- Add support for MacBook12,1 (12-inch MacBook 2015-2017) with SPI keyboards
- Rename configuration from T1-specific to SPI-keyboard-specific terminology
- Update mkinitcpio drop-in filename: omarchy-macbook-t1.conf -> omarchy-macbook-spi.conf
- Clarify that this fix targets SPI keyboard interface, not just T1 chip models
- Improved detection: covers all models with SPI keyboards needing applespi
- Update comments and messages to reflect broader hardware support scope

* Integrate MacBook SPI keyboard detection into limine-snapper.sh

- Move MacBook detection from separate hardware script into limine-snapper.sh
- Add comprehensive error handling with systemd journal logging
- Ensure persistent MacBook SPI module loading for every boot
- Remove redundant separate macbook-keyboard.sh file
- Consolidate terminal and log output using tee with process substitution

* Add support for MacbookPro13,1 and 14,1 models

* change log tags

from “omarchy” to “macbook” which is more appropriate.

* Slim down and rearrange code

* Unrelated change

* More specific naming and make sure its actually run

---------

Co-authored-by: Ryan Hughes <1630358+ryanrhughes@users.noreply.github.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-14 09:47:42 +02:00
David Heinemeier Hansson
123f970b20 Match logo elsewhere pushed down one line 2025-09-13 21:26:27 +02:00
David Heinemeier Hansson
9de375648e Still need proper set of $TERMINAL 2025-09-13 21:25:17 +02:00
David Heinemeier Hansson
115fcb786d Ensure we detach when starting terminal for impala 2025-09-13 21:24:37 +02:00
David Heinemeier Hansson
23d9b3ae71 Use 644 to match with ISO 2025-09-13 21:18:33 +02:00
David Heinemeier Hansson
6bffd1be8e We already have the logo 2025-09-13 21:00:14 +02:00
David Heinemeier Hansson
a9fe693ed9 Open Impala on first run if we don't have internet already 2025-09-13 20:29:51 +02:00
David Heinemeier Hansson
57bb63b5a3 Match spacing from ISO installer 2025-09-13 19:42:54 +02:00
David Heinemeier Hansson
6b3d1d5dc7 Excessive wrappers 2025-09-13 19:33:17 +02:00
David Heinemeier Hansson
759003eed9 Revert "Add extra packages that were needed from archinstall"
This reverts commit beb2e6b865.
2025-09-13 19:29:23 +02:00
David Heinemeier Hansson
2684322975 Revert "Include all packages needed from the ISO"
This reverts commit f14f63b9e6.
2025-09-13 19:29:05 +02:00
David Heinemeier Hansson
51607f1978 Switch to a simple boolean 2025-09-13 19:19:52 +02:00
130 changed files with 1251 additions and 210 deletions

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

@@ -2,7 +2,7 @@
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
sinks=$(pactl -f json list sinks | jq '[.[] | select([.ports[]? | .availability == "available"] | any)]')
sinks=$(pactl -f json list sinks | jq '[.[] | select((.ports | length == 0) or ([.ports[]? | .availability != "not available"] | any))]')
sinks_count=$(echo "$sinks" | jq '. | length')
if [ "$sinks_count" -eq 0 ]; then

View File

@@ -6,8 +6,12 @@ FIRST_RUN_MODE=~/.local/state/omarchy/first-run.mode
if [[ -f "$FIRST_RUN_MODE" ]]; then
rm -f "$FIRST_RUN_MODE"
bash "$OMARCHY_PATH/install/first-run/battery-monitor.sh"
bash "$OMARCHY_PATH/install/first-run/firewall.sh"
bash "$OMARCHY_PATH/install/first-run/gnome-theme.sh"
sudo rm -f /etc/sudoers.d/first-run
bash "$OMARCHY_PATH/install/first-run/wifi.sh"
bash "$OMARCHY_PATH/install/first-run/welcome.sh"
fi

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

View File

@@ -8,7 +8,7 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
exit 1
fi
pkill slurp || hyprshot -m ${1:-region} --raw --freeze |
pkill slurp || hyprshot -m ${1:-region} --raw |
satty --filename - \
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
--early-exit \

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,7 +1,8 @@
#!/bin/bash
notify-send " Updating time and timezone..."
sudo systemctl restart systemd-timesyncd
sudo tzupdate
new_timezone=$(timedatectl show -p Timezone --value)
omarchy-restart-waybar
notify-send "Time synced and timezone set to $new_timezone"
notify-send "Time updated and timezone set to $new_timezone"

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 \

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'

View File

@@ -1,3 +1,12 @@
#!/bin/bash
exec setsid uwsm app -- $(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$(xdg-settings get default-web-browser) 2>/dev/null | head -1) ${args[@]} $@
default_browser=$(xdg-settings get default-web-browser)
browser_exec=$(sed -n 's/^Exec=\([^ ]*\).*/\1/p' {~/.local,~/.nix-profile,/usr}/share/applications/$default_browser 2>/dev/null | head -1)
if [[ $browser_exec =~ (firefox|zen|librewolf) ]]; then
private_flag="--private-window"
else
private_flag="--incognito"
fi
exec setsid uwsm app -- "$browser_exec" "${@/--private/$private_flag}"

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

@@ -0,0 +1,13 @@
#!/bin/bash
case "$EDITOR" in
nvim | vim | nano | micro | hx)
exec setsid uwsm app -- "$TERMINAL" -e "$EDITOR" "$@"
;;
code | codium | subl | gedit | kate | zeditor)
exec setsid uwsm app -- "$EDITOR" "$@"
;;
*)
exec setsid uwsm app -- "$TERMINAL" -e nvim "$@"
;;
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 ;;
@@ -237,6 +269,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,7 +383,7 @@ 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 Config\n󰸌 Extra Themes\n Process\n󰇅 Hardware\n Password\n Timezone") in
*Omarchy*) present_terminal omarchy-update ;;
*Config*) show_update_config_menu ;;
*Themes*) present_terminal omarchy-theme-update ;;
@@ -408,25 +449,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󱓞 Trigger\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n󰧑 Learn\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' ;;
*learn*) show_learn_menu ;;
*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,10 +1,7 @@
#!/bin/bash
# omarchy-theme-set: Set a theme, specified by its name.
# Usage: omarchy-theme-set <theme-name>
if [[ -z "$1" && "$1" != "CNCLD" ]]; then
echo "Usage: omarchy-theme-set <theme-name>" >&2
if [[ -z $1 && $1 != "CNCLD" ]]; then
echo "Usage: omarchy-theme-set <theme-name>"
exit 1
fi
@@ -16,54 +13,26 @@ THEME_PATH="$THEMES_DIR/$THEME_NAME"
# Check if the theme entered exists
if [[ ! -d "$THEME_PATH" ]]; then
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
exit 2
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR"
exit 1
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 Chromium colors
if command -v chromium &>/dev/null; then
if [[ -f ~/.config/omarchy/current/theme/light.mode ]]; then
chromium --no-startup-window --set-color-scheme="light"
else
chromium --no-startup-window --set-color-scheme="dark"
fi
if [[ -f ~/.config/omarchy/current/theme/chromium.theme ]]; then
chromium --no-startup-window --set-theme-color="$(<~/.config/omarchy/current/theme/chromium.theme)"
else
# Use a default, neutral grey if theme doesn't have a color
chromium --no-startup-window --set-theme-color="28,32,39"
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

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

@@ -0,0 +1,7 @@
#!/bin/bash
case "$TERMINAL" in
"alacritty") touch ~/.config/alacritty/alacritty.toml ;;
"kitty") pkill -USRSIG1 kitty ;;
"ghostty") pkill -USRSIG2 ghostty ;;
esac

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

@@ -0,0 +1,25 @@
#!/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
# Install VS Code theme extension
extension=$(jq -r '.extension' "$VS_CODE_THEME")
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
theme_name=$(jq -r '.name' "$VS_CODE_THEME")
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

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

20
bin/omarchy-webapp-handler-zoom Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
url="$1"
web_url="https://app.zoom.us/wc/home"
if [[ $url =~ ^zoom(mtg|us):// ]]; then
confno=$(echo "$url" | sed -n 's/.*[?&]confno=\([^&]*\).*/\1/p')
if [[ -n $confno ]]; then
pwd=$(echo "$url" | sed -n 's/.*[?&]pwd=\([^&]*\).*/\1/p')
if [[ -n $pwd ]]; then
web_url="https://app.zoom.us/wc/join/$confno?pwd=$pwd"
else
web_url="https://app.zoom.us/wc/join/$confno"
fi
fi
fi
exec omarchy-launch-webapp "$web_url"

View File

@@ -1,49 +1,69 @@
#!/bin/bash
if [ "$#" -ne 3 ]; then
if [ "$#" -lt 3 ]; then
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
ICON_REF=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
CUSTOM_EXEC=""
MIME_TYPES=""
INTERACTIVE_MODE=true
else
APP_NAME="$1"
APP_URL="$2"
ICON_URL="$3"
ICON_REF="$3"
CUSTOM_EXEC="$4" # Optional custom exec command
MIME_TYPES="$5" # Optional mime types
INTERACTIVE_MODE=false
fi
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then
# Ensure valid execution
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_REF" ]]; then
echo "You must set app name, app URL, and icon URL!"
exit 1
fi
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
if [[ ! "$ICON_URL" =~ ^https?:// ]] && [ -f "$ICON_URL" ]; then
ICON_PATH="$ICON_URL"
else
ICON_PATH="$ICON_DIR/$APP_NAME.png"
mkdir -p "$ICON_DIR"
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
# Refer to local icon or fetch remotely from URL
if [[ $ICON_REF =~ ^https?:// ]]; then
if curl -sL -o "$ICON_PATH" "$ICON_REF"; then
ICON_PATH="$ICON_DIR/$APP_NAME.png"
else
echo "Error: Failed to download icon."
exit 1
fi
else
ICON_PATH="$HOME/.local/share/applications/icons/$ICON_REF"
fi
# Use custom exec if provided, otherwise default behavior
if [[ -n $CUSTOM_EXEC ]]; then
EXEC_COMMAND="$CUSTOM_EXEC"
else
EXEC_COMMAND="omarchy-launch-webapp $APP_URL"
fi
# Create application .desktop file
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
cat >"$DESKTOP_FILE" <<EOF
[Desktop Entry]
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=omarchy-launch-webapp $APP_URL
Exec=$EXEC_COMMAND
Terminal=false
Type=Application
Icon=$ICON_PATH
StartupNotify=true
EOF
# Add mime types if provided
if [[ -n $MIME_TYPES ]]; then
echo "MimeType=$MIME_TYPES" >>"$DESKTOP_FILE"
fi
chmod +x "$DESKTOP_FILE"
if [ "$#" -ne 3 ]; then
if [[ $INTERACTIVE_MODE == true ]]; then
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
fi

View File

@@ -1,7 +1,7 @@
#!/bin/bash
# Set install mode to online since boot.sh is used for curl installations
export OMARCHY_INSTALL_MODE="online"
export OMARCHY_ONLINE_INSTALL=true
ansi_art=' ▄▄▄
▄█████▄ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
@@ -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,6 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
--oauth2-client-id=77185425430.apps.googleusercontent.com
--oauth2-client-secret=OTJgUOQcT7lO7GsGZq2G4IlT

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
window-decoration = server
confirm-close-surface=false
resize-overlay = never
# Cursor stlying
cursor-style = "block"
cursor-style-blink = false
# Keyboard bindings
keybind = f11=toggle_fullscreen

View File

@@ -1,16 +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, M, Music, exec, uwsm app -- spotify
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private
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
@@ -18,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

@@ -3,6 +3,8 @@ source = ~/.config/omarchy/current/theme/hyprlock.conf
background {
monitor =
color = $color
path = ~/.config/omarchy/current/background
blur_passes = 3
}
animations {

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/

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}",
@@ -68,13 +68,13 @@
"format": "{icon}",
"format-wifi": "{icon}",
"format-ethernet": "󰀂",
"format-disconnected": "󰖪",
"format-disconnected": "󰤮",
"tooltip-format-wifi": "{essid} ({frequency} GHz)\n⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
"tooltip-format-ethernet": "⇣{bandwidthDownBytes} ⇡{bandwidthUpBytes}",
"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,11 +104,11 @@
},
"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,
"format-muted": "󰝟",
"format-muted": "",
"format-icons": {
"default": ["", "", ""]
}

View File

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

View File

@@ -10,5 +10,5 @@ if [[ ! -v BASH_COMPLETION_VERSINFO && -f /usr/share/bash-completion/bash_comple
fi
# Set complete path
export PATH="./bin:$HOME/.local/bin:$PATH"
export PATH="$HOME/.local/bin:$PATH"
set +h

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

@@ -41,6 +41,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

@@ -5,11 +5,13 @@ bindd = SUPER ALT, SPACE, Omarchy menu, exec, omarchy-menu
bindd = SUPER, ESCAPE, Power menu, exec, omarchy-menu system
bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
bindd = , XF86Calculator, Calculator, exec, gnome-calculator
# Aesthetics
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, omarchy-toggle-waybar
bindd = SUPER CTRL, SPACE, Next background in theme, exec, omarchy-theme-bg-next
bindd = SUPER SHIFT CTRL, SPACE, Pick new theme, exec, omarchy-menu theme
bindd = SUPER, BACKSPACE, Toggle window transparency, exec, hyprctl dispatch setprop "address:$(hyprctl activewindow -j | jq -r '.address')" opaque toggle
# Notifications
bindd = SUPER, COMMA, Dismiss last notification, exec, makoctl dismiss
@@ -40,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

@@ -14,3 +14,9 @@ invisible=false
[urgency=critical]
default-timeout=0
[summary~="Setup Wi-Fi"]
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

@@ -10,6 +10,7 @@ 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/docker.sh
run_logged $OMARCHY_INSTALL/config/mimetypes.sh
run_logged $OMARCHY_INSTALL/config/localdb.sh
@@ -24,3 +25,5 @@ run_logged $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
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,7 @@
# Detect MacBook models that need SPI keyboard modules
if [[ "$(cat /sys/class/dmi/id/product_name 2>/dev/null)" =~ MacBook12,1|MacBookPro13,[123]|MacBookPro14,[123] ]]; then
echo "Detected MacBook with SPI keyboard"
sudo pacman -S --noconfirm --needed macbook12-spi-driver-dkms
echo "MODULES=(applespi intel_lpss_pci spi_pxa2xx_platform)" | sudo tee /etc/mkinitcpio.conf.d/macbook_spi_modules.conf >/dev/null
fi

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

@@ -7,19 +7,19 @@ 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}"
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 [[ ${OMARCHY_INSTALL_MODE:-offline} == "offline" ]]; then
echo "Installing Ruby from offline cache..."
tar -xzf "${OFFLINE_CACHE}/${RUBY_TARBALL}" -C "$MISE_RUBY_DIR"
else
echo "Downloading pre-built Ruby ${RUBY_VERSION}..."
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}"

View File

@@ -0,0 +1,9 @@
# Add ./bin to path for all items in ~/Work
mkdir -p "$HOME/Work"
cat >"$HOME/Work/.mise.toml" <<'EOF'
[env]
_.path = "{{ cwd }}/bin"
EOF
mise trust ~/Work/.mise.toml

View File

@@ -19,3 +19,13 @@ 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
sudo mkdir -p /etc/brave/policies/managed
sudo chmod a+rw /etc/brave/policies/managed

0
install/first-run/gnome-theme.sh Executable file → Normal file
View File

View File

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

View File

@@ -0,0 +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
fi

View File

@@ -105,7 +105,7 @@ catch_errors() {
options=()
# If online install, show retry first
if [[ ${OMARCHY_INSTALL_MODE:-offline} == "online" ]]; then
if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
options+=("Retry installation")
fi

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

@@ -8,25 +8,17 @@ broadcom-wl
btrfs-progs
dart
dkms
efibootmgr
egl-wayland
git
git
gst-plugin-pipewire
gtk4-layer-shell
gum
htop
intel-media-driver
intltool
iwd
jdk-openjdk
jq
lib32-nvidia-utils
libpulse
libsass
libva-intel-driver
libva-intel-driver
libva-mesa-driver
libva-nvidia-driver
limine
limine-mkinitcpio-hook
@@ -34,26 +26,28 @@ limine-snapper-sync
linux
linux-firmware
linux-headers
mesa
macbook12-spi-driver-dkms
nvidia-dkms
nvidia-open-dkms
nvidia-utils
openssl
lib32-nvidia-utils
pipewire
pipewire-alsa
pipewire-jack
pipewire-pulse
plymouth
qt5-remoteobjects
qt6-wayland
sassc
snapper
sof-firmware
tzupdate
webp-pixbuf-loader
wget
xf86-video-amdgpu
xf86-video-ati
xf86-video-nouveau
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

@@ -1,15 +1,13 @@
ICON_DIR="$HOME/.local/share/applications/icons"
omarchy-webapp-install "HEY" https://app.hey.com "$ICON_DIR/HEY.png"
omarchy-webapp-install "Basecamp" https://launchpad.37signals.com "$ICON_DIR/Basecamp.png"
omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ "$ICON_DIR/WhatsApp.png"
omarchy-webapp-install "Google Photos" https://photos.google.com/ "$ICON_DIR/Google Photos.png"
omarchy-webapp-install "Google Contacts" https://contacts.google.com/ "$ICON_DIR/Google Contacts.png"
omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations "$ICON_DIR/Google Messages.png"
omarchy-webapp-install "ChatGPT" https://chatgpt.com/ "$ICON_DIR/ChatGPT.png"
omarchy-webapp-install "YouTube" https://youtube.com/ "$ICON_DIR/YouTube.png"
omarchy-webapp-install "GitHub" https://github.com/ "$ICON_DIR/GitHub.png"
omarchy-webapp-install "X" https://x.com/ "$ICON_DIR/X.png"
omarchy-webapp-install "Figma" https://figma.com/ "$ICON_DIR/Figma.png"
omarchy-webapp-install "Discord" https://discord.com/channels/@me "$ICON_DIR/Discord.png"
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home "$ICON_DIR/Zoom.png"
omarchy-webapp-install "HEY" https://app.hey.com HEY.png
omarchy-webapp-install "Basecamp" https://launchpad.37signals.com Basecamp.png
omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ WhatsApp.png
omarchy-webapp-install "Google Photos" https://photos.google.com/ "Google Photos.png"
omarchy-webapp-install "Google Contacts" https://contacts.google.com/ "Google Contacts.png"
omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations "Google Messages.png"
omarchy-webapp-install "ChatGPT" https://chatgpt.com/ ChatGPT.png
omarchy-webapp-install "YouTube" https://youtube.com/ YouTube.png
omarchy-webapp-install "GitHub" https://github.com/ GitHub.png
omarchy-webapp-install "X" https://x.com/ X.png
omarchy-webapp-install "Figma" https://figma.com/ Figma.png
omarchy-webapp-install "Discord" https://discord.com/channels/@me Discord.png
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus"

View File

@@ -5,6 +5,7 @@ echo_in_style() {
}
clear
echo
tte -i ~/.local/share/omarchy/logo.txt --canvas-width 0 --anchor-text c --frame-rate 920 laseretch
echo

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 +1,4 @@
clear_logo
gum style --foreground 3 --padding "1 0 0 $PADDING_LEFT" "Installing Omarchy..."
gum style --foreground 3 --padding "1 0 0 $PADDING_LEFT" "Installing..."
echo
start_install_log

View File

@@ -7,6 +7,7 @@ sudo tee /etc/sudoers.d/first-run >/dev/null <<EOF
Cmnd_Alias FIRST_RUN_CLEANUP = /bin/rm -f /etc/sudoers.d/first-run
$USER ALL=(ALL) NOPASSWD: /usr/bin/ufw
$USER ALL=(ALL) NOPASSWD: /usr/bin/ufw-docker
$USER ALL=(ALL) NOPASSWD: /usr/bin/gtk-update-icon-cache
$USER ALL=(ALL) NOPASSWD: FIRST_RUN_CLEANUP
EOF
sudo chmod 440 /etc/sudoers.d/first-run

View File

@@ -1,4 +1,4 @@
if [[ ${OMARCHY_INSTALL_MODE:-offline} == "online" ]]; then
if [[ -n ${OMARCHY_ONLINE_INSTALL:-} ]]; then
# Install build tools
sudo pacman -S --needed --noconfirm base-devel

View File

@@ -1,6 +1,6 @@
# Show installation environment variables
gum log --level info "Installation Environment:"
env | grep -E "^(OMARCHY_CHROOT_INSTALL|OMARCHY_INSTALL_MODE|OMARCHY_USER_NAME|OMARCHY_USER_EMAIL|USER|HOME|OMARCHY_REPO|OMARCHY_REF|OMARCHY_PATH)=" | sort | while IFS= read -r var; do
env | grep -E "^(OMARCHY_CHROOT_INSTALL|OMARCHY_ONLINE_INSTALL|OMARCHY_USER_NAME|OMARCHY_USER_EMAIL|USER|HOME|OMARCHY_REPO|OMARCHY_REF|OMARCHY_PATH)=" | sort | while IFS= read -r var; do
gum log --level info " $var"
done

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

7
migrations/1757147211.sh Normal file
View File

@@ -0,0 +1,7 @@
echo "Create managed policy directories for Chromium and Brave for theme switching"
sudo mkdir -p /etc/chromium/policies/managed
sudo chmod a+rw /etc/chromium/policies/managed
sudo mkdir -p /etc/brave/policies/managed
sudo chmod a+rw /etc/brave/policies/managed

3
migrations/1757435811.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Copy Omarchy default app icons to .local/share/icons"
source $OMARCHY_PATH/install/packaging/icons.sh

6
migrations/1757435812.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Update Zoom webapp to handle zoommtg:// and zoomus:// protocol links"
if [[ -f ~/.local/share/applications/Zoom.desktop ]]; then
omarchy-webapp-remove Zoom
omarchy-webapp-install Zoom https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus"
fi

9
migrations/1757783204.sh Normal file
View File

@@ -0,0 +1,9 @@
echo "Create ~/Work with ./bin in the path for contained projects"
mise_config="$HOME/Work/.mise.toml"
if [[ -f $mise_config ]]; then
cp $mise_config "$mise_config.bak.$(date +%s)"
fi
source "$OMARCHY_PATH/install/config/mise-work.sh"

3
migrations/1757861484.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Add a blurred background to the lock screen"
omarchy-refresh-hyprlock

6
migrations/1757866485.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Add SUPER + SHIFT + B to start browser in private mode"
if [[ -f ~/.config/hypr/bindings.conf ]] && grep -q "SUPER, B, Browser, exec" ~/.config/hypr/bindings.conf; then
sed -i '/^bindd = SUPER, B, Browser, exec, \$browser$/a\
bindd = SUPER SHIFT, B, Browser (private), exec, $browser --private' ~/.config/hypr/bindings.conf
fi

3
migrations/1757871769.sh Normal file
View File

@@ -0,0 +1,3 @@
echo "Refresh chromium-flags.conf to add option of logging in to Google account for settings sync"
omarchy-refresh-config chromium-flags.conf

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

16
migrations/1758019332.sh Normal file
View File

@@ -0,0 +1,16 @@
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

View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 217 KiB

View File

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

View File

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

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