Compare commits

...

633 Commits

Author SHA1 Message Date
David Heinemeier Hansson
79bdb151d1 Merge pull request #661 from basecamp/dev
Omarchy v1.13.0
2025-08-11 18:28:57 +02:00
David Heinemeier Hansson
4be9053d68 Merge branch 'master' into dev 2025-08-11 18:28:03 +02:00
David Heinemeier Hansson
b933f1f4cd Autolaunch not working for Helix 2025-08-11 18:12:56 +02:00
David Heinemeier Hansson
cd8a6bb29a Fix app launch name for cursor 2025-08-11 18:07:42 +02:00
David Heinemeier Hansson
6f6c50c573 Fix icon for PHP vanilla install 2025-08-11 18:04:23 +02:00
David Heinemeier Hansson
6dd7829886 Still need success on exit 2025-08-11 17:52:01 +02:00
David Heinemeier Hansson
26e3cc0b8c Make the guard step by step 2025-08-11 17:49:21 +02:00
David Heinemeier Hansson
16c671adf0 Be explicit about success and skip all guards once user said proceed anyway 2025-08-11 17:29:18 +02:00
David Heinemeier Hansson
46fbe16dd4 Old habit 2025-08-11 17:25:10 +02:00
David Heinemeier Hansson
08982922eb Remove needless comment 2025-08-11 17:17:46 +02:00
David Heinemeier Hansson
31ab6b4952 Protect against running on something other than x86_64 too
Co-authored-by: @daltonbr
Closes #628
2025-08-11 17:15:38 +02:00
RaphaelKimmig
76c7956d15 fix: lock 1password right away, not after unlock (#644) 2025-08-11 17:10:52 +02:00
Alexandre Perreault
e6a253efaa Add noscreenshare windowrule to 1password to block accidental leaks (#663) 2025-08-11 17:09:02 +02:00
David Heinemeier Hansson
389f02e6ed No longer need to manually set $OMARCHY_PATH 2025-08-11 17:07:42 +02:00
Shigeto Kumagai
ccbe7c817b Omarchy-version command (#565)
* omarchy-version alias

* instead of alias, created command omarchy-version

* remove previously added alias, use omarchy-version command, instead

* set OMARCHY_PATH in the script

* updated OMARCHY_PATH
2025-08-11 17:07:17 +02:00
David Heinemeier Hansson
1dc3330480 And and 2025-08-11 17:06:20 +02:00
David Heinemeier Hansson
bc6fa48155 Allow a user to continue installing on their own accord and add check for root 2025-08-11 17:05:31 +02:00
David Heinemeier Hansson
06103d4258 Omarchy is exclusively for vanilla Arch without Gnome or KDE installed (#524) 2025-08-11 17:00:19 +02:00
David Heinemeier Hansson
e0edb8c660 Restart Waybar so update-available icon does not hang around
Co-authored-by: @LeonardoTrapani
Closes #541
2025-08-11 16:58:01 +02:00
David Heinemeier Hansson
30e7a323b8 Fix rm of protected file 2025-08-11 16:44:58 +02:00
Ryan Hughes
1c5a17f852 Disable systemd-networkd-wait-online (#645) 2025-08-11 16:43:38 +02:00
Ryan Hughes
c8e848530a Add mise to UWSM path (#654) 2025-08-11 16:40:08 +02:00
David Heinemeier Hansson
b6a1d7643d Add migration for replacing missing icon for Audio Settings 2025-08-11 16:35:09 +02:00
David Heinemeier Hansson
854a9e6427 Replace missing icon for wiremix 2025-08-11 16:33:25 +02:00
David Heinemeier Hansson
6c4571f2ca Have to touch manually since we are relaunching from migration directly 2025-08-11 16:07:51 +02:00
David Heinemeier Hansson
7a1976a659 Improve description. 2025-08-11 16:06:10 +02:00
David Heinemeier Hansson
99d3cc113e We unfortunately need to run the relaunch immediately 2025-08-11 16:04:26 +02:00
David Heinemeier Hansson
c5a91b1e0f Need to export OMARCHY_PATH too 2025-08-11 15:57:25 +02:00
David Heinemeier Hansson
6a26a37c48 Need to export first! 2025-08-11 15:56:30 +02:00
David Heinemeier Hansson
03a4223be9 Need to have the PATH change run as the first migration or all others will fail
It needs to include omarchy/bin by default too
2025-08-11 15:52:28 +02:00
David Heinemeier Hansson
d12b194227 Add migration to tweak the tooltip for the Omarchy Menu 2025-08-11 15:35:59 +02:00
David Heinemeier Hansson
ddf9498f0a Improve tooltip for Omarchy menu 2025-08-11 15:30:57 +02:00
David Heinemeier Hansson
ba40f6349e Set the path so we can always rely on it during install 2025-08-11 15:06:39 +02:00
David Heinemeier Hansson
0fd360e94f Group confs and runtimes together 2025-08-11 13:21:46 +02:00
David Heinemeier Hansson
199a9c805d Fix menus popping 2025-08-11 12:32:09 +02:00
David Heinemeier Hansson
34ccff4cf6 Better fit of windows 2025-08-11 12:30:02 +02:00
David Heinemeier Hansson
0aedef58c9 Ensure this isn't closed with the installing terminal 2025-08-11 12:26:30 +02:00
David Heinemeier Hansson
f67cb1dbff Reduce risk of wrapping logo 2025-08-11 12:17:28 +02:00
David Heinemeier Hansson
c61ef71653 Add dedicated Install > Gaming menu for Steam, RetroArch, and Minecraft 2025-08-11 12:13:57 +02:00
Brosseau Valentin
5be5dede6b Fix missing defaults PHP extensions to create Laravel Project (#630)
* Fix missing default PHP extensions to create laravel Project

* iconv is required for Symfony project

* Add PHP only installation

* Add PHP only option in the menu
2025-08-10 22:12:21 +02:00
David Heinemeier Hansson
7d3d7e264b Split out PHP into its own menu 2025-08-10 21:03:08 +02:00
David Heinemeier Hansson
7929988901 Slim down the verbiage 2025-08-10 21:02:57 +02:00
David Heinemeier Hansson
cb6134076f Style 2025-08-10 21:02:44 +02:00
David Heinemeier Hansson
0a3916011c Brand name is .NET 2025-08-10 20:46:00 +02:00
Brosseau Valentin
4b6e8962ca Better PHP dev-env init (#624)
* Extract logic to avoid adding composer in the path multiple times and add Symfony

* Add missing usage

* Use the official script to install Symfony installer

* Use AUR package

* Move PHP and Composer install in function to avoid duplication.

* Add explicit usage for symfony-cli

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-10 20:45:47 +02:00
David Heinemeier Hansson
1d2fe96916 Missing ;; 2025-08-10 20:41:13 +02:00
David Heinemeier Hansson
36013ec2d9 Add Zig and Dotnet 2025-08-10 20:40:24 +02:00
MACHO MAN
1104951d7a Update omarchy-install-dev-env with Zig (#595)
Added Zig because it uses "mise use" install so very easy to add-in

My first ever commit woohoo!

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-10 20:37:24 +02:00
David Heinemeier Hansson
eb604e3e54 Breakout JavaScript options into their own submenu 2025-08-10 20:35:49 +02:00
David Heinemeier Hansson
5049640cfe Style 2025-08-10 20:35:31 +02:00
David Heinemeier Hansson
ab43b036a1 Add Deno 2025-08-10 20:35:23 +02:00
David Heinemeier Hansson
86c967352b Rely on Omarchy bin being part of PATH everywhere 2025-08-10 20:30:39 +02:00
David Heinemeier Hansson
7e28038687 Now being set system wide 2025-08-10 20:25:28 +02:00
David Heinemeier Hansson
d9d847fd71 Break-out omarchy-update so we can update each step independently and have changes apply to the active update 2025-08-10 20:23:29 +02:00
David Heinemeier Hansson
a23a48594f Set OMARCHY_PATH systemwide as well 2025-08-10 20:23:02 +02:00
David Heinemeier Hansson
a5dacd5c1d We need relaunches or reboots 2025-08-10 20:14:41 +02:00
David Heinemeier Hansson
8d20626534 Better spacing 2025-08-10 20:12:20 +02:00
David Heinemeier Hansson
72a1d81d20 Validate preconditions together 2025-08-10 20:12:16 +02:00
David Heinemeier Hansson
610ec4a398 Fix indentation 2025-08-10 20:09:03 +02:00
David Heinemeier Hansson
7e4da388bf Be brief (then message will also fit in the window!) 2025-08-10 20:04:22 +02:00
Ryan Hughes
b2eb1b08a4 Add ~/.local/share/omarchy/bin to systemwide PATH (#602)
* Add omarchy to system path

* Remove unnecessary duplicate

* Remove path def since it's global now

* Migration for system-wide path

* Remove debug code

* Refresh after update

* Add common state script

* Restart on state detected

* Set state instead

* Export own path for menu
2025-08-10 19:58:44 +02:00
Ryan Hughes
94aa9b688f Reduce Walker config to overrides + adhere to system font (#620)
* Reduce to only have overrides

* Change font to pick up system font

* Add migration

* Add walker restart to pick up new font
2025-08-10 18:40:31 +02:00
David Heinemeier Hansson
dfe7ea24b3 Flip order of includes around so user settings take precedence over Omarchy defaults
Closes #588
2025-08-10 15:30:13 +02:00
devmobasa
41ba61b760 Add .NET installation option to the development environment script (#615)
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-10 15:30:03 +02:00
Shigeto Kumagai
4fb0d59a82 About.desktop fixed font size (#566)
* instead of alias, created command omarchy-version

* Revert "instead of alias, created command omarchy-version"

This reverts commit 87e45db6d5.

wrong commit to dev

* Fix font size of About so it will stay in similar size
2025-08-10 15:25:02 +02:00
David Heinemeier Hansson
4c4792f36f Suggest something that doesn't conflict with the Omarchy Menu launching 2025-08-10 15:18:57 +02:00
Brosseau Valentin
e8d98c6418 Use system wide package manager to install a package and install Laravel for the current user. (#618) 2025-08-10 14:17:47 +02:00
David Heinemeier Hansson
af00a902cd Add extra Osaka Jade background image 2025-08-10 13:53:09 +02:00
Justin Lowry
38bf472dbd add new Osaka Jade background (#589)
Co-authored-by: Justin Lowry <j.lowry@hey.com>
2025-08-10 13:51:47 +02:00
David Heinemeier Hansson
d23ce0f914 Add Ocaml option to install dev menu 2025-08-10 13:42:51 +02:00
Florian Hammerschmidt
b40a5a9a9f Add OCaml (#598)
* Add OCaml

Add OCaml according to https://ocaml.org/install#linux_mac_bsd

I included also the development environment (LSP and some tools) as I figured this would be actually omakase but I can also remove it if we want to keep it clean.

* small fix
2025-08-10 13:41:06 +02:00
David Heinemeier Hansson
4237807bc1 Fix spelling and description 2025-08-10 10:17:22 +02:00
Florian Beer
4df374205f Add Laravel (#594) 2025-08-09 22:48:57 +02:00
David Heinemeier Hansson
2e6e1c5bca Add Rust and Java options too 2025-08-09 22:40:55 +02:00
David Heinemeier Hansson
616381833c Add Bun as an option too 2025-08-09 22:34:57 +02:00
David Heinemeier Hansson
06345c7e25 Add Install > Development for setting up Rails and other mise options 2025-08-09 22:27:47 +02:00
David Heinemeier Hansson
1484cbb7d7 Add Install > Service menu with Tailscale added 2025-08-09 21:30:26 +02:00
David Heinemeier Hansson
528ab6bfd7 Add Helix as an editor option 2025-08-09 21:15:58 +02:00
David Heinemeier Hansson
6015b9c6ef Add Discord as a default webapp
Co-authored-by: @robzolkos
Closes #567
2025-08-09 19:42:33 +02:00
Maximiliano Guzenski
f6d5df5a89 Package manager usability improvements (#569)
* better pkg manager with shotcuts

* removed ctrl-d, it conflict with terminal

* reveal keybinds to user

* We don't need yayf any more now we have full integration in Omarchy menu

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-09 19:34:01 +02:00
David Heinemeier Hansson
f06dd90429 Add Sublime Text as an Editor option
For @rosapolis and @jasonfried!
2025-08-09 18:02:36 +02:00
David Heinemeier Hansson
f63e777c9a Use tag picker for file picker apps
And include sublime_text, since it doesn't use xdg-desktop-portal-gtk
2025-08-09 17:56:57 +02:00
David Heinemeier Hansson
0b31f3139f Fix selection 2025-08-09 17:47:18 +02:00
David Heinemeier Hansson
90ba44f725 Fix opencode spelling to match proper branding
Sorry @thdxr!
2025-08-08 23:04:45 +02:00
David Heinemeier Hansson
abc0005893 Merge branch 'master' into dev 2025-08-08 21:12:20 +02:00
RaphaelKimmig
ba0666999e Lock 1password on screen lock (#564)
* feat: lock 1password on screen lock

* chore: add migration for omarchy-lock-screen
2025-08-08 21:11:35 +02:00
David Heinemeier Hansson
c07c5652cb Don't let chromium save dialogue get too big 2025-08-08 20:18:05 +02:00
David Heinemeier Hansson
9d561fe34d Use a headline to explain what is already up to date 2025-08-08 18:07:22 +02:00
David Heinemeier Hansson
4ab3ff8349 Set default DNS to Cloudflare (backup to Google) and tune MTU probing for more reliable SSH 2025-08-08 18:05:10 +02:00
David Heinemeier Hansson
9ae0af7b21 Solve common flakiness with SSH 2025-08-08 18:03:19 +02:00
David Heinemeier Hansson
61032ba4d0 Set Cloudflare as the default DNS with Google as backup
Solves a bunch of problems with shitty local DNS
2025-08-08 18:00:30 +02:00
David Heinemeier Hansson
32e091d2e5 Add a tooltip to the waybar update available block 2025-08-08 17:51:19 +02:00
David Heinemeier Hansson
4d94f02584 Merge pull request #559 from basecamp/dev
Omarchy 1.12.1
2025-08-08 17:35:06 +02:00
David Heinemeier Hansson
f23e844340 Waybar actually autodetects css changes 2025-08-08 17:34:03 +02:00
David Heinemeier Hansson
e567e9ee8a A bit more space 2025-08-08 17:31:28 +02:00
David Heinemeier Hansson
b0f48ca585 Update OS icon in About from Windows to Arch 2025-08-08 17:30:57 +02:00
David Heinemeier Hansson
375210f5c8 Give About more room to breathe 2025-08-08 17:27:48 +02:00
David Heinemeier Hansson
0c1419b725 This ain't windows, bro! 2025-08-08 17:13:39 +02:00
David Heinemeier Hansson
5624fc7e5e Highlight current font as well 2025-08-08 17:02:00 +02:00
David Heinemeier Hansson
eb589b012e Move together to other #item defintion 2025-08-08 17:01:51 +02:00
David Heinemeier Hansson
1b485efcf5 Highlight the current power profile too 2025-08-08 16:54:06 +02:00
David Heinemeier Hansson
c97de217b3 Use walker to highlight current selection 2025-08-08 15:56:16 +02:00
David Heinemeier Hansson
3566ecfc89 Merge pull request #561 from catlee/patch-1
Fix git usage in migration script
2025-08-08 15:36:00 +02:00
David Heinemeier Hansson
27607c1573 Use existing reloader 2025-08-08 15:28:56 +02:00
David Heinemeier Hansson
aa3195385d Correct plurality 2025-08-08 15:15:01 +02:00
David Heinemeier Hansson
3db8028315 Correct spelling 2025-08-08 15:13:46 +02:00
David Heinemeier Hansson
f4ff108038 Two more commands for presentation 2025-08-08 15:12:26 +02:00
David Heinemeier Hansson
f33d004bc9 More commands that should not present themselves 2025-08-08 15:10:51 +02:00
David Heinemeier Hansson
4f1a87c7e3 Add update/restart process menu 2025-08-08 15:08:42 +02:00
David Heinemeier Hansson
567b05c489 Use present_terminal in omarchy-menu to do fancy command presentation
Then the individual commands can be clean
2025-08-08 15:08:27 +02:00
David Heinemeier Hansson
3d489382e4 No need to clear and wait for key to remove instead of just doing it after 2 seconds 2025-08-08 15:05:38 +02:00
David Heinemeier Hansson
485805fab3 Try ignoring diff return value instead 2025-08-08 14:42:44 +02:00
David Heinemeier Hansson
cbb9cc22e5 Try to run this in a subshell instead 2025-08-08 14:39:56 +02:00
Chris AtLee
c7e5428df9 Fix git usage in migration script
A user may not have `co` aliased to `checkout` and then will have errors running the migration script.
2025-08-08 08:35:32 -04:00
David Heinemeier Hansson
67e0b6a4e0 Ensure this completes 2025-08-08 13:36:07 +02:00
David Heinemeier Hansson
631c2071b7 Migration to fix expand icon margin 2025-08-08 13:35:01 +02:00
David Heinemeier Hansson
a49bd12f44 Also just use the normal CaskaydiaMono Nerd Font
Then we are compatible with the new font switcher
2025-08-08 13:34:50 +02:00
David Heinemeier Hansson
4ab46ef687 Fix tray margin to match the others 2025-08-08 13:32:40 +02:00
David Heinemeier Hansson
9dc12c1d3e Fix missing comma for windowrule 2025-08-08 13:20:08 +02:00
David Heinemeier Hansson
af84d085f0 Rename omarchy-setup-* scripts that should have been omarchy-install-* 2025-08-08 13:04:58 +02:00
David Heinemeier Hansson
1cd6feed43 Add Install > AI and breakout Install > Style 2025-08-08 13:03:22 +02:00
David Heinemeier Hansson
39f8add864 Extract helper 2025-08-08 12:46:51 +02:00
David Heinemeier Hansson
fe92a78f21 Use full path for omarchy-update on waybar icon 2025-08-07 16:26:32 +02:00
David Heinemeier Hansson
6c75e705e8 Ensure Osaka Theme is checked out
To deal with the past bad migration
2025-08-07 14:10:12 +02:00
David Heinemeier Hansson
7bb9214c66 Fix the osaka jade theme migration 2025-08-07 13:58:48 +02:00
David Heinemeier Hansson
7eb661c9c8 Fix transcode-png2jpg 2025-08-07 13:38:01 +02:00
David Heinemeier Hansson
666dbd8f39 Merge pull request #528 from basecamp/dev
Omarchy 1.12.0
2025-08-07 13:12:01 +02:00
Johan Gyllenspetz
308033bd10 Allow selecting themes for deletion (#533)
Co-authored-by: Johan Gyllenspetz <gyllen@hey.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-07 13:05:18 +02:00
David Heinemeier Hansson
4a468041cb Fix comments and description 2025-08-07 13:03:50 +02:00
David Heinemeier Hansson
97e3902455 Merge branch 'master' into dev 2025-08-07 13:02:22 +02:00
David Heinemeier Hansson
b75065c4cf Ensure we are running the latest Walker and that its been restarted 2025-08-06 23:28:50 +02:00
David Heinemeier Hansson
8c8cf7aadb Add migration to fix that broken multicastdns issue for printer setups 2025-08-06 23:21:29 +02:00
David Heinemeier Hansson
722fa73bc8 No need to carry this 2025-08-06 23:16:12 +02:00
Manuel
6b8917450f Make Screensaver Background Color Black (#526)
* add sceensaver alacritty config file and changed screensaver cmd

* Move the screensaver config into defaults

Since its not meant to be user edited

---------

Co-authored-by: Manu <manuel.ramsaier@gmail.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-06 22:53:15 +02:00
David Heinemeier Hansson
26b09bb218 It is monospace 2025-08-06 22:02:46 +02:00
David Heinemeier Hansson
46d58ff0df Have Style > Font also set for Waybar, SwayOSD, and fontconfig 2025-08-06 22:01:23 +02:00
David Heinemeier Hansson
08bc9fcaea Better wording 2025-08-06 21:40:22 +02:00
David Heinemeier Hansson
81df3ce171 Add basic power profiles setup menu
Still need to be able to reveal which is the current profile
2025-08-06 21:36:07 +02:00
Glenn Oppegard
0fcda80630 Fix disabling of resolved Multicast DNS (#521) 2025-08-06 21:01:22 +02:00
Emmanuel Pastor
6348a0ad08 Fix wrong workspace numbers in description (#522) 2025-08-06 21:00:37 +02:00
David Heinemeier Hansson
43a31a10d0 Font menu needs to be wider 2025-08-06 20:28:48 +02:00
David Heinemeier Hansson
2737a76a85 Give the font cache 2 seconds to update before setting the font 2025-08-06 20:28:41 +02:00
David Heinemeier Hansson
ff0aedd0eb Add font installer menu with typical programmer fonts 2025-08-06 16:01:04 +02:00
David Heinemeier Hansson
bade5b0d34 Pull the font-menu into omarchy-menu 2025-08-06 15:50:51 +02:00
David Heinemeier Hansson
58fbda80ef Only attempt operation if a package name is selected 2025-08-06 15:19:53 +02:00
David Heinemeier Hansson
e3a3b98e0a Add dedicated section for installing popular programming editors 2025-08-06 14:59:07 +02:00
adcv
8002586392 small fix for theme-remove menu selection items (#505) 2025-08-06 13:49:46 +02:00
David Heinemeier Hansson
180dc7c9b5 Merge branch 'master' into dev 2025-08-06 13:44:34 +02:00
David Heinemeier Hansson
88969588c4 Add Osaka Jade as default theme 2025-08-06 13:44:21 +02:00
Justin Lowry
8281533b54 Add Osaka Jade theme to default theme set. (#514)
* Add Osaka Jade Theme

* Use jpg for bg for lower size with no quality difference

---------

Co-authored-by: Justin Lowry <j.lowry@hey.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-06 13:42:48 +02:00
David Heinemeier Hansson
d72f716c83 Add transcode functions 2025-08-06 13:34:19 +02:00
Justin Lowry
1d29c32fe5 Add Osaka Jade theme to default theme set. (#514)
* Add Osaka Jade Theme

* Use jpg for bg for lower size with no quality difference

---------

Co-authored-by: Justin Lowry <j.lowry@hey.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-06 13:28:08 +02:00
David Heinemeier Hansson
41249a271a Fit within the logo width 2025-08-06 08:44:53 +02:00
David Heinemeier Hansson
5ff0e82621 Do updatedb after installing a new package
So you can always find what's been installed via locate
2025-08-05 18:16:36 +02:00
David Heinemeier Hansson
1746c7556c Merge pull request #500 from basecamp/dev
Omarchy v1.11.0
2025-08-05 17:23:23 +02:00
David Heinemeier Hansson
a7798a57bc Make updating checking resilient against network being unavailable 2025-08-05 17:13:37 +02:00
David Heinemeier Hansson
9292c29640 Ensure we continue 2025-08-05 16:41:33 +02:00
David Heinemeier Hansson
db441e8813 Try to run this in a subshell to prevent the exit 2025-08-05 16:37:57 +02:00
David Heinemeier Hansson
137c24454f Ensure they can all run from Walker
Which does not have the bash-powered PATH
2025-08-05 16:35:28 +02:00
David Heinemeier Hansson
b6325ea810 No longer used 2025-08-05 16:30:34 +02:00
David Heinemeier Hansson
fc11ce61cc Add figma as a default web app 2025-08-05 16:28:58 +02:00
David Heinemeier Hansson
d9efaac906 Start hyprsunset on demand instead of needing it to run constantly 2025-08-05 16:25:08 +02:00
David Heinemeier Hansson
881af9b7d6 No longer need the functions 2025-08-05 15:58:53 +02:00
David Heinemeier Hansson
581937a204 Need the full path 2025-08-05 15:58:39 +02:00
David Heinemeier Hansson
d676f1a16f Link to the extra themes index 2025-08-05 15:44:58 +02:00
David Heinemeier Hansson
b4e9465970 Use the new omarchy-webapp-install command 2025-08-05 15:34:45 +02:00
David Heinemeier Hansson
bd26465912 Give you an easy way to install a new background image 2025-08-05 15:23:02 +02:00
David Heinemeier Hansson
1a4b2d9420 Somehow lost the bindd versions 2025-08-05 15:11:04 +02:00
David Heinemeier Hansson
59b1d690d0 We now have this in the About screen 2025-08-05 14:19:58 +02:00
David Heinemeier Hansson
1c4c42bf76 Make menu disappear after changing theme 2025-08-05 14:10:58 +02:00
David Heinemeier Hansson
8c46ff9303 Help people realize what they're editing 2025-08-05 13:55:10 +02:00
David Heinemeier Hansson
6d7cbf0d05 Setup configs menu with auto-restart 2025-08-05 13:54:17 +02:00
David Heinemeier Hansson
14d652b63d Use max volume 100 as default 2025-08-05 13:45:49 +02:00
David Heinemeier Hansson
e0e21b37d7 Don't like the SwayOSD overlay when max volume is above 100% 2025-08-05 13:45:37 +02:00
David Heinemeier Hansson
67d830cc39 Extract helper for nvim editing 2025-08-05 12:46:12 +02:00
David Heinemeier Hansson
a4bed3029e Offer to setup bindings and input if those files are split out 2025-08-05 12:40:59 +02:00
David Heinemeier Hansson
7e1ca837b8 Offer to reorganize hyprland.conf as is done in the new config 2025-08-05 12:35:06 +02:00
David Heinemeier Hansson
2c73e48172 Split up the default .config/hypr/hyprland.conf to be easier to tailor with less risk of overwritting 2025-08-05 12:17:37 +02:00
David Heinemeier Hansson
206dc44649 Correct use from cli 2025-08-05 12:08:30 +02:00
David Heinemeier Hansson
58bdc4c307 Avoid duplication 2025-08-05 12:02:38 +02:00
David Heinemeier Hansson
7e2676d565 Add neovim to learning
But would be nice with a better tutorial for newcomers
2025-08-05 11:53:45 +02:00
David Heinemeier Hansson
9bd2d6e0c1 Add monitor and hyprland config links too 2025-08-05 11:51:16 +02:00
David Heinemeier Hansson
678882810e Moved web app functions to full omarchy TUI commands 2025-08-05 11:40:35 +02:00
David Heinemeier Hansson
08ed9a5dff Add web app management to Omarchy menu 2025-08-05 11:39:57 +02:00
David Heinemeier Hansson
59fefd34b1 Match the other installer/removers 2025-08-05 11:39:46 +02:00
David Heinemeier Hansson
e31745e67d Don't leave lingering logo around 2025-08-05 11:36:33 +02:00
David Heinemeier Hansson
ae0e711e39 Give a hint for the hotkey 2025-08-05 10:50:13 +02:00
David Heinemeier Hansson
494c140859 Audio more common 2025-08-05 10:47:37 +02:00
David Heinemeier Hansson
d1b09e27a0 Add remove menu and tune up theme-remove script 2025-08-05 10:30:44 +02:00
David Heinemeier Hansson
2cd841a687 Explain what we are doing before asking for sudo 2025-08-05 09:42:25 +02:00
David Heinemeier Hansson
a75c9ef072 Add updating configs from defaults 2025-08-05 09:37:23 +02:00
David Heinemeier Hansson
8dc198c57f Use full path so they can safely be run from Walker menu 2025-08-05 09:32:35 +02:00
David Heinemeier Hansson
3a06b639c3 Add Bash learnings too 2025-08-05 09:18:51 +02:00
David Heinemeier Hansson
ea31b4a090 Add Arch wiki to learning list 2025-08-05 09:16:01 +02:00
David Heinemeier Hansson
ea0da160b8 Merge pull request #494 from DavidHoenisch/master
improved error handling in fido2 setup
2025-08-05 08:34:27 +02:00
DavidHoenisch
1b17a049ff improved error handling to exist on mistyped pin instead of failing silently 2025-08-04 22:03:42 -07:00
David Heinemeier Hansson
8170cb9ed4 Unified done showing and command style 2025-08-04 20:51:43 +02:00
David Heinemeier Hansson
82bcee5624 Fix grep 2025-08-04 20:42:20 +02:00
David Heinemeier Hansson
a8a8b017d6 Allow menu to install third party themes 2025-08-04 20:40:52 +02:00
David Heinemeier Hansson
e875a5d344 Old Omarchy TUI is gone! 2025-08-04 20:40:41 +02:00
David Heinemeier Hansson
4f8d758b07 Give it color 2025-08-04 20:30:00 +02:00
David Heinemeier Hansson
fc449efdb1 No longer needed 2025-08-04 20:28:44 +02:00
David Heinemeier Hansson
57443e74ad Show logo now that we are coming from the new menu 2025-08-04 20:26:33 +02:00
David Heinemeier Hansson
9c70a8e187 Just using omarchy-update now 2025-08-04 20:23:38 +02:00
David Heinemeier Hansson
fe396b305c Stray comment 2025-08-04 20:23:00 +02:00
David Heinemeier Hansson
2e117b57f0 Need to refresh waybar for the new Omarchy menu 2025-08-04 20:20:24 +02:00
David Heinemeier Hansson
eda03fcfe1 Try with Start instead 2025-08-04 20:18:49 +02:00
David Heinemeier Hansson
6dca3e1717 Renaming and order 2025-08-04 19:50:53 +02:00
David Heinemeier Hansson
9c4a45537a Reveal omarchy menu from waybar 2025-08-04 19:50:49 +02:00
David Heinemeier Hansson
b4a6550b29 Use new omarchy-menu for everything 2025-08-04 19:50:36 +02:00
David Heinemeier Hansson
d599a98a76 Allow updating themes 2025-08-04 19:50:03 +02:00
David Heinemeier Hansson
b2ab061e3c Rename function 2025-08-04 19:48:15 +02:00
David Heinemeier Hansson
7e84755c75 Extract theme-list and theme-set so they can be used more easily in any menu 2025-08-04 19:44:42 +02:00
David Heinemeier Hansson
552fbb47fe Overhaul the omarchy-menu 2025-08-04 18:33:38 +02:00
David Heinemeier Hansson
de1330cd9f Add standalone script for setting up the docker DBs
So we can use it via the new menu system
2025-08-04 18:27:04 +02:00
David Heinemeier Hansson
a9004662ca Make it easier to use the yay fzf installer/uninstaller via menu 2025-08-04 18:26:36 +02:00
David Heinemeier Hansson
62975f0a23 Prepare for use in the new menu system 2025-08-04 18:26:08 +02:00
David Heinemeier Hansson
29f4ee3524 Removed by mistake 2025-08-04 18:25:05 +02:00
David Heinemeier Hansson
3acb5c2a83 Add setting up fingerprint too 2025-08-04 16:49:28 +02:00
David Heinemeier Hansson
8e1beac707 Link to the manual from here too 2025-08-04 16:46:44 +02:00
David Heinemeier Hansson
15d4ed80a9 Add command to update timezone too 2025-08-04 16:40:48 +02:00
David Heinemeier Hansson
575368e8c4 Migration to restart walker to pick up menu selections 2025-08-04 12:59:12 +02:00
David Heinemeier Hansson
fb5a56474d Allow filtering on all the walker menus 2025-08-04 12:58:32 +02:00
David Heinemeier Hansson
45b6d96be0 Allow the wide menu to be filtered 2025-08-04 12:55:05 +02:00
David Heinemeier Hansson
256ce145ba Better ordering 2025-08-04 12:50:09 +02:00
David Heinemeier Hansson
4c0d38616e Better grouping 2025-08-04 12:50:05 +02:00
David Heinemeier Hansson
02043fa631 Turn screensaver binding into a full cmd menu 2025-08-04 12:44:19 +02:00
David Heinemeier Hansson
d16c178eb4 Excess CR 2025-08-04 12:43:21 +02:00
David Heinemeier Hansson
5e092c92ce Migration to update update-available icon in the waybar 2025-08-04 12:19:17 +02:00
David Heinemeier Hansson
93980e6138 No backup if user config doesn't already exist 2025-08-04 12:17:42 +02:00
David Heinemeier Hansson
f223bbcb98 Use more conventional icon for "updates available" 2025-08-04 12:08:43 +02:00
David Heinemeier Hansson
7540bddee1 Toggle instead of stack hyprpicker 2025-08-04 11:54:04 +02:00
David Heinemeier Hansson
b358990a70 Set default size 2025-08-04 11:42:04 +02:00
David Heinemeier Hansson
9855693eb1 Position picture-in-picture windows correctly (closes #260)
Co-authored-by: @ElFitaFlores
2025-08-04 11:33:00 +02:00
David Heinemeier Hansson
1b650c2503 Merge pull request #479 from ryanrhughes/add-touchpad-gestures
Add touchpad gestures for Chromium
2025-08-04 11:18:53 +02:00
David Heinemeier Hansson
d518557b6f Merge pull request #482 from ryanrhughes/add-theme-colors-to-tui
Add appropriate colors to TUI
2025-08-04 11:17:55 +02:00
Ryan Hughes
92e62ac26d Add appropriate colors to tui 2025-08-04 02:00:06 -04:00
Ryan Hughes
6478f8b9f8 Add migration 2025-08-03 20:03:31 -04:00
Ryan Hughes
43d1b7304a Add touchpad gestures 2025-08-03 19:57:33 -04:00
David Heinemeier Hansson
1306085102 Merge pull request #471 from rmacklin/fix-timeout
Fix hypridle timeout to actually be 2.5min
2025-08-03 20:12:13 +02:00
David Heinemeier Hansson
755633cd95 Documentation 2025-08-03 20:07:46 +02:00
David Heinemeier Hansson
63179c7d80 Add format-drive function to wipe drives 2025-08-03 19:59:25 +02:00
Richard Macklin
5a29322bf8 Fix hypridle timeout to actually be 2.5min
The intent was for this to be 2.5 minutes but 180s is 3 minutes.
2025-08-03 10:23:08 -07:00
David Heinemeier Hansson
fc911e16e6 Add script to update hyprland itself
Nice if you don't make any adjustments yourself
2025-08-03 16:57:53 +02:00
David Heinemeier Hansson
f21a808bc5 Merge pull request #467 from basecamp/dev
Omarchy 1.10.0
2025-08-03 16:10:52 +02:00
David Heinemeier Hansson
2712f268c8 Increase time before screensaver starts to 2.5 minutes (from 1 minute) 2025-08-03 10:00:21 -04:00
David Heinemeier Hansson
25ed6460e0 Forgot to add waybar refresh for auto-update icon to existing installations 2025-08-03 15:44:39 +02:00
David Heinemeier Hansson
d3fff87864 You really shouldn't have to mess with these regularly, so let's just use Update for Omarchy only 2025-08-03 15:34:31 +02:00
David Heinemeier Hansson
a9b9cbfa34 Must detach after restart 2025-08-03 15:30:49 +02:00
David Heinemeier Hansson
d84b521a19 Cleaner still 2025-08-03 14:09:07 +02:00
David Heinemeier Hansson
83e5faf224 Simplify migrations script 2025-08-03 14:07:39 +02:00
David Heinemeier Hansson
cb08f4ccd2 Extend time for battery warning to 30 seconds
Make it harder to miss. Closes #392.
2025-08-03 14:02:57 +02:00
David Heinemeier Hansson
1dc8379533 Add migration for gvfs-mtp 2025-08-03 13:54:20 +02:00
Erik Brüggemann
c78133251a feat: add gvfs-mtp (#466)
To view the contents of an Android device's storage via MTP in nautilus,
we need the corresponding plugin.
2025-08-03 13:52:47 +02:00
David Heinemeier Hansson
fb05e59bf6 Extract app-specific tweaks into their own files 2025-08-03 13:47:26 +02:00
David Heinemeier Hansson
5344885176 Its enough that its included in the Omarchy TUI 2025-08-03 13:10:29 +02:00
David Heinemeier Hansson
2278b400dd Enable auto-discovery of network printers
Co-authored-by: @rockorager
2025-08-03 13:07:23 +02:00
David Heinemeier Hansson
4b027a9242 Move out of conditional in case user has already installed hyprsunset 2025-08-03 06:47:05 -04:00
Ryan Hughes
e7f086370d Make repo configurable (#139) 2025-08-03 12:07:54 +02:00
David Heinemeier Hansson
4c650e53de Migration to refresh walker to show all keybindings 2025-08-03 12:05:33 +02:00
David Heinemeier Hansson
81aeee437c A few more binding description tweaks 2025-08-03 12:03:59 +02:00
David Heinemeier Hansson
9a09d45d6b Increase Walker list max entries to 200 to accomodate all hotkeys 2025-08-03 11:50:31 +02:00
David Heinemeier Hansson
933d18fce3 Expand bind descriptions 2025-08-03 11:48:53 +02:00
Simon Dawson
8f3647c5c5 Use dynamic bindings list in omarchy-menu-keybindings (#300)
* fix: Use dynamic bindings list in omarchy-menu-keybindings

We can use `hyprctl binds` to get a dynamic list of the currently-set
key bindings. This allows for a custom user configuration that is
split into arbitrary config files, and which makes use of `unbind` to
remove default Omarchy key bindings.

* chore: Support optional description for key bindings

If the description is present, use it in the key
bindings menu, instead of displaying some version
of the dispatched command.

* chore: Add some key binding description strings
2025-08-03 11:11:29 +02:00
David Heinemeier Hansson
8ed29e6ce1 Change wording 2025-08-03 11:02:14 +02:00
David Heinemeier Hansson
fe1f6d4c3a Just be consistent 2025-08-03 10:49:38 +02:00
David Heinemeier Hansson
65ba23d0bb Extract omarchy-refresh-hyprsunset 2025-08-03 10:45:39 +02:00
David Heinemeier Hansson
c35311676c Extract function 2025-08-03 10:44:45 +02:00
David Heinemeier Hansson
e1f697f914 Use restart bin extraction 2025-08-03 10:34:50 +02:00
David Heinemeier Hansson
8de2566fa4 Extract omarchy-restart-app 2025-08-03 10:33:34 +02:00
Jaxon Wright
3fb1bf9759 Add Hyprsunset for Blue Light Filtering / Nightlight (#447)
* install hyprsunset when installing other hypr packages

* add hyprsunset to autostart

* add default hyprsunset config to make it do nothing by default

* waybar: add hyprsunset shortcut next to bluetooth shortcut to quickly toggle blue light filtering

* waybar: fix icon switching for hyprsunset widget

* add migration for hyprsunset

* waybar: rename "Blue Light Filter" to "Nightlight"

* waybar: make nightlight module appear next to bluetooth module

* waybar: do not include nightlight module by default

* add omarchy-toggle-nightlight script

* add default keybinding for toggling hyprsunset nightlight (SUPER + CTRL + N)

* waybar: remove nightlight module from config entirely

* waybar: remove nightlight from css

* update hyprsunset migration to skip yay install if already installed

* omarchy-toggle-nightlight: use `omarchy-restart-waybar` script instead of pkill with -SIG

* omarchy-toggle-nightlight: only restart waybar if nightlight is in the waybar config

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-03 10:26:59 +02:00
David Heinemeier Hansson
3a5ef9d841 Ensure screensaver doesn't start while the computer is locked 2025-08-03 10:18:15 +02:00
David Heinemeier Hansson
008ede7bbd Tweaks 2025-08-03 10:02:19 +02:00
David Heinemeier Hansson
c7020ee875 Merge branch 'dev' into dev 2025-08-03 09:47:54 +02:00
David Heinemeier Hansson
1fda1ade8a Increase screensaver font size for looks and performance
Co-authored-by: @precision
2025-08-03 09:45:21 +02:00
David Heinemeier Hansson
cdc37313ad Revert "Merge pull request #464 from rosscondie/feat/vim-navigation-in-walker"
This reverts commit b8275ca5af, reversing
changes made to 23b9b15936.
2025-08-03 09:41:15 +02:00
David Heinemeier Hansson
b8275ca5af Merge pull request #464 from rosscondie/feat/vim-navigation-in-walker
Add Vim-style j/k navigation to walker config
2025-08-03 09:40:12 +02:00
David Heinemeier Hansson
23b9b15936 Convert refresh-compose command into the same bin as everything else 2025-08-03 09:38:40 +02:00
David Heinemeier Hansson
2a2c5c90d1 Cleanup the omarchy-refresh/restart combos 2025-08-03 09:37:04 +02:00
Ross Condie
cf1b671a71 Add Vim-style j/k navigation to walker config 2025-08-03 09:10:45 +02:00
Uriah Welcome
cb79065e5d Launch the screensaver on all monitors not just the focused one. We
also have to kill the screensaver across all monitors when we exit in
omarch-cmd-screensaver.
2025-08-02 19:51:47 -04:00
David Heinemeier Hansson
5fda6054ce New installations don't need to migrate from what's already there 2025-08-02 22:47:39 +02:00
David Heinemeier Hansson
f4b684f588 Merge pull request #434 from basecamp/dev
Omarchy v1.9.0
2025-08-02 22:36:29 +02:00
David Heinemeier Hansson
631b62927a Better than doing string comparison
Any tag difference means new release
2025-08-02 22:14:16 +02:00
David Heinemeier Hansson
e923be3f0b Split omarchy-migrate into its own command
So it can be updated independently and apply quicker
2025-08-02 22:07:42 +02:00
David Heinemeier Hansson
d0c93e3b8a Also update hyprlock for stopping before updating 2025-08-02 22:00:57 +02:00
David Heinemeier Hansson
54d22e9720 Stop screensaver when locking 2025-08-02 21:56:09 +02:00
David Heinemeier Hansson
f6a459b26b Fix power menu for Screen save 2025-08-02 21:52:36 +02:00
David Heinemeier Hansson
f729004306 Show indicator if update is available (#456)
* Show indicator if update is available

* Language
2025-08-02 21:48:06 +02:00
David Heinemeier Hansson
63840c6e9a Add screensaver as an option in the power menu 2025-08-02 14:44:01 +02:00
David Heinemeier Hansson
34f24cb38a Offer to reboot after Linux kernel has been updated
Closes #377
2025-08-02 14:26:08 +02:00
David Heinemeier Hansson
6ecc09abdb Start screensaver automatically (#453)
* No need to kill any more since any key will quit

* Command to refresh hypridle

* Start screensaver automatically after a minute

* Add migration
2025-08-02 14:14:03 +02:00
David Heinemeier Hansson
4db468a450 Must use the restarter to prevent stacking! 2025-08-02 14:13:54 +02:00
David Heinemeier Hansson
2823792ba2 Show diff when making a backup and clarify the implementation 2025-08-02 13:54:44 +02:00
David Heinemeier Hansson
b0b2bf30d8 Allow any key to stop the screensaver 2025-08-02 13:41:34 +02:00
David Heinemeier Hansson
343a948ffc Simplify error checking 2025-08-02 13:37:00 +02:00
Ryan Hughes
ceee999853 Prevent Waybar stacking on resume (#448)
* Create omarchy-cmd-restart-waybar

* Replace -SIGUSR2 waybar instances

* Add migration

* Add or statment in case waybar is dead

* Just use omarchy-restart-waybar

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:21:47 +02:00
brink-lab
d56a2bce2b Opacity for indicators of empty waybar workspaces (#444)
* Opacity for indicators of empty waybar workspaces

Adds opacity to the workspace indicators on waybar, if the workspace is empty. Makes the indicator appear dimmer to make it easier to find empty workspaces. Purely cosmetic UI tweak.

* Bump up opacity to be easier to read on light themes

* Add migration

* Apply grep to something!

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:16:51 +02:00
Ryan Hughes
0a16d502f2 Fix Plymouth login positioning in multi-monitor setups + limit password from overflowing (#446)
* Limit bullets to 21 to prevent overflow

* Fix plymouth rendering off center in multi-monitor setups

Co-authored-by: Raphael Kimmig <raphael.kimmig@ampad.de>

* Add migration

---------

Co-authored-by: Raphael Kimmig <raphael.kimmig@ampad.de>
2025-08-02 13:08:56 +02:00
Greg Helding
97dc9e8d50 Update Ristretto neovim.lua for compatibility with plugins expecting MiniIcons Highlights (#449)
* Update neovim.lua

* Update neovim.lua
2025-08-02 13:07:26 +02:00
Ryan Hughes
8aa8d99d8d Prevent screensaver shifting up (#450)
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2025-08-02 13:06:09 +02:00
Rob Cameron
0efd63f021 Adds BAT_THEME ENV var (#438) 2025-08-01 23:19:14 +02:00
David Heinemeier Hansson
06d61be018 Try to protect the screensaver from missing tte or pip 2025-08-01 16:05:04 +02:00
David Heinemeier Hansson
7bca5c1903 Make Yaru-blue the default 2025-08-01 14:26:28 +02:00
David Heinemeier Hansson
3d22840543 Allow themes to use a custom icon theme via the icons.theme file
They get to pick from the Yaru color set
2025-08-01 14:23:29 +02:00
Andy Davis
95de571809 Update migration to ensure walker is refreshed after finder prefix was added. (#425)
* Update migration that looks for prefix with '.' as it matches the other prefixes in the file. Also mod walker prefix to use double quotes for consistency to match the others.

* Rename fixed migration to ensure it runs again for all users
2025-08-01 13:32:21 +02:00
David Heinemeier Hansson
8673fa41ba No need for these control characters any more now that we are using Walker 2025-07-31 21:25:50 +02:00
David Heinemeier Hansson
07d88a4b9a Include timezones setup by default! 2025-07-30 23:48:51 +02:00
David Heinemeier Hansson
88e62994d1 Merge branch 'master' into dev 2025-07-30 23:44:41 +02:00
David Heinemeier Hansson
1c2b5ea8e0 Omarchy 1.8.0 (#415)
* Update location of sourced install script

* Add OMARCHY_PATH for easy access

* Formatting

* Enable using finder in walker (#396)

* Enable using finder in walker

* capitalize name property

* Hot reload theme for quick switching

* Use fonts from AUR instead of downloading them directly like an animal

* Include the common JetBrains substitution

* Add a very basic font selector for terminal

* Give the new font selector a bit of room to breathe

* Swap Spotify GUI to TUI

* Correct package name

* Add theme update script (#391)

* Move updating themes from Updates to theme menu

Yeah, it could go in either spot, but since we have one entire category
dedicated to themes, lets keep it there.

* Revert "Correct package name"

This reverts commit 4c46c2208a.

* Revert "Swap Spotify GUI to TUI"

This reverts commit b09d2d68cd.

* Added backup timestamps to various omarchy-refresh-* files to prevent clobbering (#402)

* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times

* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation

* update plymouth logo (#406)

* Track migrations via state files to avoid running migrations that have already been performed. (#411)

* Just use set -e instead of manually checking for return values

* Fix migration

* Unused

* Migrate fonts to packages

* No longer needed

* Use fd for better performance on walker finder

* Add walker config refresh to enable the finder

* Dropbox is now an optional setup

---------

Co-authored-by: Shigeto Kumagai <shk@all.daynight.jp>
Co-authored-by: Mohamedsayhii <63726183+Mohamedsayhii@users.noreply.github.com>
Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
Co-authored-by: Andy Davis <developer.andy@gmail.com>
Co-authored-by: Taha <paprikataha@gmail.com>
2025-07-30 23:44:27 +02:00
David Heinemeier Hansson
f0b1dd286b Dropbox is now an optional setup 2025-07-30 23:32:17 +02:00
David Heinemeier Hansson
7f66623317 Add walker config refresh to enable the finder 2025-07-30 23:27:21 +02:00
David Heinemeier Hansson
41c40e0e1d Use fd for better performance on walker finder 2025-07-30 23:26:01 +02:00
David Heinemeier Hansson
c1a7f5a4e4 No longer needed 2025-07-30 22:54:50 +02:00
David Heinemeier Hansson
a0aa6862f5 Migrate fonts to packages 2025-07-30 22:54:45 +02:00
David Heinemeier Hansson
231438b2ea Unused 2025-07-30 22:54:33 +02:00
David Heinemeier Hansson
a98adc499a Fix migration 2025-07-30 22:47:34 +02:00
David Heinemeier Hansson
74552b9f6e Just use set -e instead of manually checking for return values 2025-07-30 18:43:10 +02:00
Andy Davis
49c154cb1f Track migrations via state files to avoid running migrations that have already been performed. (#411) 2025-07-30 18:40:59 +02:00
Taha
51f3d15ead update plymouth logo (#406) 2025-07-30 16:13:40 +02:00
Andy Davis
ff5630c64f Added backup timestamps to various omarchy-refresh-* files to prevent clobbering (#402)
* Added backup timestamps to omarchy-refresh-[hyprlock|swayosd|walker|waybar] scripts to prevent data loss if ran multiple times

* Added new script (omarchy-refresh-config) for refreshing various config files with automated backup creation
2025-07-30 16:12:37 +02:00
David Heinemeier Hansson
d4f6859022 Revert "Swap Spotify GUI to TUI"
This reverts commit b09d2d68cd.
2025-07-29 19:17:41 +02:00
David Heinemeier Hansson
8c2f51c08c Revert "Correct package name"
This reverts commit 4c46c2208a.
2025-07-29 19:17:39 +02:00
David Heinemeier Hansson
91f5c4646c Move updating themes from Updates to theme menu
Yeah, it could go in either spot, but since we have one entire category
dedicated to themes, lets keep it there.
2025-07-29 16:44:55 +02:00
Ryan Hughes
25f4513feb Add theme update script (#391) 2025-07-29 16:42:18 +02:00
David Heinemeier Hansson
4c46c2208a Correct package name 2025-07-29 16:33:47 +02:00
David Heinemeier Hansson
b09d2d68cd Swap Spotify GUI to TUI 2025-07-29 16:31:40 +02:00
David Heinemeier Hansson
5c98de75d1 Give the new font selector a bit of room to breathe 2025-07-29 15:27:34 +02:00
David Heinemeier Hansson
66db3867a6 Add a very basic font selector for terminal 2025-07-29 15:27:25 +02:00
David Heinemeier Hansson
4f56efe0e9 Include the common JetBrains substitution 2025-07-29 15:18:30 +02:00
David Heinemeier Hansson
5405d383dc Use fonts from AUR instead of downloading them directly like an animal 2025-07-29 15:15:39 +02:00
David Heinemeier Hansson
8ab18c1d38 Hot reload theme for quick switching 2025-07-29 14:42:48 +02:00
Mohamedsayhii
c95d14e5e2 Enable using finder in walker (#396)
* Enable using finder in walker

* capitalize name property
2025-07-29 14:28:14 +02:00
David Heinemeier Hansson
bdf5540cf3 Formatting 2025-07-29 14:21:14 +02:00
David Heinemeier Hansson
033b638992 Merge pull request #393 from sailoz/fix-splash-migration
Update location of sourced install script
2025-07-29 12:53:21 +02:00
David Heinemeier Hansson
eb74d4cb6f Add OMARCHY_PATH for easy access 2025-07-29 08:42:27 +02:00
Shigeto Kumagai
1b576eb7f8 Update location of sourced install script 2025-07-29 13:14:37 +09:00
David Heinemeier Hansson
b7cbffc91d Merge pull request #383 from basecamp/dev
Omarchy v1.7.0
2025-07-28 14:13:59 +02:00
David Heinemeier Hansson
9c5a29def4 Fix sort order bug with italics 2025-07-28 13:14:35 +02:00
David Heinemeier Hansson
189596cc88 Add migration for new ristretto theme 2025-07-28 13:01:02 +02:00
David Heinemeier Hansson
fbec9b5163 Always setsid so we don't die with the script 2025-07-28 12:58:57 +02:00
David Heinemeier Hansson
7f2c9391d2 /etc/sudoers.d is not accessible without sudo 2025-07-28 12:57:23 +02:00
David Heinemeier Hansson
bba8802c29 Merge branch 'master' into dev 2025-07-28 12:52:49 +02:00
Greg Helding
51fe5bf6e8 Add ristretto theme to default themes (#384)
* Add ristretto theme to defaults

* Update alacritty.toml
2025-07-28 12:49:12 +02:00
David Heinemeier Hansson
588ce42f08 Split and explain 2025-07-28 10:03:11 +02:00
David Heinemeier Hansson
c589130d8b Merge pull request #379 from c4software/patch-3
Add ALT+Tab bindings to cycle windows and bring active to top
2025-07-28 10:02:47 +02:00
David Heinemeier Hansson
e39ec15197 Merge pull request #380 from sobran/fix/steam-windowrule
Fix: restrict Steam centering to only the main window
2025-07-28 09:59:15 +02:00
David Heinemeier Hansson
7589683cd1 Adjust migration to check for whether fastfetch already has the change or not 2025-07-28 09:58:51 +02:00
David Heinemeier Hansson
b1753c1c7c Merge pull request #382 from tahayvr/omarchy-in-fastfetch
Display current Omarchy version in Fastfetch
2025-07-28 09:56:31 +02:00
David Heinemeier Hansson
e8d095c787 Match logo.txt 2025-07-28 09:32:44 +02:00
Taha
01d6deae34 Add migration script for Omarchy version in fastfetch 2025-07-27 23:34:10 -07:00
Taha
478b2da0f1 Add omarchy version to fastfetch config 2025-07-27 23:24:06 -07:00
Patrick Hoffmann
9d7ed32fc9 Fix: restrict Steam centering to only the main window 2025-07-28 00:33:53 +02:00
Brosseau Valentin
eca4f65475 Add ALT+Tab bindings to cycle windows and bring active to top 2025-07-27 21:07:20 +02:00
David Heinemeier Hansson
a801fde7b9 Recommend starship.rs for prompt 2025-07-27 14:10:04 -04:00
David Heinemeier Hansson
35a603d0d2 Don't force 2 2025-07-27 13:10:51 -04:00
David Heinemeier Hansson
e446c4c71e Improve the examples and include the fractional scaling example 2025-07-27 12:33:54 -04:00
David Heinemeier Hansson
2953db18d9 Reveal a fully .bashrc that provides examples of what to overwrite 2025-07-27 10:45:22 -04:00
David Heinemeier Hansson
6e664c84a9 Merge pull request #369 from basecamp/update-boot-ansi
Update boot.sh ANSI
2025-07-26 22:02:09 -04:00
David Heinemeier Hansson
44925a6085 More readable 2025-07-26 21:58:09 -04:00
David Heinemeier Hansson
a0c90fb3db Not needed 2025-07-26 21:57:27 -04:00
David Heinemeier Hansson
008fab9df3 Turn dazzle into a full-blown screensaver 2025-07-26 21:53:13 -04:00
David Heinemeier Hansson
ffd136cdc6 Add a fun dazzle with the Omarchy logo that just keeps looping 2025-07-26 21:10:52 -04:00
Sean Mitchell
0ff139860d Update boot.sh ANSI 2025-07-26 17:04:50 -07:00
David Heinemeier Hansson
42886f86bb Ordering 2025-07-26 18:49:33 -04:00
David Heinemeier Hansson
24e3f752ba Float and center About 2025-07-26 18:49:22 -04:00
David Heinemeier Hansson
64c6e872fc Match Omarchy TUI window to the slimmer logo 2025-07-26 18:38:55 -04:00
David Heinemeier Hansson
65577c1757 Merge branch 'dev' 2025-07-26 18:31:22 -04:00
David Heinemeier Hansson
b50a4e7a74 No color works better with more themes 2025-07-26 18:31:11 -04:00
David Heinemeier Hansson
b322d1cb47 Merge pull request #356 from basecamp/dev
Omarchy v1.6.2
2025-07-26 17:17:21 -04:00
David Heinemeier Hansson
d503b0cc37 Fix path 2025-07-26 17:14:31 -04:00
David Heinemeier Hansson
eeb784d087 Fix path here too 2025-07-26 16:49:43 -04:00
David Heinemeier Hansson
07a16487c0 Fix paths 2025-07-26 16:48:45 -04:00
David Heinemeier Hansson
c814aa534d Install if MISSING 2025-07-26 16:47:25 -04:00
David Heinemeier Hansson
6de445a2a6 Spelling 2025-07-26 16:37:49 -04:00
David Heinemeier Hansson
73d8c70e06 Ensure we detach from the session so swaybg doesn't die with it 2025-07-26 16:36:42 -04:00
David Heinemeier Hansson
e3bf801654 Don't add this twice on rerunning either 2025-07-26 15:58:38 -04:00
David Heinemeier Hansson
b4d75729d9 Don't add the keys twice 2025-07-26 15:53:53 -04:00
David Heinemeier Hansson
68a221e456 Simplify and make it idempotent 2025-07-26 15:52:00 -04:00
David Heinemeier Hansson
42963368c0 Reference correct file 2025-07-26 15:43:29 -04:00
David Heinemeier Hansson
cf688baa34 We don't have this any more 2025-07-26 15:42:59 -04:00
David Heinemeier Hansson
0a8a502cf2 Add migration to refresh walker to get the = leader key for calculator 2025-07-26 15:37:28 -04:00
David Heinemeier Hansson
9844d4ab22 Merge pull request #362 from ryanrhughes/add-prefix-to-walker-calc
Add "=" as default walker prefix
2025-07-26 15:32:54 -04:00
David Heinemeier Hansson
cec5482483 Merge pull request #361 from basecamp/adjust-logo-assets
Adjust logo assets
2025-07-26 13:23:20 -04:00
David Heinemeier Hansson
bd43aee907 Merge pull request #348 from ryanrhughes/combine-plymouth-and-login
Combine plymouth and login installers
2025-07-26 13:22:44 -04:00
Ryan Hughes
6afbff2c27 Add "=" as default walker prefix 2025-07-26 13:12:28 -04:00
Ryan Hughes
cc79664efc Combined login will run refresh commands 2025-07-26 13:09:28 -04:00
Ryan Hughes
162952f102 Run combined login now 2025-07-26 13:09:28 -04:00
Ryan Hughes
f693c33310 Combine plymouth and login 2025-07-26 13:09:28 -04:00
Sean Mitchell
32aa290af5 Update logo svg 2025-07-26 10:02:50 -07:00
Sean Mitchell
fbdbf852eb Update logo txt 2025-07-26 10:02:29 -07:00
David Heinemeier Hansson
5b654d0282 Be careful not to exit the entire migration runner 2025-07-26 13:02:22 -04:00
David Heinemeier Hansson
4929d3e201 Merge pull request #351 from JaxonWright/bare-improvements
Improvements to Bare Install
2025-07-26 13:01:31 -04:00
David Heinemeier Hansson
29bfeba5cc Merge pull request #357 from rmacklin/fix-step-total
Fix step total in install.sh subtexts
2025-07-26 12:55:43 -04:00
David Heinemeier Hansson
4e9e13f88d Merge pull request #359 from saullrb/dev
Better handle chaotic aur installation
2025-07-26 12:55:26 -04:00
Jaxon Wright
7f3af84a60 #330: update "add missing installation of Zoom" migration to skip if bare install 2025-07-26 12:41:22 -04:00
Jaxon Wright
62fb66a74a omarchy-refresh-applications(#330/#341): do not copy xtras .desktop declarations if in bare mode 2025-07-26 12:41:22 -04:00
Jaxon Wright
cb48956a37 config.sh(#330): if bare install, create bare.mode file to allow updates to skip steps not applicable to bare installs 2025-07-26 12:41:22 -04:00
Saull Brandão
4e4e82c5b9 fix chaotic aur installation 2025-07-26 13:17:13 -03:00
Richard Macklin
302e92860e Fix step total in install.sh subtexts 2025-07-26 09:00:20 -07:00
David Heinemeier Hansson
eace29af7d Allow updating timezone from right-clicking the clock
Closes #314
2025-07-26 11:15:08 -04:00
David Heinemeier Hansson
51e2fa8598 Merge pull request #349 from ryanrhughes/update-theme-sh
Convert installers yay and check for existence to make re-runs faster
2025-07-26 09:55:08 -04:00
David Heinemeier Hansson
c081078e72 Protect pacman config from adopting broken mirror setup 2025-07-26 09:52:11 -04:00
Ryan Hughes
3c2559297d Convert to yay and check for existence 2025-07-25 22:16:50 -04:00
David Heinemeier Hansson
4aa6b6c1f9 Merge pull request #342 from michaldziurowski/fix-videos-dir-for-screenrec
take into consideration xdg dirs for screenshot and screen recording
2025-07-25 22:15:38 -04:00
David Heinemeier Hansson
896ad9d97a Merge pull request #344 from ryanrhughes/prevent-screenshot-stacking
Prevent screenshot selection stacking
2025-07-25 22:14:59 -04:00
David Heinemeier Hansson
83d43a7d8d Merge pull request #347 from tahayvr/new-omarchy-logo
Update Omarchy logo
2025-07-25 22:13:09 -04:00
David Heinemeier Hansson
1fa2b62fba Make it safe to rerun the theme.sh installer
Closes #343
2025-07-25 22:09:32 -04:00
David Heinemeier Hansson
d9f9f5212e Don't need that twice 2025-07-25 21:58:51 -04:00
David Heinemeier Hansson
ba75889154 Slow it down a little 2025-07-25 21:57:28 -04:00
David Heinemeier Hansson
d6ba2af917 Spelling 2025-07-25 21:54:03 -04:00
David Heinemeier Hansson
2f12cdc751 Fix spelling 2025-07-25 21:35:39 -04:00
Taha Nejad
363a9ae4dc update logo.txt with new logo 2025-07-25 17:47:30 -07:00
Taha Nejad
eefb4638e9 add omarchy.svg to root of repo 2025-07-25 17:40:14 -07:00
Ryan Hughes
bb2d21c3b7 Merge branch 'dev' into prevent-screenshot-stacking 2025-07-25 19:22:09 -04:00
Ryan Hughes
ac935bdaed Kill selection if already active 2025-07-25 18:12:08 -04:00
David Heinemeier Hansson
f25be1d075 Fix path 2025-07-25 16:56:53 -04:00
David Heinemeier Hansson
8336788e0a So 1/5 is right 2025-07-25 16:54:51 -04:00
David Heinemeier Hansson
d60563fe92 Need to happen as part of the destkop 2025-07-25 16:54:02 -04:00
David Heinemeier Hansson
1066415576 Bring back the first art 2025-07-25 16:49:29 -04:00
David Heinemeier Hansson
b5f60f78a8 Structure the installers explicitly with clearly defined segments 2025-07-25 16:48:53 -04:00
Michal Dziurowski
92c1db9176 take into consideration xdg dirs for screenshot and screen recording 2025-07-25 21:43:37 +02:00
David Heinemeier Hansson
25acc313b1 Just straight reboot when we're done
Script will abort anyway if there were any issues along the way
2025-07-25 15:43:21 -04:00
David Heinemeier Hansson
0ead8947f7 Add logo to logical substeps 2025-07-25 15:42:27 -04:00
David Heinemeier Hansson
37f4d4a411 More tweaks to the animations 2025-07-25 15:30:49 -04:00
David Heinemeier Hansson
c4a08c3c25 Try to do another header 2025-07-25 15:27:10 -04:00
David Heinemeier Hansson
0c36142f8a Default to expand but allow others 2025-07-25 15:26:38 -04:00
David Heinemeier Hansson
65a5bbad82 Setup presentation tooling and functions as a separate step 2025-07-25 15:25:39 -04:00
David Heinemeier Hansson
165c940df2 A bit more effects 2025-07-25 15:21:36 -04:00
David Heinemeier Hansson
824ba78000 Let's try just showing the logo at identification time 2025-07-25 15:14:05 -04:00
David Heinemeier Hansson
6d3df204bc Use terminal text effects for extra rizz 2025-07-25 15:05:41 -04:00
David Heinemeier Hansson
1c14b8eba2 Have to check for the right command 2025-07-25 14:30:18 -04:00
David Heinemeier Hansson
e01c1bb139 It's all setup 2025-07-25 14:29:08 -04:00
David Heinemeier Hansson
466fe6caba Merge pull request #321 from saullrb/dev
Add Chaotic-AUR setup
2025-07-25 14:28:25 -04:00
David Heinemeier Hansson
10f71885b2 No longer needed 2025-07-25 13:43:32 -04:00
David Heinemeier Hansson
19c0d2887e Reorder 2025-07-25 13:04:53 -04:00
David Heinemeier Hansson
f2b58c2b8e Add dedicated omarchy-setup-steam script 2025-07-25 13:02:55 -04:00
David Heinemeier Hansson
46d135025e Center steam window to prevent it from being off screen 2025-07-25 13:02:55 -04:00
David Heinemeier Hansson
46e972172c Merge pull request #337 from anagrius/master
Fix fzf completion path for Arch Linux
2025-07-25 12:41:33 -04:00
David Heinemeier Hansson
79df336854 Merge pull request #333 from tahayvr/matteblack-plugin
matteblack.nvim is now a neovim colorscheme
2025-07-25 12:40:56 -04:00
Thomas Anagrius
0d6ea40252 Fix fzf completion path for Arch Linux
Update fzf completion source path from /usr/share/bash-completion/completions/fzf
to /usr/share/fzf/completion.bash to match the actual file location on Arch Linux.
2025-07-25 18:20:51 +02:00
Taha
a76c7ee33b add matteblack plugin for neovim 2025-07-24 17:45:31 -07:00
David Heinemeier Hansson
674c5bfdda Use Arch icon for this instead too for now 2025-07-24 18:11:03 -04:00
David Heinemeier Hansson
6cd8955409 Merge pull request #322 from benhoman/screen-cmd-output-dir
allow override of screenshot/screenrecord output
2025-07-24 18:07:38 -04:00
David Heinemeier Hansson
db63219398 A few more color corrections 2025-07-24 18:05:08 -04:00
David Heinemeier Hansson
42d80f2ce7 Consistent colors 2025-07-24 18:03:00 -04:00
David Heinemeier Hansson
4578d4e418 Cleanup files from needless comments 2025-07-24 18:02:00 -04:00
David Heinemeier Hansson
7242a57c18 Fix more swayosd colors 2025-07-24 18:00:00 -04:00
David Heinemeier Hansson
2d9ed8720b Match color to mako 2025-07-24 17:39:06 -04:00
David Heinemeier Hansson
205bcd7be8 Hyprland fullscreen may conflict with the app-specific fullscreen, so need a separate key
This is the case with Typora which will retain its ugly menu bar when
Hyprland does the fullscreening, but be beautifully bare when its doing
its own fullscreening. The best would be if we could make F11 work such
that the app got a shot at fullscreening first, then if it wasn't
capable, we let Hyprland do it. But not sure there's a way to do that?
2025-07-24 16:13:36 -04:00
Ben Homan
70da2ecbe8 allow override of screenshot/screenrecord output 2025-07-24 11:39:12 -04:00
Saull Brandão
66b0fa0227 add chaotic aur
add chaotic aur repo

add noconfirm

only add chaotic aur for x86-64 arch
2025-07-24 07:55:56 -03:00
David Heinemeier Hansson
d2fffc40ea Add migration to prevent Waybar stacking 2025-07-23 16:26:13 -04:00
David Heinemeier Hansson
8884cc7a5c Prevent stacking of waybars after unlock by SIGUSR2'ing it
Bit crude, but better than a full kill.
Closes #196
2025-07-23 16:22:14 -04:00
David Heinemeier Hansson
a4e7f41798 Merge pull request #305 from basecamp/dev
Omarchy v1.6.1
2025-07-23 14:56:04 -04:00
David Heinemeier Hansson
8908ce91f8 Trailing slash 2025-07-23 14:55:00 -04:00
David Heinemeier Hansson
5458b46584 Merge pull request #304 from basecamp/increase-pamlockout-limit
Increase pamlimit lockout
2025-07-23 14:39:22 -04:00
David Heinemeier Hansson
9b7908d17b Ensure we restart swayosd after setting up theming 2025-07-23 13:03:47 -04:00
David Heinemeier Hansson
a12cd97922 Increase pamlimit lockout 2025-07-23 12:59:32 -04:00
David Heinemeier Hansson
9231148cd7 Increase pamlimit lockout 2025-07-23 12:36:57 -04:00
David Heinemeier Hansson
c4c9cdc0f6 Only load inputrc for interactive terminals
Fixes claude-code warnings and is more proper anyway.
Closes #282
2025-07-23 12:03:53 -04:00
David Heinemeier Hansson
98f848d4a0 Fix the vibe coding hallucinations from swayosd theming 2025-07-23 11:53:04 -04:00
David Heinemeier Hansson
c36d76bb1c Merge pull request #288 from aifrim/swayosd-cfg
full swayosd integration
2025-07-23 11:46:15 -04:00
David Heinemeier Hansson
71ccf9a367 Merge pull request #294 from precision/dev
Update media bindings to only display OSD on the focused display
2025-07-23 11:42:33 -04:00
David Heinemeier Hansson
e1f2cc4d3d Merge pull request #297 from spdawson/feat/add-mariadb-to-docker-databases
Add MariaDB to Docker databases
2025-07-23 11:42:02 -04:00
David Heinemeier Hansson
08f187b4ea Include satty in the list of windows that get a minimum size
Fixes #299
Co-authored-by: @mtk3d
2025-07-23 11:39:39 -04:00
David Heinemeier Hansson
35e1d1233e Merge pull request #302 from ludo237/master
fix: walker css url
2025-07-23 11:38:10 -04:00
David Heinemeier Hansson
8f569921b3 Merge pull request #295 from abenz1267/dev
force package database refresh after adding multilib repo
2025-07-23 11:37:51 -04:00
Claudio Ludovico
3933cd7c89 fix: walker css url
there is an extra `/` that should not be ehre
2025-07-23 15:15:53 +02:00
Simon Dawson
ceb44d7aa1 feat: Add MariaDB to Docker databases 2025-07-23 10:36:36 +01:00
Andrej Benz
fd56404407 force package database refresh after adding multilib repo 2025-07-23 09:43:51 +02:00
Uriah Welcome
d2763225c3 Update the media bindings to only display on the currently focused
monitor.

sway-osd can also do playerctl
2025-07-22 23:28:17 -04:00
David Heinemeier Hansson
2b2103fb66 Put Sunset Lake first for Tokyo Night 2025-07-22 22:19:29 -04:00
David Heinemeier Hansson
11dfeae901 Merge pull request #246 from basecamp/dev
Omarchy v1.6.0
2025-07-22 16:24:55 -07:00
David Heinemeier Hansson
8c0ac90fe4 Remember to disown! 2025-07-22 19:17:41 -04:00
David Heinemeier Hansson
d83a87a01c Don't hang the terminal 2025-07-22 19:09:47 -04:00
David Heinemeier Hansson
f0a9271506 Correct the order 2025-07-22 19:09:09 -04:00
David Heinemeier Hansson
faaf672eb4 Alert that we are updating system packages 2025-07-22 19:08:41 -04:00
David Heinemeier Hansson
0058023e85 Revert "Try to work around hanging"
This reverts commit 1976eafbcd.
2025-07-22 19:07:27 -04:00
David Heinemeier Hansson
4fedfbe9f1 Maybe it's hanging on dependencies? 2025-07-22 19:07:01 -04:00
David Heinemeier Hansson
1976eafbcd Try to work around hanging 2025-07-22 19:07:01 -04:00
Alexandru Ifrim
1ebf88bac0 full swayosd integration 2025-07-23 01:51:04 +03:00
David Heinemeier Hansson
cce56a2684 Nicer sorting in Walker 2025-07-22 18:41:17 -04:00
David Heinemeier Hansson
c4b45779fe Use current background link 2025-07-22 18:33:25 -04:00
David Heinemeier Hansson
d706eda676 Unused 2025-07-22 18:26:34 -04:00
David Heinemeier Hansson
7c75cbbcd5 Ensure indexes are up to date from boot.sh instead 2025-07-22 18:08:31 -04:00
David Heinemeier Hansson
69e48758fd Can't actually update all packages before we are ready to reboot
Since kernel etc that needs a restart might have updated
2025-07-22 18:06:38 -04:00
David Heinemeier Hansson
2332a4f6db Don't update index during the normal run
Since we did that at the start
2025-07-22 18:03:05 -04:00
David Heinemeier Hansson
bacaabe4a1 We don't have yay yet 2025-07-22 17:53:58 -04:00
David Heinemeier Hansson
60f5a3b063 Merge branch 'master' into dev 2025-07-22 14:53:27 -07:00
David Heinemeier Hansson
7a7a08f9c3 Drop the entire first run idea for now 2025-07-22 17:51:34 -04:00
David Heinemeier Hansson
4421f20e82 Reduce first run to just showing the manual for now 2025-07-22 17:49:08 -04:00
David Heinemeier Hansson
071be3abcb Setup Docker DBs from TUI 2025-07-22 17:47:45 -04:00
David Heinemeier Hansson
771313b836 Update all the built-in packages from the ISO 2025-07-22 17:47:34 -04:00
David Heinemeier Hansson
dbe3ec8b2f Safe to use this again then 2025-07-22 17:36:14 -04:00
David Heinemeier Hansson
5be61c17a1 Go back to ANSI header now that we dont open a browser until the end 2025-07-22 17:34:52 -04:00
David Heinemeier Hansson
98f5669637 Remove GH Setup for now too 2025-07-22 17:33:43 -04:00
David Heinemeier Hansson
bcf0e1ebf9 Save the Dropbox setup until we have an answer to GDK_SCALE 2025-07-22 17:27:23 -04:00
David Heinemeier Hansson
f06e11ac47 Focus back on the installer after opening the manual 2025-07-22 16:54:08 -04:00
David Heinemeier Hansson
03192de90e Use a header that won't fold on a small screen 2025-07-22 16:38:33 -04:00
Saull Brandão
c0bb83e76c Detect and apply keyboard layout configured during Arch installation (#286)
* Detect and apply keyboard layout configured during Arch installation

* align the identation
2025-07-22 16:08:53 -04:00
David Heinemeier Hansson
5e4c309b2c Do dropbox first so we have the browser if we need it 2025-07-22 13:58:35 -04:00
David Heinemeier Hansson
a691a50559 Scaling workaround 2025-07-22 13:48:00 -04:00
David Heinemeier Hansson
778a69897b Fix path 2025-07-22 13:37:04 -04:00
David Heinemeier Hansson
ff77d4731f Allow it to start before existing 2025-07-22 13:23:59 -04:00
David Heinemeier Hansson
ec4efb304c Didn't actually like that 2025-07-22 13:20:57 -04:00
David Heinemeier Hansson
1d4991426e More shushing 2025-07-22 13:16:37 -04:00
David Heinemeier Hansson
c31250d7c0 Also can't use logo here or we're squishing 2025-07-22 13:12:35 -04:00
David Heinemeier Hansson
f36402b2c9 Clear before launching 2025-07-22 13:11:10 -04:00
David Heinemeier Hansson
ecf65b0499 Still need to keep it quiet 2025-07-22 13:10:47 -04:00
David Heinemeier Hansson
65ba4cc576 Might squish the logo when we open Docker or Manual 2025-07-22 13:09:01 -04:00
David Heinemeier Hansson
56999c0ae5 Use the Omarchy Manual webapp for launching 2025-07-22 13:06:35 -04:00
David Heinemeier Hansson
e3e46e1383 Install Omarchy Manual as its own web app 2025-07-22 13:06:05 -04:00
David Heinemeier Hansson
28bec8c7d2 Launch the Docker app if we installed Docker DBs 2025-07-22 13:03:14 -04:00
David Heinemeier Hansson
484b98ae43 No confirm please 2025-07-22 13:02:01 -04:00
David Heinemeier Hansson
14d9cd452c Explain the gum picker 2025-07-22 13:01:19 -04:00
David Heinemeier Hansson
8071642b66 Use consistent conditional 2025-07-22 12:37:57 -04:00
David Heinemeier Hansson
ba1e50daa9 Keep it simple 2025-07-22 12:36:56 -04:00
David Heinemeier Hansson
1c69965819 Restart walker when we refresh the config 2025-07-22 11:21:50 -04:00
David Heinemeier Hansson
ea903c7d65 Cleanup the screenrecording script 2025-07-22 08:58:20 -05:00
Andreas Nigg
6d8a1e3bcf wf-recorder instead of wl-screenrec (NVIDIA support for screen recording) (#278)
* use wf-recorder instead of wl-screenrec

wl-screenrec does not support NVIDIA drivers as of now

* install wf-recorder and migration for it

* use wl-screenrec for non-nvidia and wf-recorder otherwise

* useless comment

* only use one of the screen recording features
2025-07-22 08:47:25 -05:00
David Heinemeier Hansson
a94ee3dee8 Remove 1px border from hyprshot screenshots
Closes #277
Co-authored-by: @al3rez
2025-07-22 08:44:17 -05:00
David Heinemeier Hansson
a117f5a36a Open current directory on n alone while still allowing opening direct files too 2025-07-22 07:53:01 -05:00
Blaž Škufca
d5b9a5f223 Update envs.conf (#281) 2025-07-22 07:44:36 -05:00
Ryan Hughes
b656ea0625 Prevent messing with the list (#276) 2025-07-21 21:21:55 -04:00
David Heinemeier Hansson
611668783b Make sure we have jq for initial monitor setup 2025-07-21 20:42:39 -04:00
David Heinemeier Hansson
cd0565a57f Explain where to find Dropbox icon 2025-07-21 20:38:54 -04:00
David Heinemeier Hansson
e464f19bff Not starting right
Emacs people can figure themselves out
2025-07-21 20:34:09 -04:00
David Heinemeier Hansson
2567baf00e Clear so not smushed 2025-07-21 20:31:05 -04:00
David Heinemeier Hansson
84065dd767 Cleanup terminal after each step 2025-07-21 20:29:43 -04:00
David Heinemeier Hansson
377522f804 Try a simpler setup flow 2025-07-21 20:12:58 -04:00
David Heinemeier Hansson
a7b423a2c4 No redirect since stderr has the code 2025-07-21 20:11:41 -04:00
David Heinemeier Hansson
853d46854f Even if you kill it, you're done 2025-07-21 20:11:32 -04:00
David Heinemeier Hansson
785d575ecc Fix installation references 2025-07-21 19:58:54 -04:00
David Heinemeier Hansson
f346c78826 Quiet stderr 2025-07-21 19:55:40 -04:00
David Heinemeier Hansson
47584de6db Let it tile so browsers open neatly next to it 2025-07-21 19:05:32 -04:00
David Heinemeier Hansson
b150a1f068 Start the server as well 2025-07-21 19:01:00 -04:00
David Heinemeier Hansson
9cbe88d43d Move to the front and wrap in a no-op for when its there 2025-07-21 18:59:40 -04:00
Mateusz Cholewka
790e90515e Add swayosd for on-screen volume and brightness indicators (#274)
* Make these executable

* Replace pavucontrol with wiremix (#225)

Add to install

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

This reverts commit 620b397859.

* Add swayOSD to show brightness and volume status

* Add swayOSD migration

* Move swayosd from desktop to hyperlandia

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
Co-authored-by: Roeland <roel4d@webding.org>
2025-07-21 18:58:11 -04:00
Saull Brandão
24aa77a6cf Add F11 keybind to toggle fullscreen for active window in hyprland (#273) 2025-07-21 18:54:30 -04:00
David Heinemeier Hansson
ac3aadd93a Correct path here too 2025-07-21 18:50:48 -04:00
David Heinemeier Hansson
95c6882e54 Ensure first-run flow isn't run for existing installations 2025-07-21 18:47:06 -04:00
David Heinemeier Hansson
cdc9f8606e Go to the Omarchy directory first 2025-07-21 18:45:31 -04:00
David Heinemeier Hansson
ae2e626c0e Use familiar emoji leader key of : instead of . 2025-07-21 18:44:06 -04:00
David Heinemeier Hansson
3518062c1f Fix bin references 2025-07-21 18:39:24 -04:00
David Heinemeier Hansson
83a8f42bd7 Open the manual as the last step 2025-07-21 18:27:15 -04:00
David Heinemeier Hansson
6a3ce098e9 Use a common namespace for cmds 2025-07-21 18:26:09 -04:00
David Heinemeier Hansson
d1ba090bec Its obvious 2025-07-21 18:13:53 -04:00
David Heinemeier Hansson
04ec2ba84d Reuse the Omarchy title so we get the same float 2025-07-21 18:13:37 -04:00
David Heinemeier Hansson
273c261b3e Give a little more breathing room 2025-07-21 18:13:26 -04:00
David Heinemeier Hansson
fa5b13a284 Finalize the first-run flow 2025-07-21 18:05:48 -04:00
David Heinemeier Hansson
22ff741c7f Hurray 2025-07-21 17:57:29 -04:00
David Heinemeier Hansson
702c6f015e Accommodate more themes 2025-07-21 17:55:21 -04:00
David Heinemeier Hansson
602009ebf3 Add a first-run flow 2025-07-21 17:46:37 -04:00
David Heinemeier Hansson
16e9553a40 Remove all noise 2025-07-21 16:28:07 -05:00
David Heinemeier Hansson
98b5c862bc Breaks the ini 2025-07-21 16:27:00 -05:00
David Heinemeier Hansson
0c6719becc No longer using current/backgrounds 2025-07-21 17:12:16 -04:00
David Heinemeier Hansson
e8c23532b3 Reuse ansi art and clear install when we ask for input 2025-07-21 16:22:28 -04:00
David Heinemeier Hansson
a7fb87f08b Need to put remove somewhere else -- not common enough to gum this up 2025-07-21 16:10:26 -04:00
David Heinemeier Hansson
e898ae327f Use dropbox-cli so it doesn't quit when the terminal does 2025-07-21 16:09:08 -04:00
David Heinemeier Hansson
b21a236bf3 Fixup the Dropbox setup flow 2025-07-21 16:05:29 -04:00
David Heinemeier Hansson
6ef2ce0088 Enable caps lock again as default xcompose key 2025-07-21 15:45:44 -04:00
David Heinemeier Hansson
5d09154079 Start walker service after doing installation 2025-07-20 22:19:22 -05:00
Taha
f083d3e9ec fix the low contrast colors for comments in NeoVim for matte black theme (#268) 2025-07-20 22:00:48 -05:00
David Heinemeier Hansson
f60e66cfdf Move Dropbox to a setup script 2025-07-20 21:51:46 -05:00
David Heinemeier Hansson
fcf00494bb Now that Dropbox has its own service starter, use another example 2025-07-20 21:43:29 -05:00
David Heinemeier Hansson
e7da208505 Fix using backgrounds from inside the themes 2025-07-20 21:30:06 -05:00
David Heinemeier Hansson
3415fef297 Go back to just always updating system packages
Otherwise we can't depend on having the same minimum versions
2025-07-20 21:24:10 -05:00
David Heinemeier Hansson
61a7aee377 Ensure this isnt run over and over also 2025-07-20 21:21:28 -05:00
David Heinemeier Hansson
f781a805c9 Install missing Dropbox dependencies if Dropbox is there 2025-07-20 21:19:34 -05:00
David Heinemeier Hansson
9c01775287 Better to use the refresh commands so you don't forget to write the migration 2025-07-20 21:16:04 -05:00
David Heinemeier Hansson
b8b3548019 Update waybar.css to fix waybar dancing workspace numbers with a migration 2025-07-20 21:09:07 -05:00
David Heinemeier Hansson
3634235eee Move from permission setup to .bak process
Means less interaction for folks just riding on the default train
without overwriting the work of people who've made changes.
2025-07-20 21:07:59 -05:00
David Heinemeier Hansson
1f1660f5e4 One smaller for less spacing 2025-07-20 20:41:24 -05:00
David Heinemeier Hansson
35fb85ea5a Revert "Temporary fix for waybar stacking on waking from sleep"
This reverts commit b967223d3c.
2025-07-20 20:22:52 -05:00
David Heinemeier Hansson
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
David Heinemeier Hansson
af72a45dbd Remove non-existent vibe-code hallucinated options and clean up theme files 2025-07-20 18:07:15 -05:00
Richard Macklin
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
David Heinemeier Hansson
dca7e9a8e8 Also don't do these migrations if they were already completed 2025-07-20 17:52:32 -05:00
Noah Penza
e2c94acd94 Add min-width to workspace numbers (#252) 2025-07-20 17:45:58 -05:00
David Heinemeier Hansson
5b42501c9f Same style as others with description always 2025-07-20 17:44:08 -05:00
David Heinemeier Hansson
ecc9a46bff Wrap a little better 2025-07-20 17:43:17 -05:00
Saull Brandão
fafe78d80f add missing installation of zoom (#262) 2025-07-20 17:40:45 -05:00
David Heinemeier Hansson
9b8569e537 Make migrations faster to skip if they've already been run 2025-07-20 17:36:29 -05:00
Ryan Hughes
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
David Heinemeier Hansson
df13763d42 Better extraction 2025-07-19 22:43:28 -05:00
David Heinemeier Hansson
81727a20ce Install everything needed for full Dropbox + split out other potentially flaky installs 2025-07-19 22:43:09 -05:00
David Heinemeier Hansson
aac9e158d1 Migration to add libappindicator-gtk3 2025-07-19 22:25:32 -05:00
David Heinemeier Hansson
b98634d06b Need libappindicator-gtk3 for Dropbox tray icon to work right 2025-07-19 22:24:42 -05:00
David Heinemeier Hansson
309c35c866 Extract shared function 2025-07-19 17:02:52 -05:00
David Heinemeier Hansson
4427c0bb28 Add full screen recording as an option 2025-07-19 16:58:22 -05:00
David Heinemeier Hansson
30b3af58e5 Use same naming convention as new screenshot flow 2025-07-19 16:49:50 -05:00
David Heinemeier Hansson
6b947ffb45 Add satty to the default screenshot flow 2025-07-19 16:49:39 -05:00
David Heinemeier Hansson
f569c4e365 Moving away from SIGUSER2 didn't help with the stacking, so return it 2025-07-19 15:11:52 -05:00
David Heinemeier Hansson
cf71a3f101 Ensure apps started with uwsm stay managed by uwsm on restarts 2025-07-19 15:11:32 -05:00
David Heinemeier Hansson
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
David Heinemeier Hansson
178f97a6e3 We don't need the GUI for fcitx5
The fewer packages the better
2025-07-18 23:33:08 -05:00
David Heinemeier Hansson
f99277ad71 Remove needless comments 2025-07-18 23:00:42 -05:00
David Heinemeier Hansson
ca69f15709 Not needed 2025-07-18 22:58:48 -05:00
David Heinemeier Hansson
2e874adb50 Add simple screen recordings (#235)
* Add simple screen recording tool

* Need slurp too
2025-07-18 22:55:28 -05:00
David Heinemeier Hansson
3b0fd13be1 Set class/title in case we want to do window settings on it 2025-07-18 22:54:42 -05:00
David Heinemeier Hansson
f8a7e1c7eb Finish transition from audio settings GUI to TUI 2025-07-18 22:54:17 -05:00
Roeland
ee5785855a Replace pavucontrol with wiremix (#225)
Add to install
2025-07-18 22:40:42 -05:00
David Heinemeier Hansson
da597ac567 Revert "Replace pavucontrol with wiremix (#225)"
This reverts commit 620b397859.
2025-07-18 22:39:25 -05:00
Roeland
620b397859 Replace pavucontrol with wiremix (#225)
Add to install
2025-07-18 22:38:45 -05:00
David Heinemeier Hansson
7f681c71fb Extra CR 2025-07-18 17:44:18 -07:00
David Heinemeier Hansson
d76d31a5af Make these executable too 2025-07-18 17:43:20 -07:00
David Heinemeier Hansson
3c156ab059 Better error handling and make these full scripts 2025-07-18 17:43:01 -07:00
David Heinemeier Hansson
dbfad74ba3 Better error catching 2025-07-18 17:33:51 -07:00
David Heinemeier Hansson
56e1ba9c5d Merge branch 'master' into dev 2025-07-18 17:18:02 -07:00
David Heinemeier Hansson
68a188d299 Offer community help link 2025-07-18 17:17:42 -07:00
David Heinemeier Hansson
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
David Heinemeier Hansson
f388e90d3b Add migration for new Catppuccin Latte theme 2025-07-18 14:35:37 -07:00
David Heinemeier Hansson
cd915557ae Merge pull request #212 from ryanyogan/omarchy-catppuccin-latte-theme
Omarchy Theme ~ Adds Catppuccin Latte
2025-07-18 14:32:51 -07:00
David Heinemeier Hansson
96e87d8e7e Minify without quality loss 2025-07-18 14:31:57 -07:00
David Heinemeier Hansson
be751a3dde Merge pull request #223 from ryanrhughes/improve-boot-times
Improve boot times
2025-07-18 14:26:27 -07:00
Ryan Yogan
786b0b2205 adds a light pastel background and official btop theme 2025-07-18 10:12:28 -05:00
Ryan Hughes
ced618318d Mask 2025-07-18 05:12:36 -04:00
Ryan Hughes
f5553a8d30 Update 1752797704.sh
MASK
2025-07-18 05:11:51 -04:00
Ryan Hughes
e34dbe7d50 Create directories 2025-07-18 04:40:41 -04:00
Ryan Hughes
19d45670ce Change when plymouth is dismissed and prevent docker blocking 2025-07-18 04:37:47 -04:00
Richard Macklin
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
David Heinemeier Hansson
49efa1c3f1 Add third Tokyo Night background 2025-07-17 22:35:02 -07:00
David Heinemeier Hansson
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
Ryan Yogan
5252990396 increases the theme menu width for additional characters 2025-07-17 21:49:46 -05:00
Ryan Yogan
276886af8e adds catppuccin logo 2025-07-17 21:35:22 -05:00
Ryan Yogan
0e0741feb7 adds official catppuccin alacritty theme 2025-07-17 21:24:25 -05:00
Richard Macklin
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
Ryan Yogan
98c269e6d5 adds catppuccin from base catppuccin theme 2025-07-17 21:11:34 -05:00
Ryan Yogan
d200cec03c removes not-needed styles 2025-07-17 19:14:15 -05:00
Ryan Yogan
2bcff1662b removes personal neovim configs 2025-07-17 18:50:58 -05:00
Ryan Yogan
4097582572 Merge branch 'basecamp:dev' into dev 2025-07-17 18:36:03 -05:00
Ryan Yogan
03a541a9a2 [THEME] // Adds initial catppuccin-latte base styles 2025-07-17 17:11:34 -05:00
335 changed files with 3810 additions and 1676 deletions

View File

@@ -2,7 +2,7 @@
Version=1.0 Version=1.0
Name=About Name=About
Comment=System information from Fastfetch Comment=System information from Fastfetch
Exec=alacritty --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s' Exec=alacritty -o "font.size=9" --class=About --title=About -e bash -c 'fastfetch; read -n 1 -s'
Terminal=false Terminal=false
Type=Application Type=Application
Icon=Arch Icon=Arch

51
applications/mpv.desktop Normal file
View File

@@ -0,0 +1,51 @@
[Desktop Entry]
Type=Application
Name=Media Player
Name[ar]=مشغل وسائط mpv
Name[ca]=Reproductor multimèdia mpv
Name[cs]=mpv přehrávač
Name[da]=mpv-medieafspiller
Name[fr]=Lecteur multimédia mpv
Name[it]=Lettore multimediale mpv
Name[ja]=mpv メディアプレイヤー
Name[pl]=Odtwarzacz mpv
Name[ru]=Проигрыватель mpv
Name[tr]=mpv Ortam Oynatıcı
Name[zh_CN]=mpv 媒体播放器
Name[zh_TW]=mpv 媒體播放器
GenericName=Multimedia player
GenericName[ar]=مُشَغِّل وسائط متعددة
GenericName[cs]=Multimediální přehrávač
GenericName[da]=Multimedieafspiller
GenericName[fr]=Lecteur multimédia
GenericName[it]=Lettore multimediale
GenericName[ja]=マルチメディアプレイヤー
GenericName[ru]=Мультимедийный проигрыватель
GenericName[tr]=Çoklu ortam oynatıcı
GenericName[zh_CN]=多媒体播放器
GenericName[zh_TW]=多媒體播放器
Comment=Play movies and songs
Comment[ar]=شَغِّل الأفلام والأغاني
Comment[ca]=Reproduïu vídeos i cançons
Comment[cs]=Přehrává filmy a hudbu
Comment[da]=Afspil film og sange
Comment[de]=Filme und Musik abspielen
Comment[es]=Reproduzca vídeos y canciones
Comment[fr]=Lire des vidéos et des musiques
Comment[ja]=映画や音楽を再生する
Comment[it]=Riproduci video e canzoni
Comment[pl]=Odtwarzaj filmy i muzykę
Comment[ru]=Воспроизведение фильмов и музыки
Comment[tr]=Filmleri ve şarkıları oynatın
Comment[zh_CN]=播放电影和歌曲
Comment[zh_TW]=播放電影和歌曲
Icon=mpv
TryExec=mpv
Exec=mpv --player-operation-mode=pseudo-gui -- %U
Terminal=false
Categories=AudioVideo;Audio;Video;Player;TV;
MimeType=application/ogg;application/x-ogg;application/mxf;application/sdp;application/smil;application/x-smil;application/streamingmedia;application/x-streamingmedia;application/vnd.rn-realmedia;application/vnd.rn-realmedia-vbr;audio/aac;audio/x-aac;audio/vnd.dolby.heaac.1;audio/vnd.dolby.heaac.2;audio/aiff;audio/x-aiff;audio/m4a;audio/x-m4a;application/x-extension-m4a;audio/mp1;audio/x-mp1;audio/mp2;audio/x-mp2;audio/mp3;audio/x-mp3;audio/mpeg;audio/mpeg2;audio/mpeg3;audio/mpegurl;audio/x-mpegurl;audio/mpg;audio/x-mpg;audio/rn-mpeg;audio/musepack;audio/x-musepack;audio/ogg;audio/scpls;audio/x-scpls;audio/vnd.rn-realaudio;audio/wav;audio/x-pn-wav;audio/x-pn-windows-pcm;audio/x-realaudio;audio/x-pn-realaudio;audio/x-ms-wma;audio/x-pls;audio/x-wav;video/mpeg;video/x-mpeg2;video/x-mpeg3;video/mp4v-es;video/x-m4v;video/mp4;application/x-extension-mp4;video/divx;video/vnd.divx;video/msvideo;video/x-msvideo;video/ogg;video/quicktime;video/vnd.rn-realvideo;video/x-ms-afs;video/x-ms-asf;audio/x-ms-asf;application/vnd.ms-asf;video/x-ms-wmv;video/x-ms-wmx;video/x-ms-wvxvideo;video/x-avi;video/avi;video/x-flic;video/fli;video/x-flc;video/flv;video/x-flv;video/x-theora;video/x-theora+ogg;video/x-matroska;video/mkv;audio/x-matroska;application/x-matroska;video/webm;audio/webm;audio/vorbis;audio/x-vorbis;audio/x-vorbis+ogg;video/x-ogm;video/x-ogm+ogg;application/x-ogm;application/x-ogm-audio;application/x-ogm-video;application/x-shorten;audio/x-shorten;audio/x-ape;audio/x-wavpack;audio/x-tta;audio/AMR;audio/ac3;audio/eac3;audio/amr-wb;video/mp2t;audio/flac;audio/mp4;application/x-mpegurl;video/vnd.mpegurl;application/vnd.apple.mpegurl;audio/x-pn-au;video/3gp;video/3gpp;video/3gpp2;audio/3gpp;audio/3gpp2;video/dv;audio/dv;audio/opus;audio/vnd.dts;audio/vnd.dts.hd;audio/x-adpcm;application/x-cue;audio/m3u;audio/vnd.wave;video/vnd.avi;
X-KDE-Protocols=appending,file,ftp,hls,http,https,mms,mpv,rtmp,rtmps,rtmpt,rtmpts,rtp,rtsp,rtsps,sftp,srt,srtp,webdav,webdavs
StartupWMClass=mpv
Keywords=mpv;media;player;video;audio;tv;
Keywords[ar]=mpv;إم بي في;ام بي في;وسائط;مشغل;فيديو;مرئية;صوتي;تلفاز;

View File

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

View File

@@ -1,10 +0,0 @@
[Desktop Entry]
Version=1.0
Type=Application
Name=Omarchy
Comment=Omarchy TUI
Exec=alacritty --class=Omarchy --title=Omarchy -e bash -c '$HOME/.local/share/omarchy/bin/omarchy'
Icon=Arch
Terminal=false
Categories=System;Utility;
StartupNotify=false

View File

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

View File

@@ -1,141 +0,0 @@
#!/bin/bash
OMARCHY_VERSION=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null)
PATH="$PATH:$HOME/.local/share/omarchy/bin"
show_ascii_art() {
clear
cat <<'EOF'
▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀██████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ████████▀ ███ █▀ ▀█████▀
███ ███
EOF
echo " $OMARCHY_VERSION"
}
main_menu() {
show_ascii_art
local options=("Theme" "Setup" "Update" "Manual" "Exit")
choice=$(printf "%s\n" "${options[@]}" | gum choose --header "") || exit 0
case "$choice" in
Theme) theme_menu ;;
Update) update_menu ;;
Setup) setup_menu ;;
Manual) open_manual ;;
Exit) clear && exit 0 ;;
esac
}
update_menu() {
show_ascii_art
local menu=("Omarchy" "Waybar" "Wofi" "Plymouth" "Desktop apps" "Back")
local commands=(
"omarchy-update"
"omarchy-refresh-waybar"
"omarchy-refresh-wofi"
"omarchy-refresh-plymouth"
"omarchy-refresh-applications"
"main_menu"
)
local choice
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Update") || main_menu
for i in "${!menu[@]}"; do
if [[ "${menu[$i]}" == "$choice" ]]; then
if [[ "$choice" == "Back" ]]; then
main_menu
else
eval "${commands[$i]}"
ack_command
main_menu
fi
break
fi
done
}
theme_menu() {
show_ascii_art
local menu=("Pick" "Install" "Remove" "Back")
local commands=(
"omarchy-theme-menu"
"install_theme_prompt"
"remove_theme_prompt"
"main_menu"
)
local choice
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Theme") || main_menu
for i in "${!menu[@]}"; do
if [[ "${menu[$i]}" == "$choice" ]]; then
if [[ "$choice" == "Back" ]]; then
main_menu
else
eval "${commands[$i]}"
ack_command
main_menu
fi
break
fi
done
}
install_theme_prompt() {
local url
url=$(gum input --placeholder="Git repo URL for theme" --header="")
if [[ -n "$url" ]]; then
omarchy-theme-install "$url"
fi
theme_menu
}
remove_theme_prompt() {
local theme
theme=$(gum input --placeholder="Theme name" --header="")
if [[ -n "$theme" ]]; then
omarchy-theme-remove "$theme"
fi
theme_menu
}
setup_menu() {
show_ascii_art
local menu=("Add fingerprint sensor" "Remove fingerprint sensor" "Add Fido2 device" "Remove Fido2 device" "Back")
local commands=(
"omarchy-setup-fingerprint"
"omarchy-setup-fingerprint --remove"
"omarchy-setup-fido2"
"omarchy-setup-fido2 --remove"
"main_menu"
)
local choice
choice=$(printf "%s\n" "${menu[@]}" | gum choose --header="Setup") || main_menu
for i in "${!menu[@]}"; do
if [[ "${menu[$i]}" == "$choice" ]]; then
if [[ "$choice" == "Back" ]]; then
main_menu
else
eval "${commands[$i]}"
ack_command
main_menu
fi
break
fi
done
}
open_manual() {
setsid chromium --new-window --ozone-platform=wayland --app="https://manuals.omamix.org/2/the-omarchy-manual" >/dev/null 2>&1 &
clear
}
ack_command() {
gum spin --spinner "globe" --title "Done!" -- sleep 1
}
main_menu

View File

@@ -14,7 +14,7 @@ get_battery_state() {
} }
send_notification() { send_notification() {
notify-send -u critical "Battery Low" "Time to recharge! (battery is at ${1}%)" -i battery-caution notify-send -u critical "󱐋 Time to recharge!" "Battery is down to ${1}%" -i battery-caution -t 30000
} }
BATTERY_LEVEL=$(get_battery_percentage) BATTERY_LEVEL=$(get_battery_percentage)

32
bin/omarchy-cmd-screenrecord Executable file
View File

@@ -0,0 +1,32 @@
#!/bin/bash
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENRECORD_DIR:-${XDG_VIDEOS_DIR:-$HOME/Videos}}"
if [[ ! -d "$OUTPUT_DIR" ]]; then
notify-send "Screen recording directory does not exist: $OUTPUT_DIR" -u critical -t 3000
exit 1
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 -qi 'nvidia'; then
wf-recorder -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" "$@"
fi
}
if pgrep -x wl-screenrec >/dev/null || pgrep -x wf-recorder >/dev/null; then
pkill -x wl-screenrec
pkill -x wf-recorder
notify-send "Screen recording saved to $OUTPUT_DIR" -t 2000
elif [[ "$1" == "output" ]]; then
screenrecording
else
region=$(slurp) || exit 1
screenrecording -g "$region"
fi

20
bin/omarchy-cmd-screensaver Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
if command -v tte &>/dev/null; then
while true; do
effect=$(tte 2>&1 | grep -oP '{\K[^}]+' | tr ',' ' ' | tr ' ' '\n' | sed -n '/^beams$/,$p' | sort -u | shuf -n1)
tte -i ~/.local/share/omarchy/logo.txt \
--frame-rate 240 --canvas-width 0 --canvas-height $(($(tput lines) - 2)) --anchor-canvas c --anchor-text c \
"$effect" &
while pgrep tte >/dev/null; do
if read -n 1 -t 0.01; then
pkill tte 2>/dev/null
pkill -f "alacritty --class Screensaver" 2>/dev/null
exit 0
fi
done
done
else
gum spin --title "Can't find tte. Try: pip install terminaltexteffects" -- sleep 2
fi

17
bin/omarchy-cmd-screenshot Executable file
View File

@@ -0,0 +1,17 @@
#!/bin/bash
[[ -f ~/.config/user-dirs.dirs ]] && source ~/.config/user-dirs.dirs
OUTPUT_DIR="${OMARCHY_SCREENSHOT_DIR:-${XDG_PICTURES_DIR:-$HOME/Pictures}}"
if [[ ! -d "$OUTPUT_DIR" ]]; then
notify-send "Screenshot directory does not exist: $OUTPUT_DIR" -u critical -t 3000
exit 1
fi
pkill slurp || hyprshot -m ${1:-region} --raw |
satty --filename - \
--output-filename "$OUTPUT_DIR/screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png" \
--early-exit \
--actions-on-enter save-to-clipboard \
--save-after-copy \
--copy-command 'wl-copy'

5
bin/omarchy-cmd-tzupdate Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
sudo tzupdate
new_timezone=$(timedatectl show -p Timezone --value)
notify-send "Timezone has been set to $new_timezone"

View File

@@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
cd ~/.local/share/omarchy
migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh" migration_file="$HOME/.local/share/omarchy/migrations/$(git log -1 --format=%cd --date=unix).sh"
touch $migration_file touch $migration_file
nvim $migration_file nvim $migration_file
echo -e "Run with:\nsource $migration_file"

View File

@@ -1,8 +0,0 @@
#!/bin/bash
# Link all the key config files to omarchy's internal versions for quicker testing
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.jsonc ~/.config/waybar/
ln -nsf ~/.local/share/omarchy/config/wofi/config ~/.config/wofi/

3
bin/omarchy-font-current Executable file
View File

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

3
bin/omarchy-font-list Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
fc-list :spacing=100 -f "%{family[0]}\n" | grep -v -i -E 'emoji|signwriting' | sort -u

24
bin/omarchy-font-set Executable file
View File

@@ -0,0 +1,24 @@
#!/bin/bash
font_name="$1"
if [[ -n "$font_name" && "$font_name" != "CNCLD" ]]; then
if fc-list | grep -iq "$font_name"; then
sed -i "s/family = \".*\"/family = \"$font_name\"/g" ~/.config/alacritty/alacritty.toml
sed -i "s/font-family: .*/font-family: $font_name;/g" ~/.config/waybar/style.css
sed -i "s/font-family: .*/font-family: $font_name;/g" ~/.config/swayosd/style.css
xmlstarlet ed -L \
-u '//match[@target="pattern"][test/string="monospace"]/edit[@name="family"]/string' \
-v "$font_name" \
~/.config/fontconfig/fonts.conf
omarchy-restart-waybar
omarchy-restart-swayosd
omarchy-restart-walker
else
echo "Font '$font_name' not found."
exit 1
fi
else
echo "Usage: omarchy-font-set <font-name>"
fi

111
bin/omarchy-install-dev-env Executable file
View File

@@ -0,0 +1,111 @@
#!/bin/bash
if [[ -z "$1" ]]; then
echo "Usage: omarchy-instal-dev-env <ruby|node|bun|go|laravel|symfony|php|python|elixir|rust|java|ocaml|dotnet>" >&2
exit 1
fi
install_php() {
yay -Sy php composer php-sqlite --noconfirm
# Install Path for Composer
if [[ ":$PATH:" != *":$HOME/.config/composer/vendor/bin:"* ]]; then
echo 'export PATH="$HOME/.config/composer/vendor/bin:$PATH"' >>"$HOME/.bashrc"
source "$HOME/.bashrc"
echo "Added Composer global bin directory to PATH."
else
echo "Composer global bin directory already in PATH."
fi
# Enable some extensions
local php_ini_path="/etc/php/php.ini"
local extensions_to_enable=(
"bcmath"
"intl"
"iconv"
"openssl"
"pdo_sqlite"
"pdo_mysql"
)
for ext in "${extensions_to_enable[@]}"; do
sudo sed -i "s/^;extension=${ext}/extension=${ext}/" "$php_ini_path"
done
}
case "$1" in
ruby)
echo -e "Installing Ruby on Rails...\n"
mise use --global ruby@latest
mise settings add idiomatic_version_file_enable_tools ruby
mise x ruby -- gem install rails --no-document
echo -e "\nYou can now run: rails new myproject"
;;
node)
echo -e "Installing Node.js...\n"
mise use --global node@lts
;;
bun)
echo -e "Installing Bun...\n"
mise use -g bun@latest
;;
deno)
echo -e "Installing Deno...\n"
mise use -g deno@latest
;;
go)
echo -e "Installing Go...\n"
mise use --global go@latest
;;
php)
echo -e "Installing PHP...\n"
install_php
;;
laravel)
echo -e "Installing PHP and Laravel...\n"
install_php
composer global require laravel/installer
echo -e "\nYou can now run: laravel new myproject"
;;
symfony)
echo -e "Installing PHP and Symfony...\n"
install_php
yay -S symfony-cli --noconfirm
echo -e "\nYou can now run: symfony new --webapp myproject"
;;
python)
echo -e "Installing Python...\n"
mise use --global python@latest
echo -e "\nInstalling uv...\n"
wget -qO- https://astral.sh/uv/install.sh | sh
;;
elixir)
echo -e "Installing Elixir...\n"
mise use --global erlang@latest
mise use --global elixir@latest
mise x elixir -- mix local.hex --force
;;
rust)
echo -e "Installing Rust...\n"
bash -c "$(curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs)" -- -y
;;
java)
echo -e "Installing Java...\n"
mise use --global java@latest
;;
zig)
echo -e "Installing Zig...\n"
mise use --global zig@latest
;;
ocaml)
echo -e "Installing OCaml...\n"
bash -c "$(curl -fsSL https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh)"
opam init --yes
eval "$(opam env)"
opam install ocaml-lsp-server odoc ocamlformat utop --yes
;;
dotnet)
echo -e "Installing .NET...\n"
mise use --global dotnet@latest
;;
esac

15
bin/omarchy-install-docker-dbs Executable file
View File

@@ -0,0 +1,15 @@
#!/bin/bash
options=("MariaDB" "MySQL" "Redis" "PostgreSQL")
choices=$(printf "%s\n" "${options[@]}" | gum choose --no-limit --header "Select databases (space to select, return to install, esc to cancel)") || main_menu
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 ;;
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 ;;
esac
done
fi

9
bin/omarchy-install-dropbox Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
echo "Installing all dependencies..."
yay -S --noconfirm --needed \
dropbox dropbox-cli libappindicator-gtk3 python-gpgme nautilus-dropbox
echo "Starting Dropbox..."
uwsm app -- dropbox-cli start &>/dev/null &
echo "See Dropbox icon behind  hover tray in top right and right-click for setup."

9
bin/omarchy-install-steam Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
echo "Adding multilib repository for 32-bit compatibility"
sudo sed -i '/^\s*#\[multilib\]/,/^$/{s/^\s*#//}' /etc/pacman.conf
sudo pacman -Sy
echo "Now pick dependencies matching your graphics card"
yay -S steam
setsid gtk-launch steam >/dev/null 2>&1 &

8
bin/omarchy-install-tailscale Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/bash
curl -fsSL https://tailscale.com/install.sh | sh
echo -e "\nStarting Tailscale..."
sudo tailscale up --accept-routes
omarchy-webapp-install "Tailscale" "https://login.tailscale.com/admin/machines" https://cdn.jsdelivr.net/gh/homarr-labs/dashboard-icons/png/tailscale-light.png

16
bin/omarchy-launch-screensaver Executable file
View File

@@ -0,0 +1,16 @@
#!/bin/bash
# Exit early if screensave is already running
pgrep -f "alacritty --class Screensaver" && exit 0
focused=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true).name')
for m in $(hyprctl monitors -j | jq -r '.[] | .name'); do
hyprctl dispatch focusmonitor $m
hyprctl dispatch exec -- \
alacritty --class Screensaver \
--config-file ~/.local/share/omarchy/default/alacritty/screensaver.toml \
-e omarchy-cmd-screensaver
done
hyprctl dispatch focusmonitor $focused

12
bin/omarchy-lock-screen Executable file
View File

@@ -0,0 +1,12 @@
#!/bin/bash
# Lock the screen
pidof hyprlock || hyprlock &
# Ensure 1password is locked
if pgrep -x "1password" >/dev/null; then
1password --lock &
fi
# Avoid running screensaver when locked
pkill -f "alacritty --class Screensaver"

367
bin/omarchy-menu Executable file
View File

@@ -0,0 +1,367 @@
#!/bin/bash
export PATH="$HOME/.local/share/omarchy/bin:$PATH"
menu() {
local prompt="$1"
local options="$2"
local extra="$3"
local preselect="$4"
read -r -a args <<<"$extra"
if [[ -n "$preselect" ]]; then
local index
index=$(echo -e "$options" | grep -nxF "$preselect" | cut -d: -f1)
if [[ -n "$index" ]]; then
args+=("-a" "$index")
fi
fi
echo -e "$options" | walker --dmenu --theme dmenu_250 -p "$prompt…" "${args[@]}"
}
terminal() {
alacritty --class Omarchy -e $1
}
present_terminal() {
alacritty --class Omarchy -e bash -c "omarchy-show-logo; eval \"$1\"; omarchy-show-done;"
}
edit_in_nvim() {
notify-send "Editing config file" "$1"
alacritty -e nvim "$1"
}
open_web() {
setsid chromium --new-window --app="$1" &
}
install() {
present_terminal "echo 'Installing $1...'; yay -Sy --noconfirm $2"
}
install_and_launch() {
present_terminal "echo 'Installing $1...'; yay -Sy --noconfirm $2 && setsid gtk-launch $3"
}
install_font() {
present_terminal "echo 'Installing $1...'; yay -Sy --noconfirm --needed $2 && sleep 2 && omarchy-font-set '$3'"
}
show_learn_menu() {
case $(menu "Learn" " Keybindings\n Omarchy\n Hyprland\n󰣇 Arch\n Neovim\n󱆃 Bash") in
*Keybindings*) omarchy-menu-keybindings ;;
*Omarchy*) open_web "https://manuals.omamix.org/2/the-omarchy-manual" ;;
*Hyprland*) open_web "https://wiki.hypr.land/" ;;
*Arch*) open_web "https://wiki.archlinux.org/title/Main_page" ;;
*Bash*) open_web "https://devhints.io/bash" ;;
*Neovim*) open_web "https://www.lazyvim.org/keymaps" ;;
*) show_main_menu ;;
esac
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n Font\n Background") in
*Theme*) show_theme_menu ;;
*Font*) show_font_menu ;;
*Background*) omarchy-theme-bg-next ;;
*) show_main_menu ;;
esac
}
show_theme_menu() {
theme=$(menu "Theme" "$(omarchy-theme-list)" "" "$(omarchy-theme-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
else
omarchy-theme-set "$theme"
fi
}
show_font_menu() {
theme=$(menu "Font" "$(omarchy-font-list)" "-w 350" "$(omarchy-font-current)")
if [[ "$theme" == "CNCLD" || -z "$theme" ]]; then
show_main_menu
else
omarchy-font-set "$theme"
fi
}
show_capture_menu() {
case $(menu "Capture" " Screenshot\n Screenrecord\n󰃉 Color") in
*Screenshot*) show_screenshot_menu ;;
*Screenrecord*) show_screenrecord_menu ;;
*Color*) pkill hyprpicker || hyprpicker -a ;;
*) show_main_menu ;;
esac
}
show_screenshot_menu() {
case $(menu "Screenshot" " Region\n Window\n Display") in
*Region*) omarchy-cmd-screenshot ;;
*Window*) omarchy-cmd-screenshot window ;;
*Display*) omarchy-cmd-screenshot output ;;
*) show_capture_menu ;;
esac
}
show_screenrecord_menu() {
case $(menu "Screenrecord" " Region\n Display") in
*Region*) omarchy-cmd-screenrecord ;;
*Display*) omarchy-cmd-screenrecord output ;;
*) show_capture_menu ;;
esac
}
show_toggle_menu() {
case $(menu "Toggle" "󱄄 Screensaver\n󰔎 Nightlight\n󱫖 Idle Lock\n󰍜 Top Bar") in
*Screensaver*) omarchy-launch-screensaver ;;
*Nightlight*) omarchy-toggle-nightlight ;;
*Idle*) omarchy-toggle-idle ;;
*Bar*) pkill -SIGUSR1 waybar ;;
*) show_main_menu ;;
esac
}
show_setup_menu() {
local options=" Audio\n Wifi\n󰂯 Bluetooth\n󱐋 Power Profile\n󰍹 Monitors"
[ -f ~/.config/hypr/bindings.conf ] && options="$options\n Keybindings"
[ -f ~/.config/hypr/input.conf ] && options="$options\n Input"
options="$options\n Config\n󰈷 Fingerprint\n Fido2"
case $(menu "Setup" "$options") in
*Audio*) alacritty --class=Wiremix -e wiremix ;;
*Wifi*) alacritty --class=Impala -e impala ;;
*Bluetooth*) blueberry ;;
*Power*) show_setup_power_menu ;;
*Monitors*) edit_in_nvim ~/.config/hypr/monitors.conf ;;
*Keybindings*) edit_in_nvim ~/.config/hypr/bindings.conf ;;
*Input*) edit_in_nvim ~/.config/hypr/input.conf ;;
*Config*) show_setup_config_menu ;;
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-fido2 ;;
*) show_main_menu ;;
esac
}
show_setup_power_menu() {
profile=$(menu "Power Profile" "$(omarchy-powerprofiles-list)" "" "$(powerprofilesctl get)")
if [[ "$profile" == "CNCLD" || -z "$profile" ]]; then
show_main_menu
else
powerprofilesctl set "$profile"
fi
}
show_setup_config_menu() {
case $(menu "Setup" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar\n󰞅 XCompose") in
*Hyprland*) edit_in_nvim ~/.config/hypr/hyprland.conf ;;
*Hypridle*) edit_in_nvim ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle ;;
*Hyprlock*) edit_in_nvim ~/.config/hypr/hyprlock.conf ;;
*Hyprsunset*) edit_in_nvim ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset ;;
*Swayosd*) edit_in_nvim ~/.config/swayosd/config.toml && omarchy-restart-swayosd ;;
*Walker*) edit_in_nvim ~/.config/walker/config.toml && omarchy-restart-walker ;;
*Waybar*) edit_in_nvim ~/.config/waybar/config.jsonc && omarchy-restart-waybar ;;
*XCompose*) edit_in_nvim ~/.XCompose && omarchy-restart-xcompose ;;
*) show_main_menu ;;
esac
}
show_install_menu() {
case $(menu "Install" "󰣇 Package\n Web App\n Service\n Style\n󰵮 Development\n Editor\n󱚤 AI\n Gaming") in
*Package*) terminal omarchy-pkg-install ;;
*Web*) present_terminal omarchy-webapp-install ;;
*Service*) show_install_service_menu ;;
*Style*) show_install_style_menu ;;
*Development*) show_install_development_menu ;;
*Editor*) show_install_editor_menu ;;
*AI*) show_install_ai_menu ;;
*Gaming*) show_install_gaming_menu ;;
*) show_main_menu ;;
esac
}
show_install_service_menu() {
case $(menu "Install" " Dropbox\n Tailscale") in
*Dropbox*) present_terminal omarchy-install-dropbox ;;
*Tailscale*) present_terminal omarchy-install-tailscale ;;
*) show_install_menu ;;
esac
}
show_install_editor_menu() {
case $(menu "Install" " VSCode\n Cursor\n Zed\n Sublime Text\n Helix") in
*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" ;;
*Helix*) install "Helix" "helix" ;;
*) show_install_menu ;;
esac
}
show_install_ai_menu() {
case $(menu "Install" "󱚤 Claude Code\n󱚤 Gemini\n󱚤 LM Studio\n󱚤 Ollama\n󱚤 Crush\n󱚤 opencode") in
*Claude*) install "Claude Code" "claude-code" ;;
*Gemini*) install "Gemini" "gemini-cli-bin" ;;
*Studio*) install "LM Studio" "lmstudio" ;;
*Ollama*) install "Ollama" "ollama" ;;
*Crush*) install "Crush" "crush-bin" ;;
*opencode*) install "opencode" "opencode-bin" ;;
*) show_install_menu ;;
esac
}
show_install_gaming_menu() {
case $(menu "Install" " Steam\n RetroArch\n󰍳 Minecraft") in
*Steam*) present_terminal omarchy-install-steam ;;
*RetroArch*) install_and_launch "RetroArch" "retroarch retroarch-assets libretro libretro-fbneo" "com.libretro.RetroArch.desktop" ;;
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
*) show_install_menu ;;
esac
}
show_install_style_menu() {
case $(menu "Install" "󰸌 Theme\n Background\n Font") in
*Theme*) present_terminal omarchy-theme-install ;;
*Background*) nautilus ~/.config/omarchy/current/theme/backgrounds ;;
*Font*) show_install_font_menu ;;
*) show_install_menu ;;
esac
}
show_install_font_menu() {
case $(menu "Install" " Meslo LG Mono\n Fira Code\n Victor Code\n Bistream Vera Mono" "-w 350") in
*Meslo*) install_font "Meslo LG Mono" "ttf-meslo-nerd" "MesloLGL Nerd Font" ;;
*Fira*) install_font "Fira Code" "ttf-firacode-nerd" "FiraCode Nerd Font" ;;
*Victor*) install_font "Victor Code" "ttf-victor-mono-nerd" "VictorMono Nerd Font" ;;
*Bistream*) install_font "Bistream Vera Code" "ttf-bitstream-vera-mono-nerd" "BitstromWera Nerd Font" ;;
*) show_install_menu ;;
esac
}
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
*Rails*) present_terminal "omarchy-install-dev-env ruby" ;;
*Docker*) present_terminal omarchy-install-docker-dbs ;;
*JavaScript*) show_install_javascript_menu ;;
*Go*) present_terminal "omarchy-install-dev-env go" ;;
*PHP*) show_install_php_menu ;;
*Python*) present_terminal "omarchy-install-dev-env python" ;;
*Elixir*) present_terminal "omarchy-install-dev-env elixir" ;;
*Zig*) present_terminal "omarchy-install-dev-env zig" ;;
*Rust*) present_terminal "omarchy-install-dev-env rust" ;;
*Java*) present_terminal "omarchy-install-dev-env java" ;;
*NET*) present_terminal "omarchy-install-dev-env dotnet" ;;
*Ocaml*) present_terminal "omarchy-install-dev-env ocaml" ;;
*) show_install_menu ;;
esac
}
show_install_javascript_menu() {
case $(menu "Install" " Node.js\n Bun\n Deno") in
*Node*) present_terminal "omarchy-install-dev-env node" ;;
*Bun*) present_terminal "omarchy-install-dev-env bun" ;;
*Deno*) present_terminal "omarchy-install-dev-env deno" ;;
*) show_install_development_menu ;;
esac
}
show_install_php_menu() {
case $(menu "Install" " PHP\n Laravel\n Symfony") in
*PHP*) present_terminal "omarchy-install-dev-env php" ;;
*Laravel*) present_terminal "omarchy-install-dev-env laravel" ;;
*Symfony*) present_terminal "omarchy-install-dev-env symfony" ;;
*) show_install_development_menu ;;
esac
}
show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Web App\n󰸌 Theme\n󰈷 Fingerprint\n Fido2") in
*Package*) terminal omarchy-pkg-remove ;;
*Web*) present_terminal omarchy-webapp-remove ;;
*Theme*) present_terminal omarchy-theme-remove ;;
*Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;;
*Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;;
*) show_main_menu ;;
esac
}
show_update_menu() {
case $(menu "Update" "󰣇 Omarchy\n Config\n󰸌 Themes\n Process\n Timezone") in
*Omarchy*) present_terminal omarchy-update ;;
*Config*) show_update_config_menu ;;
*Themes*) present_terminal omarchy-theme-update ;;
*Process*) show_update_process_menu ;;
*Timezone*) omarchy-cmd-tzupdate ;;
*) show_main_menu ;;
esac
}
show_update_process_menu() {
case $(menu "Restart" " Hypridle\n Hyprsunset\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in
*Hypridle*) omarchy-restart-hypridle ;;
*Hyprsunset*) omarchy-restart-hyprsunset ;;
*Swayosd*) omarchy-restart-swayosd ;;
*Walker*) omarchy-restart-walker ;;
*Waybar*) omarchy-restart-waybar ;;
*) show_main_menu ;;
esac
}
show_update_config_menu() {
case $(menu "Use default config" " Hyprland\n Hypridle\n Hyprlock\n Hyprsunset\n󱣴 Plymouth\n Swayosd\n󰌧 Walker\n󰍜 Waybar") in
*Hyprland*) present_terminal omarchy-refresh-hyprland ;;
*Hypridle*) present_terminal omarchy-refresh-hypridle ;;
*Hyprlock*) present_terminal omarchy-refresh-hyprlock ;;
*Hyprsunset*) present_terminal omarchy-refresh-hyprsunset ;;
*Plymouth*) present_terminal omarchy-refresh-plymouth ;;
*Swayosd*) present_terminal omarchy-refresh-swayosd ;;
*Walker*) present_terminal omarchy-refresh-walker ;;
*Waybar*) present_terminal omarchy-refresh-waybar ;;
*) show_main_menu ;;
esac
}
show_system_menu() {
case $(menu "System" " Lock\n󰤄 Suspend\n Relaunch\n󰜉 Restart\n󰐥 Shutdown") in
*Lock*) omarchy-lock-screen ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
*) show_main_menu ;;
esac
}
show_main_menu() {
go_to_menu "$(menu "Go" "󰀻 Apps\n󰧑 Learn\n Capture\n󰔎 Toggle\n Style\n Setup\n󰉉 Install\n󰭌 Remove\n Update\n About\n System")"
}
go_to_menu() {
case "${1,,}" in
*apps*) walker -p "Launch…" ;;
*learn*) show_learn_menu ;;
*style*) show_style_menu ;;
*theme*) show_theme_menu ;;
*capture*) show_capture_menu ;;
*screenshot*) show_screenshot_menu ;;
*screenrecord*) show_screenrecord_menu ;;
*toggle*) show_toggle_menu ;;
*setup*) show_setup_menu ;;
*install*) show_install_menu ;;
*remove*) show_remove_menu ;;
*update*) show_update_menu ;;
*system*) show_system_menu ;;
*about*) gtk-launch About.desktop ;;
esac
}
if [[ -n "$1" ]]; then
go_to_menu "$1"
else
show_main_menu
fi

