121 Commits

Author SHA1 Message Date
1f1660f5e4 One smaller for less spacing 2025-07-20 20:41:24 -05:00
35fb85ea5a Revert "Temporary fix for waybar stacking on waking from sleep"
This reverts commit b967223d3c.
2025-07-20 20:22:52 -05:00
b967223d3c Temporary fix for waybar stacking on waking from sleep
Sledge hammer fix by restarting the waybar, but it'll do the job until
we find a better fix for #196
2025-07-20 20:14:57 -05:00
af72a45dbd Remove non-existent vibe-code hallucinated options and clean up theme files 2025-07-20 18:07:15 -05:00
f81983ec50 Fix detection of "new migrations" in omarchy-update (#219)
Previously, `omarchy-update` used the timestamp of the most recent git
commit to determine which migrations are "new" and should be executed.

Unfortunately, that strategy can (and did) fail in certain scenarios. If
a migration was generated at time T1 but not merged until time T3, and
meanwhile omarchy's `master` branch was updated to a new release with
commit timestamp T2 (where T1 < T2 < T3), then anyone who runs
`omarchy-update` between T2 and T3 would end up with `last_updated_at`
equal to T2; thus, on their next `omarchy-update` it would fail to
detect the migration with timestamp T1 as a "new" migration that should
be executed.

This commit changes the strategy for detecting "new" migrations to avoid
that problem. Rather than recording the most recent commit's timestamp,
we record its SHA. Then, after pulling the new changes, we can leverage
`git diff --name-only --diff-filter=A $SHA.. migrations/*.sh`
to return precisely the list of migration files that were introduced by
our `git pull`. It doesn't matter if any of those migrations have a
timestamp that was earlier than the timestamp of the commit we started
on - we will always execute *every* migration that didn't exist before
our `git pull`!
2025-07-20 17:55:22 -05:00
dca7e9a8e8 Also don't do these migrations if they were already completed 2025-07-20 17:52:32 -05:00
e2c94acd94 Add min-width to workspace numbers (#252) 2025-07-20 17:45:58 -05:00
5b42501c9f Same style as others with description always 2025-07-20 17:44:08 -05:00
ecc9a46bff Wrap a little better 2025-07-20 17:43:17 -05:00
fafe78d80f add missing installation of zoom (#262) 2025-07-20 17:40:45 -05:00
9b8569e537 Make migrations faster to skip if they've already been run 2025-07-20 17:36:29 -05:00
5b3c324350 Change default launcher from Wofi to Walker (#218)
* Change launcher from wofi -> walker

* Add migration

* More wofi -> walker locations

* Add rose pine theme

* Rename refresh script

* Minor improvements to walker + add uwsm

* Back out running as service

* Make these executable

* Add plugins dir for now to resolve open issue 355 from v0.13.0 release

* Replace pavucontrol with wiremix (#225)

Add to install

* Revert "Replace pavucontrol with wiremix (#225)"

This reverts commit 620b397859.

* Fix reference

* Add libqalculate so calc works out of the box

* Actually add libqalculate

* Re-add media

* Add catppuccin-latte

* Final cleanup

* Remove partially baked theme

* Remove failing migration

* Remove failing migration

* Fix refresh script

* Simplify css setup

* Rearrange walker theme files

* Change theme name

* Remove unnecessary file

* Clear everything

* Only worry about the config file now

* Disable load in animation for walker

* Run walker as service

* Make sure we have fresh package db

* Add keybindings theme

* Remove history

* Explain section

* Assume wofi is gone, only run if walker isn't there

* Move as the latest

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
2025-07-20 16:17:42 -05:00
df13763d42 Better extraction 2025-07-19 22:43:28 -05:00
81727a20ce Install everything needed for full Dropbox + split out other potentially flaky installs 2025-07-19 22:43:09 -05:00
aac9e158d1 Migration to add libappindicator-gtk3 2025-07-19 22:25:32 -05:00
b98634d06b Need libappindicator-gtk3 for Dropbox tray icon to work right 2025-07-19 22:24:42 -05:00
309c35c866 Extract shared function 2025-07-19 17:02:52 -05:00
4427c0bb28 Add full screen recording as an option 2025-07-19 16:58:22 -05:00
30b3af58e5 Use same naming convention as new screenshot flow 2025-07-19 16:49:50 -05:00
6b947ffb45 Add satty to the default screenshot flow 2025-07-19 16:49:39 -05:00
f569c4e365 Moving away from SIGUSER2 didn't help with the stacking, so return it 2025-07-19 15:11:52 -05:00
cf71a3f101 Ensure apps started with uwsm stay managed by uwsm on restarts 2025-07-19 15:11:32 -05:00
ceedf474cb Include failed attempt counter and notice when you are locked out for 10 mins
Closes #229
Co-authored-by: @jhosdev
2025-07-19 12:34:34 -05:00
178f97a6e3 We don't need the GUI for fcitx5
The fewer packages the better
2025-07-18 23:33:08 -05:00
f99277ad71 Remove needless comments 2025-07-18 23:00:42 -05:00
ca69f15709 Not needed 2025-07-18 22:58:48 -05:00
2e874adb50 Add simple screen recordings (#235)
* Add simple screen recording tool

* Need slurp too
2025-07-18 22:55:28 -05:00
3b0fd13be1 Set class/title in case we want to do window settings on it 2025-07-18 22:54:42 -05:00
f8a7e1c7eb Finish transition from audio settings GUI to TUI 2025-07-18 22:54:17 -05:00
ee5785855a Replace pavucontrol with wiremix (#225)
Add to install
2025-07-18 22:40:42 -05:00
7f681c71fb Extra CR 2025-07-18 17:44:18 -07:00
d76d31a5af Make these executable too 2025-07-18 17:43:20 -07:00
3c156ab059 Better error handling and make these full scripts 2025-07-18 17:43:01 -07:00
dbfad74ba3 Better error catching 2025-07-18 17:33:51 -07:00
56e1ba9c5d Merge branch 'master' into dev 2025-07-18 17:18:02 -07:00
68a188d299 Offer community help link 2025-07-18 17:17:42 -07:00
4df7fcb716 Merge pull request #233 from alansikora/alan/setup-fixes
Setup is failing
2025-07-18 17:13:10 -07:00
913675bd5e Creating plymouth-quit.service.d before running tee 2025-07-18 21:05:38 -03:00
56e25bd02c Update docker.sh 2025-07-18 21:05:29 -03:00
2224249901 Merge pull request #223 from ryanrhughes/improve-boot-times
Improve boot times
2025-07-18 14:52:26 -07:00
2b0c56bbb1 Merge pull request #220 from rmacklin/reset-any-stash-conflicts-before-proceeding-in-omarchy-update
Reset any stash changes before proceeding if there were conflicts
2025-07-18 14:40:39 -07:00
f388e90d3b Add migration for new Catppuccin Latte theme 2025-07-18 14:35:37 -07:00
cd915557ae Merge pull request #212 from ryanyogan/omarchy-catppuccin-latte-theme
Omarchy Theme ~ Adds Catppuccin Latte
2025-07-18 14:32:51 -07:00
96e87d8e7e Minify without quality loss 2025-07-18 14:31:57 -07:00
be751a3dde Merge pull request #223 from ryanrhughes/improve-boot-times
Improve boot times
2025-07-18 14:26:27 -07:00
786b0b2205 adds a light pastel background and official btop theme 2025-07-18 10:12:28 -05:00
ced618318d Mask 2025-07-18 05:12:36 -04:00
f5553a8d30 Update 1752797704.sh
MASK
2025-07-18 05:11:51 -04:00
e34dbe7d50 Create directories 2025-07-18 04:40:41 -04:00
19d45670ce Change when plymouth is dismissed and prevent docker blocking 2025-07-18 04:37:47 -04:00
4bb8afde02 Reset any stash changes before proceeding if there were conflicts
If the worktree has conflicts after applying the user's changes from the
autostash, we should reset them before proceeding to ensure we are in
a working state. When there are conflicts, git still keeps the stash
entry, so the user will still be able to manually re-pop the stash and
resolve the conflicts after `omarchy-update` has finished.

In the case of conflicts, the output will look something like this (I've
omitted most of the normal `git pull` output, hence the `[...]`):

```
Updating 729cd6a..45b5d3e
Created autostash: 91853c4
Fast-forward
 bin/omarchy                                                                |  10 +++++++---
 [...]
 create mode 100644 themes/tokyo-night/backgrounds/2--Milad-Fakurian-Abstract-Purple-Blue.jpg
Applying autostash resulted in conflicts.
Your changes are safe in the stash.
You can run "git stash pop" or "git stash drop" at any time.
bin/omarchy:65: leftover conflict marker
```

before proceeding with the rest of the `omarchy-update` script from a
clean state. So the user will see 1) that there were conflicts when
applying the autostashed changes, 2) that their changes are still safe
in the stash, and 3) which files (and lines) had conflict markers.
2025-07-17 23:06:25 -07:00
49efa1c3f1 Add third Tokyo Night background 2025-07-17 22:35:02 -07:00
87e55b193b Merge pull request #215 from rmacklin/use-pull-autostash
Use `git pull --autostash` in `omarchy-update`
2025-07-18 00:42:16 -04:00
5252990396 increases the theme menu width for additional characters 2025-07-17 21:49:46 -05:00
276886af8e adds catppuccin logo 2025-07-17 21:35:22 -05:00
0e0741feb7 adds official catppuccin alacritty theme 2025-07-17 21:24:25 -05:00
cc0ac314ef Use git pull --autostash in omarchy-update
This is a minor follow-up to dcc4071979
to leverage the `--autostash` flag of `git pull` which does the same
thing we were doing in three separate commands.

This also avoids the possibility of popping something from the stash
that `omarchy-update` didn't actually stash. In other words, if the
initial `git stash` was a no-op (because there were no changes in the
working tree), it's actually not desirable for `omarchy-update` to
`git stash pop` at the end, since that potentially pops something the
user had manually stashed (we only want `omarchy-update` to pop its own
stash entry). Using `--autostash` handles this correctly.

Ref:
https://git-scm.com/docs/git-pull#Documentation/git-pull.txt---autostash
2025-07-17 19:13:35 -07:00
98c269e6d5 adds catppuccin from base catppuccin theme 2025-07-17 21:11:34 -05:00
45b5d3ea47 Merge pull request #209 from basecamp/dev
Omarchy v1.5.0
2025-07-17 20:15:04 -04:00
d200cec03c removes not-needed styles 2025-07-17 19:14:15 -05:00
94afc734ef Merge pull request #210 from t0gun/fix-iwd-detection
fix: check for iwctl instead of iwd
2025-07-17 20:12:44 -04:00
5c7f1a5037 Add theme picking to the TUI 2025-07-17 17:03:40 -07:00
c76cd8f0c6 Fix paths for sub command invocation 2025-07-17 16:56:13 -07:00
45bab7a92e Will be set separately 2025-07-17 16:54:19 -07:00
2bcff1662b removes personal neovim configs 2025-07-17 18:50:58 -05:00
761f08982f Merge pull request #211 from tahayvr/omarchy-theme-set/dev
Add trigger to reload btop when theme changes
2025-07-17 19:44:11 -04:00
4097582572 Merge branch 'basecamp:dev' into dev 2025-07-17 18:36:03 -05:00
39604d2d48 Backgrounds now live in theme folders 2025-07-17 16:34:47 -07:00
ee74a87020 Add trigger to reload btop when theme changes 2025-07-17 16:33:36 -07:00
61c0bfd22b Seems like pinta can unfortunately also be a bit flaky! 2025-07-17 16:29:06 -07:00
f880531621 Stop wrapping wofi in uwsm for now as it was producing errors 2025-07-17 16:07:33 -07:00
49c38c835f Add migration for waybar/config.jsonc rename
Co-authored-by: @nullndr
Closes #169
2025-07-17 16:00:13 -07:00
7991835576 Use waybar/config.jsonc for syntax highlighting 2025-07-17 15:58:42 -07:00
51c2437f2a fix broken iwd check by validating iwctl instead 2025-07-17 18:57:37 -04:00
2696fb39da Protect theme-bg-next from missing background and always start with the first one 2025-07-17 15:34:21 -07:00
296e232151 Just use existing logic for setting theme bg 2025-07-17 15:29:57 -07:00
e2c8e3ccfe Pull backgrounds into the repo to simplify setup and theme selection
This was too complicated for something too remote
2025-07-17 15:16:37 -07:00
03a541a9a2 [THEME] // Adds initial catppuccin-latte base styles 2025-07-17 17:11:34 -05:00
86a3c84db9 Consistent command naming scheme for menus too 2025-07-17 15:04:46 -07:00
b9c782d142 Use consistent naming setup and expose add/remove in TUI 2025-07-17 15:02:20 -07:00
ef8df30f01 Add --remove option to fingerprint setup 2025-07-17 14:59:16 -07:00
9467b56be0 Uninstall packages too 2025-07-17 14:53:45 -07:00
68e77daffa Better setup flow and add --remove option 2025-07-17 14:51:59 -07:00
729cd6a3a2 Merge pull request #171 from icehunt/fido2-setup-script
add fido2-setup script
2025-07-17 17:39:09 -04:00
3f01ced913 Fixup migration 2025-07-17 14:32:22 -07:00
89fe64aa23 Merge pull request #206 from Shaps/add-docker-buildx
Add docker-buildx package
2025-07-17 17:31:17 -04:00
38417b36e9 Merge branch 'dev' into add-docker-buildx 2025-07-17 17:26:51 -04:00
fd087719a2 Merge pull request #204 from basecamp/light-mode-easy
Add light mode
2025-07-17 17:23:31 -04:00
e00c4ad0dc Link up the theme too 2025-07-17 14:22:01 -07:00
f38420e954 Fit more themes! 2025-07-17 14:18:09 -07:00
6e229feb43 light.mode sounds better! 2025-07-17 14:15:55 -07:00
bb5f6b00e3 Confirm before updating system packages 2025-07-17 14:12:58 -07:00
e9f0239f57 Stash/pop any local changes before pulling updates
More user customizations will survive without commits.
2025-07-17 14:12:58 -07:00
25459cb539 Confirm before updating system packages 2025-07-17 09:39:42 -07:00
dcc4071979 Stash/pop any local changes before pulling updates
More user customizations will survive without commits.
2025-07-17 09:39:31 -07:00
ea7d615eef add docker-buildx package 2025-07-17 11:46:12 +02:00
86bf311866 add option to opt out of sudo 2025-07-17 02:05:41 -07:00
2235332cb9 Let the themes include backgrounds directly 2025-07-16 22:32:35 -07:00
5170b7a653 Needless 2025-07-16 22:24:32 -07:00
53f77dd267 Add Rose Pine light theme 2025-07-16 22:08:28 -07:00
fb17d91fad Merge branch 'dev' into light-mode-easy 2025-07-16 21:49:23 -07:00
ebe38078de Disable uwsmifying wofi launcher until we can fix the issues 2025-07-16 21:49:17 -07:00
6542784559 Make light mode possible via gsettings based off a marker 2025-07-16 21:48:14 -07:00
9a2d8852d3 Kill waybar proper and restart on suspecion that SIGUSR2 is whats causing the stacking bug 2025-07-16 21:13:36 -07:00
4f565b743a Simpler shebang 2025-07-16 20:15:56 -07:00
c8656cb10f Merge pull request #201 from basecamp/firewall
Enable ufw firewall by default
2025-07-16 20:48:24 -04:00
a735337a59 Turn on ufw-docker 2025-07-16 16:56:40 -07:00
b1c5b420bc Add migration to enable firewall 2025-07-16 16:47:36 -07:00
e6e280dd84 Merge branch 'dev' into firewall 2025-07-16 16:46:50 -07:00
5c42f35839 Install and enable ufw firewall by default
Gotta be safe out there!
2025-07-16 16:46:35 -07:00
65933ad060 Merge pull request #182 from abenz1267/uwsm
use uwsm to properly wrap applications as systemd units
2025-07-16 17:31:36 -04:00
f52c261735 Update utilities.conf
Match latest
2025-07-16 14:30:56 -07:00
e9c7bbb490 uwsm: wrap gui exec-once applications with uwsm 2025-07-16 23:21:06 +02:00
f756d742da use uwsm to properly wrap applications 2025-07-16 23:19:55 +02:00
12a43ae400 Ensure all installers have a shebang line to specify bash
Closes #134
2025-07-16 14:19:03 -07:00
f4b172e029 Fix switching to background images with spaces in the filename
Fixes #138
2025-07-16 14:10:04 -07:00
ea9d451474 Don't hang the opening terminal 2025-07-16 13:15:12 -07:00
28dc1f505c No transparency on nautilus previews 2025-07-16 13:00:50 -07:00
dcd63233af added sudo support 2025-07-15 03:30:28 -07:00
f1761319e9 got testing for device working 2025-07-15 02:34:18 -07:00
0a8d3c3322 add fido2-setup script 2025-07-14 01:10:12 -07:00
157 changed files with 1594 additions and 471 deletions

View File

@ -1,10 +0,0 @@
[Desktop Entry]
Name=Bluetooth
Comment=Configure Bluetooth settings
Icon=bluetooth
Exec=env GTK_THEME=Adwaita-dark blueberry
Terminal=false
Type=Application
Categories=GTK;GNOME;Settings;HardwareSettings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
StartupNotify=true
NotShowIn=GNOME;KDE;Unity;

View File

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

View File

@ -1,10 +0,0 @@
[Desktop Entry]
Version=1.0
Name=Volume Control
Comment=Adjust the volume level
Exec=env GTK_THEME=Adwaita-dark pavucontrol
Icon=multimedia-volume-control
StartupNotify=true
Type=Application
Categories=AudioVideo;Audio;Mixer;GTK;Settings;X-XFCE-SettingsDialog;X-XFCE-HardwareSettings;
Keywords=pavucontrol;PulseAudio;Microphone;Volume;Fade;Balance;Headset;Speakers;Headphones;Audio;Mixer;Output;Input;Devices;Playback;Recording;System Sounds;Sound Card;Settings;Preferences;

View File

@ -0,0 +1,7 @@
[Desktop Entry]
Name=Audio Settings
Comment=Using Wiremix
Exec=alacritty --class=Wiremix --title=Wiremix -e wiremix
Icon=audio-card
Type=Application
Terminal=false

View File

@ -35,11 +35,11 @@ main_menu() {
update_menu() {
show_ascii_art
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
local menu=("Omarchy" "Waybar" "Walker" "Plymouth" "Desktop apps" "Back")
local commands=(
"omarchy-update"
"omarchy-refresh-waybar"
"omarchy-refresh-wofi"
"omarchy-refresh-walker"
"omarchy-refresh-plymouth"
"omarchy-refresh-applications"
"main_menu"
@ -62,8 +62,9 @@ update_menu() {
theme_menu() {
show_ascii_art
local menu=("Install" "Remove" "Back")
local menu=("Pick" "Install" "Remove" "Back")
local commands=(
"omarchy-theme-menu"
"install_theme_prompt"
"remove_theme_prompt"
"main_menu"
@ -104,9 +105,12 @@ remove_theme_prompt() {
setup_menu() {
show_ascii_art
local menu=("Fingerprint sensor" "Back")
local menu=("Add fingerprint sensor" "Remove fingerprint sensor" "Add Fido2 device" "Remove Fido2 device" "Back")
local commands=(
"omarchy-fingerprint-setup"
"omarchy-setup-fingerprint"
"omarchy-setup-fingerprint --remove"
"omarchy-setup-fido2"
"omarchy-setup-fido2 --remove"
"main_menu"
)
local choice

View File

@ -4,5 +4,4 @@
ln -nsf ~/.local/share/omarchy/config/hypr/hyprland.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/hypr/hypridle.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/
ln -nsf ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/
ln -nsf ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/
ln -nsf ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/

View File

@ -1,36 +0,0 @@
#!/bin/bash
yay -S --noconfirm --needed fprintd usbutils
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
else
# Add fingerprint authentication as an option for sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Add fingerprint authentication as an option for hyprpolkitagent
if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth required pam_unix.so
auth optional pam_fprintd.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
# Enroll the first finger
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m"
sudo fprintd-enroll $USER
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
else
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
fi
fi

View File

@ -1,15 +1,13 @@
#!/bin/bash
# A script to display Hyprland keybindings defined in your configuration
# using wofi for an interactive search menu.
# using walker for an interactive search menu.
USER_HYPRLAND_CONF="$HOME/.config/hypr/hyprland.conf"
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf $HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf $HOME/.local/share/omarchy/default/hypr/bindings.conf $HOME/.local/share/omarchy/default/hypr/media.conf"
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf \
$HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf \
$HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf \
$HOME/.local/share/omarchy/default/hypr/media.conf"
$HOME/.local/share/omarchy/default/hypr/bindings/media.conf"
# Process the configuration file to extract and format keybindings
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces).
@ -53,7 +51,14 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
if (action != "") {
# Escape XML entities
gsub(/&/, "\\&amp;", action);
gsub(/</, "\\&lt;", action);
gsub(/>/, "\\&gt;", action);
gsub(/"/, "\\&quot;", action);
gsub(/'"'"'/, "\\&apos;", action);
printf "%-35s → %s\n", key_combo, action;
}
}' |
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical
walker --dmenu --theme keybindings -p 'Keybindings'

View File

@ -1,16 +1,13 @@
#!/bin/bash
# Power menu for Omarchy
# Provides power off, restart, and sleep options
# Function to show power menu. The first characters are invisible sort keys.
show_power_menu() {
# The first characters are invisible sort keys.
local menu_options="\u200B Lock
\u200C󰤄 Suspend
\u200D Relaunch
\u2060󰜉 Restart
\u2063󰐥 Shutdown"
local selection=$(echo -e "$menu_options" | wofi --show dmenu --prompt "Power Options" --width 150 --height 195 -O alphabetical --style ~/.config/wofi/select.css)
local selection=$(echo -e "$menu_options" | walker --dmenu --theme dmenu_150)
case "$selection" in
*Lock*) hyprlock ;;
@ -21,5 +18,4 @@ show_power_menu() {
esac
}
# Main execution
show_power_menu

5
bin/omarchy-refresh-hyprlock Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
# Overwrite local Hyprlock settings with the latest in Omarchy, but create a backup
cp -f ~/.config/hypr/hyprlock.conf ~/.config/hypr/hyprlock.conf.bak 2>/dev/null
cp -f ~/.local/share/omarchy/config/hypr/hyprlock.conf ~/.config/hypr/ 2>/dev/null

5
bin/omarchy-refresh-walker Executable file
View File

@ -0,0 +1,5 @@
#!/bin/bash
if [[ "$1" == "-y" ]] || gum confirm "Refresh Walker config? This will replace your current settings with Omarchy defaults."; then
cp -f ~/.local/share/omarchy/config/walker/config.toml ~/.config/walker/ 2>/dev/null
fi

View File

@ -2,7 +2,7 @@
if gum confirm "Refresh Waybar config? This will replace your current settings with Omarchy defaults."; then
# Overwrite local waybar settings with the latest in Omarchy
cp -f ~/.local/share/omarchy/config/waybar/config ~/.config/waybar/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
# Restart waybar

View File

@ -1,8 +0,0 @@
#!/bin/bash
if [[ "$1" == "-y" ]] || gum confirm "Refresh Wofi config? This will replace your current settings with Omarchy defaults."; then
# Overwrite local waybar settings with the latest in Omarchy
cp -f ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/ 2>/dev/null
cp -f ~/.local/share/omarchy/config/wofi/select.css ~/.config/wofi/ 2>/dev/null
fi

20
bin/omarchy-screenrecord Executable file
View File

@ -0,0 +1,20 @@
#!/bin/bash
screenrecording() {
notify-send "Screen recording starting..." -t 1000
sleep 1
wl-screenrec \
-f "$HOME/Videos/screenrecording-$(date +'%Y-%m-%d_%H-%M-%S').mp4" \
--ffmpeg-encoder-options="-c:v libx264 -crf 23 -preset medium -movflags +faststart" \
"$@"
}
if pgrep -x wl-screenrec >/dev/null; then
pkill -x wl-screenrec
notify-send "Screen recording saved to ~/Videos" -t 2000
elif [[ "$1" == "output" ]]; then
screenrecording -o ""
else
region=$(slurp) || exit 1
screenrecording -g "$region"
fi

9
bin/omarchy-screenshot Executable file
View File

@ -0,0 +1,9 @@
#!/bin/bash
hyprshot -m ${1:-region} --raw |
satty --filename - \
--output-filename ~/Pictures/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png \
--early-exit \
--actions-on-enter save-to-clipboard \
--save-after-copy \
--copy-command 'wl-copy'

33
bin/omarchy-setup-fido2 Executable file
View File

@ -0,0 +1,33 @@
#!/bin/bash
if [[ "--remove" == "$1" ]]; then
yay -Rns --noconfirm libfido2 pam-u2f
sudo rm -rf /etc/fido2
sudo sed -i '\|^auth[[:space:]]\+sufficient[[:space:]]\+pam_u2f\.so[[:space:]]\+cue[[:space:]]\+authfile=/etc/fido2/fido2$|d' /etc/pam.d/sudo
echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m"
else
yay -S --noconfirm --needed libfido2 pam-u2f
tokens=$(fido2-token -L)
if [ -z "$tokens" ]; then
echo -e "\e[31m\nNo fido2 device detected. Plug it in, you may have to unlock it as well\e[0m"
else
# Create the pamu2fcfg file
if [ ! -f /etc/fido2/fido2 ]; then
sudo mkdir -p /etc/fido2
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m"
pamu2fcfg >/tmp/fido2 # This needs to run as the user
sudo mv /tmp/fido2 /etc/fido2/fido2
fi
# Add fido2 auth as an option for sudo
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
fi
if ! sudo echo -e "\e[32m\nPerfect! Now you can use your fido2 device for sudo.\e[0m"; then
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
fi
fi
fi

43
bin/omarchy-setup-fingerprint Executable file
View File

@ -0,0 +1,43 @@
#!/bin/bash
if [[ "--remove" == "$1" ]]; then
yay -Rns --noconfirm fprintd
sudo rm -rf /etc/pam.d/polkit-1
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m"
else
yay -S --noconfirm --needed fprintd usbutils
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
else
# Add fingerprint authentication as an option for sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Add fingerprint authentication as an option for hyprpolkitagent
if [ ! -f /etc/pam.d/polkit-1 ] || ! grep -q pam_fprintd.so /etc/pam.d/polkit-1; then
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth required pam_unix.so
auth optional pam_fprintd.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
# Enroll the first finger
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\nKeep moving the finger around on sensor until the process completes.\n\e[0m"
sudo fprintd-enroll $USER
echo -e "\e[32m\nNow let's verify that it's working correctly.\e[0m\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Now you can use your fingerprint on the lock screen (Super + Escape).\e[0m"
else
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
fi
fi
fi

View File

@ -5,33 +5,44 @@
BACKGROUNDS_DIR="$HOME/.config/omarchy/current/backgrounds/"
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
BACKGROUNDS=($(find "$BACKGROUNDS_DIR" -type f | sort))
mapfile -d '' -t BACKGROUNDS < <(find "$BACKGROUNDS_DIR" -type f -print0 | sort -z)
TOTAL=${#BACKGROUNDS[@]}
# Get current background from symlink
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
if [[ $TOTAL -eq 0 ]]; then
notify-send "No background was found for theme" -t 2000
pkill -x swaybg
uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
else
# Get current background from symlink
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
CURRENT_BACKGROUND=$(readlink "$CURRENT_BACKGROUND_LINK")
else
# Default to first background if no symlink exists
CURRENT_BACKGROUND=${BACKGROUNDS[0]}
fi
CURRENT_BACKGROUND=""
fi
# Find current background index
INDEX=0
for i in "${!BACKGROUNDS[@]}"; do
# Find current background index
INDEX=-1
for i in "${!BACKGROUNDS[@]}"; do
if [[ "${BACKGROUNDS[$i]}" == "$CURRENT_BACKGROUND" ]]; then
INDEX=$i
break
fi
done
done
# Get next background (wrap around)
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
NEW_BACKGROUND=${BACKGROUNDS[$NEXT_INDEX]}
# Get next background (wrap around)
if [[ $INDEX -eq -1 ]]; then
# Use the first background when no match was found
NEW_BACKGROUND="${BACKGROUNDS[0]}"
else
NEXT_INDEX=$(((INDEX + 1) % TOTAL))
NEW_BACKGROUND="${BACKGROUNDS[$NEXT_INDEX]}"
fi
# Set new background symlink
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
# Set new background symlink
ln -nsf "$NEW_BACKGROUND" "$CURRENT_BACKGROUND_LINK"
# Relaunch swaybg
pkill -x swaybg
setsid swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&2 &
# Relaunch swaybg
pkill -x swaybg
uwsm app -- swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&1 &
fi

View File

@ -18,14 +18,8 @@ mapfile -t themes < <(
done | sort
)
# Show Wofi menu (with markup support)
selection=$(printf '%s\n' "${themes[@]}" | wofi \
--show dmenu \
--allow-markup \
--width 150 \
--height 300 \
-O alphabetical \
--style ~/.config/wofi/select.css 2>/dev/null)
# Show Walker menu
selection=$(printf '%s\n' "${themes[@]}" | walker --dmenu --theme dmenu_250 2>/dev/null)
# Remove any Pango markup before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')

View File

@ -30,5 +30,5 @@ NEXT_INDEX=$(((INDEX + 1) % TOTAL))
NEW_THEME=${THEMES[$NEXT_INDEX]}
NEW_THEME_NAME=$(basename "$NEW_THEME")
omarchy-theme-set $NEW_THEME_NAME
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" $NEW_THEME_NAME
notify-send "Theme changed to $NEW_THEME_NAME" -t 2000

View File

@ -13,7 +13,12 @@ CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
THEME_NAME="$1"
THEME_PATH="$THEMES_DIR/$THEME_NAME"
BACKGROUND_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME"
if [[ -d "$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds" ]]; then
BACKGROUND_PATH="$HOME/.config/omarchy/themes/$THEME_NAME/backgrounds"
else
BACKGROUND_PATH="$HOME/.config/omarchy/backgrounds/$THEME_NAME"
fi
# Check if the theme entered exists
if [[ ! -d "$THEME_PATH" ]]; then
@ -25,18 +30,25 @@ fi
ln -nsf "$BACKGROUND_PATH" "$HOME/.config/omarchy/current/backgrounds"
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
# Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml"
# Trigger btop config reload
pkill -SIGUSR2 btop
# Restart components to apply new theme
pkill -SIGUSR2 waybar
makoctl reload
hyprctl reload
# Set new background
first_bg=$(find "$HOME/.config/omarchy/current/backgrounds/" -type f | head -n 1)
if [[ -n "$first_bg" ]]; then
ln -nsf "$first_bg" "$HOME/.config/omarchy/current/background"
pkill -x swaybg
setsid swaybg -i "$HOME/.config/omarchy/current/background" -m fill >/dev/null &
fi
"$HOME/.local/share/omarchy/bin/omarchy-theme-bg-next"

View File

@ -1,9 +1,9 @@
#!/usr/bin/env bash
#!/bin/bash
if pgrep -x hypridle > /dev/null; then
if pgrep -x hypridle >/dev/null; then
pkill -x hypridle
notify-send "Stop locking computer when idle"
else
setsid hypridle &> /dev/null &
uwsm app -- hypridle >/dev/null 2>&1 &
notify-send "Now locking computer when idle"
fi

View File

@ -3,29 +3,28 @@
cd ~/.local/share/omarchy
if [[ $1 == "all" ]]; then
# Run all migrations
last_updated_at=1
# Run all migrations since the root commit
migration_starting_point=$(git log --max-parents=0 --first-parent --format="%H")
else
# Remember the version we're at before upgrading
last_updated_at=$(git log -1 --format=%cd --date=unix)
# Remember the commit we're at before upgrading in order to only run new migrations
migration_starting_point=$(git log -1 --format=%H)
fi
# Get the latest
git pull
# Get the latest while trying to preserve any modifications
git pull --autostash
git diff --check || git reset --merge
# Run any pending migrations
for file in migrations/*.sh; do
for file in $(git diff --name-only --diff-filter=A $migration_starting_point.. migrations/*.sh); do
filename=$(basename "$file")
migrate_at="${filename%.sh}"
if [ $migrate_at -gt $last_updated_at ]; then
echo -e "\e[32m\nRunning migration ($migrate_at)\e[0m"
source $file
fi
done
# Back to where we came from
cd - >/dev/null
echo -e "\e[32m\nUpdating system packages\e[0m"
yay -Syu --noconfirm
echo -e ""
gum confirm "Update system packages too?" && yay -Syu --noconfirm

2
boot.sh Normal file → Executable file
View File

@ -1,3 +1,5 @@
#!/bin/bash
ascii_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███

View File

@ -19,20 +19,20 @@ source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf
# Application bindings
$terminal = alacritty
$browser = chromium --new-window --ozone-platform=wayland
$terminal = uwsm app -- alacritty
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland
$webapp = $browser --app
bind = SUPER, return, exec, $terminal
bind = SUPER, F, exec, nautilus --new-window
bind = SUPER, F, exec, uwsm app -- nautilus --new-window
bind = SUPER, B, exec, $browser
bind = SUPER, M, exec, spotify
bind = SUPER, M, exec, uwsm app -- spotify
bind = SUPER, N, exec, $terminal -e nvim
bind = SUPER, T, exec, $terminal -e btop
bind = SUPER, D, exec, $terminal -e lazydocker
bind = SUPER, G, exec, signal-desktop
bind = SUPER, O, exec, obsidian -disable-gpu
bind = SUPER, slash, exec, 1password
bind = SUPER, G, exec, uwsm app -- signal-desktop
bind = SUPER, O, exec, uwsm app -- obsidian -disable-gpu
bind = SUPER, slash, exec, uwsm app -- 1password
bind = SUPER, A, exec, $webapp="https://chatgpt.com"
bind = SUPER SHIFT, A, exec, $webapp="https://grok.com"

View File

@ -1,14 +1,5 @@
# ────────────────────────────────────────────────────────────
# Hyprlock — minimal blur with ringed input
# ────────────────────────────────────────────────────────────
source = ~/.config/omarchy/current/theme/hyprlock.conf
general {
disable_loading_bar = true
no_fade_in = false
}
background {
monitor =
color = $color
@ -30,13 +21,11 @@ input-field {
outline_thickness = 4
font_family = CaskaydiaMono Nerd Font
font_size = 32
font_color = $font_color
placeholder_color = $placeholder_color
placeholder_text = Enter Password 󰈷 
check_color = $check_color
fail_text = Wrong
fail_text = <i>$PAMFAIL ($ATTEMPTS)</i>
rounding = 0
shadow_passes = 0

291
config/walker/config.toml Normal file
View File

@ -0,0 +1,291 @@
app_launch_prefix = "uwsm app -- "
terminal_title_flag = ""
locale = ""
close_when_open = true # Toggle on reopen
theme = "omarchy-default"
theme_base = []
theme_location = ["~/.local/share/omarchy/default/walker/themes/"]
monitor = ""
hotreload_theme = false
as_window = false
timeout = 0
disable_click_to_close = false
force_keyboard_focus = true
[keys]
accept_typeahead = ["tab"]
trigger_labels = "lalt"
next = ["down"]
prev = ["up"]
close = ["esc"]
remove_from_history = ["shift backspace"]
resume_query = ["ctrl r"]
toggle_exact_search = ["ctrl m"]
[keys.activation_modifiers]
keep_open = "shift"
alternate = "alt"
[keys.ai]
clear_session = ["ctrl x"]
copy_last_response = ["ctrl c"]
resume_session = ["ctrl r"]
run_last_responstruee = ["ctrl e"]
[events]
on_activate = ""
on_selection = ""
on_exit = ""
on_launch = ""
on_query_change = ""
[list]
dynamic_sub = true
keyboard_scroll_style = "emacs"
max_entries = 50
show_initial_entries = true
single_click = true
visibility_threshold = 20
placeholder = "No Results"
[search]
argument_delimiter = "#"
placeholder = " Search..."
delay = 0
resume_last_query = false
[activation_mode]
labels = "jkl;asdf"
[builtins.hyprland_keybinds]
show_sub_when_single = true
path = "~/.config/hypr/hyprland.conf"
weight = 5
name = "hyprland_keybinds"
placeholder = "Hyprland Keybinds"
switcher_only = true
hidden = true
[builtins.applications]
weight = 5
name = "applications"
placeholder = " Search..."
prioritize_new = true
hide_actions_with_empty_query = true
context_aware = true
refresh = true
show_sub_when_single = false
show_icon_when_single = true
show_generic = true
history = false
icon = ""
hidden = true
[builtins.applications.actions]
enabled = false
hide_category = true
hide_without_query = true
[builtins.bookmarks]
weight = 5
placeholder = "Bookmarks"
name = "bookmarks"
icon = "bookmark"
switcher_only = true
hidden = true
[[builtins.bookmarks.entries]]
label = "Walker"
url = "https://github.com/abenz1267/walker"
keywords = ["walker", "github"]
[[builtins.bookmarks.entries]]
label = "Omarchy - Github"
url = "https://github.com/basecamp/omarchy"
keywords = ["omarchy", "github"]
[[builtins.bookmarks.entries]]
label = "Omarchy Manual"
url = "https://manuals.omamix.org/2/the-omarchy-manual"
keywords = ["omarchy"]
[builtins.xdph_picker]
hidden = true
weight = 5
placeholder = "Screen/Window Picker"
show_sub_when_single = true
name = "xdphpicker"
switcher_only = true
[builtins.ai]
weight = 5
placeholder = "AI"
name = "ai"
icon = "help-browser"
switcher_only = true
show_sub_when_single = true
[[builtins.ai.anthropic.prompts]]
model = "claude-3-7-sonnet-20250219"
temperature = 1
max_tokens = 1_000
label = "General Assistant"
prompt = "You are a helpful general assistant. Keep your answers short and precise."
[builtins.calc]
require_number = true
weight = 5
name = "Calculator"
icon = "accessories-calculator"
placeholder = "Calculator"
min_chars = 3 # Min chars to calculate. 3 allows "3+3"
[builtins.windows]
weight = 5
icon = "view-restore"
name = "windows"
placeholder = "Windows"
show_icon_when_single = true
switcher_only = true
hidden = true
[builtins.clipboard]
always_put_new_on_top = true
exec = "wl-copy"
weight = 5
name = "clipboard"
avoid_line_breaks = true
placeholder = "Clipboard"
image_height = 300
max_entries = 10
switcher_only = true
hidden = true
[builtins.commands]
weight = 5
icon = "utilities-terminal"
switcher_only = true
name = "commands"
placeholder = "Commands"
hidden = true
[builtins.custom_commands]
weight = 5
icon = "utilities-terminal"
name = "custom_commands"
placeholder = "Custom Commands"
hidden = true
[builtins.emojis]
exec = "wl-copy"
weight = 5
name = "Emojis"
placeholder = "Emojis"
switcher_only = true
history = true
typeahead = true
show_unqualified = false
prefix = "."
[builtins.symbols]
after_copy = ""
weight = 5
name = "symbols"
placeholder = "Symbols"
switcher_only = true
history = true
typeahead = true
hidden = true
[builtins.finder]
use_fd = false
fd_flags = "--ignore-vcs --type file --type directory"
cmd_alt = "xdg-open $(dirname ~/%RESULT%)"
weight = 5
icon = "file"
name = "finder"
placeholder = "Finder"
switcher_only = true
ignore_gitignore = true
refresh = true
concurrency = 8
show_icon_when_single = true
preview_images = false
hidden = true
[builtins.runner]
eager_loading = true
weight = 5
icon = "utilities-terminal"
name = "runner"
placeholder = "Runner"
typeahead = true
history = true
generic_entry = false # Generic command runner
shell_config = "" # Path to shell to parse for aliases
refresh = true
use_fd = false
switcher_only = true
hidden = true
[builtins.ssh]
weight = 5
icon = "preferences-system-network"
name = "ssh"
placeholder = "SSH"
switcher_only = true
history = true
refresh = true
hidden = true
[builtins.switcher]
weight = 5
name = "switcher"
placeholder = "Switcher"
prefix = "/"
[builtins.websearch]
keep_selection = true
weight = 5
icon = "applications-internet"
name = "websearch"
placeholder = "Websearch"
switcher_only = true
hidden = true
[[builtins.websearch.entries]]
name = "Google"
url = "https://www.google.com/search?q=%TERM%"
[[builtins.websearch.entries]]
name = "DuckDuckGo"
url = "https://duckduckgo.com/?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Ecosia"
url = "https://www.ecosia.org/search?q=%TERM%"
switcher_only = true
[[builtins.websearch.entries]]
name = "Yandex"
url = "https://yandex.com/search/?text=%TERM%"
switcher_only = true
[builtins.dmenu]
hidden = true
weight = 5
name = "dmenu"
placeholder = "Dmenu"
switcher_only = true
show_icon_when_single = true
[builtins.translation]
delay = 1000
weight = 5
name = "translation"
icon = "accessories-dictionary"
placeholder = "Translation"
switcher_only = true
provider = "googlefree"
hidden = true

View File

@ -92,11 +92,11 @@
"format-disabled": "󰂲",
"format-connected": "",
"tooltip-format": "Devices connected: {num_connections}",
"on-click": "GTK_THEME=Adwaita-dark blueberry"
"on-click": "blueberry"
},
"pulseaudio": {
"format": "{icon}",
"on-click": "GTK_THEME=Adwaita-dark pavucontrol",
"on-click": "alacritty --class=Wiremix -e wiremix",
"on-click-right": "pamixer -t",
"tooltip-format": "Playing at {volume}%",
"scroll-step": 5,

View File

@ -23,6 +23,7 @@
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
}
#tray,

View File

@ -1,15 +0,0 @@
width=600
height=350
location=center
show=drun
prompt=Search...
filter_rate=100
allow_markup=true
no_actions=true
halign=fill
orientation=vertical
content_halign=fill
insensitive=true
allow_images=true
image_size=40
gtk_dark=true

View File

@ -1,11 +0,0 @@
/* Use by power menu, theme selector, and other menus without visible search bar */
@import ".config/wofi/style.css";
#input {
display: none;
opacity: 0;
margin-top: -200px;
}
@import ".config/omarchy/current/theme/wofi.css";

View File

@ -1,74 +0,0 @@
/* Colors are defined by theme file and can be referenced via @base, @text, @selected-text, and @border */
* {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 18px;
}
window {
margin: 0px;
padding: 20px;
background-color: @base;
opacity: 0.95;
}
#inner-box {
margin: 0;
padding: 0;
border: none;
background-color: @base;
}
#outer-box {
margin: 0;
padding: 20px;
border: none;
background-color: @base;
border: 2px solid @border;
}
#scroll {
margin: 0;
padding: 0;
border: none;
background-color: @base;
}
#input {
margin: 0;
padding: 10px;
border: none;
background-color: @base;
color: @text;
}
#input:focus {
outline: none;
box-shadow: none;
border: none;
}
#text {
margin: 5px;
border: none;
color: @text;
}
#entry {
background-color: @base;
}
#entry:selected {
outline: none;
border: none;
}
#entry:selected #text {
color: @selected-text;
}
#entry image {
-gtk-icon-transform: scale(0.7);
}
@import ".config/omarchy/current/theme/wofi.css";

View File

@ -15,7 +15,7 @@ zd() {
fi
}
open() {
xdg-open "$@" >/dev/null 2>&1
xdg-open "$@" >/dev/null 2>&1 &
}
# Directories

View File

@ -69,5 +69,5 @@ web2app-remove() {
# Ensure changes to ~/.XCompose are immediately available
refresh-xcompose() {
pkill fcitx5
setsid fcitx5 &>/dev/null &
uwsm app -- fcitx5 >/dev/null 2>&1 &
}

View File

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

View File

@ -1,11 +1,11 @@
# Launching
bind = SUPER, space, exec, pkill wofi || wofi --show drun -O alphabetical
bind = SUPER, K, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-show-keybindings
bind = SUPER, space, exec, walker
bind = SUPER, K, exec, ~/.local/share/omarchy/bin/omarchy-menu-keybindings
# Aesthetics
bind = SUPER SHIFT, SPACE, exec, pkill -SIGUSR1 waybar
bind = SUPER CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-bg-next
bind = SUPER SHIFT CTRL, SPACE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-theme-menu
bind = SUPER SHIFT CTRL, SPACE, exec, ~/.local/share/omarchy/bin/omarchy-theme-menu
# Notifications
bind = SUPER, comma, exec, makoctl dismiss
@ -13,7 +13,7 @@ bind = SUPER SHIFT, comma, exec, makoctl dismiss --all
bind = SUPER CTRL, comma, exec, makoctl mode -t do-not-disturb && makoctl mode | grep -q 'do-not-disturb' && notify-send "Silenced notifications" || notify-send "Enabled notifications"
# Power menu controls lock, suspend, relaunch, restart, shutdown
bind = SUPER, ESCAPE, exec, pkill wofi || ~/.local/share/omarchy/bin/omarchy-power-menu
bind = SUPER, ESCAPE, exec, ~/.local/share/omarchy/bin/omarchy-menu-power
# Toggle idling
bind = SUPER CTRL, I, exec, ~/.local/share/omarchy/bin/omarchy-toggle-idle
@ -24,9 +24,13 @@ bind = CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightne
bind = SHIFT CTRL, F2, exec, ~/.local/share/omarchy/bin/omarchy-apple-display-brightness +60000
# Screenshots
bind = , PRINT, exec, hyprshot -m region
bind = SHIFT, PRINT, exec, hyprshot -m window
bind = CTRL, PRINT, exec, hyprshot -m output
bind = , PRINT, exec, omarchy-screenshot
bind = SHIFT, PRINT, exec, omarchy-screenshot window
bind = CTRL, PRINT, exec, omarchy-screenshot output
# Screenshots
bind = ALT, PRINT, exec, omarchy-screenrecord
bind = CTRL ALT, PRINT, exec, omarchy-screenrecord output
# Color picker
bind = SUPER, PRINT, exec, hyprpicker -a

View File

@ -69,6 +69,9 @@ animations {
animation = workspaces, 0, 0, ease
}
# Application-sepcific animation
layerrule=noanim,walker
# Ref https://wiki.hyprland.org/Configuring/Workspace-Rules/
# "Smart gaps" / "No gaps when only"
# uncomment all if you wish to use that.

View File

@ -5,10 +5,10 @@ windowrule = suppressevent maximize, class:.*
windowrule = tile, class:^(Chromium)$
# Float and center settings and previews
windowrule = float, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
windowrule = size 800 600, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer)$
windowrule = float, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
windowrule = size 800 600, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer)$
windowrule = size 645 350, class:Omarchy
windowrule = center, class:^(org.pulseaudio.pavucontrol|blueberry.py|Impala|org.gnome.NautilusPreviewer|Omarchy)$
windowrule = center, class:^(blueberry.py|Impala|Wiremix|org.gnome.NautilusPreviewer|Omarchy)$
# Float and center file pickers
windowrule = float, class:xdg-desktop-portal-gtk, title:^(Open.*Files?|Save.*Files?|All Files|Save)
@ -22,11 +22,8 @@ windowrule = fullscreen, class:^(com.libretro.RetroArch)$
windowrule = opacity 0.97 0.9, class:.*
windowrule = opacity 1 0.97, class:^(Chromium|chromium|google-chrome|google-chrome-unstable)$
windowrule = opacity 1 1, initialTitle:^(youtube.com_/)$ # Youtube
windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv)$
windowrule = opacity 1 1, class:^(zoom|vlc|mpv|org.kde.kdenlive|com.obsproject.Studio|com.github.PintaProject.Pinta|imv|org.gnome.NautilusPreviewer)$
windowrule = opacity 1 1, class:^(com.libretro.RetroArch|steam)$
# Fix some dragging issues with XWayland
windowrule = nofocus,class:^$,title:^$,xwayland:1,floating:1,fullscreen:0,pinned:0
# Proper background blur for wofi
layerrule = blur,wofi

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,10 @@
[ui.window.box]
width = 150
[ui.window.box.scroll.list]
max_width = 150
min_width = 150
width = 150
[ui.window.box.search]
hide = true

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,10 @@
[ui.window.box]
width = 250
[ui.window.box.scroll.list]
max_width = 250
min_width = 250
width = 250
[ui.window.box.search]
hide = true

View File

@ -0,0 +1,2 @@
@import url("file://~//.local/share/omarchy/default/walker/themes/omarchy-default.css");
@import url("file://~/.config/omarchy/current/theme/walker.css");

View File

@ -0,0 +1,48 @@
[ui.window.box]
width = 964
min_width = 964
max_width = 964
height = 664
min_height = 664
max_height = 664
[ui.window.box.search]
hide = false
[ui.window.box.scroll]
v_align = "fill"
h_align = "fill"
min_width = 964
width = 964
max_width = 964
min_height = 664
height = 664
max_height = 664
[ui.window.box.scroll.list]
v_align = "fill"
h_align = "fill"
min_width = 900
width = 900
max_width = 900
min_height = 600
height = 600
max_height = 600
[ui.window.box.scroll.list.item]
h_align = "fill"
min_width = 900
width = 900
max_width = 900
[ui.window.box.scroll.list.item.activation_label]
hide = true
[ui.window.box.scroll.list.placeholder]
v_align = "start"
h_align = "fill"
hide = false
min_width = 900
width = 900
max_width = 900

View File

@ -0,0 +1,166 @@
@import url("file://~/.config/omarchy/current/theme/walker.css");
/* Reset all elements */
#window,
#box,
#search,
#password,
#input,
#prompt,
#clear,
#typeahead,
#list,
child,
scrollbar,
slider,
#item,
#text,
#label,
#sub,
#activationlabel {
all: unset;
}
* {
font-family: 'CaskaydiaMono Nerd Font', monospace;
font-size: 18px;
}
/* Window */
#window {
background: transparent;
color: @text;
}
/* Main box container */
#box {
background: alpha(@base, 0.95);
padding: 20px;
border: 2px solid @border;
border-radius: 0px;
}
/* Search container */
#search {
background: @base;
padding: 10px;
margin-bottom: 0;
}
/* Hide prompt icon */
#prompt {
opacity: 0;
min-width: 0;
margin: 0;
}
/* Hide clear button */
#clear {
opacity: 0;
min-width: 0;
}
/* Input field */
#input {
background: none;
color: @text;
padding: 0;
}
#input placeholder {
opacity: 0.5;
color: @text;
}
/* Hide typeahead */
#typeahead {
opacity: 0;
}
/* List */
#list {
background: transparent;
}
/* List items */
child {
padding: 0px 12px;
background: transparent;
border-radius: 0;
}
child:selected,
child:hover {
background: transparent;
}
/* Item layout */
#item {
padding: 0;
}
/* Icon */
#icon {
margin-right: 10px;
-gtk-icon-transform: scale(0.7);
}
/* Text */
#text {
color: @text;
padding: 14px 0;
}
#label {
font-weight: normal;
}
/* Selected state */
child:selected #text,
child:selected #label,
child:hover #text,
child:hover #label {
color: @selected-text;
}
/* Hide sub text */
#sub {
opacity: 0;
font-size: 0;
min-height: 0;
}
/* Hide activation label */
#activationlabel {
opacity: 0;
min-width: 0;
}
/* Scrollbar styling */
scrollbar {
opacity: 0;
}
/* Hide spinner */
#spinner {
opacity: 0;
}
/* Hide AI elements */
#aiScroll,
#aiList,
.aiItem {
opacity: 0;
min-height: 0;
}
/* Bar entry (switcher) */
#bar {
opacity: 0;
min-height: 0;
}
.barentry {
opacity: 0;
}

