Compare commits

...

71 Commits

Author SHA1 Message Date
Ryan Hughes
16460b5203 Set fixed fonts for Plymouth to solve freetype2 issue (#1572)
* Set fonts for plymouth to solve freetype2 issue

* Fix typo in plymouth theme update message

Clarified the reason for the plymouth theme update.

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-10 17:11:27 +02:00
David Heinemeier Hansson
80767e8686 Add 6Ghz Wi-Fi + Intel graphics acceleration for existing installations 2025-09-10 07:58:27 +02:00
David Heinemeier Hansson
e260d28f43 The mulit-selector is just too confusing for people 2025-09-10 07:49:38 +02:00
David Heinemeier Hansson
8af2d3257f Correct spacing 2025-09-09 21:52:02 +02:00
David Heinemeier Hansson
477ec351e7 Merge pull request #1540 from basecamp/dev
Omarchy 2.1.1
2025-09-09 21:36:14 +02:00
Jarek
6824ce0d0f Enable full mDNS resolution for .local domains (#1021)
* Enable full mDNS resolution for .local domains

* Add migration to enable mDNS resolution for existing users
2025-09-09 21:01:22 +02:00
Adam Michaels
70c0f70940 fix: implement proper hierarchical menu navigation (#1100)
* fix: implement proper hierarchical menu navigation

Add intelligent exit behavior that respects menu hierarchy and direct access:

**Direct Access Behavior:**
- When menus are accessed via command line arguments or keybindings
- Pressing Escape/Cancel exits the application completely
- Example: `omarchy-menu theme` → Escape → exits completely

**Hierarchical Navigation:**
- When navigating through menu system (Main → Style → Theme)
- Pressing Escape/Cancel returns to parent menu
- Examples:
  - Theme menu → Style menu (not main menu)
  - Font menu → Style menu (not main menu)
  - Power menu → Setup menu (not main menu)
  - Update Process/Config menus → Update menu (not main menu)

**Implementation:**
- `DIRECT_ACCESS` global variable tracks access method
- `handle_exit(parent_menu)` provides consistent behavior
- Applied to theme, font, power, and update submenus
- Maintains backward compatibility for all existing navigation

* Naming and add to system menu too

* Naming

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-09 20:43:26 +02:00
Joe Dang
251997cf54 fix: keybinding menu size (#1152) 2025-09-09 20:19:52 +02:00
Nirav Patel
e79cfa76a8 Include wireless-regdb to resolve #1083 (#1279)
* Add wireless-regdb alongside iwd

Needed for regulatory compliance for Wi-Fi and enabling some bands on some chipsets

* Add wireless-regdb

* Changed location of wireless-regdb install

* configure the wireless-regdom during install

* remove extra newline

* don't unset the variable too early

* also set the region as part of the script

* writing to wireless-regdom requires root

* need to use tee

* changing logic since this is brought in as source

* handle timezones that start with country code already

---------

Co-authored-by: Nirav Patel <eclecticc@users.noreply.github.com>
2025-09-09 20:13:14 +02:00
Nirav Patel
a8a907791b Install video acceleration for intel GPUs (#1368)
* install the needed packages for intel GPUs

* keep forgetting that this is included by source

---------

Co-authored-by: Nirav Patel <eclecticc@users.noreply.github.com>
2025-09-09 20:04:22 +02:00
cluah
0dbb81ee9b add visual feedback for super + mute + fix (#1474)
* add visual feedback for super + mute

- show visual feedback (device name and volume icon) when super+mute is pressed
- avoid reassigning the sink when only one is available, since this prevents devices (e.g. headphones) from regaining audio after reconnect

* cleanup

* changes needed

* fix: remove hardcoded channel reference
2025-09-09 18:43:34 +02:00
rez1coder
9ecf59dd60 chore: add waybar clock locale migration (#1498) 2025-09-09 18:40:55 +02:00
David Heinemeier Hansson
78b2f926c8 Add screen recording with audio to menu 2025-09-09 18:27:16 +02:00
Patrick van de Glind
40d7d074a9 Added Clojure to the Development Omarchy Menu & implementation (#1238)
* Added Clojure to the Development Omarchy Menu

also implemented it in omarchy-install-dev-env

* Update the icon to use the Clojure logo from Nerd Fonts

Thanks to @Sgierek106

* Use omarchy-pkg-add

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-09 17:28:30 +02:00
Ali Ismayilov
8a83234298 Provide postgres 17 (#1524) 2025-09-09 16:30:47 +02:00
Jarek
88c7c4c748 Fix VPN DNS resolution in DHCP mode (#1514)
Empty DNS= and FallbackDNS= in resolved.conf were blocking VPN DNS
servers when VPN clients replaced /etc/resolv.conf.

Removing these empty values allows systemd-resolved to:
- Use DHCP DNS from network interfaces (existing behavior)
- Fall back to system defaults when needed
- Switch to 'foreign' mode for VPN DNS override

Fixes #1509
2025-09-09 16:24:49 +02:00
David Heinemeier Hansson
ddef52c192 We don't need this to run every time 2025-09-09 14:54:42 +02:00
David Heinemeier Hansson
57ca3d74e5 Revert "Onlt run updatedb if the install worked"
This reverts commit 8e67e717a0.
2025-09-09 14:54:08 +02:00
David Heinemeier Hansson
8e67e717a0 Onlt run updatedb if the install worked 2025-09-09 14:51:27 +02:00
David Heinemeier Hansson
d5ae9ffa05 Don't stop execution on a failure or the script will exit before we get to omarchy-show-done
Which in turn means you can't see error messages on failed installs.

Closes #1521
2025-09-09 14:47:40 +02:00
robert stringer
1de4a49ab0 feat: Notification settings persist across theme changes (#1484)
* Added a core.ini file for setting persistent notification settings

* migration

* remove: max-icon-size from core.ini

* rearranging mako files

* moving core.ini mako config inside omarchy

* added core.ini to migration

* We don't actually need this

Mako is already loaded. The new config will get picked up automatically
on next reboot.

* Don't change

* No change required here

---------

Co-authored-by: robert stringer <bitmap+github@gmail.com>
Co-authored-by: xz <xz>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-09-09 14:41:41 +02:00
Keyfer Cisek
8493054cd0 Install Gemini CLI via AUR (#1517)
* Install Gemini CLI via AUR

* Update bin/omarchy-menu

Co-authored-by: Roberto Aguilar <roberto.aguilar.arrieta@gmail.com>

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roberto Aguilar <roberto.aguilar.arrieta@gmail.com>
2025-09-09 14:24:10 +02:00
David Heinemeier Hansson
dbd67e6354 Add menu option for updating drive encryption and user passwords (#1535) 2025-09-09 14:10:42 +02:00
David Heinemeier Hansson
bc1eee1857 Add audio recording on SHIFT to the screenrecording options 2025-09-08 13:11:38 +02:00
David Heinemeier Hansson
9467ff2de3 Add audio recording on SHIFT to the screenrecording options 2025-09-08 13:10:26 +02:00
David Heinemeier Hansson
e5a1b99497 Add new default background for matte black 2025-09-08 11:49:30 +02:00
Árni Gunnarsson
2f6607c03d Add locale to the waybar clock (#1380)
Icelandic was not being picked up by the clock on waybar, this issue
contains more information.

https://github.com/Alexays/Waybar/issues/2694#issuecomment-1837118050
2025-09-07 21:14:48 +02:00
David Heinemeier Hansson
597c2f58eb Fix package reference to use the Omarchy package
Closes #1385
2025-09-07 21:11:42 +02:00
Roberto Aguilar
633b5da37e Install PHP Xdebug debugger (#1399)
While working in a non-trivial feature, debugging support was needed.
Since Xdebug is the official PHP debugger, is available in Arch's
official repositories, and is trivial to configure, it makes sense to
include it in the PHP development environment.

This addition improves the overall development experience for PHP
developers by enabling easier inspection and troubleshooting.

With this PR, the debugger now shows up an enabled extension:

```
$ php -v

PHP 8.4.12 (cli) (built: Aug 27 2025 06:23:40) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.12, Copyright (c) Zend Technologies
    with Xdebug v3.4.4, Copyright (c) 2002-2025, by Derick Rethans
```
2025-09-07 21:08:11 +02:00
David Heinemeier Hansson
816a660059 Merge pull request #1424 from roberto-aguilar/docker-dbs
Make the Docker DBs file scriptable
2025-09-07 21:01:03 +02:00
David Heinemeier Hansson
05d864c8b4 Merge pull request #1426 from ollymarkey/fix-make-character-under-cursor-readable-in-alacritty-ristretto-theme
fix: make character under cursor readable in alacritty ristretto theme
2025-09-07 20:59:56 +02:00
David Heinemeier Hansson
ca1ea6ccb8 Merge pull request #1427 from typeshaper/fix-firefox-class
change firefox class regex
2025-09-07 20:58:48 +02:00
David Heinemeier Hansson
8e601e1fca Improves screensharing compatibility
Closes #1438
Co-authored-by: @keithhubner
2025-09-07 20:55:41 +02:00
David Heinemeier Hansson
33ebce49b0 Merge pull request #1443 from bftanase/fix-numlock
Enable numlock by default in input configuration
2025-09-07 20:51:22 +02:00
David Heinemeier Hansson
3d075602cb Merge pull request #1429 from martinmose/fix/ufw
Fix UFW Persistence
2025-09-07 20:48:47 +02:00
David Heinemeier Hansson
c87c5e5a04 Merge pull request #1459 from Esteban-Bermudez/place-git-config-in-config-directory
Create git config file under `~/.config`
2025-09-07 20:36:03 +02:00
David Heinemeier Hansson
8088effe9f Update git.sh 2025-09-07 20:35:29 +02:00
David Heinemeier Hansson
653b389c9a Merge pull request #1471 from rsd/hyprshot-freeze
Add --freeze option to screenshot command for improved capture stability
2025-09-07 20:32:44 +02:00
David Heinemeier Hansson
7286bbb674 Merge pull request #1480 from mgbaron/master
Match youtube subdomains in opacity windowrule
2025-09-07 20:25:47 +02:00
David Heinemeier Hansson
20ef3c821d Merge branch 'master' into dev 2025-09-07 20:02:50 +02:00
David Heinemeier Hansson
05a5bfc9b4 Ensure btop and other alacritty-without-bash-subshell commands work with cwd 2025-09-07 20:02:14 +02:00
David Heinemeier Hansson
95336e730f Stick to what we offer 2025-09-07 19:52:55 +02:00
David Heinemeier Hansson
d5e445b743 Another template 2025-09-07 19:51:32 +02:00
David Heinemeier Hansson
00fe154e43 Singular 2025-09-07 19:47:03 +02:00
David Heinemeier Hansson
27742c8f43 Template for suggestions too 2025-09-07 19:46:12 +02:00
mgbaron
15c22fb05b Match youtube subdomains in opacity windowrule
Ensures that any browser apps opening youtube or its subdomains (e.g. tv.youtube.com) have no transparency.
2025-09-06 08:12:17 -06:00
David Heinemeier Hansson
0d5b41b83a Slim further 2025-09-06 10:02:39 +02:00
David Heinemeier Hansson
8065eb87d8 Slim down 2025-09-06 10:00:32 +02:00
David Heinemeier Hansson
bee90aa121 Try the yaml instead 2025-09-06 09:56:54 +02:00
David Heinemeier Hansson
29b1ed6c4e Add an issue template for bugs 2025-09-06 09:52:51 +02:00
Raul Dias
7fe02e7d68 Update screenshot command to include --freeze option for improved capture stability 2025-09-05 18:23:16 -03:00
esteban_ba
ec428bc05f Create git config file under ~/.config
This will help to keep our git config alongside our other configuration
files instead of in the home directory under `~/.gitconfig`
2025-09-04 16:16:04 -07:00
Bogdan Tanase
73bc6159ea Enable numlock by default in input configuration
I believe this is a sensible default for those that have keyboards with num pads. Whenever I want to enter a number I reach for the numpad, just to realize that numlock is off and it doesn't do what I expect it.
2025-09-04 07:20:23 +02:00
Martin Mose Facondini
136a2268ea refactor: pr feedback - ufw 2025-09-03 21:02:12 +02:00
Martin Mose Hansen
0723059fb3 fix: ensure that ufw is enabled 2025-09-03 17:08:09 +02:00
typeshaper
5e5b253dc6 change firefox class regex
It wouldn't recognize Firefox with this kind of regex so browser was
still transparent when it shouldn't
2025-09-03 16:48:30 +03:00
Olly
9cc185c82d Update alacritty.toml
The cursor and text color in the ristretto alactritty theme config are currently the same. This change sets the cursor text color to match the background color. This should be the expected behavior.
2025-09-03 20:41:54 +10:00
Roberto Aguilar
ba76610512 Make the Docker DBs file scriptable
I'm creating dotfiles that as soon as Omarchy is installed, allow me to
perform my own customizations to get the system up and running in no
time according to my own needs.

One of them for example runs:

    ~/.local/share/omarchy/bin/omarchy-install-dev-env laravel

However, something like that is not possible with the Docker databases
because it assumes interactivity via `gum`.

This PR fixes that by either taking the choices as arguments or
providing interactivity when that's not the case.

    ~/.local/share/omarchy/bin/omarchy-install-docker-dbs MySQL
2025-09-03 00:55:39 -06:00
David Heinemeier Hansson
787d0c75a2 Fix quoting for current path 2025-09-02 22:23:20 +02:00
David Heinemeier Hansson
b84e687262 Merge pull request #1376 from ncr/unify-top-bar-toggle
Unify top bar toggle: always pkill waybar
2025-09-01 11:58:31 +02:00
Jacek Becela
c499413812 Unify top bar toggle via keybinding 2025-09-01 11:22:17 +02:00
David Heinemeier Hansson
c82754d423 Merge pull request #1372 from roberto-aguilar/minecraft-launcher
Fix Minecraft installation
2025-09-01 09:36:17 +02:00
Roberto Aguilar
9ec006a1b2 Fix Minecraft installation
I tried to install `Minecraft` through Omarchy's menu, however it fails
with the following error message:

    error: target not found: minecraft-launcher

This occurs because, according to Arch's documentation, the package is
available through AUR rather than the official repositories.

Reference: https://wiki.archlinux.org/title/Minecraft#Installation
2025-08-31 22:29:10 -06:00
Ryan Hughes
8fd668fbb3 Fix multilib regex for steam installer 2025-08-31 20:04:35 +03:00
David Heinemeier Hansson
25d02e1f3f Merge pull request #1357 from basecamp/fix-multilib-sed-issue
Account for space between # and text for Nvidia multilib
2025-08-31 18:07:04 +02:00
Ryan Hughes
261e1aec08 Account for space between # and text 2025-08-31 18:56:13 +03:00
David Heinemeier Hansson
43206dba92 Revert "Temporarily yank ttf-ia-writer until bad cache expires"
This reverts commit 6f2f48b412.
2025-08-31 17:12:58 +02:00
David Heinemeier Hansson
6f2f48b412 Temporarily yank ttf-ia-writer until bad cache expires 2025-08-31 17:06:41 +02:00
David Heinemeier Hansson
ca7f6ebb3b Sublime is only on AUR 2025-08-31 16:51:28 +02:00
David Heinemeier Hansson
131f934f17 Fix JetBrains font setting 2025-08-31 16:50:22 +02:00
David Heinemeier Hansson
91177a6546 Needed for pre-migrations setups 2025-08-31 16:28:27 +02:00
58 changed files with 419 additions and 240 deletions

23
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: Bug
description: Report a problem
labels: [bug]
body:
- type: markdown
attributes:
value: |
Remember: Omarchy is an open source gift, not a product you bought from a vendor
- type: input
id: system-details
attributes:
label: System details
placeholder: e.g. AMD 9950X, NVIDIA 5090, Omarchy 2.1.0
validations:
required: true
- type: textarea
id: steps
attributes:
label: What's wrong?
validations:
required: true

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1 @@
blank_issues_enabled: false

View File

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

15
.github/ISSUE_TEMPLATE/enhancement.yml vendored Normal file
View File

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

View File

@@ -1,19 +1,50 @@
#!/bin/bash
# Find all the audio sinks but exit if there are none
sinks=($(wpctl status | sed -n '/Sinks:/,/Sources:/p' | grep -E '^\s*│\s+\*?\s*[0-9]+\.' | sed -E 's/^[^0-9]*([0-9]+)\..*/\1/'))
[ ${#sinks[@]} -eq 0 ] && exit 1
focused_monitor="$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')"
# Find current audio sink
current=$(wpctl status | sed -n '/Sinks:/,/Sources:/p' | grep '^\s*│\s*\*' | sed -E 's/^[^0-9]*([0-9]+)\..*/\1/')
sinks=$(pactl -f json list sinks)
sinks_count=$(echo "$sinks" | jq '. | length')
# Find the next sink (looping around in the list)
for i in "${!sinks[@]}"; do
[ "${sinks[$i]}" = "$current" ] && next=${sinks[$(((i + 1) % ${#sinks[@]}))]}
done
next=${next:-${sinks[0]}}
if [ "$sinks_count" -eq 0 ]; then
swayosd-client \
--monitor "$focused_monitor" \
--custom-message "No audio devices found"
exit 1
fi
# Set the next sink and ensure it's not muted
wpctl set-default "$next"
wpctl set-mute "$next" 0
current_sink_name=$(pactl get-default-sink)
current_sink_index=$(echo "$sinks" | jq -r --arg name "$current_sink_name" 'map(.name) | index($name)')
if [ "$current_sink_index" != "null" ]; then
next_sink_index=$(((current_sink_index + 1) % sinks_count))
else
next_sink_index=0
fi
next_sink=$(echo "$sinks" | jq -r ".[$next_sink_index]")
next_sink_name=$(echo "$next_sink" | jq -r '.name')
next_sink_description=$(echo "$next_sink" | jq -r '.description')
next_sink_volume=$(echo "$next_sink" | jq -r \
'.volume | to_entries[0].value.value_percent | sub("%"; "")')
next_sink_is_muted=$(echo "$next_sink" | jq -r '.mute')
if [ "$next_sink_is_muted" = "true" ] || [ "$next_sink_volume" -eq 0 ]; then
icon_state="muted"
elif [ "$next_sink_volume" -le 33 ]; then
icon_state="low"
elif [ "$next_sink_volume" -le 66 ]; then
icon_state="medium"
else
icon_state="high"
fi
next_sink_volume_icon="sink-volume-${icon_state}-symbolic"
if [ "$next_sink_name" != "$current_sink_name" ]; then
pactl set-default-sink "$next_sink_name"
fi
swayosd-client \
--monitor "$focused_monitor" \
--custom-message "$next_sink_description" \
--custom-icon "$next_sink_volume_icon"

View File

@@ -8,15 +8,21 @@ if [[ ! -d "$OUTPUT_DIR" ]]; then
exit 1
fi
if [[ $2 == "audio" ]]; then
AUDIO="--audio"
else
AUDIO=""
fi
screenrecording() {
filename="$OUTPUT_DIR/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4"
notify-send "Screen recording starting..." -t 1000
sleep 1
if lspci | grep -Eqi 'nvidia|intel.*graphics'; then
wf-recorder -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
wf-recorder $AUDIO -f "$filename" -c libx264 -p crf=23 -p preset=medium -p movflags=+faststart "$@"
else
wl-screenrec -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
wl-screenrec $AUDIO -f "$filename" --ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" "$@"
fi
}

View File

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

View File

@@ -5,7 +5,7 @@ terminal_pid=$(hyprctl activewindow | awk '/pid:/ {print $2}')
shell_pid=$(pgrep -P "$terminal_pid" | head -n1)
if [[ -n $shell_pid ]]; then
readlink -f "/proc/$shell_pid/cwd" 2>/dev/null
readlink -f "/proc/$shell_pid/cwd" 2>/dev/null || echo "$HOME"
else
echo "$HOME"
fi

28
bin/omarchy-drive-info Executable file
View File

@@ -0,0 +1,28 @@
#!/bin/bash
# Drive, like /dev/nvme0, to display information about
if (($# == 0)); then
echo "Usage: omarchy-drive-info [/dev/drive]"
exit 1
else
drive="$1"
fi
# Find the root drive in case we are looking at partitions
root_drive=$(lsblk -no PKNAME "$drive" 2>/dev/null | tail -n1)
if [[ -n "$root_drive" ]]; then
root_drive="/dev/$root_drive"
else
root_drive="$drive"
fi
# Get basic disk information
size=$(lsblk -dno SIZE "$drive" 2>/dev/null)
model=$(lsblk -dno MODEL "$root_drive" 2>/dev/null)
# Format display string
display="$drive"
[[ -n "$size" ]] && display="$display ($size)"
[[ -n "$model" ]] && display="$display - $model"
echo "$display"

18
bin/omarchy-drive-select Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
# Select a drive from a list with info that includes space and brand
if (($# == 0)); then
drives=$(lsblk -dpno NAME | grep -E '/dev/(sd|hd|vd|nvme|mmcblk|xv)')
else
drives="$@"
fi
drives_with_info=""
while IFS= read -r drive; do
[[ -n "$drive" ]] || continue
drives_with_info+="$(omarchy-drive-info "$drive")"$'\n'
done <<<"$drives"
selected_drive="$(printf "%s" "$drives_with_info" | gum choose --header "Select drive")" || exit 1
printf "%s\n" "$selected_drive" | awk '{print $1}'

21
bin/omarchy-drive-set-password Executable file
View File

@@ -0,0 +1,21 @@
#!/bin/bash
encrypted_drives=$(blkid -t TYPE=crypto_LUKS -o device)
if [[ -n $encrypted_drives ]]; then
if [[ $(wc -l <<<"$encrypted_drives") -eq 1 ]]; then
drive_to_change="$encrypted_drives"
else
drive_to_change="$(omarchy-drive-select "$encrypted_drives")"
fi
if [[ -n $drive_to_change ]]; then
echo "Changing full-disk encryption password for $drive_to_change"
sudo cryptsetup luksChangeKey --pbkdf argon2id --iter-time 2000 "$drive_to_change"
else
echo "No drive selected."
fi
else
echo "No encrypted drives available."
exit 1
fi

View File

@@ -1,12 +1,12 @@
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Usage: omarchy-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet>" >&2
echo "Usage: omarchy-install-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|phoenix|rust|java|ocaml|dotnet|clojure>" >&2
exit 1
fi
install_php() {
sudo pacman -S php composer php-sqlite --noconfirm
sudo pacman -S php composer php-sqlite xdebug --noconfirm
# Install Path for Composer
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then
@@ -28,6 +28,12 @@ install_php() {
"pdo_mysql"
)
# Enable Xdebug
sudo sed -i \
-e 's/^;zend_extension=xdebug.so/zend_extension=xdebug.so/' \
-e 's/^;xdebug.mode=debug/xdebug.mode=debug/' \
/etc/php/conf.d/xdebug.ini
for ext in "${extensions_to_enable[@]}"; do
sudo sed -i "s/^;extension=${ext}/extension=${ext}/" "$php_ini_path"
done
@@ -125,4 +131,9 @@ dotnet)
echo -e "Installing .NET...\n"
mise use --global dotnet@latest
;;
clojure)
echo -e "Installing Clojure...\n"
omarchy-pkg-add rlwrap
mise use --global clojure@latest
;;
esac

View File

@@ -1,13 +1,18 @@
#!/bin/bash
options=("MySQL" "PostgreSQL" "Redis" "MongoDB" "MariaDB")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
if [[ "$#" -eq 0 ]]; then
choices=$(printf "%s\n" "${options[@]}" | gum choose --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
else
choices="$@"
fi
if [[ -n "$choices" ]]; then
for db in $choices; do
case $db in
MySQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mysql8 -e MYSQL_ROOT_PASSWORD= -e MYSQL_ALLOW_EMPTY_PASSWORD=true mysql:8.4 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres16 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:16 ;;
PostgreSQL) sudo docker run -d --restart unless-stopped -p "127.0.0.1:5432:5432" --name=postgres17 -e POSTGRES_HOST_AUTH_METHOD=trust postgres:17 ;;
MariaDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:3306:3306" --name=mariadb11 -e MARIADB_ROOT_PASSWORD= -e MARIADB_ALLOW_EMPTY_ROOT_PASSWORD=true mariadb:11.8 ;;
Redis) sudo docker run -d --restart unless-stopped -p "127.0.0.1:6379:6379" --name=redis redis:7 ;;
MongoDB) sudo docker run -d --restart unless-stopped -p "127.0.0.1:27017:27017" --name mongodb -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo:noble ;;

View File

@@ -1,7 +1,7 @@
#!/bin/bash
echo "Adding multilib repository for 32-bit compatibility"
sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf
sudo sed -i '/^#\s*\[multilib\]/,/^#\s*Include/ s/^#\s*//' /etc/pacman.conf
echo "Now pick dependencies matching your graphics card"
sudo pacman -Syu --noconfirm steam

View File

@@ -2,6 +2,21 @@
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
# Set to true when going directly to a submenu, so we can exit directly
BACK_TO_EXIT=false
back_to() {
local parent_menu="$1"
if [[ "$DIRECT_ACCESS" == "true" ]]; then
exit 0
elif [[ -n "$parent_menu" ]]; then
"$parent_menu"
else
show_main_menu
fi
}
menu() {
local prompt="$1"
local options="$2"
@@ -80,7 +95,7 @@ show_style_menu() {
show_theme_menu() {
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
back_to show_style_menu
else
omarchy-theme-set "$theme"
fi
@@ -89,7 +104,7 @@ show_theme_menu() {
show_font_menu() {
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
back_to show_style_menu
else
omarchy-font-set "$theme"
fi
@@ -114,8 +129,10 @@ show_screenshot_menu() {
}
show_screenrecord_menu() {
case $(menu "Screenrecord" " Region\n Display") in
case $(menu "Screenrecord" " Region\n Region + Audio\n Display\n Display + Audio") in
*"Region + Audio"*) omarchy-cmd-screenrecord region audio ;;
*Region*) omarchy-cmd-screenrecord ;;
*"Display + Audio"*) omarchy-cmd-screenrecord output audio ;;
*Display*) omarchy-cmd-screenrecord output ;;
*) show_capture_menu ;;
esac
@@ -163,7 +180,7 @@ show_setup_power_menu() {
profile=$(menu "Power Profile" "$(omarchy-powerprofiles-list)" "" "$(powerprofilesctl get)")
if [[ "$profile" == "CNCLD" || -z "$profile" ]]; then
show_main_menu
back_to show_setup_menu
else
powerprofilesctl set "$profile"
fi
@@ -213,7 +230,7 @@ show_install_editor_menu() {
*VSCode*) install_and_launch "VSCode" "visual-studio-code-bin" "code" ;;
*Cursor*) install_and_launch "Cursor" "cursor-bin" "cursor" ;;
*Zed*) install_and_launch "Zed" "zed" "dev.zed.Zed" ;;
*Sublime*) install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
*Sublime*) aur_install_and_launch "Sublime Text" "sublime-text-4" "sublime_text" ;;
*Helix*) install "Helix" "helix" ;;
*Emacs*) install "Emacs" "emacs-wayland" && systemctl --user enable --now emacs.service ;;
*) show_install_menu ;;
@@ -227,14 +244,14 @@ show_install_ai_menu() {
echo ollama
)
case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini [AUR]\n󱚤 OpenAI Codex [AUR]\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;;
*OpenAI*) aur_install "OpenAI Codex" "openai-codex-bin" ;;
*Gemini*) install "Gemini" "gemini-cli" ;;
*Gemini*) aur_install "Gemini" "gemini-cli" ;;
*Studio*) install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" $ollama_pkg ;;
*Crush*) install "Crush" "crush-bin" ;;
*opencode*) install "opencode" "opencode-bin" ;;
*opencode*) install "opencode" "opencode" ;;
*) show_install_menu ;;
esac
}
@@ -243,7 +260,7 @@ show_install_gaming_menu() {
case $(menu "Install" " Steam\n RetroArch [AUR]\n󰍳 Minecraft") in
*Steam*) present_terminal omarchy-install-steam ;;
*RetroArch*) aur_install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
*Minecraft*) aur_install_and_launch "Minecraft [AUR]" "minecraft-launcher" "minecraft-launcher" ;;
*) show_install_menu ;;
esac
}
@@ -268,7 +285,7 @@ show_install_font_menu() {
}
show_install_development_menu() {
case $(menu "Install" "󰫏 Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml") in
case $(menu "Install" "󰫏 Ruby on Rails\n Docker DB\n JavaScript\n Go\n PHP\n Python\n Elixir\n Zig\n Rust\n Java\n .NET\n OCaml\n Clojure") in
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
*Docker*) present_terminal omarchy-install-docker-dbs ;;
*JavaScript*) show_install_javascript_menu ;;
@@ -281,6 +298,7 @@ show_install_development_menu() {
*Java*) present_terminal "omarchy-install-dev-env java" ;;
*NET*) present_terminal "omarchy-install-dev-env dotnet" ;;
*OCaml*) present_terminal "omarchy-install-dev-env ocaml" ;;
*Clojure*) present_terminal "omarchy-install-dev-env clojure" ;;
*) show_install_menu ;;
esac
}
@@ -324,13 +342,14 @@ show_remove_menu() {
}
show_update_menu() {
case $(menu "Update" " Omarchy\n Config\n󰸌 Themes\n Process\n󰇅 Hardware\n Timezone") in
case $(menu "Update" " Omarchy\n Config\n󰸌 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 ;;
*Process*) show_update_process_menu ;;
*Hardware*) show_update_hardware_menu ;;
*Timezone*) omarchy-cmd-tzupdate ;;
*Password*) show_update_password_menu ;;
*) show_main_menu ;;
esac
}
@@ -368,6 +387,14 @@ show_update_hardware_menu() {
esac
}
show_update_password_menu() {
case $(menu "Update Password" " Drive Encryption\n User") in
*Drive*) present_terminal omarchy-drive-set-password ;;
*User*) present_terminal passwd ;;
*) show_update_menu ;;
esac
}
show_system_menu() {
case $(menu "System" " Lock\n󱄄 Screensaver\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in
*Lock*) omarchy-lock-screen ;;
@@ -376,7 +403,7 @@ show_system_menu() {
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
*) show_main_menu ;;
*) back_to show_main_menu ;;
esac
}
@@ -405,6 +432,7 @@ go_to_menu() {
}
if [[ -n "$1" ]]; then
BACK_TO_EXIT=true
go_to_menu "$1"
else
show_main_menu