View File

@@ -1,38 +1,49 @@
#!/bin/bash #!/bin/bash
# A script to display Hyprland keybindings defined in your configuration # 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" # Fetch dynamic keybindings from Hyprland
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" #
# Also do some pre-processing:
# - Remove standard Omarchy bin path prefix
# - Remove uwsm prefix
# - Map numeric modifier key mask to a textual rendition
# - Output comma-separated values that the parser can understand
dynamic_bindings() {
hyprctl -j binds | \
jq -r '.[] | {modmask, key, keycode, description, dispatcher, arg} | "\(.modmask),\(.key)@\(.keycode),\(.description),\(.dispatcher),\(.arg)"' | \
sed -r \
-e 's/null//' \
-e 's,~/.local/share/omarchy/bin/,,' \
-e 's,uwsm app -- ,,' \
-e 's/@0//' \
-e 's/,@/,code:/' \
-e 's/^0,/,/' \
-e 's/^1,/SHIFT,/' \
-e 's/^4,/CTRL,/' \
-e 's/^5,/SHIFT CTRL,/' \
-e 's/^8,/ALT,/' \
-e 's/^9,/SHIFT ALT,/' \
-e 's/^12,/CTRL ALT,/' \
-e 's/^13,/SHIFT CTRL ALT,/' \
-e 's/^64,/SUPER,/' \
-e 's/^65,/SUPER SHIFT,/' \
-e 's/^68,/SUPER CTRL,/' \
-e 's/^69,/SUPER SHIFT CTRL,/' \
-e 's/^72,/SUPER ALT,/'
}
OMARCHY_BINDINGS_CONF="$HOME/.local/share/omarchy/default/hypr/bindings.conf \ # Parse and format keybindings
$HOME/.local/share/omarchy/default/hypr/bindings/tiling.conf \ #
$HOME/.local/share/omarchy/default/hypr/bindings/utilities.conf \ # `awk` does the heavy lifting:
$HOME/.local/share/omarchy/default/hypr/media.conf" # - Set the field separator to a comma ','.
# - Joins the key combination (e.g., "SUPER + Q").
# Process the configuration file to extract and format keybindings # - Joins the command that the key executes.
# 1. `grep` finds all lines starting with 'bind' (allowing for leading spaces). # - Prints everything in a nicely aligned format.
# 2. The first `sed` removes comments (anything after a '#'). parse_bindings() {
# 3. `awk` does the heavy lifting of formatting the output.
# - It sets the field separator to a comma ','.
# - It removes the 'bind... =' part from the beginning of the line.
# - It joins the key combination (e.g., "SUPER + Q").
# - It joins the command that the key executes.
# - It prints everything in a nicely aligned format.
# 4. The final `sed` cleans up any leftover commas from the end of lines.
grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
sed 's/#.*//' |
sed '/^[[:space:]]*$/d' |
sort -u |
awk -F, ' awk -F, '
{ {
# Strip trailing comments
sub(/#.*/, "");
# Remove the "bind... =" part and surrounding whitespace
sub(/^[[:space:]]*bind[^=]*=(\+[[:space:]])?(exec, )?[[:space:]]*/, "", $1);
# Combine the modifier and key (first two fields) # Combine the modifier and key (first two fields)
key_combo = $1 " + " $2; key_combo = $1 " + " $2;
@@ -40,9 +51,12 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
gsub(/^[ \t]*\+?[ \t]*/, "", key_combo); gsub(/^[ \t]*\+?[ \t]*/, "", key_combo);
gsub(/[ \t]+$/, "", key_combo); gsub(/[ \t]+$/, "", key_combo);
# Use description, if set
action = $3;
if (action == "") {
# Reconstruct the command from the remaining fields # Reconstruct the command from the remaining fields
action = ""; for (i = 4; i <= NF; i++) {
for (i = 3; i <= NF; i++) {
action = action $i (i < NF ? "," : ""); action = action $i (i < NF ? "," : "");
} }
@@ -52,8 +66,21 @@ grep -h '^[[:space:]]*bind' $USER_HYPRLAND_CONF $OMARCHY_BINDINGS_CONF |
gsub(/^[ \t]+|[ \t]+$/, "", action); gsub(/^[ \t]+|[ \t]+$/, "", action);
gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one gsub(/[ \t]+/, " ", key_combo); # Collapse multiple spaces to one
# Escape XML entities
gsub(/&/, "\\&amp;", action);
gsub(/</, "\\&lt;", action);
gsub(/>/, "\\&gt;", action);
gsub(/"/, "\\&quot;", action);
gsub(/'"'"'/, "\\&apos;", action);
}
if (action != "") { if (action != "") {
printf "%-35s → %s\n", key_combo, action; printf "%-35s → %s\n", key_combo, action;
} }
}' | }'
wofi -dmenu -i --width 60% --height 70% -p 'Hyprland Keybindings' -O alphabetical }
dynamic_bindings | \
sort -u | \
parse_bindings | \
walker --dmenu --theme keybindings -p 'Keybindings'

View File

@@ -1,25 +0,0 @@
#!/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() {
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)
case "$selection" in
*Lock*) hyprlock ;;
*Suspend*) systemctl suspend ;;
*Relaunch*) uwsm stop ;;
*Restart*) systemctl reboot ;;
*Shutdown*) systemctl poweroff ;;
esac
}
# Main execution
show_power_menu