View File

@ -0,0 +1,16 @@
[ui.window.box]
width = 664
min_width = 664
max_width = 664
height = 396
min_height = 396
max_height = 396
# List constraints are critical - without these, the window shrinks when empty
[ui.window.box.scroll.list]
height = 300
min_height = 300
max_height = 300
[ui.window.box.scroll.list.item.icon]
pixel_size = 40

10
install.sh Normal file → Executable file
View File

@ -1,8 +1,16 @@
#!/bin/bash
# Exit immediately if a command exits with a non-zero status
set -e
# Give people a chance to retry running the installation
trap 'echo "Omarchy installation failed! You can retry by running: source ~/.local/share/omarchy/install.sh"' ERR
catch_errors() {
echo -e "\n\e[31mOmarchy installation failed!\e[0m"
echo "You can retry by running: bash ~/.local/share/omarchy/install.sh"
echo "Get help from the community: https://discord.gg/tXFUdasqhY"
}
trap catch_errors ERR
# Install everything
for f in ~/.local/share/omarchy/install/*.sh; do

View File

@ -1,3 +1,5 @@
#!/bin/bash
sudo pacman -S --needed --noconfirm base-devel
if ! command -v yay &>/dev/null; then

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Need gum to query for input
yay -S --noconfirm --needed gum

View File

@ -1,3 +1,5 @@
#!/bin/bash
yay -S --noconfirm --needed \
wget curl unzip inetutils impala \
fd eza fzf ripgrep zoxide bat \

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Copy over Omarchy configs
cp -R ~/.local/share/omarchy/config/* ~/.config/

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Install asdcontrol for controlling brightness on Apple Displays
if [ -z "$OMARCHY_BARE" ] && ! command -v asdcontrol &>/dev/null; then
git clone https://github.com/nikosdion/asdcontrol.git /tmp/asdcontrol

View File

@ -1,9 +0,0 @@
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/
download_background_image() {
local url="$1"
local path="$2"
gum spin --title "Downloading $url as $path..." -- curl -sL -o "$BACKGROUNDS_DIR/$path" "$url"
}
for t in ~/.local/share/omarchy/themes/*; do source "$t/backgrounds.sh"; done

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Install bluetooth controls
yay -S --noconfirm --needed blueberry

View File

@ -1,6 +1,9 @@
#!/bin/bash
yay -S --noconfirm --needed \
brightnessctl playerctl pamixer pavucontrol wireplumber \
fcitx5 fcitx5-gtk fcitx5-qt fcitx5-configtool wl-clip-persist \
brightnessctl playerctl pamixer wiremix wireplumber \
fcitx5 fcitx5-gtk fcitx5-qt wl-clip-persist \
nautilus sushi ffmpegthumbnailer \
slurp wl-screenrec satty \
mpv evince imv \
chromium

View File

@ -1,3 +1,5 @@
#!/bin/bash
yay -S --noconfirm --needed \
cargo clang llvm mise \
imagemagick \

View File

@ -1,4 +1,6 @@
yay -S --noconfirm --needed docker docker-compose
#!/bin/bash
yay -S --noconfirm --needed docker docker-compose docker-buildx
# Limit log size to avoid running out of disk
sudo mkdir -p /etc/docker
@ -9,3 +11,12 @@ sudo systemctl enable docker
# Give this user privileged Docker access
sudo usermod -aG docker ${USER}
# Prevent Docker from preventing boot for network-online.target
sudo mkdir -p /etc/systemd/system/docker.service.d
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
[Unit]
DefaultDependencies=no
EOF
sudo systemctl daemon-reload

26
install/firewall.sh Normal file
View File

@ -0,0 +1,26 @@
#!/bin/bash
if ! command -v ufw &>/dev/null; then
yay -Sy --noconfirm --needed ufw ufw-docker
# Allow nothing in, everything out
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Allow ports for LocalSend
sudo ufw allow 53317/udp
sudo ufw allow 53317/tcp
# Allow SSH in
sudo ufw allow 22/tcp
# Allow Docker containers to use DNS on host
sudo ufw allow in on docker0 to any port 53
# Turn on the firewall
sudo ufw enable
# Turn on Docker protections
sudo ufw-docker install
sudo ufw reload
fi

View File

@ -1,3 +1,5 @@
#!/bin/bash
if [[ ! -f /etc/modprobe.d/hid_apple.conf ]]; then
echo "options hid_apple fnmode=2" | sudo tee /etc/modprobe.d/hid_apple.conf

View File

@ -1,3 +1,5 @@
#!/bin/bash
if [ -z "$OMARCHY_BARE" ]; then
yay -Sy --noconfirm --needed ttf-font-awesome noto-fonts noto-fonts-emoji noto-fonts-cjk noto-fonts-extra
else

View File

@ -1,4 +1,6 @@
#!/bin/bash
yay -S --noconfirm --needed \
hyprland hyprshot hyprpicker hyprlock hypridle polkit-gnome hyprland-qtutils \
wofi waybar mako swaybg \
walker-bin libqalculate waybar mako swaybg \
xdg-desktop-portal-hyprland xdg-desktop-portal-gtk

View File

@ -1,4 +1,5 @@
#!/bin/bash
# Hyprland launched via UWSM and login directly as user, rely on disk encryption + hyprlock for security
yay -S --noconfirm --needed uwsm
@ -108,6 +109,16 @@ PAMName=login
WantedBy=graphical.target
EOF
# Make plymouth remain until graphical.target
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
[Unit]
After=multi-user.target
EOF
# Prevent plymouth-quit-wait.service
sudo systemctl mask plymouth-quit-wait.service
sudo systemctl daemon-reload
sudo systemctl enable omarchy-seamless-login.service

View File

@ -1,3 +1,5 @@
#!/bin/bash
update-desktop-database ~/.local/share/applications
# Open all images with imv

View File

@ -1,6 +1,8 @@
#!/bin/bash
# Install iwd explicitly if it wasn't included in archinstall
# This can happen if archinstall used ethernet
if ! command -v iwd &>/dev/null; then
if ! command -v iwctl &>/dev/null; then
yay -S --noconfirm --needed iwd
sudo systemctl enable --now iwd.service
fi

View File

@ -1,3 +1,5 @@
#!/bin/bash
# ==============================================================================
# Hyprland NVIDIA Setup Script for Arch Linux
# ==============================================================================

View File

@ -1,3 +1,5 @@
#!/bin/bash
if ! command -v nvim &>/dev/null; then
yay -S --noconfirm --needed nvim luarocks tree-sitter-cli

View File

@ -1,4 +1,4 @@
#!/usr/bin/env bash
#!/bin/bash
if ! command -v plymouth &>/dev/null; then
yay -S --noconfirm --needed plymouth

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Setting the performance profile can make a big difference. By default, most systems seem to start in balanced mode,
# even if they're not running off a battery. So let's make sure that's changed to performance.
yay -S --noconfirm power-profiles-daemon

View File

@ -1,2 +1,4 @@
#!/bin/bash
sudo pacman -S --noconfirm cups cups-pdf cups-filters system-config-printer
sudo systemctl enable --now cups.service

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Install Ruby using gcc-14 for compatibility
yay -S --noconfirm --needed gcc14
mise settings set ruby.ruby_build_opts "CC=gcc-14 CXX=g++-14"

View File

@ -1,3 +1,5 @@
#!/bin/bash
# Use dark mode for QT apps too (like kdenlive)
sudo pacman -S --noconfirm kvantum-qt5
@ -13,13 +15,13 @@ for f in ~/.local/share/omarchy/themes/*; do ln -s "$f" ~/.config/omarchy/themes
# Set initial theme
mkdir -p ~/.config/omarchy/current
ln -snf ~/.config/omarchy/themes/tokyo-night ~/.config/omarchy/current/theme
source ~/.local/share/omarchy/themes/tokyo-night/backgrounds.sh
ln -snf ~/.config/omarchy/backgrounds/tokyo-night ~/.config/omarchy/current/backgrounds
ln -snf ~/.config/omarchy/current/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
ln -snf ~/.config/omarchy/current/theme/backgrounds/1-Pawel-Czerwinski-Abstract-Purple-Blue.jpg ~/.config/omarchy/current/background
# Set specific app links for current theme
ln -snf ~/.config/omarchy/current/theme/neovim.lua ~/.config/nvim/lua/plugins/theme.lua
mkdir -p ~/.config/btop/themes
ln -snf ~/.config/omarchy/current/theme/btop.theme ~/.config/btop/themes/current.theme
mkdir -p ~/.config/mako
ln -snf ~/.config/omarchy/current/theme/mako.ini ~/.config/mako/config

View File

@ -1,3 +1,5 @@
#!/bin/bash
if [ -z "$OMARCHY_BARE" ]; then
source ~/.local/share/omarchy/default/bash/functions
web2app "HEY" https://app.hey.com https://www.hey.com/assets/images/general/hey.png

View File

@ -1,14 +1,22 @@
#!/bin/bash
if [ -z "$OMARCHY_BARE" ]; then
yay -S --noconfirm --needed \
gnome-calculator gnome-keyring signal-desktop \
obsidian-bin libreoffice obs-studio kdenlive \
pinta xournalpp localsend-bin
xournalpp localsend-bin
yay -S --noconfirm --needed typora ||
echo -e "\e[31mFailed to install Typora. Continuing without!\e[0m"
# Packages known to be flaky or having key signing issues are run one-by-one
for pkg in pinta typora spotify zoom; do
yay -S --noconfirm --needed "$pkg" ||
echo -e "\e[31mFailed to install $pkg. Continuing without!\e[0m"
done
yay -S --noconfirm --needed spotify dropbox-cli 1password-beta 1password-cli ||
echo -e "\e[31mFailed to install Spotify, Dropbox, and/or 1password because of a keyserver problem. Continuing without!\e[0m"
yay -S --noconfirm --needed dropbox libappindicator-gtk3 python-gpgme nautilus-dropbox ||
echo -e "\e[31mFailed to install Dropbox. Continuing without!\e[0m"
yay -S --noconfirm --needed 1password-beta 1password-cli ||
echo -e "\e[31mFailed to install 1password. Continuing without!\e[0m"
fi
# Copy over Omarchy applications

View File

@ -1,3 +1,6 @@
echo "Fixing persistent workspaces in waybar config"
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill -SIGUSR2 waybar
if [[ -f ~/.config/waybar/config ]]; then
sed -i 's/"persistent_workspaces":/"persistent-workspaces":/' ~/.config/waybar/config
pkill -SIGUSR2 waybar
fi

View File

@ -1,2 +1,5 @@
echo "Installing missing fd terminal tool for finding files"
yay -S --noconfirm --needed fd
if ! command -v fd &>/dev/null; then
yay -S --noconfirm --needed fd
fi

View File

@ -1,2 +1,5 @@
echo "Add LocalSend as new default application"
yay -S --noconfirm --needed localsend-bin
if ! command -v localsend &>/dev/null; then
yay -S --noconfirm --needed localsend-bin
fi

View File

@ -1,2 +1,5 @@
echo "Install ffmpegthumbnailer for video thumbnails in the file manager"
yay -S --noconfirm --needed ffmpegthumbnailer
if ! command -v ffmpegthumbnailer &>/dev/null; then
yay -S --noconfirm --needed ffmpegthumbnailer
fi

View File

@ -1,2 +1,5 @@
echo "Install bash-completion"
yay -S --noconfirm --needed bash-completion
if ! pacman -Q bash-completion &>/dev/null; then
yay -S --noconfirm --needed bash-completion
fi

View File

@ -1,2 +1,5 @@
echo "Adding gnome-keyring to make 1password work with 2FA codes"
yay -S --noconfirm --needed gnome-keyring
if ! command -v gnome-keyring &>/dev/null; then
yay -S --noconfirm --needed gnome-keyring
fi

View File

@ -1,18 +1,19 @@
echo "Update to use UWSM and seamless login"
sudo rm /etc/systemd/system/getty@tty1.service.d/override.conf
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
if ! command -v uwsm &>/dev/null; then
sudo rm -f /etc/systemd/system/getty@tty1.service.d/override.conf
sudo rmdir /etc/systemd/system/getty@tty1.service.d/ 2>/dev/null || true
if [ -f "$HOME/.bash_profile" ]; then
if [ -f "$HOME/.bash_profile" ]; then
# Remove the specific line
sed -i '/^\[\[ -z \$DISPLAY && \$(tty) == \/dev\/tty1 \]\] && exec Hyprland$/d' "$HOME/.bash_profile"
echo "Cleaned up .bash_profile"
fi
fi
if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
if [ -f "$HOME/.config/environment.d/fcitx.conf" ]; then
echo "Removing GTK_IM_MODULE from fcitx config for Wayland..."
sed -i 's/^GTK_IM_MODULE=fcitx$//' "$HOME/.config/environment.d/fcitx.conf"
fi
omarchy-refresh-plymouth -y
source ~/.local/share/omarchy/install/login.sh
fi
omarchy-refresh-plymouth -y
source ~/.local/share/omarchy/install/login.sh

View File

@ -1,7 +1,10 @@
echo "Add override to only require one network interface to be online"
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
if [[ ! -f /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf ]]; then
sudo mkdir -p /etc/systemd/system/systemd-networkd-wait-online.service.d
sudo tee /etc/systemd/system/systemd-networkd-wait-online.service.d/wait-for-only-one-interface.conf >/dev/null <<EOF
[Service]
ExecStart=
ExecStart=/usr/lib/systemd/systemd-networkd-wait-online --any
EOF
fi

View File

@ -1,6 +1,9 @@
echo "Setting up GPG configuration with multiple keyservers for better reliability"
sudo mkdir -p /etc/gnupg
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
if [[ ! -f /etc/gnupg/dirmngr.conf ]]; then
sudo mkdir -p /etc/gnupg
sudo cp ~/.local/share/omarchy/default/gpg/dirmngr.conf /etc/gnupg/
sudo chmod 644 /etc/gnupg/dirmngr.conf
sudo gpgconf --kill dirmngr || true
sudo gpgconf --launch dirmngr || true
fi

View File

@ -1,6 +0,0 @@
echo "Make wofi stylesheet user editable"
if [[ -L "$HOME/.config/wofi/style.css" ]]; then
rm "$HOME/.config/wofi/style.css"
cp ~/.local/share/omarchy/config/wofi/style.css ~/.config/wofi/
cp ~/.local/share/omarchy/config/wofi/search.css ~/.config/wofi/
fi

View File

@ -1,13 +1,5 @@
echo "Add new matte black theme"
BACKGROUNDS_DIR=~/.config/omarchy/backgrounds/
download_background_image() {
local url="$1"
local path="$2"
gum spin --title "Downloading $url as $path..." -- curl -sL -o "$BACKGROUNDS_DIR/$path" "$url"
}
if [[ ! -L "~/.config/omarchy/themes/matte-black" ]]; then
ln -snf ~/.local/share/omarchy/themes/matte-black ~/.config/omarchy/themes/
source ~/.local/share/omarchy/themes/matte-black/backgrounds.sh
fi

View File

@ -1,2 +0,0 @@
echo "Make all wofi stylesheets user editable"
omarchy-refresh-wofi -y

View File

@ -1,2 +0,0 @@
echo "Use latest Omarchy Waybar configuration"
omarchy-refresh-waybar

5
migrations/1752678932.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Install missing docker-buildx package for out-of-the-box Kamal compatibility"
if ! docker buildx version &>/dev/null; then
yay -S --noconfirm --needed docker-buildx
fi

2
migrations/1752709610.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Enable ufw firewall"
source ~/.local/share/omarchy/install/firewall.sh

15
migrations/1752725616.sh Normal file
View File

@ -0,0 +1,15 @@
echo "Make light themes possible"
if [[ -f ~/.local/share/applications/blueberry.desktop ]]; then
rm -f ~/.local/share/applications/blueberry.desktop
rm -f ~/.local/share/applications/org.pulseaudio.pavucontrol.desktop
update-desktop-database ~/.local/share/applications/
gsettings set org.gnome.desktop.interface color-scheme "prefer-dark"
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
omarchy-refresh-waybar
fi
if [[ ! -L "~/.config/omarchy/themes/rose-pine" ]]; then
ln -snf ~/.local/share/omarchy/themes/rose-pine ~/.config/omarchy/themes/
fi

4
migrations/1752793122.sh Normal file
View File

@ -0,0 +1,4 @@
echo "Rename waybar config file for syntax highlighting"
if [[ -f ~/.config/waybar/config ]]; then
mv ~/.config/waybar/config ~/.config/waybar/config.jsonc
fi

17
migrations/1752797704.sh Normal file
View File

@ -0,0 +1,17 @@
echo "Prevent docker from requiring network readiness on boot"
if [[ ! -f /etc/systemd/system/docker.service.d/no-block-boot.conf ]]; then
sudo mkdir -p /etc/systemd/system/docker.service.d/
sudo tee /etc/systemd/system/docker.service.d/no-block-boot.conf <<'EOF'
[Unit]
DefaultDependencies=no
EOF
sudo mkdir -p /etc/systemd/system/plymouth-quit.service.d/
sudo tee /etc/systemd/system/plymouth-quit.service.d/wait-for-graphical.conf <<'EOF'
[Unit]
After=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl mask plymouth-quit-wait.service
fi

4
migrations/1752874371.sh Normal file
View File

@ -0,0 +1,4 @@
echo "Add Catppuccin Latte light theme"
if [[ ! -L "~/.config/omarchy/themes/catppuccin-latte" ]]; then
ln -snf ~/.local/share/omarchy/themes/catppuccin-latte ~/.config/omarchy/themes/
fi

5
migrations/1752885858.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Install slurp + wl-screenrec for new ALT+PrintScreen screen recorder"
if ! command -v wl-screenrec &>/dev/null || ! command -v slurp &>/dev/null; then
yay -S --noconfirm --needed slurp wl-screenrec
fi

9
migrations/1752896442.sh Normal file
View File

@ -0,0 +1,9 @@
echo "Replace volume control GUI with a TUI"
if ! command -v wiremix &>/dev/null; then
yay -S --noconfirm --needed wiremix
yay -Rns --noconfirm pavucontrol
omarchy-refresh-applications
omarchy-refresh-waybar
fi

4
migrations/1752897642.sh Normal file
View File

@ -0,0 +1,4 @@
echo "Remove needless fcitx5-configtool package"
if yay -Qe fcitx5-configtool &>/dev/null; then
yay -Rns --noconfirm fcitx5-configtool
fi

2
migrations/1752899588.sh Normal file
View File

@ -0,0 +1,2 @@
echo "Update .config/hypr/hyprlock.conf to include failed attempt counter"
omarchy-refresh-hyprlock

5
migrations/1752955912.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Install satty for the new screenshot flow"
if ! command -v satty &>/dev/null; then
yay -S --noconfirm --needed satty
fi

5
migrations/1752981882.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Add missing libappindicator-gtk3 for Dropbox icon tray to work right"
if ! pacman -Q libappindicator-gtk3 &>/dev/null; then
yay -S --noconfirm --needed libappindicator-gtk3
fi

11
migrations/1752981883.sh Normal file
View File

@ -0,0 +1,11 @@
echo "Replace wofi with walker as the default launcher"
if ! command -v walker &>/dev/null; then
yay -Sy --noconfirm --needed walker-bin libqalculate
yay -Rns --noconfirm wofi
rm -rf ~/.config/wofi
mkdir -p ~/.config/walker
cp -r ~/.local/share/omarchy/config/walker/* ~/.config/walker/
fi

5
migrations/1752983008.sh Normal file
View File

@ -0,0 +1,5 @@
echo "Add missing installation of Zoom"
if ! command -v zoom &>/dev/null; then
yay -S --noconfirm --needed zoom
fi

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