View File

@@ -83,7 +83,11 @@ parse_bindings() {
}'
}
monitor_height=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true) | .height')
menu_height=$((monitor_height * 40 / 100))
dynamic_bindings | \
sort -u | \
parse_bindings | \
walker --dmenu --theme keybindings -p 'Keybindings'
walker --dmenu --theme keybindings -p 'Keybindings' -w 800 -h "$menu_height"

View File

@@ -1,7 +1,5 @@
#!/bin/bash
set -e
fzf_args=(
--multi
--preview 'yay -Sii {1}'

View File

@@ -1,7 +1,5 @@
#!/bin/bash
set -e
fzf_args=(
--multi
--preview 'pacman -Sii {1}'
@@ -19,6 +17,5 @@ pkg_names=$(pacman -Slq | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then
# Convert newline-separated selections to space-separated for yay
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -S --noconfirm
sudo updatedb
omarchy-show-done
fi

View File

@@ -17,6 +17,5 @@ pkg_names=$(yay -Qqe | fzf "${fzf_args[@]}")
if [[ -n "$pkg_names" ]]; then
# Convert newline-separated selections to space-separated for yay
echo "$pkg_names" | tr '\n' ' ' | xargs sudo pacman -Rns --noconfirm
sudo updatedb
omarchy-show-done
fi

View File

@@ -37,8 +37,6 @@ EOF
DHCP)
sudo tee /etc/systemd/resolved.conf >/dev/null <<'EOF'
[Resolve]
DNS=
FallbackDNS=
DNSOverTLS=no
EOF

View File

@@ -2,7 +2,7 @@
$terminal = uwsm app -- alacritty
$browser = omarchy-launch-browser
bindd = SUPER, return, Terminal, exec, $terminal --working-directory=$(omarchy-cmd-terminal-cwd)
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

View File

@@ -9,6 +9,9 @@ input {
repeat_rate = 40
repeat_delay = 600
# Start with numlock on by default
numlock_by_default = true
# Increase sensitity for mouse/trackpack (default: 0)
# sensitivity = 0.35

View File

@@ -57,8 +57,8 @@
"on-click": "alacritty -e btop"
},
"clock": {
"format": "{:%A %H:%M}",
"format-alt": "{:%d %B W%V %Y}",
"format": "{:L%A %H:%M}",
"format-alt": "{:L%d %B W%V %Y}",
"tooltip": false,
"on-click-right": "omarchy-cmd-tzupdate"
},

View File

@@ -1,6 +1,6 @@
# Browser types
windowrule = tag +chromium-based-browser, class:([cC]hrom(e|ium)|[bB]rave-browser|Microsoft-edge|Vivaldi-stable)
windowrule = tag +firefox-based-browser, class:(Firefox|zen|librewolf)
windowrule = tag +firefox-based-browser, class:([fF]irefox|zen|librewolf)
# Force chromium-based browsers into a tile to deal with --app bug
windowrule = tile, tag:chromium-based-browser
@@ -10,4 +10,4 @@ windowrule = opacity 1 0.97, tag:chromium-based-browser
windowrule = opacity 1 0.97, tag:firefox-based-browser
# Some video sites should never have opacity applied to them
windowrule = opacity 1.0 1.0, initialTitle:(youtube\.com_/|app\.zoom\.us_/wc/home)
windowrule = opacity 1.0 1.0, initialTitle:((?i)(?:[a-z0-9-]+\.)*youtube\.com_/|app\.zoom\.us_/wc/home)

View File

@@ -7,7 +7,7 @@ bindld = , XF86PowerOff, Power menu, exec, omarchy-menu system
bindd = SUPER, K, Show key bindings, exec, omarchy-menu-keybindings
# Aesthetics
bindd = SUPER SHIFT, SPACE, Toggle top bar, exec, pkill -SIGUSR1 waybar
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
@@ -33,8 +33,10 @@ bindd = SHIFT, PRINT, Screenshot of window, exec, omarchy-cmd-screenshot window
bindd = CTRL, PRINT, Screenshot of display, exec, omarchy-cmd-screenshot output
# Screen recordings
bindd = ALT, PRINT, Screen record a region, exec, omarchy-cmd-screenrecord
bindd = ALT, PRINT, Screen record a region, exec, omarchy-cmd-screenrecord region
bindd = ALT SHIFT, PRINT, Screen record a region with audio, exec, omarchy-cmd-screenrecord region audio
bindd = CTRL ALT, PRINT, Screen record display, exec, omarchy-cmd-screenrecord output
bindd = CTRL ALT SHIFT, PRINT, Screen record display with audio, exec, omarchy-cmd-screenrecord output audio
# Color picker
bindd = SUPER, PRINT, Color picker, exec, pkill hyprpicker || hyprpicker -a

View File

@@ -10,6 +10,11 @@ env = SDL_VIDEODRIVER,wayland
env = MOZ_ENABLE_WAYLAND,1
env = ELECTRON_OZONE_PLATFORM_HINT,wayland
env = OZONE_PLATFORM,wayland
env = XDG_SESSION_TYPE,wayland
# Allow better support for screen sharing (Google Meet, Discord, etc)
env = XDG_CURRENT_DESKTOP,Hyprland
env = XDG_SESSION_DESKTOP,Hyprland
xwayland {
force_zero_scaling = true

16
default/mako/core.ini Normal file
View File

@@ -0,0 +1,16 @@
anchor=top-right
default-timeout=5000
width=420
height=110
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0

View File

@@ -7,3 +7,5 @@ ModuleName=script
ImageDir=/usr/share/plymouth/themes/omarchy
ScriptFile=/usr/share/plymouth/themes/omarchy/omarchy.script
ConsoleLogBackgroundColor=0x1a1b26
MonospaceFont=Cantarell 11
Font=Cantarell 11

View File

@@ -41,12 +41,14 @@ source $OMARCHY_INSTALL/config/mimetypes.sh
source $OMARCHY_INSTALL/config/localdb.sh
source $OMARCHY_INSTALL/config/sudoless-asdcontrol.sh
source $OMARCHY_INSTALL/config/hardware/network.sh
source $OMARCHY_INSTALL/config/hardware/set-wireless-regdom.sh
source $OMARCHY_INSTALL/config/hardware/fix-fkeys.sh
source $OMARCHY_INSTALL/config/hardware/bluetooth.sh
source $OMARCHY_INSTALL/config/hardware/printer.sh
source $OMARCHY_INSTALL/config/hardware/usb-autosuspend.sh
source $OMARCHY_INSTALL/config/hardware/ignore-power-button.sh
source $OMARCHY_INSTALL/config/hardware/nvidia.sh
source $OMARCHY_INSTALL/config/hardware/intel.sh
source $OMARCHY_INSTALL/config/hardware/fix-f13-amd-audio-input.sh
# Login

View File

@@ -1,5 +1,9 @@
#!/bin/bash
# Ensure git settings live under ~/.config
mkdir -p ~/.config/git
touch ~/.config/git/config
# Set common git aliases
git config --global alias.co checkout
git config --global alias.br branch

View File

@@ -0,0 +1,14 @@
#!/bin/bash
# This installs hardware video acceleration for Intel GPUs
# Check if we have an Intel GPU at all
if INTEL_GPU=$(lspci | grep -iE 'vga|3d|display' | grep -i 'intel'); then
# HD Graphics and newer uses intel-media-driver
if [[ "${INTEL_GPU,,}" =~ "hd graphics"|"xe"|"iris" ]]; then
sudo pacman -S --needed --noconfirm intel-media-driver
elif [[ "${INTEL_GPU,,}" =~ "gma" ]]; then
# Older generations from 2008 to ~2014-2017 use libva-intel-driver
sudo pacman -S --needed --noconfirm libva-intel-driver
fi
fi

View File

@@ -32,7 +32,7 @@ if [ -n "$(lspci | grep -i 'nvidia')" ]; then
# Enable multilib repository for 32-bit libraries
if ! grep -q "^\[multilib\]" /etc/pacman.conf; then
sudo sed -i '/^#\[multilib\]/,/^#Include/ s/^#//' /etc/pacman.conf
sudo sed -i '/^#\s*\[multilib\]/,/^#\s*Include/ s/^#\s*//' /etc/pacman.conf
fi
# force package database refresh

View File

@@ -7,6 +7,9 @@ sudo mkdir -p /etc/systemd/resolved.conf.d
echo -e "[Resolve]\nMulticastDNS=no" | sudo tee /etc/systemd/resolved.conf.d/10-disable-multicast.conf
chrootable_systemctl_enable avahi-daemon.service
# Enable mDNS resolution for .local domains
sudo sed -i 's/^hosts:.*/hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns/' /etc/nsswitch.conf
# Enable automatically adding remote printers
if ! grep -q '^CreateRemotePrinters Yes' /etc/cups/cups-browsed.conf; then
echo 'CreateRemotePrinters Yes' | sudo tee -a /etc/cups/cups-browsed.conf

View File

@@ -0,0 +1,36 @@
#!/bin/bash
# First check that wireless-regdb is there
if [ -f "/etc/conf.d/wireless-regdom" ]; then
unset WIRELESS_REGDOM
. /etc/conf.d/wireless-regdom
fi
# If the region is already set, we're done
if [ ! -n "${WIRELESS_REGDOM}" ]; then
# Get the current timezone
if [ -e "/etc/localtime" ]; then
TIMEZONE=$(readlink -f /etc/localtime)
TIMEZONE=${TIMEZONE#/usr/share/zoneinfo/}
# Some timezones are formatted with the two letter country code at the start
COUNTRY="${TIMEZONE%%/*}"
# If we don't have a two letter country, get it from the timezone table
if [[ ! "$COUNTRY" =~ ^[A-Z]{2}$ ]] && [ -f "/usr/share/zoneinfo/zone.tab" ]; then
COUNTRY=$(awk -v tz="$TIMEZONE" '$3 == tz {print $1; exit}' /usr/share/zoneinfo/zone.tab)
fi
# Check if we have a two letter country code
if [[ "$COUNTRY" =~ ^[A-Z]{2}$ ]]; then
# Append it to the wireless-regdom conf file that is used at boot
echo "WIRELESS_REGDOM=\"$COUNTRY\"" | sudo tee -a /etc/conf.d/wireless-regdom > /dev/null
# Also set it one off now
if command -v iw &> /dev/null; then
sudo iw reg set ${COUNTRY}
fi
fi
fi
fi

View File

@@ -26,3 +26,4 @@ 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

View File

@@ -17,6 +17,9 @@ sudo ufw allow in proto udp from 172.16.0.0/12 to 172.17.0.1 port 53 comment 'al
# Turn on the firewall
sudo ufw --force enable
# Enable UFW systemd service to start on boot
sudo systemctl enable ufw
# Turn on Docker protections
sudo ufw-docker install
sudo ufw reload

View File

@@ -114,6 +114,7 @@ sudo pacman -S --noconfirm --needed \
waybar \
wf-recorder \
whois \
wireless-regdb \
wiremix \
wireplumber \
wl-clip-persist \

View File

@@ -9,6 +9,7 @@ omarchy-refresh-config uwsm/env
echo -e "\n\e[31mOmarchy bins have been added to PATH (and OMARCHY_PATH is now system-wide).\nYou must immediately relaunch Hyprland or most Omarchy cmds won't work.\nPlease run Omarchy > Update again after the quick relaunch is complete.\e[0m"
echo
mkdir -p ~/.local/state/omarchy/migrations
gum confirm "Ready to relaunch Hyprland? (All applications will be closed)" &&
touch ~/.local/state/omarchy/migrations/1751134560.sh &&
uwsm stop

5
migrations/1756650507.sh Normal file
View File

@@ -0,0 +1,5 @@
echo "Fix JetBrains font setting"
if [[ $(omarchy-font-current) == JetBrains* ]]; then
omarchy-font-set "JetBrainsMono Nerd Font"
fi

11
migrations/1756911131.sh Executable file
View File

@@ -0,0 +1,11 @@
echo "Enable UFW systemd service for existing installations"
if omarchy-cmd-present ufw; then
if sudo ufw status | grep -q "Status: active\|22/tcp\|53317"; then
if ! systemctl is-enabled ufw >/dev/null 2>&1; then
sudo systemctl enable ufw --now
echo "UFW systemd service enabled"
fi
fi
fi

6
migrations/1757279511.sh Normal file
View File

@@ -0,0 +1,6 @@
echo "Add locale to the waybar clock format"
sed -i \
-e 's/{:%A %H:%M}/{:L%A %H:%M}/' \
-e 's/{:%d %B W%V %Y}/{:L%d %B W%V %Y}/' \
"$HOME/.config/waybar/config.jsonc"

8
migrations/1757361127.sh Normal file
View File

@@ -0,0 +1,8 @@
echo "Fix DHCP DNS to allow VPN DNS override"
if [ -f /etc/systemd/resolved.conf ]; then
if grep -q "^DNS=$" /etc/systemd/resolved.conf && grep -q "^FallbackDNS=$" /etc/systemd/resolved.conf; then
sudo sed -i '/^DNS=$/d; /^FallbackDNS=$/d' /etc/systemd/resolved.conf
sudo systemctl restart systemd-resolved
fi
fi

7
migrations/1757361128.sh Normal file
View File

@@ -0,0 +1,7 @@
echo "Enable mDNS resolution for existing Avahi installations"
if systemctl is-enabled avahi-daemon.service >/dev/null 2>&1; then
if ! grep -q "mdns_minimal" /etc/nsswitch.conf; then
sudo sed -i 's/^hosts:.*/hosts: mymachines mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] files myhostname dns/' /etc/nsswitch.conf
fi
fi

4
migrations/1757483378.sh Normal file
View File

@@ -0,0 +1,4 @@
echo "6Ghz Wi-Fi + Intel graphics acceleration for existing installations"
$OMARCHY_PATH/install/config/hardware/set-wireless-regdom.sh
$OMARCHY_PATH/install/config/hardware/intel.sh

2
migrations/1757515650.sh Normal file
View File

@@ -0,0 +1,2 @@
echo "Update plymouth theme to avoid freetype2 issue that broke the styled login screen"
omarchy-refresh-plymouth

View File

@@ -1,25 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#4c4f69
border-color=#1e66f5
background-color=#eff1f5
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#cad3f5
border-color=#c6d0f5
background-color=#24273a
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#d3c6aa
border-color=#d3c6aa
background-color=#2d353b
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#d4be98
border-color=#a89984
background-color=#282828
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#dcd7ba
border-color=#dcd7ba
background-color=#1f1f28
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#8a8a8d
border-color=#8A8A8D
background-color=#1e1e1e
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#d8dee9
border-color=#D8DEE9
background-color=#2e3440
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#C1C497
border-color=#214237
background-color=#11221C
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 12
anchor=top-right
outer-margin=5
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=5

View File

@@ -22,7 +22,7 @@ white = "#f1e5e7"
[colors.cursor]
cursor = '#c3b7b8'
text = '#c3b7b8'
text = '#2c2525'
[colors.primary]
background = '#2c2525'

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#e6d9db
border-color=#e6d9db
background-color=#2c2525
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#575279
border-color=#575279
background-color=#faf4ed
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20

View File

@@ -1,24 +1,10 @@
include=~/.local/share/omarchy/default/mako/core.ini
text-color=#a9b1d6
border-color=#33ccff
background-color=#1a1b26
width=420
height=110
padding=10
border-size=2
font=Liberation Sans 11
anchor=top-right
outer-margin=20
default-timeout=5000
max-icon-size=32
[app-name=Spotify]
invisible=1
[mode=do-not-disturb]
invisible=true
[mode=do-not-disturb app-name=notify-send]
invisible=false
[urgency=critical]
default-timeout=0
outer-margin=20