18
bin/omarchy-migrate Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
set -e
# Where we store an empty file for each migration that has already been performed.
STATE_DIR="$HOME/.local/state/omarchy/migrations"
mkdir -p "$STATE_DIR"
# Run any pending migrations
for file in ~/.local/share/omarchy/migrations/*.sh; do
filename=$(basename "$file")
if [[ ! -f "$STATE_DIR/$filename" ]]; then
echo -e "\e[32m\nRunning migration (${filename%.sh})\e[0m"
source $file
touch "$STATE_DIR/$filename"
fi
done

18
bin/omarchy-pkg-install Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
fzf_args=(
--multi
--preview 'echo "alt-p: toggle description, alt-j/k: scroll, F11: maximize"; echo; yay -Sii {1}'
--preview-window 'down:65%:wrap'
--bind 'alt-p:toggle-preview'
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
--bind 'alt-k:preview-up,alt-j:preview-down'
)
pkg_name=$(yay -Slq | fzf "${fzf_args[@]}")
if [[ -n "$pkg_name" ]]; then
yay -Sy --noconfirm "$pkg_name"
sudo updatedb
omarchy-show-done
fi

18
bin/omarchy-pkg-remove Executable file
View File

@@ -0,0 +1,18 @@
#!/bin/bash
fzf_args=(
--multi
--preview 'echo "alt-p: toggle description, alt-j/k: scroll, F11: maximize"; echo; yay -Qi {1}'
--preview-window 'down:65%:wrap'
--bind 'alt-p:toggle-preview'
--bind 'alt-d:preview-half-page-down,alt-u:preview-half-page-up'
--bind 'alt-k:preview-up,alt-j:preview-down'
)
pkg_name=$(yay -Qqe | fzf "${fzf_args[@]}")
if [[ -n "$pkg_name" ]]; then
yay -Rns --noconfirm "$pkg_name"
sudo updatedb
omarchy-show-done
fi

5
bin/omarchy-powerprofiles-list Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
powerprofilesctl list |
awk '/^\s*[* ]\s*[a-zA-Z0-9\-]+:$/ { gsub(/^[*[:space:]]+|:$/,""); print }' |
tac

View File

@@ -10,7 +10,8 @@ mkdir -p ~/.local/share/applications
cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/*.desktop ~/.local/share/applications/
cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/hidden/*.desktop ~/.local/share/applications/
if [ -z "$OMARCHY_BARE" ]; then # Only copy xtras if user is not in bare mode
if [[ ! -f ~/.local/state/omarchy/bare.mode ]] && [ -z "$OMARCHY_BARE" ]; then
cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/ cp ~/.local/share/omarchy/applications/xtras/*.desktop ~/.local/share/applications/
fi fi

40
bin/omarchy-refresh-config Executable file
View File

@@ -0,0 +1,40 @@
#!/bin/bash
# This script deploys ~/.local/share/omarchy/config/X/Y/Z -> ~/.config/X/Y/Z
config_file=$1
if [[ -z "$config_file" ]]; then
cat <<USAGE
Usage: $0 [config_file]
Must provide a file path from the .config directory to be refreshed.
To copy ~/.local/share/omarchy/config/hypr/hyprlock.conf to ~/.config/hypr/hyprlock.conf
$0 hypr/hyprlock.conf
USAGE
exit 1
fi
# Backup the destination file (with timestamp) to avoid clobbering (Ex: hyprlock.conf.bak.1753817951)
user_config_file="${HOME}/.config/$config_file"
default_config_file="${HOME}/.local/share/omarchy/config/$config_file"
backup_config_file="$user_config_file.bak.$(date +%s)"
if [[ -f "$user_config_file" ]]; then
# Create preliminary backup
cp -f "$user_config_file" "$backup_config_file" 2>/dev/null
# Replace config with new default
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
# Compare and delete/inform accordingly
if cmp -s "$user_config_file" "$backup_config_file"; then
rm "$backup_config_file"
else
echo -e "\e[31mReplaced $user_config_file with new Omarchy default.\nSaved backup as ${backup_config_file}.\n\n\e[32mChanges:\e[0m"
diff "$user_config_file" "$backup_config_file" || true
fi
else
# Config file did not exist already
cp -f "$default_config_file" "$user_config_file" 2>/dev/null
fi

4
bin/omarchy-refresh-hypridle Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
omarchy-refresh-config hypr/hypridle.conf
omarchy-restart-hypridle

7
bin/omarchy-refresh-hyprland Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
omarchy-refresh-config hypr/autostart.conf
omarchy-refresh-config hypr/bindings.conf
omarchy-refresh-config hypr/envs.conf
omarchy-refresh-config hypr/input.conf
omarchy-refresh-config hypr/hyprland.conf

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

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-refresh-config hypr/hyprlock.conf

4
bin/omarchy-refresh-hyprsunset Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
omarchy-refresh-config hypr/hyprsunset.conf
omarchy-restart-hyprsunset

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

@@ -0,0 +1,5 @@
#!/bin/bash
omarchy-refresh-config swayosd/config.toml
omarchy-refresh-config swayosd/style.css
omarchy-restart-swayosd

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

@@ -0,0 +1,4 @@
#!/bin/bash
omarchy-refresh-config walker/config.toml
omarchy-restart-walker

View File

@@ -1,11 +1,5 @@
#!/bin/bash #!/bin/bash
if gum confirm "Refresh Waybar config? This will replace your current settings with Omarchy defaults."; then omarchy-refresh-config waybar/config.jsonc
# Overwrite local waybar settings with the latest in Omarchy omarchy-refresh-config waybar/style.css
cp -f ~/.local/share/omarchy/config/waybar/config.jsonc ~/.config/waybar/ 2>/dev/null omarchy-restart-waybar
cp -f ~/.local/share/omarchy/config/waybar/style.css ~/.config/waybar/ 2>/dev/null
# Restart waybar
pkill waybar
setsid waybar >/dev/null 2>&1 &
fi

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

4
bin/omarchy-restart-app Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
pkill -x $1
setsid uwsm app -- $1 >/dev/null 2>&1 &

3
bin/omarchy-restart-hypridle Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-restart-app hypridle

3
bin/omarchy-restart-hyprsunset Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-restart-app hyprsunset

3
bin/omarchy-restart-swayosd Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-restart-app swayosd-server

4
bin/omarchy-restart-walker Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
pkill walker
setsid uwsm app -- walker --gapplication-service &

3
bin/omarchy-restart-waybar Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-restart-app waybar

3
bin/omarchy-restart-xcompose Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
omarchy-restart-app fcitx5

View File

@@ -1,11 +1,13 @@
#!/bin/bash #!/bin/bash
if [[ "--remove" == "$1" ]]; then if [[ "--remove" == "$1" ]]; then
echo -e "\e[32mLet's remove your Fido2 device from sudo authentication.\n\e[0m"
yay -Rns --noconfirm libfido2 pam-u2f yay -Rns --noconfirm libfido2 pam-u2f
sudo rm -rf /etc/fido2 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 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" echo -e "\e[32m\nYou've successfully removed the fido2 device setup.\e[0m"
else else
echo -e "\e[32mLet's setup your Fido2 device for sudo authentication.\n\e[0m"
yay -S --noconfirm --needed libfido2 pam-u2f yay -S --noconfirm --needed libfido2 pam-u2f
tokens=$(fido2-token -L) tokens=$(fido2-token -L)
@@ -18,6 +20,10 @@ else
sudo mkdir -p /etc/fido2 sudo mkdir -p /etc/fido2
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m" 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 pamu2fcfg >/tmp/fido2 # This needs to run as the user
if [ $? -ne 0 ]; then
echo -e "\e[31m\nSomething went wrong. Maybe try again?\e[0m"
exit 1
fi
sudo mv /tmp/fido2 /etc/fido2/fido2 sudo mv /tmp/fido2 /etc/fido2/fido2
fi fi

View File

@@ -1,11 +1,13 @@
#!/bin/bash #!/bin/bash
if [[ "--remove" == "$1" ]]; then if [[ "--remove" == "$1" ]]; then
echo -e "\e[32mLet's remove your fingerprint scanner from authentication.\n\e[0m"
yay -Rns --noconfirm fprintd yay -Rns --noconfirm fprintd
sudo rm -rf /etc/pam.d/polkit-1 sudo rm -rf /etc/pam.d/polkit-1
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m" echo -e "\e[32mYou've successfully removed the fingerprint setup.\e[0m"
else else
echo -e "\e[32mLet's setup your fingerprint scanner for authentication.\n\e[0m"
yay -S --noconfirm --needed fprintd usbutils yay -S --noconfirm --needed fprintd usbutils
if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then if ! lsusb | grep -Eiq 'fingerprint|synaptics|goodix'; then

4
bin/omarchy-show-done Executable file
View File

@@ -0,0 +1,4 @@
#!/bin/bash
echo
gum spin --spinner "globe" --title "Done! Press any key to close..." -- bash -c 'read -n 1 -s'

7
bin/omarchy-show-logo Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/bash
clear
echo -e "\033[32m"
cat <~/.local/share/omarchy/logo.txt
echo -e "\033[0m"
echo

22
bin/omarchy-state Executable file
View File

@@ -0,0 +1,22 @@
#!/bin/bash
STATE_DIR="$HOME/.local/state/omarchy"
mkdir -p "$STATE_DIR"
COMMAND="$1"
STATE_NAME="$2"
if [[ -z "$COMMAND" ]]; then
echo "Usage: omarchy-state <set|clear> <state-name-or-pattern>"
exit 1
fi
if [[ -z "$STATE_NAME" ]]; then
echo "Usage: omarchy-state $COMMAND <state-name>"
exit 1
fi
case "$COMMAND" in
set) touch "$STATE_DIR/$STATE_NAME" ;;
clear) find "$STATE_DIR" -maxdepth 1 -type f -name "$STATE_NAME" -delete ;;
esac

View File

@@ -2,7 +2,7 @@
# Cycles through the background images available # Cycles through the background images available
BACKGROUNDS_DIR="$HOME/.config/omarchy/current/backgrounds/" BACKGROUNDS_DIR="$HOME/.config/omarchy/current/theme/backgrounds/"
CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background" CURRENT_BACKGROUND_LINK="$HOME/.config/omarchy/current/background"
mapfile -d '' -t BACKGROUNDS < <(find "$BACKGROUNDS_DIR" -type f -print0 | sort -z) mapfile -d '' -t BACKGROUNDS < <(find "$BACKGROUNDS_DIR" -type f -print0 | sort -z)
@@ -11,7 +11,7 @@ TOTAL=${#BACKGROUNDS[@]}
if [[ $TOTAL -eq 0 ]]; then if [[ $TOTAL -eq 0 ]]; then
notify-send "No background was found for theme" -t 2000 notify-send "No background was found for theme" -t 2000
pkill -x swaybg pkill -x swaybg
setsid swaybg --color '#000000' >/dev/null 2>&2 & setsid uwsm app -- swaybg --color '#000000' >/dev/null 2>&1 &
else else
# Get current background from symlink # Get current background from symlink
if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then if [[ -L "$CURRENT_BACKGROUND_LINK" ]]; then
@@ -44,5 +44,5 @@ else
# Relaunch swaybg # Relaunch swaybg
pkill -x swaybg pkill -x swaybg
setsid swaybg -i "$NEW_BACKGROUND" -m fill >/dev/null 2>&2 & setsid uwsm app -- swaybg -i "$CURRENT_BACKGROUND_LINK" -m fill >/dev/null 2>&1 &
fi fi

3
bin/omarchy-theme-current Executable file
View File

@@ -0,0 +1,3 @@
#!/bin/bash
basename "$(realpath "$HOME/.config/omarchy/current/theme")" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g'

View File

@@ -4,17 +4,19 @@
# Usage: omarchy-theme-install <git-repo-url> # Usage: omarchy-theme-install <git-repo-url>
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Usage: omarchy-theme-install <git-repo-url>" echo -e "\e[32mSee https://manuals.omamix.org/2/the-omarchy-manual/90/extra-themes\n\e[0m"
REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="")
else
REPO_URL="$1"
fi
if [ -z "$REPO_URL" ]; then
exit 1 exit 1
fi fi
REPO_URL="$1"
THEMES_DIR="$HOME/.config/omarchy/themes" THEMES_DIR="$HOME/.config/omarchy/themes"
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//') THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^omarchy-//; s/-theme$//')
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$THEME_NAME"
THEME_BACKGROUND_PATH="$THEME_PATH/backgrounds"
BACKGROUNDS_PATH="$HOME/.config/omarchy/backgrounds"
BACKGROUNDS_THEME_PATH="$BACKGROUNDS_PATH/$THEME_NAME"
# Remove existing theme if present # Remove existing theme if present
if [ -d "$THEME_PATH" ]; then if [ -d "$THEME_PATH" ]; then
@@ -27,10 +29,5 @@ if ! git clone "$REPO_URL" "$THEME_PATH"; then
exit 1 exit 1
fi fi
# Link backgrounds if present
if [ -d $THEME_BACKGROUND_PATH ]; then
ln -snf $THEME_BACKGROUND_PATH $BACKGROUNDS_THEME_PATH
fi
# Apply the new theme with omarchy-theme-set # Apply the new theme with omarchy-theme-set
omarchy-theme-set $THEME_NAME omarchy-theme-set $THEME_NAME

5
bin/omarchy-theme-list Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
find ~/.config/omarchy/themes/ -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | sort | while read -r path; do
echo "$(basename "$path" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')"
done

View File

@@ -1,37 +0,0 @@
#!/bin/bash
THEMES_DIR="$HOME/.config/omarchy/themes/"
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
CURRENT_THEME_NAME=$(basename "$(realpath "$CURRENT_THEME_DIR")")
# Build themes list with pretty display names
mapfile -t themes < <(
find "$THEMES_DIR" -mindepth 1 -maxdepth 1 \( -type d -o -type l \) | while read -r path; do
filename=$(basename "$path")
display_name=$(echo "$filename" | sed -E 's/(^|-)([a-z])/\1\u\2/g; s/-/ /g')
if [[ "$filename" == "$CURRENT_THEME_NAME" ]]; then
echo "<i>$display_name</i>"
else
echo "$display_name"
fi
done | sort
)
# Show Wofi menu (with markup support)
selection=$(printf '%s\n' "${themes[@]}" | wofi \
--show dmenu \
--allow-markup \
--width 150 \
--height 400 \
-O alphabetical \
--style ~/.config/wofi/select.css 2>/dev/null)
# Remove any Pango markup before converting back to filename
clean_selection=$(echo "$selection" | sed -E 's/<[^>]+>//g')
# Convert to lowercase and dash-separated: "Tokyo Night" -> "tokyo-night"
selected_theme=$(echo "$clean_selection" | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
# Apply the selected theme
"$HOME/.local/share/omarchy/bin/omarchy-theme-set" "$selected_theme"

View File

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

View File

@@ -4,17 +4,26 @@
# Usage: omarchy-theme-remove <theme-name> # Usage: omarchy-theme-remove <theme-name>
if [ -z "$1" ]; then if [ -z "$1" ]; then
echo "Usage: omarchy-theme-remove <theme-name>" mapfile -t extra_themes < <(find ~/.config/omarchy/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n')
if [[ ${#extra_themes[@]} -gt 0 ]]; then
THEME_NAME=$(gum choose --header="Remove extra theme" "${extra_themes[@]}")
else
echo "No extra themes installed."
exit 1 exit 1
fi
else
THEME_NAME="$1"
fi fi
THEME_NAME="$1"
THEMES_DIR="$HOME/.config/omarchy/themes" THEMES_DIR="$HOME/.config/omarchy/themes"
BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds"
CURRENT_DIR="$HOME/.config/omarchy/current" CURRENT_DIR="$HOME/.config/omarchy/current"
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$THEME_NAME"
BACKGROUND_PATH="$BACKGROUND_DIR/$THEME_NAME"
# Ensure a theme was set
if [ -z "$THEME_NAME" ]; then
exit 1
fi
# Check if theme exists before attempting removal # Check if theme exists before attempting removal
if [ ! -d "$THEME_PATH" ]; then if [ ! -d "$THEME_PATH" ]; then
@@ -22,12 +31,10 @@ if [ ! -d "$THEME_PATH" ]; then
exit 1 exit 1
fi fi
# Use readlink -f to resolve symlinks and get the absolute path # Move to the next theme if the current theme is the one being removed
if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then
"$HOME/.local/share/omarchy/bin/omarchy-theme-next" omarchy-theme-next
fi fi
# Now remove the theme directory and backgrounds for THEME_NAME # Now remove the theme directory for THEME_NAME
rm -rf "$THEME_PATH" rm -rf "$THEME_PATH"
rm -rf "$BACKGROUND_PATH"

View File

@@ -3,7 +3,7 @@
# omarchy-theme-set: Set a theme, specified by its name. # omarchy-theme-set: Set a theme, specified by its name.
# Usage: omarchy-theme-set <theme-name> # Usage: omarchy-theme-set <theme-name>
if [[ -z "$1" ]]; then if [[ -z "$1" && "$1" != "CNCLD" ]]; then
echo "Usage: omarchy-theme-set <theme-name>" >&2 echo "Usage: omarchy-theme-set <theme-name>" >&2
exit 1 exit 1
fi fi
@@ -11,15 +11,9 @@ fi
THEMES_DIR="$HOME/.config/omarchy/themes/" THEMES_DIR="$HOME/.config/omarchy/themes/"
CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme"
THEME_NAME="$1" THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-')
THEME_PATH="$THEMES_DIR/$THEME_NAME" THEME_PATH="$THEMES_DIR/$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 # Check if the theme entered exists
if [[ ! -d "$THEME_PATH" ]]; then if [[ ! -d "$THEME_PATH" ]]; then
echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2 echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" >&2
@@ -27,7 +21,6 @@ if [[ ! -d "$THEME_PATH" ]]; then
fi fi
# Update theme symlinks # Update theme symlinks
ln -nsf "$BACKGROUND_PATH" "$HOME/.config/omarchy/current/backgrounds"
ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR" ln -nsf "$THEME_PATH" "$CURRENT_THEME_DIR"
# Change gnome modes # Change gnome modes
@@ -39,17 +32,22 @@ else
gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark" gsettings set org.gnome.desktop.interface gtk-theme "Adwaita-dark"
fi fi
# Change gnome icon theme color
if [[ -f ~/.config/omarchy/current/theme/icons.theme ]]; then
gsettings set org.gnome.desktop.interface icon-theme "$(<~/.config/omarchy/current/theme/icons.theme)"
else
gsettings set org.gnome.desktop.interface icon-theme "Yaru-blue"
fi
# Trigger alacritty config reload # Trigger alacritty config reload
touch "$HOME/.config/alacritty/alacritty.toml" touch "$HOME/.config/alacritty/alacritty.toml"
# Trigger btop config reload
pkill -SIGUSR2 btop
# Restart components to apply new theme # Restart components to apply new theme
pkill waybar pkill -SIGUSR2 btop
setsid waybar >/dev/null 2>&1 & omarchy-restart-waybar
omarchy-restart-swayosd
makoctl reload makoctl reload
hyprctl reload hyprctl reload
# Set new background # Set new background
"$HOME/.local/share/omarchy/bin/omarchy-theme-bg-next" omarchy-theme-bg-next

5
bin/omarchy-theme-update Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
for dir in ~/.config/omarchy/themes/*/; do
[ -d "$dir" ] && [ ! -L "${dir%/}" ] && echo "Updating: $(basename "$dir")" && git -C "$dir" pull
done

View File

@@ -4,6 +4,6 @@ if pgrep -x hypridle >/dev/null; then
pkill -x hypridle pkill -x hypridle
notify-send "Stop locking computer when idle" notify-send "Stop locking computer when idle"
else else
setsid hypridle &>/dev/null & uwsm app -- hypridle >/dev/null 2>&1 &
notify-send "Now locking computer when idle" notify-send "Now locking computer when idle"
fi fi

30
bin/omarchy-toggle-nightlight Executable file
View File

@@ -0,0 +1,30 @@
#!/bin/bash
# Default temperature values
ON_TEMP=4000
OFF_TEMP=6000
# Ensure hyprsunset is running
if ! pgrep -x hyprsunset; then
setsid uwsm app -- hyprsunset &
sleep 1 # Give it time to register
fi
# Query the current temperature
CURRENT_TEMP=$(hyprctl hyprsunset temperature 2>/dev/null | grep -oE '[0-9]+')
restart_nightlighted_waybar() {
if grep -q "custom/nightlight" ~/.config/waybar/config.jsonc; then
omarchy-restart-waybar # restart waybar in case user has waybar module for hyprsunset
fi
}
if [[ "$CURRENT_TEMP" == "$OFF_TEMP" ]]; then
hyprctl hyprsunset temperature $ON_TEMP
notify-send " Nightlight screen temperature"
restart_nightlighted_waybar
else
hyprctl hyprsunset temperature $OFF_TEMP
notify-send " Daylight screen temperature"
restart_nightlighted_waybar
fi

View File

@@ -1,33 +1,9 @@
#!/bin/bash #!/bin/bash
cd ~/.local/share/omarchy set -e
if [[ $1 == "all" ]]; then omarchy-update-git
# Run all migrations omarchy-migrate
last_updated_at=1 omarchy-update-system-pkgs
else omarchy-update-restart
# Remember the version we're at before upgrading omarchy-restart-waybar # removes update-available icon
last_updated_at=$(git log -1 --format=%cd --date=unix)
fi
# Get the latest while trying to preserve any modifications
git stash
git pull
git stash pop
# Run any pending migrations
for file in 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 ""
gum confirm "Update system packages too?" && yay -Syu --noconfirm

20
bin/omarchy-update-available Executable file
View File

@@ -0,0 +1,20 @@
#!/bin/bash
omarchy_path="$HOME/.local/share/omarchy"
# Ensure remote is reachable
if ! git -C "$omarchy_path" ls-remote &>/dev/null; then
echo "Error: Unable to reach remote repository."
exit 1
fi
latest_tag=$(git -C "$omarchy_path" ls-remote --tags origin | grep -v "{}" | awk '{print $2}' | sed 's#refs/tags/##' | sort -V | tail -n 1)
current_tag=$(git -C "$omarchy_path" describe --tags $(git -C "$omarchy_path" rev-list --tags --max-count=1))
if [[ "$current_tag" != "$latest_tag" ]]; then
echo "Omarchy update available ($latest_tag)"
exit 0
else
echo "Omarchy is up to date ($current_tag)"
exit 1
fi

5
bin/omarchy-update-git Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
echo -e "\e[32mUpdate Omarchy\e[0m"
git -C $OMARCHY_PATH pull --autostash
git -C $OMARCHY_PATH diff --check || git -C $OMARCHY_PATH reset --merge

9
bin/omarchy-update-restart Executable file
View File

@@ -0,0 +1,9 @@
#!/bin/bash
if [ "$(uname -r | sed 's/-arch/\.arch/')" != "$(pacman -Q linux | awk '{print $2}')" ]; then
gum confirm "New Linux kernel requires reboot. Ready?" && omarchy-state clear re*-required && sudo reboot now
elif [ -f "$HOME/.local/state/omarchy/reboot-required" ]; then
gum confirm "Updates require reboot. Ready?" && omarchy-state clear re*-required && sudo reboot now
elif [ -f "$HOME/.local/state/omarchy/relaunch-required" ]; then
gum confirm "Updates require Hyprland relaunch. Ready?" && omarchy-state clear relaunch-required && uwsm stop
fi

5
bin/omarchy-update-system-pkgs Executable file
View File

@@ -0,0 +1,5 @@
#!/bin/bash
echo -e "\e[32m\nUpdate system packages\e[0m"
yay -Syu --noconfirm
echo

3
bin/omarchy-version Executable file
View File

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

46
bin/omarchy-webapp-install Executable file
View File

@@ -0,0 +1,46 @@
#!/bin/bash
if [ "$#" -ne 3 ]; then
echo -e "\e[32mLet's create a new web app you can start with the app launcher.\n\e[0m"
APP_NAME=$(gum input --prompt "Name> " --placeholder "My favorite web app")
APP_URL=$(gum input --prompt "URL> " --placeholder "https://example.com")
ICON_URL=$(gum input --prompt "Icon URL> " --placeholder "See https://dashboardicons.com (must use PNG!)")
else
APP_NAME="$1"
APP_URL="$2"
ICON_URL="$3"
fi
if [[ -z "$APP_NAME" || -z "$APP_URL" || -z "$ICON_URL" ]]; then
echo "You must set app name, app URL, and icon URL!"
exit 1
fi
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_FILE="$HOME/.local/share/applications/$APP_NAME.desktop"
ICON_PATH="$ICON_DIR/$APP_NAME.png"
mkdir -p "$ICON_DIR"
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
echo "Error: Failed to download icon."
return 1
fi
cat >"$DESKTOP_FILE" <<EOF
[Desktop Entry]
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=chromium --new-window --ozone-platform=wayland --app="$APP_URL" --name="$APP_NAME" --class="$APP_NAME"
Terminal=false
Type=Application
Icon=$ICON_PATH
StartupNotify=true
EOF
chmod +x "$DESKTOP_FILE"
if [ "$#" -ne 3 ]; then
echo -e "You can now find $APP_NAME using the app launcher (SUPER + SPACE)\n"
fi

36
bin/omarchy-webapp-remove Executable file
View File

@@ -0,0 +1,36 @@
#!/bin/bash
ICON_DIR="$HOME/.local/share/applications/icons"
DESKTOP_DIR="$HOME/.local/share/applications/"
if [ "$#" -ne 1 ]; then
# Find all web apps
while IFS= read -r -d '' file; do
if grep -q '^Exec=.*chromium.*--app' "$file"; then
WEB_APPS+=("$(basename "${file%.desktop}")")
fi
done < <(find "$DESKTOP_DIR" -name '*.desktop' -print0)
if ((${#WEB_APPS[@]})); then
IFS=$'\n' SORTED_WEB_APPS=($(sort <<<"${WEB_APPS[*]}"))
unset IFS
APP_NAME=$(gum choose --header "Select web app to remove..." "${SORTED_WEB_APPS[@]}")
else
echo "No web apps to remove."
exit 1
fi
else
APP_NAME="$1"
fi
if [[ -z "$APP_NAME" ]]; then
echo "You must provide web app name."
exit 1
fi
rm "$DESKTOP_DIR/$APP_NAME.desktop"
rm "$ICON_DIR/$APP_NAME.png"
if [ "$#" -ne 1 ]; then
echo -e "Removed $APP_NAME\n"
fi

31
boot.sh
View File

@@ -1,20 +1,27 @@
ascii_art=' ▄██████▄ ▄▄▄▄███▄▄▄▄ ▄████████ ▄████████ ▄████████ ▄█ █▄ ▄██ ▄ #!/bin/bash
███ ███ ▄██▀▀▀███▀▀▀██▄ ███ ███ ███ ███ ███ ███ ███ ███ ███ ██▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███▄▄▄███ ansi_art=' ▄▄▄
███ ███ ███ ███ ███ ███ ███ ▄███▄▄▄▄██▀ ███ ▄███▄▄▄▄███▄▄ ▀▀▀▀▀▀███ ▄█████ ▄███████████ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
███ ███ ███ ███ ███ ▀███████████ ▀▀███▀▀▀▀▀ ███ ▀▀███▀▀▀▀███▀ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ▀███████████ ███ █▄ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
██████ █ ███ █ ███ █▀ ███ ███ ████████▀ ███ █▀ █████▀ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
███ ███ ' ███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄███
███ ███ ███ ███ ███ ▀███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
▀█████▀ ▀█ ███ █▀ ███ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
███ █▀ '
echo -e "\n$ascii_art\n" clear
echo -e "\n$ansi_art\n"
pacman -Q git &>/dev/null || sudo pacman -Sy --noconfirm --needed git sudo pacman -Sy --noconfirm --needed git
echo -e "\nCloning Omarchy..." # Use custom repo if specified, otherwise default to basecamp/omarchy
OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}"
echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git"
rm -rf ~/.local/share/omarchy/ rm -rf ~/.local/share/omarchy/
git clone https://github.com/basecamp/omarchy.git ~/.local/share/omarchy >/dev/null git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
# Use custom branch if instructed # Use custom branch if instructed
if [[ -n "$OMARCHY_REF" ]]; then if [[ -n "$OMARCHY_REF" ]]; then

View File

@@ -0,0 +1,3 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation

View File

@@ -47,7 +47,7 @@
{ {
"type": "swap", "type": "swap",
"key": "└ └󰓡 ", "key": "└ └󰓡 ",
"keyColor": "green", "keyColor": "green"
}, },
{ {
"type": "custom", "type": "custom",
@@ -60,7 +60,7 @@
}, },
{ {
"type": "os", "type": "os",
"key": " OS", "key": "󰣇 OS",
"keyColor": "yellow" "keyColor": "yellow"
}, },
{ {
@@ -79,6 +79,12 @@
"keyColor": "yellow" "keyColor": "yellow"
}, },
"break", "break",
{
"type": "command",
"key": "│ ├Ø",
"keyColor": "blue",
"text": "version=$(git -C ~/.local/share/omarchy describe --tags --abbrev=0 2>/dev/null); echo \"Omarchy $version\""
},
{ {
"type": "de", "type": "de",
"key": " DE", "key": " DE",
@@ -97,17 +103,17 @@
{ {
"type": "icons", "type": "icons",
"key": "│ ├󰀻", "key": "│ ├󰀻",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "cursor", "type": "cursor",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "terminalfont", "type": "terminalfont",
"key": "│ ├", "key": "│ ├",
"keyColor": "blue", "keyColor": "blue"
}, },
{ {
"type": "terminal", "type": "terminal",
@@ -138,7 +144,6 @@
"type": "custom", "type": "custom",
"format": "\u001b[90m└────────────────────────────────────────────────────┘" "format": "\u001b[90m└────────────────────────────────────────────────────┘"
}, },
"break", "break"
] ]
} }

View File

@@ -0,0 +1,2 @@
# Extra autostart processes
# exec-once = uwsm app -- my-service

25
config/hypr/bindings.conf Normal file
View File

@@ -0,0 +1,25 @@
# Application bindings
$terminal = uwsm app -- alacritty
$browser = uwsm app -- chromium --new-window --ozone-platform=wayland
$webapp = $browser --app
bindd = SUPER, return, Terminal, exec, $terminal
bindd = SUPER, F, File manager, exec, uwsm app -- nautilus --new-window
bindd = SUPER, B, Browser, exec, $browser
bindd = SUPER, M, Music, exec, uwsm app -- spotify
bindd = SUPER, N, Neovim, exec, $terminal -e nvim
bindd = SUPER, T, Activity, exec, $terminal -e btop
bindd = SUPER, D, Docker, exec, $terminal -e lazydocker
bindd = SUPER, G, Signal, exec, uwsm app -- signal-desktop
bindd = SUPER, O, Obsidian, exec, uwsm app -- obsidian -disable-gpu
bindd = SUPER, slash, Passwords, exec, uwsm app -- 1password
bindd = SUPER, A, ChatGPT, exec, $webapp="https://chatgpt.com"
bindd = SUPER SHIFT, A, Grok, exec, $webapp="https://grok.com"
bindd = SUPER, C, Calendar, exec, $webapp="https://app.hey.com/calendar/weeks/"
bindd = SUPER, E, Email, exec, $webapp="https://app.hey.com"
bindd = SUPER, Y, YouTube, exec, $webapp="https://youtube.com/"
bindd = SUPER SHIFT, G, WhatsApp, exec, $webapp="https://web.whatsapp.com/"
bindd = SUPER ALT, G, Google Messages, exec, $webapp="https://messages.google.com/web/conversations"
bindd = SUPER, X, X, exec, $webapp="https://x.com/"
bindd = SUPER SHIFT, X, X Post, exec, $webapp="https://x.com/compose/post"

3
config/hypr/envs.conf Normal file
View File

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

View File

@@ -1,7 +1,13 @@
general { general {
lock_cmd = pidof hyprlock || hyprlock # avoid starting multiple hyprlock instances. lock_cmd = omarchy-lock-screen # lock screen and 1password
before_sleep_cmd = loginctl lock-session # lock before suspend. before_sleep_cmd = loginctl lock-session # lock before suspend.
after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display. after_sleep_cmd = hyprctl dispatch dpms on # to avoid having to press a key twice to turn on the display.
on_unlock_cmd = omarchy-restart-waybar # prevent stacking of waybar when waking
}
listener {
timeout = 150 # 2.5min
on-timeout = pidof hyprlock || omarchy-launch-screensaver # start screensaver (if we haven't locked already)
} }
listener { listener {

View File

@@ -1,13 +1,13 @@
# Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/ # Learn how to configure Hyprland: https://wiki.hyprland.org/Configuring/
# You're encouraged to tailor your Hyprland config in this file by adding or overwriting any settings. # Change your own setup in these files (and overwrite any settings from defaults!)
# But don't change anything that lives in ~/.local/share/omarchy, if you can help it!
# Those files are overwritten when Omarchy is updated.
# Change your personal monitor setup in here to keep the main config portable
source = ~/.config/hypr/monitors.conf source = ~/.config/hypr/monitors.conf
source = ~/.config/hypr/input.conf
source = ~/.config/hypr/bindings.conf
source = ~/.config/hypr/envs.conf
source = ~/.config/hypr/autostart.conf
# Use defaults Omarchy defaults # Use defaults Omarchy defaults (but don't edit these directly!)
source = ~/.local/share/omarchy/default/hypr/autostart.conf source = ~/.local/share/omarchy/default/hypr/autostart.conf
source = ~/.local/share/omarchy/default/hypr/bindings/media.conf source = ~/.local/share/omarchy/default/hypr/bindings/media.conf
source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf source = ~/.local/share/omarchy/default/hypr/bindings/tiling.conf
@@ -17,65 +17,3 @@ source = ~/.local/share/omarchy/default/hypr/looknfeel.conf
source = ~/.local/share/omarchy/default/hypr/input.conf source = ~/.local/share/omarchy/default/hypr/input.conf
source = ~/.local/share/omarchy/default/hypr/windows.conf source = ~/.local/share/omarchy/default/hypr/windows.conf
source = ~/.config/omarchy/current/theme/hyprland.conf source = ~/.config/omarchy/current/theme/hyprland.conf
# Application bindings
$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, uwsm app -- nautilus --new-window
bind = SUPER, B, exec, $browser
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, 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"
bind = SUPER, C, exec, $webapp="https://app.hey.com/calendar/weeks/"
bind = SUPER, E, exec, $webapp="https://app.hey.com"
bind = SUPER, Y, exec, $webapp="https://youtube.com/"
bind = SUPER SHIFT, G, exec, $webapp="https://web.whatsapp.com/"
bind = SUPER ALT, G, exec, $webapp="https://messages.google.com/web/conversations"
bind = SUPER, X, exec, $webapp="https://x.com/"
bind = SUPER SHIFT, X, exec, $webapp="https://x.com/compose/post"
# Extra autostart processes
# exec-once = dropbox-cli start
# Extra env variables
# Note: You must relaunch Hyprland after changing envs (use Super+Esc, then Relaunch)
# env = MY_GLOBAL_ENV,setting
# Control your input devices
# See https://wiki.hypr.land/Configuring/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Alt + Space
# kb_layout = us,dk
# kb_options = compose:caps,grp:alt_space_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 600
# Increase sensitity for mouse/trackpack (default: 0)
# sensitivity = 0.35
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
# clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
}
}
# Scroll faster in the terminal
windowrule = scrolltouchpad 1.5, class:Alacritty

View File

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

View File

@@ -0,0 +1,6 @@
# Makes hyprsunset do nothing to the screen by default
# Without this, the default applies some tint to the monitor
profile {
time = 00:00
identity = true
}

28
config/hypr/input.conf Normal file
View File

@@ -0,0 +1,28 @@
# Control your input devices
# See https://wiki.hypr.land/Configuring/Variables/#input
input {
# Use multiple keyboard layouts and switch between them with Left Alt + Right Alt
# kb_layout = us,dk
kb_options = compose:caps # ,grp:alts_toggle
# Change speed of keyboard repeat
repeat_rate = 40
repeat_delay = 600
# Increase sensitity for mouse/trackpack (default: 0)
# sensitivity = 0.35
touchpad {
# Use natural (inverse) scrolling
# natural_scroll = true
# Use two-finger clicks for right-click instead of lower-right corner
# clickfinger_behavior = true
# Control the speed of your scrolling
scroll_factor = 0.4
}
}
# Scroll faster in the terminal
windowrule = scrolltouchpad 1.5, class:Alacritty

View File

@@ -1,17 +1,20 @@
# See https://wiki.hyprland.org/Configuring/Monitors/ # See https://wiki.hyprland.org/Configuring/Monitors/
# List current monitors and resolutions possible: hyprctl monitors
# Change to 1 if on a 1x display (then change last "auto" to 1 in monitor=)
# Change to something like 1.75 for fractional scaling (can work well with 1.66667 monitor scaling)
# Note: You must relaunch Hyprland after changing any env like this (use Super+Esc, then Relaunch)
env = GDK_SCALE,2
# Use single default monitor (see all monitors with: hyprctl monitors)
# Format: monitor = [port], resolution, position, scale # Format: monitor = [port], resolution, position, scale
# You must relaunch Hyprland after changing any envs (use Super+Esc, then Relaunch)
# Optimized for retina-class 2x displays, like 13" 2.8K, 27" 5K, 32" 6K.
env = GDK_SCALE,2
monitor=,preferred,auto,auto monitor=,preferred,auto,auto
# Exmaple for fractional scaling that works well with GDK_SCALE,1.75 # Good compromise for 27" or 32" 4K monitors (but fractional!)
# env = GDK_SCALE,1.75
# monitor=,preferred,auto,1.666667 # monitor=,preferred,auto,1.666667
# Straight 1x setup for low-resolution displays like 1080p or 1440p
# env = GDK_SCALE,1
# monitor=,preferred,auto,1
# Example for Framework 13 w/ 6K XDR Apple display # Example for Framework 13 w/ 6K XDR Apple display
# monitor = DP-5, 6016x3384@60.00, auto, 2 # monitor = DP-5, 6016x3384@60, auto, 2
# monitor = eDP-1, 2880x1920@120.00, auto, 2 # monitor = eDP-1, 2880x1920@120, auto, 2

View File

@@ -0,0 +1,4 @@
[server]
show_percentage = true
max_volume = 100
style = "./style.css"

28
config/swayosd/style.css Normal file
View File

@@ -0,0 +1,28 @@
@import "../omarchy/current/theme/swayosd.css";
window {
border-radius: 0;
opacity: 0.97;
border: 2px solid @border-color;
background-color: @background-color;
}
label {
font-family: 'CaskaydiaMono Nerd Font';
font-size: 11pt;
color: @label;
}
image {
color: @image;
}
progressbar {
border-radius: 0;
}
progress {
background-color: @progress;
}

6
config/uwsm/env Normal file
View File

@@ -0,0 +1,6 @@
export OMARCHY_PATH=$HOME/.local/share/omarchy
export PATH=$OMARCHY_PATH/bin/:$PATH
if command -v mise &> /dev/null; then
eval "$(mise activate bash)"
fi

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

@@ -0,0 +1,98 @@
close_when_open = true
theme = "omarchy-default"
theme_base = []
theme_location = ["~/.local/share/omarchy/default/walker/themes/"]
hotreload_theme = true
force_keyboard_focus = true
[keys.ai]
run_last_response = ["ctrl e"]
[list]
max_entries = 200
[search]
placeholder = " Search..."
[builtins.hyprland_keybinds]
path = "~/.config/hypr/hyprland.conf"
hidden = true
[builtins.applications]
launch_prefix = "uwsm app -- "
placeholder = " Search..."
prioritize_new = false
context_aware = false
show_sub_when_single = false
history = false
icon = ""
hidden = true
[builtins.applications.actions]
enabled = false
hide_category = true
[builtins.bookmarks]
hidden = true
[[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.calc]
name = "Calculator"
icon = ""
min_chars = 3
prefix = "="
[builtins.windows]
switcher_only = true
hidden = true
[builtins.clipboard]
hidden = true
[builtins.commands]
hidden = true
[builtins.custom_commands]
hidden = true
[builtins.emojis]
name = "Emojis"
icon = ""
prefix = ":"
[builtins.symbols]
after_copy = ""
hidden = true
[builtins.finder]
use_fd = true
cmd_alt = "xdg-open $(dirname ~/%RESULT%)"
icon = "file"
name = "Finder"
preview_images = true
hidden = false
prefix = "."
[builtins.runner]
shell_config = ""
switcher_only = true
hidden = true
[builtins.ssh]
hidden = true
[builtins.websearch]
switcher_only = true
hidden = true
[builtins.translation]
hidden = true

View File

@@ -5,10 +5,12 @@
"spacing": 0, "spacing": 0,
"height": 26, "height": 26,
"modules-left": [ "modules-left": [
"custom/omarchy",
"hyprland/workspaces" "hyprland/workspaces"
], ],
"modules-center": [ "modules-center": [
"clock" "clock",
"custom/update"
], ],
"modules-right": [ "modules-right": [
"group/tray-expander", "group/tray-expander",
@@ -42,6 +44,18 @@
"5": [] "5": []
} }
}, },
"custom/omarchy": {
"format": "",
"on-click": "omarchy-menu",
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
},
"custom/update": {
"format": "",
"exec": "omarchy-update-available",
"on-click": "alacritty --class Omarchy --title Omarchy -e omarchy-update",
"tooltip-format": "Omarchy update available",
"interval": 3600
},
"cpu": { "cpu": {
"interval": 5, "interval": 5,
"format": "󰍛", "format": "󰍛",
@@ -50,7 +64,8 @@
"clock": { "clock": {
"format": "{:%A %H:%M}", "format": "{:%A %H:%M}",
"format-alt": "{:%d %B W%V %Y}", "format-alt": "{:%d %B W%V %Y}",
"tooltip": false "tooltip": false,
"on-click-right": "omarchy-cmd-tzupdate"
}, },
"network": { "network": {
"format-icons": ["󰤯","󰤟","󰤢","󰤥","󰤨"], "format-icons": ["󰤯","󰤟","󰤢","󰤥","󰤨"],
@@ -96,7 +111,7 @@
}, },
"pulseaudio": { "pulseaudio": {
"format": "{icon}", "format": "{icon}",
"on-click": "pavucontrol", "on-click": "alacritty --class=Wiremix -e wiremix",
"on-click-right": "pamixer -t", "on-click-right": "pamixer -t",
"tooltip-format": "Playing at {volume}%", "tooltip-format": "Playing at {volume}%",
"scroll-step": 5, "scroll-step": 5,

View File

@@ -7,7 +7,7 @@
border: none; border: none;
border-radius: 0; border-radius: 0;
min-height: 0; min-height: 0;
font-family: CaskaydiaMono Nerd Font Propo; font-family: CaskaydiaMono Nerd Font;
font-size: 12px; font-size: 12px;
} }
@@ -23,6 +23,11 @@
all: initial; all: initial;
padding: 0 6px; padding: 0 6px;
margin: 0 1.5px; margin: 0 1.5px;
min-width: 9px;
}
#workspaces button.empty {
opacity: 0.5;
} }
#tray, #tray,
@@ -32,13 +37,13 @@
#bluetooth, #bluetooth,
#pulseaudio, #pulseaudio,
#clock, #clock,
#custom-power-menu { #custom-omarchy {
min-width: 12px; min-width: 12px;
margin: 0 7.5px; margin: 0 7.5px;
} }
#custom-expand-icon { #custom-expand-icon {
margin-right: 12px; margin-right: 7px;
} }
tooltip { tooltip {

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

@@ -0,0 +1,11 @@
[colors.primary]
background = "0x000000"
[colors.cursor]
cursor = "0x000000"
[font]
size = 18.0
[window]
opacity = 1.0

View File

@@ -24,15 +24,12 @@ alias ...='cd ../..'
alias ....='cd ../../..' alias ....='cd ../../..'
# Tools # Tools
alias n='nvim'
alias g='git' alias g='git'
alias d='docker' alias d='docker'
alias r='rails' alias r='rails'
n() { if [ "$#" -eq 0 ]; then nvim .; else nvim "$@"; fi; }
# Git # Git
alias gcm='git commit -m' alias gcm='git commit -m'
alias gcam='git commit -a -m' alias gcam='git commit -a -m'
alias gcad='git commit -a --amend' alias gcad='git commit -a --amend'
# Find packages without leaving the terminal
alias yayf="yay -Slq | fzf --multi --preview 'yay -Sii {1}' --preview-window=down:75% | xargs -ro yay -S"

View File

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

View File

@@ -15,59 +15,38 @@ iso2sd() {
fi fi
} }
# Create a desktop launcher for a web app # Format an entire drive for a single partition using ext4
web2app() { format-drive() {
if [ "$#" -ne 3 ]; then if [ $# -ne 2 ]; then
echo "Usage: web2app <AppName> <AppURL> <IconURL> (IconURL must be in PNG -- use https://dashboardicons.com)" echo "Usage: format-drive <device> <name>"
return 1 echo "Example: format-drive /dev/sda 'My Stuff'"
echo -e "\nAvailable drives:"
lsblk -d -o NAME -n | awk '{print "/dev/"$1}'
else
echo "WARNING: This will completely erase all data on $1 and label it '$2'."
read -rp "Are you sure you want to continue? (y/N): " confirm
if [[ "$confirm" =~ ^[Yy]$ ]]; then
sudo wipefs -a "$1"
sudo dd if=/dev/zero of="$1" bs=1M count=100 status=progress
sudo parted -s "$1" mklabel gpt
sudo parted -s "$1" mkpart primary ext4 1MiB 100%
sudo mkfs.ext4 -L "$2" "$([[ $1 == *"nvme"* ]] && echo "${1}p1" || echo "${1}1")"
echo "Drive $1 formatted and labeled '$2'."
fi fi
local APP_NAME="$1"
local APP_URL="$2"
local ICON_URL="$3"
local ICON_DIR="$HOME/.local/share/applications/icons"
local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop"
local ICON_PATH="${ICON_DIR}/${APP_NAME}.png"
mkdir -p "$ICON_DIR"
if ! curl -sL -o "$ICON_PATH" "$ICON_URL"; then
echo "Error: Failed to download icon."
return 1
fi fi
cat > "$DESKTOP_FILE" <<EOF
[Desktop Entry]
Version=1.0
Name=$APP_NAME
Comment=$APP_NAME
Exec=chromium --new-window --ozone-platform=wayland --app="$APP_URL" --name="$APP_NAME" --class="$APP_NAME"
Terminal=false
Type=Application
Icon=$ICON_PATH
StartupNotify=true
EOF
chmod +x "$DESKTOP_FILE"
} }
web2app-remove() { # Transcode a video to a good-balance 1080p that's great for sharing online
if [ "$#" -ne 1 ]; then transcode-video-1080p() {
echo "Usage: web2app-remove <AppName>" ffmpeg -i $1 -vf scale=1920:1080 -c:v libx264 -preset fast -crf 23 -c:a copy ${1%.*}-1080p.mp4
return 1
fi
local APP_NAME="$1"
local ICON_DIR="$HOME/.local/share/applications/icons"
local DESKTOP_FILE="$HOME/.local/share/applications/${APP_NAME}.desktop"
local ICON_PATH="${ICON_DIR}/${APP_NAME}.png"
rm "$DESKTOP_FILE"
rm "$ICON_PATH"
} }
# Ensure changes to ~/.XCompose are immediately available # Transcode a video to a good-balance 4K that's great for sharing online
refresh-xcompose() { transcode-video-4K() {
pkill fcitx5 ffmpeg -i $1 -c:v libx265 -preset slow -crf 24 -c:a aac -b:a 192k ${1%.*}-optimized.mp4
setsid fcitx5 &>/dev/null & }
# Transcode PNG to JPG image that's great for shrinking wallpapers
transcode-png2jpg() {
magick $1 -quality 95 -strip ${1%.*}.jpg
} }

View File

@@ -7,8 +7,8 @@ if command -v zoxide &> /dev/null; then
fi fi
if command -v fzf &> /dev/null; then if command -v fzf &> /dev/null; then
if [[ -f /usr/share/bash-completion/completions/fzf ]]; then if [[ -f /usr/share/fzf/completion.bash ]]; then
source /usr/share/bash-completion/completions/fzf source /usr/share/fzf/completion.bash
fi fi
if [[ -f /usr/share/fzf/key-bindings.bash ]]; then if [[ -f /usr/share/fzf/key-bindings.bash ]]; then
source /usr/share/fzf/key-bindings.bash source /usr/share/fzf/key-bindings.bash

View File

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

View File

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

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