Compare commits

...
174 Commits
Author SHA1 Message Date
Puechberty Arthur 37c44e7761 add app 2026-06-18 00:32:52 +02:00
Puechberty Arthur 745c3a6d70 config hyprland 2026-06-17 22:55:46 +02:00
Puechberty Arthur 00d2f21837 add arch os in fastfetch 2026-06-17 22:44:03 +02:00
Puechberty Arthur 5e764f3a26 fix error with yay subtui install 2026-06-17 22:15:13 +02:00
Puechberty Arthur 2662042420 add cava app 2026-06-17 22:13:22 +02:00
Puechberty Arthur 40ebb62fb9 remove apps & add apps & fix config waybar 2026-06-17 22:12:48 +02:00
Puechberty Arthur b6aa29a5cf add new theme 2026-06-17 20:44:02 +02:00
Puechberty Arthur 7e11ca7a71 remove bug theme 2026-06-17 20:41:34 +02:00
Puechberty Arthur 37037cb6d5 add theme 2026-06-17 20:36:25 +02:00
Puechberty Arthur 25c3a4ca8f fix waybar 2026-06-17 20:17:02 +02:00
Puechberty Arthur de9e6e7208 add dotfiles waybar 2026-06-17 19:07:16 +02:00
Puechberty Arthur abd596d66c add boot logo & add config woxtype 2026-06-17 18:09:11 +02:00
Puechberty Arthur 814a58b1bf update logo & icon 2026-06-17 16:08:09 +02:00
David Heinemeier Hansson 8e03151647 Fix compatibility of old tiling.conf with HL 0.55+
Closes #5973
2026-05-25 14:51:07 +02:00
c3f35c57fb Omarchy 3.8.2 (#5960)
* Fix logs uploading

* Fail hard if we don't get the right branch

* Fix HL 0.55 compatible unified clipboard hotkeys

* Bump version

---------

Co-authored-by: Ryan Hughes <ryan@heyoodle.com>
2026-05-24 12:53:51 +02:00
JisnuandGitHub 9c8f6cf2cb fix: remove pseudotile and fix -1 gradient colors for Hyprland 0.55.x (#5922) 2026-05-21 08:21:42 +02:00
Ryan HughesandGitHub 82f99928d0 Bump version from 3.8.0 to 3.8.1 2026-05-14 13:23:48 -04:00
Ryan HughesandGitHub 6b5baf06ad Merge pull request #5816 from basecamp/fix-reinstall-git-default-branch
Pin omarchy-reinstall-git to master branch
2026-05-14 13:22:35 -04:00
Ryan Hughes 32a82dd15b Pin omarchy-reinstall-git to master branch
GitHub's default branch on basecamp/omarchy is no longer master, so
a plain clone pulls the development branch. Pass --branch master so
reinstalls always land on stable regardless of repo default.
2026-05-14 13:18:46 -04:00
David Heinemeier Hansson b2d95ee24b libretro-vice is now an explosion of minor pkgs 2026-05-10 16:47:29 +02:00
David Heinemeier HanssonandGitHub 7f6abcd743 Merge pull request #5628 from basecamp/rc
Omarchy 3.8.0
2026-05-09 17:20:48 +02:00
David Heinemeier Hansson 44a0123058 Merge branch 'dev' into rc 2026-05-09 16:21:52 +02:00
David Heinemeier Hansson 2e0e9af0a9 Use save for screenshot 2026-05-09 12:04:53 +02:00
David Heinemeier Hansson 9a2c53d571 Add save as an option for agents 2026-05-09 12:04:34 +02:00
David Heinemeier Hansson 10c42afcf2 Echo result so agents can use them and keep working with them 2026-05-09 11:40:31 +02:00
David Heinemeier Hansson cd9d6bb54b Screenshot on visual changes 2026-05-09 11:20:36 +02:00
David Heinemeier Hansson dde76059a8 Merge branch 'dev' into rc 2026-05-09 08:30:09 +02:00
David Heinemeier Hansson b9830069b1 Remove duplicate cliamp .desktop and icon 2026-05-09 08:28:53 +02:00
David Heinemeier Hansson cf9c274ee5 Cliamp now ships with the icon and desktop entry on its own 2026-05-09 08:25:05 +02:00
David Heinemeier Hansson 8f43960b8f Merge branch 'dev' into rc 2026-05-08 22:31:44 +02:00
David Heinemeier Hansson ad2ae30f1e Remove VAAPI GL video feature flags from Chromium-based browser configs to prevent crashing on some machines 2026-05-08 22:31:01 +02:00
David Heinemeier Hansson 1fb412b5df Fix guidance 2026-05-08 22:07:49 +02:00
David Heinemeier Hansson 27b598a6e5 Fix guidance 2026-05-08 22:07:38 +02:00
David Heinemeier Hansson 6f281d888f Merge branch 'dev' into rc 2026-05-08 22:06:23 +02:00
David Heinemeier Hansson ce60cb81c1 Don't do that 2026-05-08 22:06:18 +02:00
David Heinemeier Hansson a865ecc875 Merge branch 'dev' into rc 2026-05-08 22:04:46 +02:00
David Heinemeier Hansson fb174bfa70 Fix perms 2026-05-08 22:04:41 +02:00
David Heinemeier Hansson 25e6fe2ef9 Hide cursor like on decryption screen 2026-05-08 22:04:01 +02:00
David Heinemeier Hansson b2ffc1ffa9 Merge branch 'dev' into rc 2026-05-08 21:53:15 +02:00
David Heinemeier Hansson 7b860f4291 Be more forceful about killing waybar
Sometimes it can still get stuck
2026-05-08 21:52:42 +02:00
David Heinemeier Hansson 2a1c1980b4 Merge branch 'dev' into rc 2026-05-08 21:44:27 +02:00
David Heinemeier Hansson dad2870f58 Check for weather once a minute instead of once every ten
More accurate and deals with the first-boot issue on network too
2026-05-08 21:44:21 +02:00
David Heinemeier Hansson d0000ea8cf Merge branch 'dev' into rc 2026-05-08 21:34:52 +02:00
David Heinemeier Hansson 2594a80cba Use latest package name 2026-05-08 21:34:46 +02:00
David Heinemeier Hansson 4c482769b8 Ensure quotes 2026-05-08 21:28:09 +02:00
David Heinemeier Hansson cff80ff699 Merge branch 'dev' into rc 2026-05-08 21:16:50 +02:00
a4778a01c0 Delay weather waybar startup to handle network initialization on boot (#5677)
Co-authored-by: jzwnl <jzwnl@users.noreply.github.com>
2026-05-08 21:14:29 +02:00
David Heinemeier Hansson c8c395b231 Merge branch 'dev' into rc 2026-05-08 21:09:42 +02:00
1537547f91 Use packaged Dell XPS touchpad haptics (#5534)
* Configure Dell XPS haptics directly

* Use packaged Dell XPS touchpad haptics service

* fix: keep one Dell haptics migration

* We already have a dedicated Trigger > Hardware menu

* Name for action

* Moved

* Need to make the package available for offline

* Simplify

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-08 21:07:51 +02:00
David Heinemeier Hansson 30f9a8da54 Not worth the extraction 2026-05-08 20:52:29 +02:00
David Heinemeier Hansson df4ffe991f Balance in output 2026-05-08 20:48:36 +02:00
David Heinemeier Hansson 1b5dcdafd2 Ensure this is a full reset 2026-05-08 20:44:07 +02:00
David Heinemeier Hansson e11d20cfba Quiet the warning on reinstall of keyring 2026-05-08 20:41:33 +02:00
David Heinemeier Hansson 37d6e4f92f Order the same as install menu 2026-05-08 16:46:08 +02:00
David Heinemeier HanssonandGitHub 45db959daf Split fido2 and fingerprint setups into setup and remove (#5670)
* Split fido2 and fingerprint setups into setup and remove

Don't make one thing do two things

* Extract helpers and clean up

* No need to hide them

* Don't need these
2026-05-08 16:41:20 +02:00
David Heinemeier Hansson 366b160960 Fix tests 2026-05-08 16:36:46 +02:00
David Heinemeier Hansson fbc177baa8 Simpler 2026-05-08 16:11:20 +02:00
David Heinemeier Hansson 7702e837e1 Add About screen branding and make everything generic and available through cli 2026-05-08 16:07:36 +02:00
David Heinemeier Hansson 8c5fb7abc3 Make sure arg enums can autocomplete too 2026-05-08 16:06:10 +02:00
David Heinemeier Hansson 7b90929129 Don't find hidden files or directories 2026-05-08 16:02:42 +02:00
David Heinemeier Hansson 065b9439cd Launch screensaver after restoring default too 2026-05-08 15:43:14 +02:00
David Heinemeier Hansson 48859c828b Start the screensaver directly after changes rather than needing a preview 2026-05-08 15:41:31 +02:00
David Heinemeier Hansson 8757b2e1a4 Don't look in hidden directories 2026-05-08 15:41:15 +02:00
David Heinemeier Hansson 0e6e292348 Add 4x scaling too
Great for gif feature demos
2026-05-08 14:52:13 +02:00
b10f8116c8 fix(weather): Use local units for temperature and wind (#5660)
* fix(weather): Use local units for temperature and wind

Remove the metric-to-imperial temperature conversion and display
temperature and wind values as returned for the current locale.

* Don't need this comment

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-08 14:24:26 +02:00
twagner12andGitHub c7c3ef87af Fix DefaultLimitNOFILE typo so fd-limit raise actually applies (#5661)
`DefaultLimitNOFILESoft` is not a valid systemd configuration key.
systemd silently ignores it and emits this warning on every boot,
for both the system manager (PID 1) and the user manager:

  Unknown key 'DefaultLimitNOFILESoft' in section [Manager], ignoring.

The consequence is that the script's stated goal of raising the soft
fd limit from 1024 to 65536 has not actually been happening: dev
tools (VS Code, Docker, dev servers, databases) continue to run with
systemd's default 1024 soft limit.

The valid key is `DefaultLimitNOFILE`, which accepts either a single
value (sets both soft and hard) or `SOFT:HARD`. Using `65536:524288`
raises the soft limit while preserving systemd's typical 524288
hard-limit default — using the bare `=65536` form would lower the
hard limit, which would be a regression.

After this change and `systemctl daemon-reexec` on both managers,
`systemctl show | grep DefaultLimitNOFILE` reports:

  DefaultLimitNOFILE=524288     (hard)
  DefaultLimitNOFILESoft=65536  (soft, derived display attribute)

and the boot-time "Unknown key" warnings disappear.

(The typo likely originated from someone reading `systemctl show`
output, where `DefaultLimitNOFILESoft=` appears as a read-only
display attribute for the soft component of the parsed limit.
It looks like a config key but isn't.)
2026-05-08 13:22:29 +02:00
David Heinemeier Hansson f2f65fdfb2 Merge branch 'dev' into rc 2026-05-07 17:02:13 +02:00
David Heinemeier Hansson 74f319bb6f Merge branch 'dev' into rc 2026-05-07 16:18:28 +02:00
David Heinemeier Hansson 98e9bc6d05 Merge branch 'dev' into rc 2026-05-07 16:16:06 +02:00
David Heinemeier Hansson 121a1e088a Merge branch 'dev' into rc 2026-05-07 16:15:15 +02:00
David Heinemeier Hansson 71e303d2aa Merge branch 'dev' into rc 2026-05-07 15:12:31 +02:00
David Heinemeier Hansson 3a240c7838 Add note about correct perms for migrations 2026-05-07 15:09:53 +02:00
David Heinemeier Hansson c9d1cdce76 Merge branch 'dev' into rc 2026-05-07 15:04:15 +02:00
David Heinemeier Hansson d8a9186326 Merge branch 'dev' into rc 2026-05-07 15:02:25 +02:00
David Heinemeier Hansson 38326c77fc Merge branch 'dev' into rc 2026-05-07 14:54:53 +02:00
David Heinemeier Hansson 66492e57a7 Merge branch 'dev' into rc 2026-05-07 11:23:17 +02:00
David Heinemeier Hansson b6ad01a0fc Merge branch 'dev' into rc 2026-05-07 09:06:25 +02:00
David Heinemeier Hansson cd4fadd502 Merge branch 'dev' into rc 2026-05-06 21:05:41 +02:00
David Heinemeier Hansson d4ffa9e39d Just focus on the window rules 2026-05-06 21:05:24 +02:00
David Heinemeier Hansson dc8ad1dace Use proper .desktop files 2026-05-06 21:03:43 +02:00
David Heinemeier Hansson c80d060321 Merge branch 'dev' into rc 2026-05-06 20:37:36 +02:00
David Heinemeier HanssonandGitHub d827b90a4d Merge branch 'master' into rc 2026-05-06 17:16:10 +02:00
David Heinemeier Hansson e22b70f380 Merge branch 'dev' into rc 2026-05-06 16:52:49 +02:00
David Heinemeier Hansson d59ad099a9 Merge branch 'dev' into rc 2026-05-06 16:52:16 +02:00
Ryan Hughes a3aedb0c4d Version bump 2026-05-04 19:46:42 -04:00
Ryan Hughes 0a5cd43aac Add migration to handle lingering panel_replay addition 2026-05-04 19:46:00 -04:00
David Heinemeier HanssonandGitHub 9aa3858794 Merge pull request #5467 from basecamp/rc
Omarchy 3.7.0
2026-05-04 15:44:57 +02:00
David Heinemeier Hansson 648d8339d2 Merge branch 'dev' into rc 2026-05-04 15:42:37 +02:00
David Heinemeier Hansson 7138044bd2 Merge branch 'dev' into rc 2026-05-04 15:33:23 +02:00
David Heinemeier Hansson 86a38c4a98 Merge branch 'dev' into rc 2026-05-04 14:43:07 +02:00
David Heinemeier Hansson 516882a43c Merge branch 'dev' into rc 2026-05-04 13:57:18 +02:00
David Heinemeier Hansson e3d3ee4044 Merge branch 'dev' into rc 2026-05-04 13:23:37 +02:00
David Heinemeier Hansson 48a771bdac Merge branch 'dev' into rc 2026-05-04 12:38:16 +02:00
David Heinemeier Hansson 03750b31c1 Merge branch 'dev' into rc 2026-05-04 12:23:41 +02:00
David Heinemeier Hansson a6280eed26 Merge branch 'dev' into rc 2026-05-04 11:36:24 +02:00
David Heinemeier Hansson f4a0249ff3 Merge branch 'dev' into rc 2026-05-04 11:18:30 +02:00
David Heinemeier Hansson 011243f4fa Merge branch 'dev' into rc 2026-05-04 10:52:16 +02:00
David Heinemeier Hansson e7f45386d4 Merge branch 'dev' into rc 2026-05-04 10:38:50 +02:00
David Heinemeier Hansson cb3fcf4f60 Merge branch 'dev' into rc 2026-05-04 07:55:06 +02:00
David Heinemeier Hansson d7e3c0dcde Merge branch 'dev' into rc 2026-05-03 22:53:51 +02:00
David Heinemeier Hansson 0edff316da Merge branch 'dev' into rc 2026-05-03 22:02:43 +02:00
David Heinemeier Hansson 774acbf5af Merge branch 'dev' into rc 2026-05-03 19:38:02 +02:00
David Heinemeier Hansson fddaa5e869 Merge branch 'dev' into rc 2026-05-03 13:42:26 +02:00
David Heinemeier Hansson f1a4e9f6e8 Merge branch 'dev' into rc 2026-05-03 13:38:42 +02:00
David Heinemeier Hansson 5cf34963d7 Merge branch 'dev' into rc 2026-05-03 12:47:41 +02:00
David Heinemeier Hansson d40e314d4f Merge branch 'dev' into rc 2026-05-03 12:05:52 +02:00
David Heinemeier Hansson dc249dba95 Merge branch 'dev' into rc 2026-05-03 11:57:19 +02:00
David Heinemeier Hansson 4a7ade9c52 Merge branch 'dev' into rc 2026-05-02 16:43:10 +02:00
David Heinemeier Hansson 06fd369318 Merge branch 'dev' into rc 2026-05-02 14:47:48 +02:00
David Heinemeier Hansson ea7979a057 No quoting needed for bash 5 2026-05-02 13:47:55 +02:00
David Heinemeier Hansson 60966d4553 Merge branch 'dev' into rc 2026-05-02 13:34:38 +02:00
David Heinemeier Hansson 211acd6f9f Merge branch 'dev' into rc 2026-05-02 12:13:33 +02:00
David Heinemeier Hansson 1351cc6442 Merge branch 'dev' into rc 2026-05-02 11:47:54 +02:00
Ryan HughesandGitHub 59b16e7f0f Merge pull request #5541 from dotsilva/dev
fix: "Bistream" typo to "Bitstream"
2026-05-01 23:30:20 -04:00
Bruno da Silva ff23d01fce FIX: Bistream typo to Bitstream in three places 2026-05-01 21:24:41 -03:00
David Heinemeier Hansson a4ab555516 Merge branch 'dev' into rc 2026-05-01 18:33:06 +02:00
David Heinemeier Hansson 1eaddf97ea Quiet down so we don't get useless output spam 2026-05-01 18:27:20 +02:00
David Heinemeier Hansson 8537f41a9d Merge branch 'dev' into rc 2026-05-01 18:22:57 +02:00
David Heinemeier Hansson cf16a6a1a6 Merge branch 'dev' into rc 2026-05-01 14:15:08 +02:00
David Heinemeier Hansson 3d9a875104 Merge branch 'dev' into rc 2026-05-01 11:27:23 +02:00
David Heinemeier Hansson 0b35365f6b Merge branch 'dev' into rc 2026-05-01 11:24:23 +02:00
David Heinemeier Hansson 58c350c171 Merge branch 'dev' into rc 2026-04-30 22:23:48 +02:00
David Heinemeier Hansson efd34a2eea Merge branch 'dev' into rc 2026-04-30 21:45:16 +02:00
David Heinemeier Hansson 0c972657c2 Merge branch 'dev' into rc 2026-04-30 18:32:37 +02:00
David Heinemeier Hansson fa5d054173 Merge branch 'dev' into rc 2026-04-30 18:07:02 +02:00
David Heinemeier Hansson cd7c38c8aa Merge branch 'dev' into rc 2026-04-30 09:40:17 +02:00
David Heinemeier Hansson 9eb0f0e805 Merge branch 'dev' into rc 2026-04-29 20:19:48 +02:00
David Heinemeier Hansson b77f900420 Merge branch 'dev' into rc 2026-04-29 15:49:48 +02:00
David Heinemeier Hansson 1770494fa2 Merge branch 'dev' into rc 2026-04-29 11:23:41 +02:00
David Heinemeier Hansson 53d073da7c Merge branch 'dev' into rc 2026-04-28 09:37:27 +02:00
David Heinemeier Hansson 2fab15c0a7 Merge branch 'dev' into rc 2026-04-27 15:00:25 +02:00
David Heinemeier Hansson 4127c749fb Proper fix for using device dark mode in Chrome 2026-04-24 10:16:31 +02:00
David Heinemeier HanssonandGitHub bc9777c0b8 Merge pull request #5388 from basecamp/rc
Omarchy 3.6.0
2026-04-23 15:12:57 +02:00
David Heinemeier Hansson add6a3c506 Merge branch 'dev' into rc 2026-04-23 14:39:27 +02:00
David Heinemeier Hansson 7dc086bb47 Merge branch 'dev' into rc 2026-04-23 13:03:33 +02:00
David Heinemeier Hansson 8346eea614 Merge branch 'dev' into rc 2026-04-23 12:48:31 +02:00
David Heinemeier Hansson 1abc92aadd Merge branch 'dev' into rc 2026-04-23 11:57:26 +02:00
141edc262f Quote OMARCHY_PATH in migration source command
Agent-Logs-Url: https://github.com/basecamp/omarchy/sessions/36fb96d5-70fd-4365-9550-e7ff5f8735d1

Co-authored-by: dhh <2741+dhh@users.noreply.github.com>
2026-04-22 20:31:31 +00:00
David Heinemeier Hansson 12494bcd8f Merge branch 'dev' into rc 2026-04-22 22:18:40 +02:00
David Heinemeier Hansson 577cd1e8ab Merge branch 'dev' into rc 2026-04-22 21:28:28 +02:00
David Heinemeier Hansson 2f5be43407 Merge branch 'dev' into rc 2026-04-22 20:11:29 +02:00
David Heinemeier Hansson 77c9bca045 Merge branch 'dev' into rc 2026-04-22 16:33:50 +02:00
David Heinemeier Hansson 2537edb1e6 Merge branch 'dev' into rc 2026-04-22 16:31:09 +02:00
David Heinemeier HanssonandGitHub 236a34b23c Merge pull request #5280 from basecamp/rc
Omarchy 3.5.1
2026-04-16 16:12:03 +02:00
David Heinemeier Hansson 2c4b4488c0 Merge branch 'dev' into rc 2026-04-16 16:03:49 +02:00
David Heinemeier Hansson 8f7d64ba78 Merge branch 'dev' into rc 2026-04-16 15:34:24 +02:00
David Heinemeier Hansson 9ece3318ec Merge branch 'dev' into rc 2026-04-16 15:24:11 +02:00
David Heinemeier Hansson d51a3f6b37 Merge branch 'dev' into rc 2026-04-15 18:16:27 +02:00
David Heinemeier Hansson cdb8628502 Merge branch 'dev' into rc 2026-04-15 16:21:03 +02:00
David Heinemeier Hansson b919a5541a Merge branch 'dev' into rc 2026-04-15 16:17:19 +02:00
David Heinemeier Hansson 4ee44c36a6 Merge branch 'dev' into rc 2026-04-15 15:55:55 +02:00
David Heinemeier Hansson d71ddf022a Merge branch 'dev' into rc 2026-04-15 15:02:11 +02:00
David Heinemeier Hansson cd511f77b9 Merge branch 'dev' into rc 2026-04-15 14:36:44 +02:00
David Heinemeier Hansson e6b105d0b2 Merge branch 'dev' into rc 2026-04-15 13:52:05 +02:00
David Heinemeier Hansson 2554fe8555 Merge branch 'dev' into rc 2026-04-15 12:34:23 +02:00
David Heinemeier Hansson feda8b7231 Merge branch 'dev' into rc 2026-04-15 12:11:18 +02:00
David Heinemeier Hansson 46eb5568d9 Merge branch 'dev' into rc 2026-04-15 11:56:00 +02:00
David Heinemeier Hansson 33c92f554b Merge branch 'dev' into rc 2026-04-15 11:49:29 +02:00
David Heinemeier Hansson 997011e985 Merge branch 'dev' into rc 2026-04-13 16:00:11 -07:00
David Heinemeier Hansson 0e126b7916 Merge branch 'dev' into rc 2026-04-13 15:59:23 -07:00
David Heinemeier Hansson f81b3c842d Merge branch 'dev' into rc 2026-04-11 20:48:42 -04:00
David Heinemeier Hansson ecbd912b09 Merge branch 'dev' into rc 2026-04-11 18:02:01 -04:00
David Heinemeier HanssonandGitHub 76d09b29b7 Merge pull request #5192 from basecamp/rc
Omarchy 3.5.0
2026-04-03 19:16:29 +02:00
David Heinemeier Hansson f18dfdd101 Merge branch 'dev' into rc 2026-04-03 11:36:14 +02:00
David Heinemeier Hansson e4757abb80 Merge branch 'dev' into rc 2026-04-03 10:57:18 +02:00
David Heinemeier Hansson fc1cb1a751 Merge branch 'dev' into rc 2026-04-02 18:06:32 +02:00
David Heinemeier Hansson 50d3579d66 Don't use the names here since they break the all-themes setup in omarchy-nvim 2026-04-02 18:04:55 +02:00
David Heinemeier Hansson b72a831bf5 Merge branch 'dev' into rc 2026-04-02 17:39:10 +02:00
David Heinemeier Hansson e2b6b5ed5a Merge branch 'dev' into rc 2026-04-02 17:23:41 +02:00
David Heinemeier Hansson e5bcec53d1 Merge branch 'dev' into rc 2026-04-02 16:07:23 +02:00
David Heinemeier Hansson 1b07638732 Merge branch 'dev' into rc 2026-04-02 16:06:29 +02:00
David Heinemeier Hansson 4a3355e767 Merge branch 'dev' into rc 2026-04-01 18:16:31 +02:00
David Heinemeier Hansson 3b8ab81781 Merge branch 'dev' into rc 2026-03-08 18:29:04 +01:00
David Heinemeier Hansson da0bb37a19 Merge branch 'dev' into rc 2026-03-08 17:54:04 +01:00
118 changed files with 3027 additions and 714 deletions
+4
View File
@@ -92,6 +92,10 @@ Exceptions are allowed for bootstrap, preflight, migration, and package-helper s
- `default/themed/*.tpl` - templates with `{{ variable }}` placeholders for theme colors
- `themes/*/colors.toml` - theme color definitions (accent, background, foreground, color0-15)
# Visual Changes
When making visual changes, such as Waybar styles or desktop appearance, always take and analyze a screenshot after applying the change to verify the result. Use `omarchy capture screenshot fullscreen save` for fullscreen screenshots.
# Refresh Pattern
To copy a default config to user config with automatic backup:
Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 196 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

+1
View File
@@ -29,6 +29,7 @@ declare -A GROUP_DESCRIPTIONS
GROUP_DESCRIPTIONS[ac]="AC power detection"
GROUP_DESCRIPTIONS[battery]="Battery status helpers"
GROUP_DESCRIPTIONS[branch]="Omarchy git branch management"
GROUP_DESCRIPTIONS[branding]="About and screensaver branding"
GROUP_DESCRIPTIONS[brightness]="Display and keyboard brightness"
GROUP_DESCRIPTIONS[capture]="Screenshots and screen recording"
GROUP_DESCRIPTIONS[channel]="Omarchy release channel management"
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
# omarchy:summary=Edit, set, or reset About branding
# omarchy:group=branding
# omarchy:name=about
# omarchy:args=<image|text|reset>
# omarchy:examples=omarchy branding about image | omarchy branding about text | omarchy branding about reset
set -euo pipefail
case "${1:-}" in
image)
image=$(omarchy-menu-file "Logo image" "$HOME" "svg png")
if [[ -n $image ]] && omarchy-transcode-ascii "$image" ~/.config/omarchy/branding/about.txt --width 54 --height 26 --mode block; then
omarchy-launch-about >/dev/null 2>&1
fi
;;
text)
omarchy-launch-editor ~/.config/omarchy/branding/about.txt >/dev/null 2>&1 && omarchy-launch-about >/dev/null 2>&1
;;
reset)
cp "$OMARCHY_PATH/icon.txt" ~/.config/omarchy/branding/about.txt && omarchy-launch-about >/dev/null 2>&1
;;
*)
echo "Usage: omarchy-branding-about <image|text|reset>" >&2
exit 1
;;
esac
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
# omarchy:summary=Edit, set, or reset screensaver branding
# omarchy:group=branding
# omarchy:name=screensaver
# omarchy:args=<image|text|reset>
# omarchy:examples=omarchy branding screensaver image | omarchy branding screensaver text | omarchy branding screensaver reset
set -euo pipefail
case "${1:-}" in
image)
image=$(omarchy-menu-file "Logo image" "$HOME" "svg png")
if [[ -n $image ]] && omarchy-transcode-ascii "$image" ~/.config/omarchy/branding/screensaver.txt; then
omarchy-launch-screensaver force >/dev/null 2>&1
fi
;;
text)
omarchy-launch-editor ~/.config/omarchy/branding/screensaver.txt >/dev/null 2>&1 && omarchy-launch-screensaver force >/dev/null 2>&1
;;
reset)
cp "$OMARCHY_PATH/logo.txt" ~/.config/omarchy/branding/screensaver.txt && omarchy-launch-screensaver force >/dev/null 2>&1
;;
*)
echo "Usage: omarchy-branding-screensaver <image|text|reset>" >&2
exit 1
;;
esac
+1
View File
@@ -233,6 +233,7 @@ stop_screenrecording() {
else
finalize_recording
local filename=$(cat "$RECORDING_FILE" 2>/dev/null)
echo "$filename"
local preview="${filename%.mp4}-preview.png"
# Generate a preview thumbnail from the first frame
+19 -11
View File
@@ -2,7 +2,7 @@
# omarchy:summary=Take a screenshot
# omarchy:group=capture
# omarchy:args=[smart|region|windows|fullscreen] [slurp|copy] [--editor=<name>]
# omarchy:args=[smart|region|windows|fullscreen] [slurp|copy|save] [--editor=<name>]
# omarchy:examples=omarchy screenshot | omarchy capture screenshot region
# omarchy:aliases=omarchy screenshot
@@ -126,14 +126,22 @@ esac
FILENAME="screenshot-$(date +'%Y-%m-%d_%H-%M-%S').png"
FILEPATH="$OUTPUT_DIR/$FILENAME"
if [[ $PROCESSING == "slurp" ]]; then
grim -g "$SELECTION" "$FILEPATH" || exit 1
wl-copy <"$FILEPATH"
case "$PROCESSING" in
slurp)
grim -g "$SELECTION" "$FILEPATH" || exit 1
echo "$FILEPATH"
wl-copy <"$FILEPATH"
(
ACTION=$(notify-send "Screenshot saved to clipboard and file" "Edit with Super + Alt + , (or click this)" -t 10000 -i "$FILEPATH" -A "default=edit")
[[ $ACTION == "default" ]] && open_editor "$FILEPATH"
) &
else
grim -g "$SELECTION" - | wl-copy
fi
(
ACTION=$(notify-send "Screenshot saved to clipboard and file" "Edit with Super + Alt + , (or click this)" -t 10000 -i "$FILEPATH" -A "default=edit")
[[ $ACTION == "default" ]] && open_editor "$FILEPATH"
) >/dev/null 2>&1 &
;;
copy)
grim -g "$SELECTION" - | wl-copy
;;
save)
grim -g "$SELECTION" "$FILEPATH" || exit 1
echo "$FILEPATH"
;;
esac
+2 -4
View File
@@ -74,15 +74,13 @@ ACTION=$(gum choose "${OPTIONS[@]}")
case "$ACTION" in
"Upload log")
echo "Uploading debug log to 0x0.st..."
URL=$(curl -sF "file=@$LOG_FILE" -Fexpires=24 https://0x0.st)
echo "Uploading debug log to logs.omarchy.org..."
URL=$(curl -sf -F "file=@$LOG_FILE" https://logs.omarchy.org/)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
-96
View File
@@ -1,96 +0,0 @@
#!/usr/bin/env python3
# omarchy:summary=Run the Synaptics touchpad haptic feedback daemon
"""Haptic feedback daemon for Synaptics touchpads with Manual Trigger.
Monitors touchpad button press events and sends haptic pulses via HID
feature reports. Required because the kernel's HID haptic subsystem only
supports Auto Trigger with waveform enumeration, not the simpler Manual
Trigger protocol used by these Synaptics touchpads.
"""
import fcntl, glob, os, struct, sys
VENDOR = "06CB"
REPORT_ID = 0x37
INTENSITY = 40 # 0-100
# input_event: struct timeval (16 bytes on 64-bit) + type(H) + code(H) + value(i)
EVENT_FORMAT = "llHHi"
EVENT_SIZE = struct.calcsize(EVENT_FORMAT)
EV_KEY = 0x01
BTN_LEFT = 272
BTN_RIGHT = 273
BTN_MIDDLE = 274
# ioctl: HIDIOCSFEATURE(len) = _IOC(_IOC_WRITE|_IOC_READ, 'H', 0x06, len)
def HIDIOCSFEATURE(length):
return 0xC0000000 | (length << 16) | (ord("H") << 8) | 0x06
def find_hidraw():
for path in sorted(glob.glob("/sys/class/hidraw/hidraw*")):
uevent = os.path.join(path, "device", "uevent")
try:
with open(uevent) as f:
content = f.read().upper()
if f"0000{VENDOR}" in content:
return os.path.join("/dev", os.path.basename(path))
except OSError:
continue
return None
def find_touchpad_event():
for path in sorted(glob.glob("/sys/class/input/event*/device/name")):
try:
with open(path) as f:
name = f.read().strip().upper()
if VENDOR in name and "TOUCHPAD" in name:
event = path.split("/")[-3]
return os.path.join("/dev/input", event)
except OSError:
continue
return None
def main():
hidraw = find_hidraw()
if not hidraw:
print("No Synaptics haptic touchpad hidraw device found", file=sys.stderr)
sys.exit(1)
event = find_touchpad_event()
if not event:
print("No Synaptics haptic touchpad input device found", file=sys.stderr)
sys.exit(1)
print(f"Haptic touchpad: hidraw={hidraw} input={event} intensity={INTENSITY}", flush=True)
haptic_report = struct.pack("BB", REPORT_ID, INTENSITY)
ioctl_req = HIDIOCSFEATURE(len(haptic_report))
hidraw_fd = os.open(hidraw, os.O_RDWR)
event_fd = os.open(event, os.O_RDONLY)
try:
while True:
data = os.read(event_fd, EVENT_SIZE)
if len(data) < EVENT_SIZE:
continue
_, _, ev_type, code, value = struct.unpack(EVENT_FORMAT, data)
if ev_type == EV_KEY and code in (BTN_LEFT, BTN_RIGHT, BTN_MIDDLE) and value == 1:
try:
fcntl.ioctl(hidraw_fd, ioctl_req, haptic_report)
except OSError:
pass
except KeyboardInterrupt:
pass
finally:
os.close(event_fd)
os.close(hidraw_fd)
if __name__ == "__main__":
main()
+5
View File
@@ -0,0 +1,5 @@
#!/bin/bash
# omarchy:summary=Match Dell XPS systems with the Synaptics haptic touchpad.
omarchy-hw-match "XPS" && [[ -e /sys/bus/i2c/devices/i2c-VEN_06CB:00 ]]
+3 -3
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Cycle focused Hyprland monitor scaling through 1x, 1.25x, 1.6x, 2x, and 3x
# omarchy:summary=Cycle focused Hyprland monitor scaling through 1x, 1.25x, 1.6x, 2x, 3x, and 4x
MONITOR_INFO=$(hyprctl monitors -j | jq -r '.[] | select(.focused == true)')
ACTIVE_MONITOR=$(echo "$MONITOR_INFO" | jq -r '.name')
@@ -9,8 +9,8 @@ WIDTH=$(echo "$MONITOR_INFO" | jq -r '.width')
HEIGHT=$(echo "$MONITOR_INFO" | jq -r '.height')
REFRESH_RATE=$(echo "$MONITOR_INFO" | jq -r '.refreshRate')
# Cycle through scales: 1 → 1.25 → 1.6 → 2 → 3 → 1 (or reverse with --reverse)
SCALES=(1 1.25 1.6 2 3)
# Cycle through scales: 1 → 1.25 → 1.6 → 2 → 3 → 4 → 1 (or reverse with --reverse)
SCALES=(1 1.25 1.6 2 3 4)
# Find the index of the scale closest to the current one (Hyprland may
# snap fractional scales to nearby values, so we can't match exactly)
+4 -1
View File
@@ -21,7 +21,10 @@ omarchy-pkg-add \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
libretro-database-git \
retroarch-joypad-autoconfig-git
+47 -30
View File
@@ -233,13 +233,18 @@ show_hardware_menu() {
options="$options\n󰟸 Touchpad"
fi
if omarchy-hw-dell-xps-haptic-touchpad && omarchy-cmd-present dell-xps-touchpad-haptics; then
options="$options\n󰌌 Touchpad Haptics"
fi
if omarchy-hw-touchscreen; then
options="$options\n󰆽 Touchscreen"
fi
case $(menu "Toggle" "$options") in
*Laptop*) omarchy-hyprland-monitor-internal toggle ;;
*Mirror*) omarchy-hyprland-monitor-internal-mirror toggle;;
*Mirror*) omarchy-hyprland-monitor-internal-mirror toggle ;;
*Haptics*) show_hardware_touchpad_haptics_menu ;;
*Touchpad*) omarchy-toggle-touchpad ;;
*Touchscreen*) omarchy-toggle-touchscreen ;;
*"Hybrid GPU"*) present_terminal omarchy-toggle-hybrid-gpu ;;
@@ -247,6 +252,17 @@ show_hardware_menu() {
esac
}
show_hardware_touchpad_haptics_menu() {
local current=$(dell-xps-touchpad-haptics get)
local selected=$(menu "Touchpad Haptics" "low\nmid\nhigh" "" "$current")
if [[ -n $selected ]]; then
dell-xps-touchpad-haptics set "$selected"
else
back_to show_hardware_menu
fi
}
show_style_menu() {
case $(menu "Style" "󰸌 Theme\n󰟵 Unlock\n Font\n Background\n Hyprland\n󱄄 Screensaver\n About") in
*Theme*) show_theme_menu ;;
@@ -255,33 +271,27 @@ show_style_menu() {
*Background*) show_background_menu ;;
*Hyprland*) open_in_editor ~/.config/hypr/looknfeel.conf ;;
*Screensaver*) show_screensaver_menu ;;
*About*) open_in_editor ~/.config/omarchy/branding/about.txt ;;
*About*) show_about_menu ;;
*) show_main_menu ;;
esac
}
show_screensaver_menu() {
case $(menu "Screensaver" " Edit Text\n Set From Image\n󱄄 Preview\n Restore Default") in
*Text*) open_in_editor ~/.config/omarchy/branding/screensaver.txt ;;
*Image*) set_screensaver_from_image ;;
*Preview*) omarchy-launch-screensaver force ;;
*Default*) terminal bash -lc 'omarchy-screensaver-logo default; echo; read -n 1 -s -r -p "Press any key to close..."' ;;
show_about_menu() {
case $(menu "About" " Edit Text\n Set From Image\n Restore Default") in
*Text*) omarchy-branding-about text ;;
*Image*) omarchy-branding-about image ;;
*Default*) omarchy-branding-about reset ;;
*) show_style_menu ;;
esac
}
set_screensaver_from_image() {
terminal bash -lc '
image=$(fd --type file --ignore-case --extension svg --extension png . "$HOME" 2>/dev/null | fzf --prompt "Logo image> ")
if [[ -n $image ]]; then
if omarchy-screensaver-logo "$image"; then
echo
echo "Preview with: omarchy-launch-screensaver force"
fi
echo
read -n 1 -s -r -p "Press any key to close..."
fi
'
show_screensaver_menu() {
case $(menu "Screensaver" " Edit Text\n Set From Image\n Restore Default") in
*Text*) omarchy-branding-screensaver text ;;
*Image*) omarchy-branding-screensaver image ;;
*Default*) omarchy-branding-screensaver reset ;;
*) show_style_menu ;;
esac
}
show_theme_menu() {
@@ -336,8 +346,8 @@ show_setup_power_menu() {
show_setup_security_menu() {
case $(menu "Setup" "󰈷 Fingerprint\n Fido2") in
*Fingerprint*) present_terminal omarchy-setup-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-fido2 ;;
*Fingerprint*) present_terminal omarchy-setup-security-fingerprint ;;
*Fido2*) present_terminal omarchy-setup-security-fido2 ;;
*) show_setup_menu ;;
esac
}
@@ -568,7 +578,7 @@ show_install_ai_menu() {
}
show_install_gaming_menu() {
case $(menu "Install" " Steam\n RetroArch\n󰍳 Minecraft\n󰢹 NVIDIA GeForce NOW\n Xbox Cloud Gaming\n󰖺 Xbox Controller (󰂯)\n󰍹 Moonlight (GameStream)\n Lutris (Battle.net)\n󱓟 Heroic (Epic Games)") in
case $(menu "Install" " Steam\n RetroArch\n󰍳 Minecraft\n󰢹 NVIDIA GeForce NOW\n Xbox Cloud Gaming\n󰂯 Xbox Controller\n󰍹 Moonlight (GameStream)\n Lutris (Battle.net)\n󱓟 Heroic (Epic Games)") in
*Steam*) present_terminal omarchy-install-gaming-steam ;;
*RetroArch*) present_terminal omarchy-install-gaming-retroarch ;;
*Minecraft*) install_and_launch "Minecraft" "minecraft-launcher" "minecraft-launcher" ;;
@@ -650,23 +660,30 @@ show_install_elixir_menu() {
}
show_remove_menu() {
case $(menu "Remove" "󰣇 Package\n Browser\n Web App\n TUI\n󰵮 Development\n Gaming\n󰏓 Preinstalls\n Dictation\n󰸌 Theme\n󰍲 Windows\n󰈷 Fingerprint\n Fido2") in
case $(menu "Remove" "󰣇 Package\n Web App\n TUI\n󰵮 Development\n󰸌 Theme\n Browser\n Dictation\n Gaming\n󰍲 Windows\n󰏓 Preinstalls\n Security") in
*Package*) terminal omarchy-pkg-remove ;;
*Browser*) show_remove_browser_menu ;;
*Web*) present_terminal omarchy-webapp-remove ;;
*TUI*) present_terminal omarchy-tui-remove ;;
*Development*) show_remove_development_menu ;;
*Gaming*) show_remove_gaming_menu ;;
*Preinstalls*) present_terminal omarchy-remove-preinstalls ;;
*Dictation*) present_terminal omarchy-voxtype-remove ;;
*Theme*) present_terminal omarchy-theme-remove ;;
*Browser*) show_remove_browser_menu ;;
*Dictation*) present_terminal omarchy-voxtype-remove ;;
*Gaming*) show_remove_gaming_menu ;;
*Windows*) present_terminal "omarchy-windows-vm remove" ;;
*Fingerprint*) present_terminal "omarchy-setup-fingerprint --remove" ;;
*Fido2*) present_terminal "omarchy-setup-fido2 --remove" ;;
*Preinstalls*) present_terminal omarchy-remove-preinstalls ;;
*Security*) show_remove_security_menu ;;
*) show_main_menu ;;
esac
}
show_remove_security_menu() {
case $(menu "Remove" "󰈷 Fingerprint\n Fido2") in
*Fingerprint*) present_terminal omarchy-remove-security-fingerprint ;;
*Fido2*) present_terminal omarchy-remove-security-fido2 ;;
*) show_remove_menu ;;
esac
}
show_remove_browser_menu() {
case $(menu "Remove" " Chrome\n Edge\n Brave\n Brave Origin\n Firefox\n Zen") in
*Chrome*) present_terminal "omarchy-remove-browser chrome" ;;
+7 -4
View File
@@ -30,16 +30,19 @@ for path in "${paths[@]}"; do
[[ -e $path ]] || { echo "Path not found: $path" >&2; exit 1; }
done
find_args=("${paths[@]}" -type f "(")
find_args=("${paths[@]}" "(" -type d -name ".*" ! -name "." -prune ")" -o -type f ! -name ".*" "(")
first_format=true
for format in "${formats[@]}"; do
if (( ${#find_args[@]} > ${#paths[@]} + 3 )); then
if [[ $first_format == "true" ]]; then
first_format=false
else
find_args+=(-o)
fi
format="${format#.}"
find_args+=(-iname "*.$format")
done
find_args+=(")")
find_args+=(")" -printf '%T@\t%p\n')
find "${find_args[@]}" -printf '%T@\t%p\n' 2>/dev/null | sort -rn | cut -f2- |
find "${find_args[@]}" 2>/dev/null | sort -rn | cut -f2- |
omarchy-launch-walker --dmenu --width 800 --minheight 1 --maxheight 500 -p "$label…" "$@" 2>/dev/null
+1 -1
View File
@@ -6,6 +6,6 @@ set -e
# Reinstall the Omarchy configuration directory from the git source.
git clone --depth=1 "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
git clone --depth=1 --branch master "https://github.com/basecamp/omarchy.git" ~/.local/share/omarchy-new >/dev/null
mv $OMARCHY_PATH ~/.local/share/omarchy-old
mv ~/.local/share/omarchy-new $OMARCHY_PATH
+4 -1
View File
@@ -21,7 +21,10 @@ omarchy-pkg-drop \
libretro-parallel-n64 libretro-picodrive libretro-play libretro-ppsspp \
libretro-sameboy libretro-scummvm libretro-shaders-slang libretro-snes9x \
libretro-yabause \
libretro-cap32-git libretro-fbneo-git libretro-uae-git libretro-vice-git \
libretro-cap32-git libretro-fbneo-git libretro-uae-git \
libretro-vice-x128-git libretro-vice-x64-git libretro-vice-x64dtv-git libretro-vice-x64sc-git \
libretro-vice-xcbm2-git libretro-vice-xcbm5x0-git libretro-vice-xpet-git \
libretro-vice-xplus4-git libretro-vice-xscpu64-git libretro-vice-xvic-git \
retroarch-joypad-autoconfig-git
rm -rf \
+35
View File
@@ -0,0 +1,35 @@
#!/bin/bash
# omarchy:summary=Remove FIDO2 authentication from sudo and polkit
# omarchy:requires-sudo=true
set -e
remove_pam_config() {
# Remove from sudo
if grep -q pam_u2f.so /etc/pam.d/sudo; then
echo "Removing FIDO2 authentication from sudo..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_u2f.so' /etc/pam.d/polkit-1; then
echo "Removing FIDO2 authentication from polkit..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/polkit-1
fi
}
echo -e "\e[32mRemoving FIDO2 device from authentication.\n\e[0m"
remove_pam_config
if [[ -d /etc/fido2 ]]; then
echo "Removing FIDO2 configuration..."
sudo rm -rf /etc/fido2
fi
echo "Removing FIDO2 packages..."
omarchy-pkg-drop libfido2 pam-u2f
echo -e "\e[32mFIDO2 authentication has been completely removed.\e[0m"
+37
View File
@@ -0,0 +1,37 @@
#!/bin/bash
# omarchy:summary=Remove fingerprint authentication from sudo, polkit, and lock screen
# omarchy:requires-sudo=true
set -e
remove_pam_config() {
# Remove from sudo
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
echo "Removing fingerprint authentication from sudo..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_fprintd.so' /etc/pam.d/polkit-1; then
echo "Removing fingerprint authentication from polkit..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/polkit-1
fi
}
remove_hyprlock_fingerprint_icon() {
echo "Removing fingerprint icon from hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
}
echo -e "\e[32mRemoving fingerprint scanner from authentication.\n\e[0m"
remove_pam_config
remove_hyprlock_fingerprint_icon
echo "Removing fingerprint packages..."
omarchy-pkg-drop fprintd libfprint-git
echo -e "\e[32mFingerprint authentication has been completely removed.\e[0m"
+5 -5
View File
@@ -2,8 +2,8 @@
# omarchy:summary=Restart the SwayOSD server
if systemctl --user is-enabled --quiet swayosd-server.service; then
systemctl --user restart swayosd-server.service
else
omarchy-restart-app swayosd-server
fi
systemctl --user daemon-reload
systemctl --user stop swayosd-server.service || true
pkill -x swayosd-server || true
systemctl --user reset-failed swayosd-server.service || true
systemctl --user enable --now swayosd-server.service
+2 -1
View File
@@ -3,4 +3,5 @@
# omarchy:summary=Restart Waybar
# omarchy:examples=omarchy restart waybar
omarchy-restart-app waybar
pkill -9 -x waybar
setsid uwsm-app -- waybar >/dev/null 2>&1 &
-131
View File
@@ -1,131 +0,0 @@
#!/bin/bash
# omarchy:summary=Set up or remove FIDO2 authentication for sudo and polkit
# omarchy:args=[--remove]
# omarchy:requires-sudo=true
set -e
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
}
print_info() {
echo -e "${YELLOW}$1${NC}"
}
check_fido2_hardware() {
tokens=$(fido2-token -L 2>/dev/null)
if [[ -z $tokens ]]; then
print_error "\nNo FIDO2 device detected. Please plug it in (you may need to unlock it as well)."
return 1
fi
return 0
}
setup_pam_config() {
# Configure sudo
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
print_info "Configuring sudo for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_u2f.so' /etc/pam.d/polkit-1; then
print_info "Configuring polkit for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
print_info "Creating polkit configuration with FIDO2 authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
}
remove_pam_config() {
# Remove from sudo
if grep -q pam_u2f.so /etc/pam.d/sudo; then
print_info "Removing FIDO2 authentication from sudo..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_u2f.so' /etc/pam.d/polkit-1; then
print_info "Removing FIDO2 authentication from polkit..."
sudo sed -i '/pam_u2f\.so/d' /etc/pam.d/polkit-1
fi
}
if [[ "--remove" == $1 ]]; then
print_success "Removing FIDO2 device from authentication.\n"
# Remove PAM configuration
remove_pam_config
# Remove FIDO2 configuration
if [[ -d /etc/fido2 ]]; then
print_info "Removing FIDO2 configuration..."
sudo rm -rf /etc/fido2
fi
# Uninstall packages
print_info "Removing FIDO2 packages..."
sudo pacman -Rns --noconfirm libfido2 pam-u2f
print_success "FIDO2 authentication has been completely removed."
else
print_success "Setting up FIDO2 device for authentication.\n"
# Install required packages
print_info "Installing required packages..."
omarchy-pkg-add libfido2 pam-u2f
if ! check_fido2_hardware; then
exit 1
fi
# Create the pamu2fcfg file
if [[ ! -f /etc/fido2/fido2 ]]; then
sudo mkdir -p /etc/fido2
print_success "\nLet's setup your device by confirming on the device now."
print_info "Touch your FIDO2 key when it lights up...\n"
if pamu2fcfg >/tmp/fido2; then
sudo mv /tmp/fido2 /etc/fido2/fido2
print_success "FIDO2 device registered successfully!"
else
print_error "\nFIDO2 registration failed. Please try again."
exit 1
fi
else
print_info "FIDO2 device already registered."
fi
# Configure PAM
setup_pam_config
# Test with sudo
print_info "\nTesting FIDO2 authentication with sudo..."
print_info "Touch your FIDO2 key when prompted.\n"
if sudo echo "FIDO2 authentication test successful"; then
print_success "\nPerfect! FIDO2 authentication is now configured."
print_info "You can use your FIDO2 key for sudo and polkit authentication."
else
print_error "\nVerification failed. You may want to check your configuration."
fi
fi
-161
View File
@@ -1,161 +0,0 @@
#!/bin/bash
# omarchy:summary=Set up or remove fingerprint authentication for sudo, polkit, and lock screen
# omarchy:args=[--remove]
# omarchy:requires-sudo=true
set -e
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color
print_success() {
echo -e "${GREEN}$1${NC}"
}
print_error() {
echo -e "${RED}$1${NC}"
}
print_info() {
echo -e "${YELLOW}$1${NC}"
}
check_fingerprint_hardware() {
# Get fingerprint devices for the user
devices=$(fprintd-list "$USER" 2>/dev/null)
# Exit if no devices found
if [[ -z $devices ]]; then
print_error "\nNo fingerprint sensor detected."
return 1
fi
return 0
}
setup_pam_config() {
# Configure sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
print_info "Configuring sudo for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_fprintd.so' /etc/pam.d/polkit-1; then
print_info "Configuring polkit for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
print_info "Creating polkit configuration with fingerprint authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
}
add_hyprlock_fingerprint_icon() {
print_info "Adding fingerprint icon to hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = true/' ~/.config/hypr/hyprlock.conf
}
remove_hyprlock_fingerprint_icon() {
print_info "Removing fingerprint icon from hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = Enter Password/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = false/' ~/.config/hypr/hyprlock.conf
}
remove_pam_config() {
# Remove from sudo
if grep -q pam_fprintd.so /etc/pam.d/sudo; then
print_info "Removing fingerprint authentication from sudo..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/sudo
fi
# Remove from polkit
if [[ -f /etc/pam.d/polkit-1 ]] && grep -Fq 'pam_fprintd.so' /etc/pam.d/polkit-1; then
print_info "Removing fingerprint authentication from polkit..."
sudo sed -i '/pam_fprintd\.so/d' /etc/pam.d/polkit-1
fi
}
if [[ "--remove" == $1 ]]; then
print_success "Removing fingerprint scanner from authentication.\n"
# Remove PAM configuration
remove_pam_config
# Remove fingerprint icon from hyprlock placeholder text
remove_hyprlock_fingerprint_icon
# Uninstall packages
print_info "Removing fingerprint packages..."
sudo pacman -Rns --noconfirm fprintd
print_success "Fingerprint authentication has been completely removed."
else
print_success "Setting up fingerprint scanner for authentication.\n"
# Install required packages
print_info "Installing required packages..."
# ASUS ExpertBook B9406CAA ships a FocalTech FT9349 ESS reader (USB
# 2808:a97a). Mainline libfprint at 1.94.x lacks the focaltech_moc
# driver (and its 0xa97a id_table entry); OPR ships libfprint-git
# which carries both. Once upstream catches up, this branch is a
# no-op and `libfprint-git` provides=libfprint anyway. Detect via
# /sys to avoid depending on usbutils being installed first.
for v in /sys/bus/usb/devices/*/idVendor; do
[[ "$(cat "$v" 2>/dev/null)" == "2808" ]] || continue
[[ "$(cat "${v%idVendor}idProduct" 2>/dev/null)" == "a97a" ]] || continue
print_info "FocalTech FT9349 detected (B9406CAA) — using libfprint-git from OPR..."
# libfprint-git provides+conflicts libfprint; pacman -S --noconfirm
# defaults the conflict prompt to N and aborts. Pre-remove libfprint
# with -Rdd so the install goes silent. -Rdd (not omarchy-pkg-drop's
# -Rns) is required because fprintd requires libfprint; the dep is
# re-satisfied immediately by libfprint-git's provides=libfprint.
if omarchy-pkg-present libfprint; then
sudo pacman -Rdd --noconfirm libfprint
fi
omarchy-pkg-add libfprint-git
break
done
omarchy-pkg-add fprintd usbutils
if ! check_fingerprint_hardware; then
exit 1
fi
# Configure PAM
setup_pam_config
# Add fingerprint icon to hyprlock placeholder text
add_hyprlock_fingerprint_icon
# Enroll first fingerprint
print_success "\nLet's setup your right index finger as the first fingerprint."
print_info "Keep moving the finger around on sensor until the process completes.\n"
if sudo fprintd-enroll "$USER"; then
print_success "\nFingerprint enrolled successfully!"
# Verify
print_info "\nNow let's verify that it's working correctly.\n"
if fprintd-verify; then
print_success "\nPerfect! Fingerprint authentication is now configured."
print_info "You can use your fingerprint for sudo, polkit, and lock screen (Super + Escape)."
else
print_error "\nVerification failed. You may want to try enrolling again."
fi
else
print_error "\nEnrollment failed. Please try again."
exit 1
fi
fi
+81
View File
@@ -0,0 +1,81 @@
#!/bin/bash
# omarchy:summary=Set up FIDO2 authentication for sudo and polkit
# omarchy:requires-sudo=true
set -e
check_fido2_hardware() {
tokens=$(fido2-token -L 2>/dev/null)
if [[ -z $tokens ]]; then
echo -e "\e[31m\nNo FIDO2 device detected. Please plug it in (you may need to unlock it as well).\e[0m"
return 1
fi
return 0
}
setup_pam_config() {
# Configure sudo
if ! grep -q pam_u2f.so /etc/pam.d/sudo; then
echo "Configuring sudo for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_u2f.so' /etc/pam.d/polkit-1; then
echo "Configuring polkit for FIDO2 authentication..."
sudo sed -i '1i auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
echo "Creating polkit configuration with FIDO2 authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_u2f.so cue authfile=/etc/fido2/fido2
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
}
echo -e "\e[32mSetting up FIDO2 device for authentication.\n\e[0m"
# Install required packages
echo "Installing required packages..."
omarchy-pkg-add libfido2 pam-u2f
if ! check_fido2_hardware; then
exit 1
fi
# Create the pamu2fcfg file
if [[ ! -f /etc/fido2/fido2 ]]; then
sudo mkdir -p /etc/fido2
echo -e "\e[32m\nLet's setup your device by confirming on the device now.\e[0m"
echo -e "Touch your FIDO2 key when it lights up...\n"
if pamu2fcfg >/tmp/fido2; then
sudo mv /tmp/fido2 /etc/fido2/fido2
echo -e "\e[32mFIDO2 device registered successfully!\e[0m"
else
echo -e "\e[31m\nFIDO2 registration failed. Please try again.\e[0m"
exit 1
fi
else
echo "FIDO2 device already registered."
fi
# Configure PAM
setup_pam_config
# Test with sudo
echo -e "\nTesting FIDO2 authentication with sudo..."
echo -e "Touch your FIDO2 key when prompted.\n"
if sudo echo "FIDO2 authentication test successful"; then
echo -e "\e[32m\nPerfect! FIDO2 authentication is now configured.\e[0m"
echo "You can use your FIDO2 key for sudo and polkit authentication."
else
echo -e "\e[31m\nVerification failed. You may want to check your configuration.\e[0m"
fi
+95
View File
@@ -0,0 +1,95 @@
#!/bin/bash
# omarchy:summary=Set up fingerprint authentication for sudo, polkit, and lock screen
# omarchy:requires-sudo=true
set -e
check_fingerprint_hardware() {
# Get fingerprint devices for the user
devices=$(fprintd-list "$USER" 2>/dev/null)
# Exit if no devices found
if [[ -z $devices ]]; then
echo -e "\e[31m\nNo fingerprint sensor detected.\e[0m"
return 1
fi
return 0
}
setup_pam_config() {
# Configure sudo
if ! grep -q pam_fprintd.so /etc/pam.d/sudo; then
echo "Configuring sudo for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/sudo
fi
# Configure polkit
if [[ -f /etc/pam.d/polkit-1 ]] && ! grep -q 'pam_fprintd.so' /etc/pam.d/polkit-1; then
echo "Configuring polkit for fingerprint authentication..."
sudo sed -i '1i auth sufficient pam_fprintd.so' /etc/pam.d/polkit-1
elif [[ ! -f /etc/pam.d/polkit-1 ]]; then
echo "Creating polkit configuration with fingerprint authentication..."
sudo tee /etc/pam.d/polkit-1 >/dev/null <<'EOF'
auth sufficient pam_fprintd.so
auth required pam_unix.so
account required pam_unix.so
password required pam_unix.so
session required pam_unix.so
EOF
fi
}
add_hyprlock_fingerprint_icon() {
echo "Adding fingerprint icon to hyprlock placeholder text..."
sed -i 's/placeholder_text = .*/placeholder_text = <span> Enter Password 󰈷 <\/span>/' ~/.config/hypr/hyprlock.conf
sed -i 's/fingerprint:enabled = .*/fingerprint:enabled = true/' ~/.config/hypr/hyprlock.conf
}
echo -e "\e[32mSetting up fingerprint scanner for authentication.\n\e[0m"
# Install required packages
echo "Installing required packages..."
# libfprint-git provides+conflicts libfprint; pacman -S --noconfirm
# defaults the conflict prompt to N and aborts. Pre-remove libfprint
# with -Rdd so the install goes silent. -Rdd (not omarchy-pkg-drop's
# -Rns) is required because fprintd requires libfprint; the dep is
# re-satisfied immediately by libfprint-git's provides=libfprint.
if omarchy-pkg-present libfprint; then
sudo pacman -Rdd --noconfirm libfprint
fi
omarchy-pkg-add libfprint-git fprintd usbutils
if ! check_fingerprint_hardware; then
exit 1
fi
# Configure PAM
setup_pam_config
# Add fingerprint icon to hyprlock placeholder text
add_hyprlock_fingerprint_icon
# Enroll first fingerprint
echo -e "\e[32m\nLet's setup your right index finger as the first fingerprint.\e[0m"
echo -e "Keep moving the finger around on sensor until the process completes.\n"
if sudo fprintd-enroll "$USER"; then
echo -e "\e[32m\nFingerprint enrolled successfully!\e[0m"
# Verify
echo -e "\nNow let's verify that it's working correctly.\n"
if fprintd-verify; then
echo -e "\e[32m\nPerfect! Fingerprint authentication is now configured.\e[0m"
echo "You can use your fingerprint for sudo, polkit, and lock screen (Super + Escape)."
else
echo -e "\e[31m\nVerification failed. You may want to try enrolling again.\e[0m"
fi
else
echo -e "\e[31m\nEnrollment failed. Please try again.\e[0m"
exit 1
fi
@@ -1,18 +1,18 @@
#!/bin/bash
# omarchy:summary=Set the screensaver logo text from an SVG/PNG or the default
# omarchy:args=<default|path-to-logo.svg|png> [--width <columns>] [--height <rows>] [--mode <braille|block>] [--threshold <percent>] [--invert] [--stdout]
# omarchy:examples=omarchy screensaver logo ~/logo.svg | omarchy screensaver logo default | omarchy screensaver logo ~/logo.png --width 80 --mode block --stdout
# omarchy:summary=Transcode an image into ASCII/Unicode art text
# omarchy:group=transcode
# omarchy:name=ascii
# omarchy:args=<input-image.svg|png> <output-path> [--width <columns>] [--height <rows>] [--mode <braille|block>] [--threshold <percent>] [--invert]
# omarchy:examples=omarchy transcode ascii ~/logo.svg /tmp/logo.txt | omarchy transcode ascii ~/logo.png ~/.config/omarchy/branding/screensaver.txt --width 80
set -o pipefail
usage() {
cat <<'EOF'
Usage: omarchy-screensaver-logo <default|path-to-logo.svg|png> [options]
Usage: omarchy-transcode-ascii <input-image.svg|png> <output-path> [options]
Sets the screensaver logo text from an image.
Pass "default" instead of an image path to restore the Omarchy default.
By default, writes to ~/.config/omarchy/branding/screensaver.txt.
Transcodes an image into ASCII/Unicode art text.
Options:
-w, --width <columns> Maximum output width in terminal columns (default: 80)
@@ -21,7 +21,6 @@ Options:
-t, --threshold <percent> Pixel threshold from 0-100 (default: 50)
--invert Treat light pixels as the logo instead of dark pixels
--no-trim Preserve surrounding whitespace/background
--stdout Print converted text instead of writing the screensaver file
--help Show this help
EOF
}
@@ -32,9 +31,8 @@ mode=braille
threshold=50
invert=false
trim=true
output_path="$HOME/.config/omarchy/branding/screensaver.txt"
image_path=""
reset_default=false
output_path=""
while (($# > 0)); do
case "$1" in
@@ -98,9 +96,6 @@ while (($# > 0)); do
--no-trim)
trim=false
;;
--stdout)
output_path="-"
;;
--)
shift
break
@@ -111,10 +106,10 @@ while (($# > 0)); do
exit 1
;;
*)
if [[ $1 == "default" && -z $image_path ]]; then
reset_default=true
elif [[ -z $image_path ]]; then
if [[ -z $image_path ]]; then
image_path="$1"
elif [[ -z $output_path ]]; then
output_path="$1"
else
echo "Unexpected argument: $1" >&2
usage >&2
@@ -127,10 +122,10 @@ done
if (($# > 0)); then
while (($# > 0)); do
if [[ $1 == "default" && -z $image_path ]]; then
reset_default=true
elif [[ -z $image_path ]]; then
if [[ -z $image_path ]]; then
image_path="$1"
elif [[ -z $output_path ]]; then
output_path="$1"
else
echo "Unexpected argument: $1" >&2
usage >&2
@@ -140,29 +135,7 @@ if (($# > 0)); then
done
fi
if [[ $reset_default == "true" ]]; then
if [[ -n $image_path ]]; then
echo "default does not accept an image path" >&2
exit 1
fi
default_path="${OMARCHY_PATH:-$HOME/.local/share/omarchy}/logo.txt"
if [[ ! -f $default_path ]]; then
echo "Default screensaver logo text not found: $default_path" >&2
exit 1
fi
if [[ $output_path == "-" ]]; then
cat "$default_path"
else
mkdir -p "$(dirname "$output_path")"
cp "$default_path" "$output_path"
echo "Restored default screensaver logo text to $output_path"
fi
exit 0
fi
if [[ -z $image_path ]]; then
if [[ -z $image_path || -z $output_path ]]; then
usage >&2
exit 1
fi
@@ -375,10 +348,6 @@ if [[ ! -s $tmp_output ]]; then
exit 1
fi
if [[ $output_path == "-" ]]; then
cat "$tmp_output"
else
mkdir -p "$(dirname "$output_path")"
cp "$tmp_output" "$output_path"
echo "Wrote screensaver logo text to $output_path"
fi
mkdir -p "$(dirname "$output_path")"
cp "$tmp_output" "$output_path"
echo "Wrote ASCII art to $output_path"
+4 -2
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Ensure the Omarchy keyring package is installed and populated
# omarchy:summary=Ensure the Omarchy and Arch keyring packages are installed and populated
# omarchy:requires-sudo=true
if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630FF42BCFFB047046CF0134EE680CAC571 &>/dev/null; then
@@ -16,5 +16,7 @@ if omarchy-pkg-missing omarchy-keyring || ! sudo pacman-key --list-keys 40DFB630
fi
# Ensure we have the latest archlinux-keyring, maintainer keys might have changed
# Always reinstall, as the keyring can be updated without a package version bump.
echo -e "\e[32m\nUpdate Arch signing keys\e[0m"
sudo pacman -Sy --noconfirm archlinux-keyring >/dev/null
sudo pacman -Sy --noconfirm archlinux-keyring >/dev/null 2> >(grep -vE '^warning: archlinux-keyring-[^ ]+ is up to date -- reinstalling$' >&2)
echo "Keys are correct"
+24 -12
View File
@@ -1,6 +1,6 @@
#!/bin/bash
# omarchy:summary=Upload logs to 0x0.st
# omarchy:summary=Upload logs to logs.omarchy.org
# omarchy:args=<log-file>
# omarchy:hidden=true
@@ -28,7 +28,7 @@ else
echo "========================================="
echo "SYSTEM INFORMATION"
echo "========================================="
echo "Hostname: $(hostname)"
echo "Hostname: $(uname -n)"
echo "Kernel: $(uname -r)"
echo "Date: $(date)"
echo ""
@@ -41,19 +41,33 @@ fi
case "$LOG_TYPE" in
install)
# In the live ISO before reboot, the target system is mounted at /mnt so the
# omarchy install log lives at /mnt/var/log/omarchy-install.log. On the
# installed system it's at /var/log/omarchy-install.log. Prefer whichever
# exists, with /mnt taking precedence (only present in the ISO context, and
# there it's the right one).
ARCHINSTALL_LOG="/var/log/archinstall/install.log"
OMARCHY_LOG="/var/log/omarchy-install.log"
if [[ -s /mnt/var/log/omarchy-install.log ]]; then
OMARCHY_LOG="/mnt/var/log/omarchy-install.log"
else
OMARCHY_LOG="/var/log/omarchy-install.log"
fi
# Combine system info with logs
cat "$SYSTEM_INFO" >"$TEMP_LOG"
cat $ARCHINSTALL_LOG $OMARCHY_LOG >>"$TEMP_LOG" 2>/dev/null
[[ -s $ARCHINSTALL_LOG ]] && cat "$ARCHINSTALL_LOG" >>"$TEMP_LOG"
if [[ -s $OMARCHY_LOG ]]; then
printf '\n========================================\nOMARCHY INSTALL LOG (%s)\n========================================\n\n' "$OMARCHY_LOG" >>"$TEMP_LOG"
cat "$OMARCHY_LOG" >>"$TEMP_LOG"
else
echo "Warning: omarchy install log not found (looked at /mnt/var/log/ and /var/log/)" >&2
fi
if [[ ! -s $TEMP_LOG ]]; then
echo "Error: No install logs found"
exit 1
fi
echo "Uploading installation log to 0x0.st..."
echo "Uploading installation log to logs.omarchy.org..."
;;
this-boot)
@@ -66,7 +80,7 @@ this-boot)
exit 1
fi
echo "Uploading current boot logs to 0x0.st..."
echo "Uploading current boot logs to logs.omarchy.org..."
;;
last-boot)
@@ -79,7 +93,7 @@ last-boot)
exit 1
fi
echo "Uploading previous boot logs to 0x0.st..."
echo "Uploading previous boot logs to logs.omarchy.org..."
;;
installed|system-info)
@@ -98,7 +112,7 @@ installed|system-info)
exit 1
fi
echo "Uploading system information to 0x0.st..."
echo "Uploading system information to logs.omarchy.org..."
;;
*)
@@ -113,15 +127,13 @@ esac
echo ""
URL=$(curl -sF "file=@$TEMP_LOG" -Fexpires=24 https://0x0.st)
URL=$(curl -sf -F "file=@$TEMP_LOG" https://logs.omarchy.org/)
if (( $? == 0 )) && [[ -n $URL ]]; then
echo "✓ Log uploaded successfully!"
echo "Share this URL:"
echo ""
echo " $URL"
echo ""
echo "This link will expire in 24 hours."
else
echo "Error: Failed to upload log file"
exit 1
+2 -11
View File
@@ -2,7 +2,7 @@
# omarchy:summary=Returns a formatted weather status string with temperature and wind speed.
weather=$(curl -fsS --max-time 4 "https://wttr.in?m&format=%l|%t|%w" 2>/dev/null | tr -d '\n')
weather=$(curl -fsS --max-time 4 "https://wttr.in?format=%l|%t|%w" 2>/dev/null | tr -d '\n')
if [[ -z $weather ]]; then
echo "Weather unavailable"
@@ -12,15 +12,6 @@ fi
IFS='|' read -r place temperature wind <<< "$weather"
place=${place%%,*}
place=${place^}
format_temperature() {
local celsius=${1#+}
celsius=${celsius//°/}
celsius=${celsius%C}
echo "${celsius}°c / $((celsius * 9 / 5 + 32))°f"
}
temperature=$(format_temperature "$temperature")
wind=${wind//km\// km/}
temperature=${temperature#+}
echo "$(omarchy-weather-icon) $place · Temp $temperature · Wind $wind"
+14 -16
View File
@@ -1,18 +1,20 @@
#!/bin/bash
set -e
# Set install mode to online since boot.sh is used for curl installations
export OMARCHY_ONLINE_INSTALL=true
ansi_art=' ▄▄▄
▄█████ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄██
███ ███ ███ ███ ███ ▀███▀▀▀███ ███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
█████▀ ▀█ ███ █▀ ██ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
███ █ '
ansi_art=' ▄ ▄
▄███████ ▄███████ ▄████████▀ ▄█ █▄ ▄█ █▄ ▄███████
███ ███ ███ ███ ▀▀▀▀███▀▀ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███ ███ ███▄▄▄██
███▀▀▀███ ███▀▀▀▀ ███ ███▀▀▀███ ███ ███ ███▀▀▀▀
███ ███ ██████████ ███ ███ ███ ███ ███ █████████
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ █▀ ███ █▀ ██ ███ █▀ ▀█████▀ ███ ██▀
▀▀▀ ▀▀▀▀ '
clear
echo -e "\n$ansi_art\n"
@@ -38,13 +40,9 @@ sudo pacman -Syu --noconfirm --needed git
OMARCHY_REPO="${OMARCHY_REPO:-basecamp/omarchy}"
echo -e "\nCloning Omarchy from: https://github.com/${OMARCHY_REPO}.git"
rm -rf ~/.local/share/omarchy/
git clone "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
echo -e "\e[32mUsing branch: $OMARCHY_REF\e[0m"
cd ~/.local/share/omarchy
git fetch origin "${OMARCHY_REF}" && git checkout "${OMARCHY_REF}"
cd -
rm -rf ~/.local/share/omarchy/
git clone --branch "$OMARCHY_REF" "https://github.com/${OMARCHY_REPO}.git" ~/.local/share/omarchy >/dev/null
echo -e "\nInstallation starting..."
source ~/.local/share/omarchy/install.sh
+1 -1
View File
@@ -1,4 +1,4 @@
--ozone-platform=wayland
--ozone-platform-hint=wayland
--enable-features=TouchpadOverscrollHistoryNavigation,VaapiVideoDecodeLinuxGL,VaapiVideoEncoder
--enable-features=TouchpadOverscrollHistoryNavigation
--load-extension=~/.local/share/omarchy/default/chromium/extensions/copy-url
+1 -1
View File
@@ -1 +1 @@
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT, Insert,"'
command = 'wl-copy && hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"'
+1 -1
View File
@@ -66,7 +66,7 @@
"type": "command",
"key": "\ue900 OS",
"keyColor": "blue",
"text": "version=$(omarchy-version); echo \"Omarchy $version\""
"text": "source /etc/os-release; omarchy=$(omarchy-version); echo \"$PRETTY_NAME → Omarchy $omarchy\""
},
{
"type": "command",
+5 -10
View File
@@ -6,26 +6,21 @@ bindd = SUPER SHIFT, F, File manager, exec, uwsm-app -- nautilus --new-window
bindd = SUPER ALT SHIFT, F, File manager (cwd), exec, uwsm-app -- nautilus --new-window "$(omarchy-cmd-terminal-cwd)"
bindd = SUPER SHIFT, B, Browser, exec, omarchy-launch-browser
bindd = SUPER SHIFT ALT, B, Browser (private), exec, omarchy-launch-browser --private
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify
bindd = SUPER SHIFT ALT, M, Music TUI, exec, omarchy-launch-or-focus-tui cliamp
bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus subtui
bindd = SUPER SHIFT, N, Editor, exec, omarchy-launch-editor
bindd = SUPER SHIFT, D, Docker, exec, omarchy-launch-tui lazydocker
bindd = SUPER SHIFT, G, Signal, exec, omarchy-launch-or-focus ^signal$ "uwsm-app -- signal-desktop"
bindd = SUPER SHIFT, O, Obsidian, exec, omarchy-launch-or-focus ^obsidian$ "uwsm-app -- obsidian"
bindd = SUPER SHIFT, W, Typora, exec, uwsm-app -- typora --enable-wayland-ime
bindd = SUPER SHIFT, SLASH, Passwords, exec, uwsm-app -- 1password
# If your web app url contains #, type it as ## to prevent hyprland treating it as a comment
bindd = SUPER SHIFT, A, ChatGPT, exec, omarchy-launch-webapp "https://chatgpt.com"
bindd = SUPER SHIFT ALT, A, Grok, exec, omarchy-launch-webapp "https://grok.com"
bindd = SUPER SHIFT, C, Calendar, exec, omarchy-launch-webapp "https://app.hey.com/calendar/weeks/"
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://app.hey.com"
bindd = SUPER SHIFT ALT, A, Claude, exec, omarchy-launch-webapp "https://claude.ai"
bindd = SUPER SHIFT, E, Email, exec, omarchy-launch-webapp "https://outlook.com"
bindd = SUPER SHIFT, Y, YouTube, exec, omarchy-launch-webapp "https://youtube.com/"
bindd = SUPER SHIFT ALT, G, WhatsApp, exec, omarchy-launch-or-focus-webapp WhatsApp "https://web.whatsapp.com/"
bindd = SUPER SHIFT CTRL, G, Google Messages, exec, omarchy-launch-or-focus-webapp "Google Messages" "https://messages.google.com/web/conversations"
bindd = SUPER SHIFT, P, Google Photos, exec, omarchy-launch-or-focus-webapp "Google Photos" "https://photos.google.com/"
bindd = SUPER SHIFT, X, X, exec, omarchy-launch-webapp "https://x.com/"
bindd = SUPER SHIFT ALT, X, X Post, exec, omarchy-launch-webapp "https://x.com/compose/post"
bindd = SUPER SHIFT ALT, J, Jellyfin, exec, omarchy-launch-or-focus-webapp Jellyfin "https://jellyfin.arthurp.fr/"
bindd = SUPER SHIFT ALT, I, Immich, exec, omarchy-launch-or-focus-webapp Immich "https://immich.arthurp.fr/"
# Add extra bindings
# bind = SUPER SHIFT, R, exec, alacritty -e ssh your-server
+6
View File
@@ -24,3 +24,9 @@ source = ~/.local/state/omarchy/toggles/hypr/*.conf
# Add any other personal Hyprland configuration below
# windowrule = workspace 5, match:class qemu
input {
kb_layout = fr,us
kb_variant = ,colemak_dh_iso
kb_options = grp:caps_toggle
}
+37 -31
View File
@@ -1,19 +1,12 @@
{
"reload_style_on_change": true,
"layer": "top",
"position": "top",
"position": "left",
"spacing": 0,
"height": 26,
"modules-left": ["custom/omarchy", "hyprland/workspaces"],
"modules-center": ["clock", "custom/weather", "custom/update", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
"modules-right": [
"group/tray-expander",
"bluetooth",
"network",
"pulseaudio",
"cpu",
"battery"
],
"width": 35,
"modules-left": ["custom/clock", "custom/weather", "cpu", "memory", "custom/media"],
"modules-center": ["custom/update", "hyprland/workspaces", "custom/voxtype", "custom/screenrecording-indicator", "custom/idle-indicator", "custom/notification-silencing-indicator"],
"modules-right": ["group/tray-expander", "pulseaudio", "bluetooth", "network", "battery"],
"hyprland/workspaces": {
"on-click": "activate",
"format": "{icon}",
@@ -36,15 +29,14 @@
"2": [],
"3": [],
"4": [],
"5": []
"5": [],
"6": [],
"7": [],
"8": [],
"9": [],
"10": []
}
},
"custom/omarchy": {
"format": "<span font='omarchy'>\ue900</span>",
"on-click": "omarchy-menu",
"on-click-right": "xdg-terminal-exec",
"tooltip-format": "Omarchy Menu\n\nSuper + Alt + Space"
},
"custom/update": {
"format": "",
"exec": "omarchy-update-available",
@@ -53,26 +45,40 @@
"signal": 7,
"interval": 21600
},
"cpu": {
"interval": 5,
"format": "󰍛",
"on-click": "omarchy-launch-or-focus-tui btop",
"on-click-right": "alacritty"
"interval": 2,
"format": "{icon} ",
"format-icons": ["󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"],
"on-click": "omarchy-launch-or-focus-tui btop"
},
"clock": {
"format": "{:L%A %H:%M}",
"format-alt": "{:L%d %B W%V %Y}",
"tooltip": false,
"on-click-right": "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"
"memory": {
"interval": 2,
"format": "{icon} ",
"format-icons": ["󰪞", "󰪟", "󰪠", "󰪡", "󰪢", "󰪣", "󰪤", "󰪥"],
"on-click": "omarchy-launch-or-focus-tui btop"
},
"custom/clock": {
"exec": "$OMARCHY_PATH/default/waybar/clock.sh",
"return-type": "json",
"on-click": "omarchy-launch-floating-terminal-with-presentation omarchy-tz-select",
"tooltip": true
},
"custom/weather": {
"exec": "$OMARCHY_PATH/default/waybar/weather.sh",
"return-type": "json",
"interval": 600,
"interval": 60,
"tooltip": false,
"on-click": "notify-send -u low \"$(omarchy-weather-status)\""
},
"custom/media": {
"exec": "$OMARCHY_PATH/default/waybar/media.sh",
"return-type": "json",
"interval": 1,
"on-click": "$OMARCHY_PATH/default/waybar/media_click.sh",
"on-click-right": "playerctl -p subtui next",
"on-click-middle": "playerctl -p subtui previous",
"tooltip": true
},
"network": {
"format-icons": ["󰤯", "󰤟", "󰤢", "󰤥", "󰤨"],
"format": "{icon}",
@@ -137,7 +143,7 @@
"modules": ["custom/expand-icon", "tray"]
},
"custom/expand-icon": {
"format": "",
"format": "",
"tooltip": false,
"on-scroll-up": "",
"on-scroll-down": "",
+24 -24
View File
@@ -3,7 +3,6 @@
* {
background-color: @background;
color: @foreground;
border: none;
border-radius: 0;
min-height: 0;
@@ -12,18 +11,18 @@
}
.modules-left {
margin-left: 8px;
margin-bottom: 8px;
}
.modules-right {
margin-right: 8px;
margin-top: 8px;
}
#workspaces button {
all: initial;
padding: 0 6px;
margin: 0 1.5px;
min-width: 9px;
padding: 6px 0;
margin: 1.5px 0;
min-height: 9px;
}
#workspaces button.empty {
@@ -31,28 +30,29 @@
}
#cpu,
#memory,
#custom-media,
#battery,
#pulseaudio,
#custom-omarchy,
#custom-update {
min-width: 12px;
margin: 0 7.5px;
min-height: 12px;
margin: 7.5px 0;
}
#tray {
margin-right: 16px;
margin-top: 16px;
}
#bluetooth {
margin-right: 17px;
margin-top: 17px;
}
#network {
margin-right: 13px;
margin-top: 13px;
}
#custom-expand-icon {
margin-right: 18px;
margin-top: 18px;
}
tooltip {
@@ -63,17 +63,17 @@ tooltip {
font-size: 10px;
}
#clock {
margin-left: 8.75px;
#custom-clock {
margin-bottom: 8.75px;
}
#custom-weather {
margin-left: 7.5px;
margin-right: 7.5px;
margin-bottom: 7.5px;
margin-top: 7.5px;
}
#custom-weather.unavailable {
min-width: 0;
min-height: 0;
margin: 0;
padding: 0;
}
@@ -85,11 +85,11 @@ tooltip {
#custom-screenrecording-indicator,
#custom-idle-indicator,
#custom-notification-silencing-indicator {
min-width: 12px;
margin-left: 5px;
margin-right: 0;
min-height: 12px;
margin-bottom: 5px;
margin-top: 0;
font-size: 10px;
padding-bottom: 1px;
padding-right: 1px;
}
#custom-screenrecording-indicator.active {
@@ -102,8 +102,8 @@ tooltip {
}
#custom-voxtype {
min-width: 12px;
margin: 0 0 0 7.5px;
min-height: 12px;
margin: 0 0 7.5px 0;
}
#custom-voxtype.recording {
+11
View File
@@ -40,6 +40,17 @@ _omarchy_complete() {
candidates+=("--all" "--json" "--markdown" "--check")
fi
if (( ${#candidates[@]} == 0 )) && [[ -x $bin_dir/$prefix ]]; then
local args enum
args=$(grep -m 1 '^# omarchy:args=<' "$bin_dir/$prefix" 2>/dev/null)
enum="${args#*<}"
enum="${enum%%>*}"
if [[ $enum == *"|"* && $enum != *" "* ]]; then
read -r -a candidates <<<"${enum//|/ }"
fi
fi
if (( ${#candidates[@]} > 0 )); then
local IFS=$'\n'
COMPREPLY=($(compgen -W "${candidates[*]}" -- "$cur"))
+3 -3
View File
@@ -1,5 +1,5 @@
# Copy / Paste
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert,
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert,
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X,
bindd = SUPER, C, Universal copy, sendshortcut, CTRL, Insert, activewindow
bindd = SUPER, V, Universal paste, sendshortcut, SHIFT, Insert, activewindow
bindd = SUPER, X, Universal cut, sendshortcut, CTRL, X, activewindow
bindd = SUPER CTRL, V, Clipboard manager, exec, omarchy-launch-walker -m clipboard
+1 -1
View File
@@ -6,7 +6,7 @@ bindd = SUPER, W, Close window, killactive,
bindd = CTRL ALT, DELETE, Close all windows, exec, omarchy-hyprland-window-close-all
# Control tiling
bindd = SUPER, J, Toggle window split, togglesplit, # dwindle
bindd = SUPER, J, Toggle window split, layoutmsg, togglesplit
bindd = SUPER, P, Pseudo window, pseudo, # dwindle
bindd = SUPER SHIFT, V, Toggle window floating/tiling, togglefloating,
bindd = SHIFT, F11, Force full screen, fullscreen, 0
+4 -5
View File
@@ -50,8 +50,8 @@ decoration {
group {
col.border_active = $activeBorderColor
col.border_inactive = $inactiveBorderColor
col.border_locked_active = -1
col.border_locked_inactive = -1
col.border_locked_active = $activeBorderColor
col.border_locked_inactive = $inactiveBorderColor
groupbar {
font_size = 12
@@ -108,9 +108,8 @@ animations {
# See https://wiki.hypr.land/Configuring/Layouts/Dwindle-Layout/ for more
dwindle {
pseudotile = true # Master switch for pseudotiling. Enabling is bound to mainMod + P in the keybinds section below
preserve_split = true # You probably want this
force_split = 2 # Always split on the right
preserve_split = true
force_split = 2
}
scrolling {
+1 -1
View File
@@ -356,7 +356,7 @@ When user requests system changes:
2. **Is it a config edit?** Edit in `~/.config/`, never `~/.local/share/omarchy/`
3. **Is it a theme customization?** Create a NEW custom theme directory
4. **Is it automation?** Use hooks in `~/.config/omarchy/hooks/`
5. **Is it a package install?** Use `omarchy install package <pkgs...>` (or `omarchy pkg aur add <pkgs...>` for AUR-only packages)
5. **Is it a package install?** Use `omarchy pkg add <pkgs...>` (or `omarchy pkg aur add <pkgs...>` for AUR-only packages)
6. **Unsure if command exists?** Run `omarchy commands` (or `omarchy <group> --help` for one group)
### Reminder Requests
@@ -7,7 +7,7 @@
import { existsSync } from "node:fs";
import { join } from "node:path";
import type { ExtensionAPI } from "@mariozechner/pi-coding-agent";
import type { ExtensionAPI } from "@earendil-works/pi-coding-agent";
const home = process.env.HOME ?? "";
const lightModePath = join(home, ".config/omarchy/current/theme/light.mode");
Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

+1
View File
@@ -96,6 +96,7 @@ Rectangle {
color: "transparent"
selectionColor: "transparent"
selectedTextColor: "transparent"
cursorDelegate: Item {}
focus: true
onTextChanged: root.loginFailed = false
+5 -5
View File
@@ -44,12 +44,12 @@ pause_media = true
# .en models are English-only but faster and more accurate for English
# large-v3-turbo is faster than large-v3 with minimal accuracy loss (recommended for GPU)
# Or provide absolute path to a custom .bin model file
model = "base.en"
model = "base"
# Language for transcription
# Use "en" for English, "auto" for auto-detection
# See: https://github.com/openai/whisper#available-models-and-languages
language = "en"
language = "fr"
# Translate non-English speech to English
translate = false
@@ -82,13 +82,13 @@ type_delay_ms = 1
[output.notification]
# Show notification when recording starts (hotkey pressed)
on_recording_start = false
on_recording_start = true
# Show notification when recording stops (transcription beginning)
on_recording_stop = false
on_recording_stop = true
# Show notification with transcribed text after transcription completes
on_transcription = false
on_transcription = true
# [text]
# Text processing options (word replacements, spoken punctuation)
+38
View File
@@ -0,0 +1,38 @@
#!/usr/bin/env bash
print_status() {
time=$(date +"%H:%M")
date=$(date +"%d/%m")
# tooltip complet
full_date=$(date +"%A %d %B %Y %H:%M:%S")
calendar=$(cal -m)
esc_calendar=$(sed 's/&/&amp;/g; s/</&lt;/g; s/>/&gt;/g' <<< "$calendar")
text="$time
$date"
tooltip="$full_date
$esc_calendar"
jq -nc \
--arg text "$text" \
--arg tooltip "$tooltip" \
'{ text: $text, tooltip: $tooltip }'
}
print_status
last=""
while true; do
current=$(date +"%H%M%S%Y%m%d")
if [[ "$current" != "$last" ]]; then
print_status
last="$current"
fi
sleep 1
done
+71
View File
@@ -0,0 +1,71 @@
#!/bin/bash
PLAYER="subtui"
# Vérifie si Subtui est lancé
if ! playerctl -l 2>/dev/null | grep -q "^${PLAYER}$"; then
echo '{"text":"󰝚","tooltip":"Subtui non lancé"}'
exit 0
fi
# Métadonnées
title=$(playerctl -p "$PLAYER" metadata title 2>/dev/null)
artist=$(playerctl -p "$PLAYER" metadata artist 2>/dev/null)
album=$(playerctl -p "$PLAYER" metadata album 2>/dev/null)
status=$(playerctl -p "$PLAYER" status 2>/dev/null)
# Valeurs par défaut
[ -z "$title" ] && title="Titre inconnu"
[ -z "$artist" ] && artist="Artiste inconnu"
[ -z "$album" ] && album="Album inconnu"
# Position actuelle (secondes)
position=$(playerctl -p "$PLAYER" position 2>/dev/null)
[ -z "$position" ] && position=0
# Durée totale (microsecondes)
length=$(playerctl -p "$PLAYER" metadata mpris:length 2>/dev/null)
[ -z "$length" ] && length=0
# Conversion sûre
position_sec=$(awk -v p="$position" 'BEGIN { printf("%d", p+0.5) }')
length_sec=$((length / 1000000))
# Format temps
elapsed=$(printf "%02d:%02d" $((position_sec/60)) $((position_sec%60)))
if [ "$length_sec" -gt 0 ]; then
duration=$(printf "%02d:%02d" $((length_sec/60)) $((length_sec%60)))
else
duration="--:--"
fi
# Icône
if [ "$status" = "Playing" ]; then
icon="󰏤"
else
icon="󰐊"
fi
# Échapper les guillemets pour JSON
title=${title//\"/\\\"}
artist=${artist//\"/\\\"}
album=${album//\"/\\\"}
# Tooltip
tooltip="$artist
$title
Album : $album
$elapsed / $duration
Clic gauche : Lecture/Pause
Clic droit : Suivant
Clic milieu : Précédent"
# Convertir les retours à la ligne pour JSON
tooltip=$(echo "$tooltip" | sed ':a;N;$!ba;s/\n/\\n/g')
# JSON final
printf '{"text":"%s","tooltip":"%s"}\n' "$icon" "$tooltip"
+9
View File
@@ -0,0 +1,9 @@
#!/bin/bash
PLAYER="subtui"
if playerctl -l 2>/dev/null | grep -q "^${PLAYER}$"; then
playerctl -p "$PLAYER" play-pause
else
ghostty -e subtui &
fi
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

+10 -10
View File
@@ -10,17 +10,17 @@
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████████████ ████ ████
████████████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████████████ █████████████████████████ ████
████████████ █████████████████████████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ██████████████████████████████████████ ████
████ ██████████████████████████████████████ ████
████ ████ ████
████ ████ ████
█████████████████████████████ ████████████████████
█████████████████████████████ ████████████████████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████ ████
████ ████ ████
████ ████ ████
████████████ ████████████
████████████ ████████████
-2
View File
@@ -50,8 +50,6 @@ run_logged $OMARCHY_INSTALL/config/hardware/intel/fred.sh
run_logged $OMARCHY_INSTALL/config/hardware/intel/fix-wifi7-eht.sh
run_logged $OMARCHY_INSTALL/config/hardware/intel/sof-firmware.sh
run_logged $OMARCHY_INSTALL/config/hardware/dell/fix-xps-haptic-touchpad.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-display-backlight.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-display.sh
run_logged $OMARCHY_INSTALL/config/hardware/asus/fix-asus-ptl-b9406-touchpad.sh
+1 -2
View File
@@ -2,5 +2,4 @@
chrootable_systemctl_enable bluetooth.service
mkdir -p ~/.config/wireplumber/wireplumber.conf.d/
cp $OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf \
~/.config/wireplumber/wireplumber.conf.d/
cp "$OMARCHY_PATH/default/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf" ~/.config/wireplumber/wireplumber.conf.d/
@@ -1,36 +0,0 @@
# Fix Dell XPS haptic touchpad.
# The Synaptics haptic touchpad (vendor 06CB) uses the HID Manual Trigger
# protocol, but the kernel's HID haptic subsystem only supports Auto Trigger.
# This sets up a lightweight daemon that monitors touchpad button events and
# sends haptic pulses via HID feature reports on the hidraw device.
# Also disables I2C runtime PM to prevent the haptic engine losing state
# across suspend/resume.
if omarchy-hw-match "XPS" \
&& ls /sys/bus/i2c/devices/i2c-VEN_06CB:00 2>/dev/null; then
# Keep I2C controller power on to prevent haptic engine losing state
sudo tee /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules << 'EOF'
ACTION=="add", SUBSYSTEM=="pci", KERNEL=="0000:00:19.0", ATTR{power/control}="on"
ACTION=="add", SUBSYSTEM=="platform", KERNEL=="i2c_designware.0", ATTR{power/control}="on"
EOF
sudo udevadm control --reload-rules
# Haptic feedback daemon as a systemd service
sudo tee /etc/systemd/system/dell-xps-haptic-touchpad.service << SVC
[Unit]
Description=Dell XPS haptic touchpad feedback
After=systemd-udev-settle.service
[Service]
Type=simple
ExecStart=$OMARCHY_PATH/bin/omarchy-haptic-touchpad
Restart=on-failure
RestartSec=2
[Install]
WantedBy=multi-user.target
SVC
sudo systemctl daemon-reload
sudo systemctl enable dell-xps-haptic-touchpad.service
fi
+1 -1
View File
@@ -4,7 +4,7 @@ sudo mkdir -p /etc/systemd/system.conf.d /etc/systemd/user.conf.d
sudo tee /etc/systemd/system.conf.d/99-omarchy-nofile.conf >/dev/null <<'EOF'
[Manager]
DefaultLimitNOFILESoft=65536
DefaultLimitNOFILE=65536:524288
EOF
sudo cp /etc/systemd/system.conf.d/99-omarchy-nofile.conf \
+1 -1
View File
@@ -10,7 +10,7 @@ sudo mkdir -p /etc/chromium/policies/managed
sudo chmod a+rw /etc/chromium/policies/managed
# Set initial theme
omarchy-theme-set "Tokyo Night"
omarchy-theme-set "Rainynight"
rm -rf ~/.config/chromium/SingletonLock # otherwise archiso will own the chromium singleton
# Set specific app links for current theme
View File
+4 -3
View File
@@ -1,8 +1,6 @@
# Omarchy core package list installed via install/packaging/base.sh
# This file is also used by the ISO builder when determining needs
1password-beta
1password-cli
aether
alacritty
alsa-utils
@@ -113,7 +111,6 @@ satty
sddm
signal-desktop
slurp
spotify
socat
starship
sushi
@@ -150,3 +147,7 @@ xournalpp
yaru-icon-theme
yay
zoxide
prismlauncher
cava
dua-cli
yazi
+3
View File
@@ -61,6 +61,9 @@ vulkan-asahi
# Surface laptop support packages
linux-firmware-marvell
# Dell laptop support packages
dell-xps-touchpad-haptics
# T2 MacBook support packages
apple-bcm-firmware
apple-t2-audio-config
+1
View File
@@ -7,4 +7,5 @@ run_logged $OMARCHY_INSTALL/packaging/tuis.sh
run_logged $OMARCHY_INSTALL/packaging/npx.sh
run_logged $OMARCHY_INSTALL/packaging/asus-rog.sh
run_logged $OMARCHY_INSTALL/packaging/framework16.sh
run_logged $OMARCHY_INSTALL/packaging/dell-xps-touchpad-haptics.sh
run_logged $OMARCHY_INSTALL/packaging/surface.sh
@@ -0,0 +1,3 @@
if omarchy-hw-dell-xps-haptic-touchpad; then
omarchy-pkg-add dell-xps-touchpad-haptics
fi
-1
View File
@@ -2,4 +2,3 @@ ICON_DIR="$HOME/.local/share/applications/icons"
omarchy-tui-install "Disk Usage" "bash -c 'dust -r; read -n 1 -s'" float "$ICON_DIR/Disk Usage.png"
omarchy-tui-install "Docker" "lazydocker" tile "$ICON_DIR/Docker.png"
omarchy-tui-install "Cliamp" "cliamp" tile "$ICON_DIR/Cliamp.png"
+2 -10
View File
@@ -1,15 +1,7 @@
omarchy-webapp-install "HEY" https://app.hey.com HEY.png "omarchy-webapp-handler-hey %u" "x-scheme-handler/mailto"
omarchy-webapp-install "Basecamp" https://launchpad.37signals.com Basecamp.png
omarchy-webapp-install "WhatsApp" https://web.whatsapp.com/ WhatsApp.png
omarchy-webapp-install "Google Photos" https://photos.google.com/ "Google Photos.png"
omarchy-webapp-install "Google Contacts" https://contacts.google.com/ "Google Contacts.png"
omarchy-webapp-install "Google Messages" https://messages.google.com/web/conversations "Google Messages.png"
omarchy-webapp-install "Google Maps" https://maps.google.com "Google Maps.png"
omarchy-webapp-install "ChatGPT" https://chatgpt.com/ ChatGPT.png
omarchy-webapp-install "YouTube" https://youtube.com/ YouTube.png
omarchy-webapp-install "GitHub" https://github.com/ GitHub.png
omarchy-webapp-install "X" https://x.com/ X.png
omarchy-webapp-install "Figma" https://figma.com/ Figma.png
omarchy-webapp-install "Discord" https://discord.com/channels/@me Discord.png
omarchy-webapp-install "Zoom" https://app.zoom.us/wc/home Zoom.png "omarchy-webapp-handler-zoom %u" "x-scheme-handler/zoommtg;x-scheme-handler/zoomus"
omarchy-webapp-install "Fizzy" https://app.fizzy.do/ Fizzy.png
omarchy-webapp-install "Jellyfin" https://jellyfin.arthurp.fr/ Jellyfin.png
omarchy-webapp-install "Immich" https://immich.arthurp.fr/ Immich.png
+64 -1
View File
@@ -1 +1,64 @@
<svg fill="none" height="285" viewBox="0 0 1215 285" width="1215" xmlns="http://www.w3.org/2000/svg"><g fill="#000"><path clip-rule="evenodd" d="m720 120h-15v15h-14.998v14.999l-60.002.001v15.002l90-.002v.002h.002l-.002 89.998h-15v15h-13v15h-17v-89.998h-45v90l-45-.002v-89.998h-14.998v-30h14.998v-15.002h-14.998v-30.001h14.998v-75h15v-14.997h15v-15.002h105.002zm-90-.001h45v-74.997h-45z" fill-rule="evenodd"/><path clip-rule="evenodd" d="m105 30.002h15v14.997h15v180.001h-15v15h-15v15.002h-75v-15.002h-15v-15h-15v-180.001h15v-14.997h15v-15.002h75zm-60 194.998h45v-179.998h-45z" fill-rule="evenodd"/><path d="m300 15h60v15h15v14.999h15v180.001h-15v15h-15v15h-15l-.004-209.998h-44.994v-.002h-.002v210.002h-45v-210h-44.998v179.997h-.002v30.003h-15v-15.002h-15v-15h-14.998v-180.001h14.998v-14.999h15v-15h60v-15h45z"/><path clip-rule="evenodd" d="m555 225h-15v15h-15v15h-15v-105.001l-44.998.001v105.002h-45.002v-105.002h-15v-30.001h15v-75h15.002v-14.997h15v-15.002h105zm-89.998-105.001h44.998v-74.997h-44.998z" fill-rule="evenodd"/><path d="m885 75h-15v15h-15v15h-15v-59.998h-45v179.998h45v-59.998h15v14.997h15v15.001h15v30h-15v15h-15v15.002l-105-.002v-210.001h14.998v-14.997h15.002v-15.002h105z"/><path d="m960 119.999h45v-104.999h15v15h15v14.999h15v75.001h15v15h-15v90h-15v15h-15v15h-15v-105h-45v105.002l-45-.002v-105h-30v-15h15v-15.001h15v-75h15v-14.997h15v-15.002h15z"/><path d="m1125 119.999h45v-104.999h15v15h15v15h15v180h-15v15h-15v15.002l-75-.002v-15h-15v-15h-15v-45.001h15v-14.997-.002h30v60h45v-75h-90v-105.001h15v-14.997h15v-15.002h15z"/></g></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="121.92007mm"
height="35.805248mm"
viewBox="0 0 121.92009 35.805248"
version="1.1"
id="svg1"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs1" />
<g
id="layer1"
transform="translate(-52.873167,-118.10323)">
<g
id="text1"
style="font-size:3.175px;fill:none;stroke-width:0.264999"
aria-label=" ▄ ▄ &#10; ▄███████ ▄███████ ▄████████▀ ▄█ █▄ ▄██ ██▄ ▄███████&#10;███ ███ ███ ███ ▀▀▀▀███▀▀ ███ ███ ███ ███ ███ ███&#10;███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███&#10;███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███ ███ ███▄▄▄██▀&#10;███▀▀▀███ ▀███▀▀▀▀ ███ ▀▀███▀▀▀███ ███ ███ ███▀▀▀▀ &#10;███ ███ ██████████ ███ ███ ███ ███ ███ █████████&#10;███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███&#10;███ █▀ ███ ██▀ ██▀ ███ █▀ ▀█████▀ ███ ██▀&#10; ▀▀▀ ▀ ▀ ▀▀▀ ▀"
transform="translate(-19.299906,-5.3691469)">
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 159.80312,125.56788 v -2.0955 h 1.905 v 2.0955 z m 7.62001,0 v -2.0955 h 1.905 v 2.0955 z"
id="path29" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 74.078074,129.54624 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905002,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 5.715,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 5.71501,2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 7.62001,0 v -2.0955 h 1.905 v 2.0955 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 7.62001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z"
id="path30" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,133.5246 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 5.715004,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.620003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 3.81,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 7.62,2.0955 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z"
id="path31" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,137.50296 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 5.715004,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.620003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 11.43,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 11.43001,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z"
id="path32" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,141.48132 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905002,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 3.810001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905003,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905003,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 11.43,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 9.52501,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.90501,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 3.81001,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,-2.0955 v -2.0955 h 1.905 v 2.0955 z"
id="path33" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,145.45969 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905002,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 3.810001,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905003,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905003,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 15.24001,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,2.0955 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.90501,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z"
id="path34" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,149.43805 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 3.810001,0 v -4.191 h 1.905 v 4.191 z m 1.905003,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 11.43,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 11.43001,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z"
id="path35" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,153.41641 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 5.715004,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.620003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 11.43,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 11.43001,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 5.71501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z"
id="path36" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 72.173073,157.39477 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 7.620005,0 v -4.191 h 1.905 v 4.191 z m 1.905001,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 7.620005,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905001,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.620003,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 11.43,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 11.43001,2.0955 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.90499,0 v -4.191 h 1.905 v 4.191 z m 7.62001,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 9.525,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,2.0955 v -4.191 h 1.905 v 4.191 z m 1.90501,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,-2.0955 v -2.0955 h 1.905 v 2.0955 z m 7.62001,2.0955 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 7.62,0 v -4.191 h 1.905 v 4.191 z m 1.905,0 v -4.191 h 1.905 v 4.191 z m 1.90501,-2.0955 v -2.0955 h 1.905 v 2.0955 z"
id="path37" />
<path
style="font-family:'JetBrainsMono Nerd Font';-inkscape-font-specification:'JetBrainsMono Nerd Font';fill:#000000;stroke-width:0.265"
d="m 93.128086,159.27763 v -2.0955 h 1.905 v 2.0955 z m 1.905001,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 7.620003,0 v -2.0955 h 1.905 v 2.0955 z m 15.24001,0 v -2.0955 h 1.905 v 2.0955 z m 57.15004,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 1.905,0 v -2.0955 h 1.905 v 2.0955 z m 7.62,0 v -2.0955 h 1.905 v 2.0955 z"
id="path38" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 16 KiB

+10 -10
View File
@@ -1,10 +1,10 @@
▄▄▄
▄█████ ▄███████████▄ ▄███████ ▄███████ ▄███████ ▄█ █▄ ▄█ █▄
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ █▀ ███ ███ ███ ███
███ ███ ███ ███ ███ ▄███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███▄▄▄██
███ ███ ███ ███ ███ ▀███▀▀▀███ ███▀▀▀▀ ███ ▀▀███▀▀▀███ ▀▀▀▀▀▀███
███ ███ ███ ███ ███ ███ ███ ██████████ ███ █▄ ███ ███ ▄██ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
█████▀ ▀█ ███ █▀ ██ █▀ ███ ███ ███████▀ ███ █▀ ▀█████▀
███ █▀
▄ ▄
▄███████ ▄███████ ▄████████▀ ▄█ █▄ ▄█ █▄ ▄███████
███ ███ ███ ███ ▀▀▀▀███▀▀ ███ ███ ███ ███ ███ ███
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███▄▄▄███ ▄███▄▄▄██▀ ███ ▄███▄▄▄███▄ ███ ███ ███▄▄▄██
███▀▀▀███ ███▀▀▀▀ ███ ███▀▀▀███ ███ ███ ███▀▀▀▀
███ ███ ██████████ ███ ███ ███ ███ ███ █████████
███ ███ ███ ███ ███ ███ ███ ███ ███ ███ ███
███ █▀ ███ █▀ ██ ███ █▀ ▀█████▀ ███ ██▀
▀▀▀ ▀ ▀ ▀▀▀ ▀
-2
View File
@@ -1,5 +1,3 @@
set -e
echo "Enable Bluetooth A2DP auto-connect in WirePlumber"
destination=~/.config/wireplumber/wireplumber.conf.d/bluetooth-a2dp-autoconnect.conf
-4
View File
@@ -3,10 +3,6 @@ echo "Add cliamp music TUI player (Super+Shift+Alt+M)"
if omarchy-pkg-missing cliamp; then
omarchy-pkg-add cliamp
cp ~/.local/share/omarchy/applications/icons/Cliamp.png ~/.local/share/applications/icons/Cliamp.png
gtk-update-icon-cache ~/.local/share/icons/hicolor &>/dev/null
omarchy-tui-install "Cliamp" "cliamp" tile "$HOME/.local/share/applications/icons/Cliamp.png"
if [[ -f ~/.config/hypr/bindings.conf ]] && ! grep -q "cliamp" ~/.config/hypr/bindings.conf; then
sed -i '/^bindd = SUPER SHIFT, M, Music, exec, omarchy-launch-or-focus spotify/a bindd = SUPER SHIFT ALT, M, Music TUI, exec, omarchy-launch-or-focus-tui cliamp' ~/.config/hypr/bindings.conf
fi
+14
View File
@@ -0,0 +1,14 @@
echo "Move Dell XPS touchpad haptics into the packaged service"
if omarchy-hw-dell-xps-haptic-touchpad; then
sudo systemctl disable --now dell-xps-haptic-touchpad.service 2>/dev/null || true
sudo rm -f /etc/systemd/system/dell-xps-haptic-touchpad.service
sudo rm -f /etc/systemd/system/multi-user.target.wants/dell-xps-haptic-touchpad.service
sudo rm -rf /etc/systemd/system/dell-xps-haptic-touchpad.service.d
sudo rm -f /etc/udev/rules.d/99-dell-xps-haptic-touchpad.rules
sudo rm -f /etc/omarchy-dell-haptic-touchpad.env
sudo systemctl daemon-reload
sudo udevadm control --reload-rules
source "$OMARCHY_PATH/install/packaging/dell-xps-touchpad-haptics.sh"
fi
Executable → Regular
View File
Executable → Regular
View File
+1 -1
View File
@@ -6,7 +6,7 @@ WAYBAR_STYLE="$HOME/.config/waybar/style.css"
if [[ -f $WAYBAR_CONFIG ]]; then
if ! grep -q '"custom/weather"' "$WAYBAR_CONFIG"; then
sed -i 's/"modules-center": \["clock",/"modules-center": ["clock", "custom\/weather",/' "$WAYBAR_CONFIG"
sed -i '/"network": {/i\ "custom/weather": {\n "exec": "$OMARCHY_PATH/default/waybar/weather.sh",\n "return-type": "json",\n "interval": 600,\n "tooltip": false,\n "on-click": "notify-send -u low \\"$(omarchy-weather-status)\\""\n },' "$WAYBAR_CONFIG"
sed -i '/"network": {/i\ "custom/weather": {\n "exec": "$OMARCHY_PATH/default/waybar/weather.sh",\n "return-type": "json",\n "interval": 60,\n "tooltip": false,\n "on-click": "notify-send -u low \\"$(omarchy-weather-status)\\""\n },' "$WAYBAR_CONFIG"
fi
fi
+20
View File
@@ -0,0 +1,20 @@
echo "Remove VAAPI GL video feature flags from Chromium-based browser configs to prevent crashing on some machines"
remove_chromium_vaapi_features() {
local file=$1
[[ -f $file ]] || return 0
sed -i --follow-symlinks \
-e '/^--enable-features=/ s/VaapiVideoDecodeLinuxGL//g' \
-e '/^--enable-features=/ s/VaapiVideoEncoder//g' \
-e '/^--enable-features=/ s/,,*/,/g' \
-e '/^--enable-features=/ s/=,/=/' \
-e '/^--enable-features=/ s/,$//' \
-e '/^--enable-features=$/d' \
"$file"
}
for flags_file in "$HOME"/.config/{chromium,chrome,google-chrome,google-chrome-beta,google-chrome-unstable,brave,brave-beta,brave-nightly,brave-origin-beta,microsoft-edge-stable,microsoft-edge-beta,microsoft-edge-dev,vivaldi-stable,vivaldi-snapshot,opera,opera-beta,opera-developer}-flags.conf; do
remove_chromium_vaapi_features "$flags_file"
done
+4
View File
@@ -0,0 +1,4 @@
echo "Remove Omarchy cliamp desktop stub and icon (replace by package inclusion)"
rm -f ~/.local/share/applications/Cliamp.desktop
rm -f ~/.local/share/applications/icons/Cliamp.png
+11
View File
@@ -0,0 +1,11 @@
echo "Update elephant symbols paste shortcut for Hyprland 0.55"
symbols_config=~/.config/elephant/symbols.toml
if [[ -f $symbols_config ]]; then
sed -i 's/hyprctl dispatch sendshortcut "SHIFT, Insert,"/hyprctl dispatch sendshortcut "SHIFT,Insert,activewindow"/' "$symbols_config"
else
omarchy-refresh-config elephant/symbols.toml
fi
omarchy-restart-walker
+7 -6
View File
@@ -69,8 +69,8 @@ pass "fallback commands are inferred and documented"
"$CLI" commands --all --json | jq -e '.commands[] | select(.route == "omarchy dev benchmark")' >/dev/null
pass "benchmark command is discoverable in all commands"
"$CLI" commands --json | jq -e '.commands[] | select(.binary == "omarchy-pkg-add" and .route == "omarchy install package" and .filename_route == "omarchy pkg add" and (.routes | index("omarchy pkg add")))' >/dev/null
pass "JSON exposes canonical and filename-derived routes"
"$CLI" commands --json | jq -e '.commands[] | select(.binary == "omarchy-pkg-add" and .route == "omarchy pkg add" and .filename_route == "omarchy pkg add" and (.routes | index("omarchy pkg add")))' >/dev/null
pass "JSON exposes direct pkg add route"
"$CLI" commands --json | jq -e '.commands[] | select(.binary == "omarchy-refresh-pacman" and .requires_sudo == true)' >/dev/null
pass "sudo metadata marks sudo commands"
@@ -79,11 +79,12 @@ output=$("$CLI" theme --help)
assert_output_contains "group help renders" "$output" "Theme commands"
output=$("$CLI" install --help)
assert_output_contains "install group help renders" "$output" "omarchy install package <packages...>"
assert_output_contains "install group help renders" "$output" "Install commands"
assert_output_contains "install group includes browser route" "$output" "omarchy install browser"
output=$("$CLI" install)
assert_output_contains "bare group renders help instead of picker" "$output" "Install commands"
assert_output_contains "bare group includes package route" "$output" "omarchy install package <packages...>"
assert_output_contains "bare group includes browser route" "$output" "omarchy install browser"
output=$("$CLI" toggle)
assert_output_contains "bare root command with children renders help" "$output" "Toggle commands"
@@ -166,8 +167,8 @@ assert_output_contains "root alias resolves to command help" "$output" "omarchy-
pass "aliases are included in JSON metadata"
output=$("$CLI" pkg add --help)
assert_output_contains "fallback route resolves to curated metadata" "$output" "omarchy-pkg-add"
assert_output_contains "fallback route shows canonical route" "$output" "omarchy install package <packages...>"
assert_output_contains "pkg add help resolves" "$output" "omarchy-pkg-add"
assert_output_contains "pkg add help shows direct route" "$output" "omarchy pkg add <packages...>"
output=$("$CLI" system reboot --help)
assert_output_contains "system command help is safe" "$output" "omarchy-system-reboot"
+9
View File
@@ -0,0 +1,9 @@
# Rainy-Night
- Install
```bash
omarchy-theme-install https://github.com/atif-1402/omarchy-rainynight-theme.git
```
<img width="1366" height="768" alt="image" src="https://github.com/user-attachments/assets/69fc99b8-d387-43a9-b0e8-47231c7379c4" />
<img width="1366" height="768" alt="image" src="https://github.com/user-attachments/assets/c22416db-8bfc-46b6-8e2b-06d82f3e70ef" />
<img width="1366" height="768" alt="image" src="https://github.com/user-attachments/assets/919139ab-baef-4084-8ca6-dba9f56287a5" />
+190
View File
@@ -0,0 +1,190 @@
/* Aether Theme Override Template
* This file is automatically generated and copied to ~/.config/aether/theme.override.css
* when you apply a theme in Aether.
*
* Generated from palette colors selected in Aether
*/
/* Dynamic Color Palette */
@define-color background #1e1e2e;
@define-color foreground #cdd6f4;
@define-color color0 #45475a;
@define-color color1 #f38ba8;
@define-color color2 #a6e3a1;
@define-color color3 #f9e2af;
@define-color color4 #89b4fa;
@define-color color5 #cba6f7;
@define-color color6 #94e2d5;
@define-color color7 #bac2de;
@define-color color8 #585b70;
@define-color color9 #f38ba8;
@define-color color10 #a6e3a1;
@define-color color11 #f9e2af;
@define-color color12 #89b4fa;
@define-color color13 #cba6f7;
@define-color color14 #94e2d5;
@define-color color15 #cdd6f4;
/* Base GTK theme variables */
@define-color theme_bg_color @background;
@define-color theme_fg_color @foreground;
@define-color theme_base_color @background;
@define-color theme_text_color @foreground;
@define-color theme_selected_bg_color @color4;
@define-color theme_selected_fg_color @background;
@define-color insensitive_bg_color alpha(@background, 0.5);
@define-color insensitive_fg_color alpha(@foreground, 0.5);
@define-color insensitive_base_color @background;
@define-color theme_unfocused_bg_color @background;
@define-color theme_unfocused_fg_color @foreground;
@define-color theme_unfocused_base_color @background;
@define-color theme_unfocused_text_color @foreground;
@define-color theme_unfocused_selected_bg_color @color4;
@define-color theme_unfocused_selected_fg_color @background;
/* Adwaita Color Overrides */
@define-color accent_bg_color @color4;
@define-color accent_fg_color @color15;
@define-color accent_color @color6;
@define-color window_bg_color @background;
@define-color window_fg_color @foreground;
/* Sidebar background and content */
@define-color view_bg_color @background;
@define-color view_fg_color @foreground;
@define-color sidebar_bg_color @background;
@define-color sidebar_fg_color @foreground;
@define-color sidebar_backdrop_color @background;
@define-color sidebar_shade_color @background;
@define-color headerbar_bg_color alpha(@foreground, 0.05);
@define-color headerbar_fg_color @foreground;
@define-color headerbar_backdrop_color @background;
@define-color headerbar_shade_color @background;
@define-color headerbar_border_color alpha(@foreground, 0.15);
@define-color card_bg_color alpha(@foreground, 0.03);
@define-color card_fg_color @foreground;
@define-color card_shade_color @background;
@define-color thumbnail_bg_color @background;
@define-color thumbnail_fg_color @foreground;
@define-color shade_color @background;
@define-color scrollbar_outline_color @background;
@define-color popover_bg_color @background;
@define-color popover_fg_color @foreground;
@define-color dialog_bg_color @background;
@define-color dialog_fg_color @foreground;
@define-color destructive_bg_color @color1;
@define-color destructive_fg_color @color15;
@define-color success_bg_color @color2;
@define-color success_fg_color @color15;
@define-color warning_bg_color @color3;
@define-color warning_fg_color @color15;
@define-color error_bg_color @color1;
@define-color error_fg_color @color15;
@define-color borders alpha(@foreground, 0.15);
/* Additional bg/fg color variables */
@define-color window_backdrop_color @background;
@define-color view_backdrop_color @background;
@define-color menu_bg_color @background;
@define-color menu_fg_color @foreground;
@define-color entry_bg_color alpha(@foreground, 0.03);
@define-color entry_fg_color @foreground;
@define-color button_bg_color alpha(@foreground, 0.05);
@define-color button_fg_color @foreground;
@define-color tooltip_bg_color @background;
@define-color tooltip_fg_color @foreground;
@define-color tooltip_border_color alpha(@foreground, 0.15);
@define-color osd_bg_color @background;
@define-color osd_fg_color @foreground;
@define-color osd_border_color alpha(@foreground, 0.15);
@define-color filechooser_bg_color @background;
@define-color filechooser_fg_color @foreground;
@define-color nautilus_window_bg_color @background;
@define-color nautilus_window_fg_color @foreground;
/* Portal/native dialog colors */
@define-color portal_bg_color @background;
@define-color portal_fg_color @foreground;
/* Gtk.FileDialog uses these in GTK4 */
@define-color filedialog_bg_color @background;
@define-color filedialog_fg_color @foreground;
/* Dropdown/ComboBox colors */
@define-color dropdown_bg_color @background;
@define-color dropdown_fg_color @foreground;
@define-color dropdown_hover_bg_color alpha(@color4, 0.3);
@define-color dropdown_selected_bg_color @color4;
@define-color dropdown_selected_fg_color @background;
/* Pathbar/Breadcrumb colors */
@define-color pathbar_bg_color @background;
@define-color pathbar_fg_color @foreground;
/* Toolbar colors */
@define-color toolbar_bg_color @background;
@define-color toolbar_fg_color @foreground;
/* Notebook/Tab colors */
@define-color notebook_bg_color @background;
@define-color notebook_fg_color @foreground;
/* Scrollbar colors */
@define-color scrollbar_slider_color alpha(@foreground, 0.3);
@define-color scrollbar_slider_hover_color alpha(@foreground, 0.5);
@define-color scrollbar_slider_active_color @foreground;
/* Treeview/Listview colors */
@define-color treeview_bg_color @background;
@define-color treeview_fg_color @foreground;
/* Link colors */
@define-color link_color @color4;
@define-color link_visited_color @color5;
/* Selection colors (for text selection, etc) */
@define-color selection_bg_color @color4;
@define-color selection_fg_color @background;
/* Content view (file browser grid/list) */
@define-color content_view_bg @background;
@define-color content_view_fg @foreground;
/* Placeholder text in entries */
@define-color placeholder_text_color alpha(@foreground, 0.5);
/* Dim label */
@define-color dim_label_color alpha(@foreground, 0.55);
/* SVG Icons - recolor to match foreground text */
.svg-icon {
filter: invert(79%) sepia(18%) saturate(611%) hue-rotate(192deg)
brightness(103%) contrast(94%);
}
/* Sharp corners, Hyprland-inspired */
* {
border-radius: 0;
}
+28
View File
@@ -0,0 +1,28 @@
[colors]
[colors.primary]
background = "#1e1e2e"
foreground = "#cdd6f4"
[colors.normal]
black = "#45475a"
red = "#f38ba8"
green = "#a6e3a1"
yellow = "#f9e2af"
blue = "#89b4fa"
magenta = "#cba6f7"
cyan = "#94e2d5"
white = "#bac2de"
[colors.bright]
black = "#585b70"
red = "#f38ba8"
green = "#a6e3a1"
yellow = "#f9e2af"
blue = "#89b4fa"
magenta = "#cba6f7"
cyan = "#94e2d5"
white = "#cdd6f4"
[colors.cursor]
text = "#1e1e2e"
cursor = "#cdd6f4"
Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

+69
View File
@@ -0,0 +1,69 @@
# ────────────────────────────────────────────────────────────
# BTOP THEME — Rainy Night City (matches your wallpaper)
# ────────────────────────────────────────────────────────────
# Transparent / dark night background
theme[main_bg]="#1e2030"
# Main text soft grey-blue (city lights)
theme[main_fg]="#cdd3e1"
# Titles light blue highlight (lamp glow)
theme[title]="#d6e7ff"
# Highlight text muted light grey-blue
theme[hi_fg]="#bfc6d4"
# Selected row deeper night shade
theme[selected_bg]="#14151f"
# Selected row text bright white-blue
theme[selected_fg]="#e8f1ff"
# Inactive/dim text distant-building grey
theme[inactive_fg]="#7d8291"
# Misc text light city grey
theme[proc_misc]="#bfc6d4"
# Box outlines subtle bluish-grey (window frame color)
theme[cpu_box]="#292b3b"
theme[mem_box]="#292b3b"
theme[net_box]="#292b3b"
theme[proc_box]="#292b3b"
# Divider lines same subtle outline tone
theme[div_line]="#292b3b"
# Graph gradients smooth blue-grey (rain & neon reflections)
theme[temp_start]="#4a4f65"
theme[temp_mid]="#8c92a3"
theme[temp_end]="#d6e7ff"
theme[cpu_start]="#4a4f65"
theme[cpu_mid]="#8c92a3"
theme[cpu_end]="#d6e7ff"
theme[free_start]="#4a4f65"
theme[free_mid]="#8c92a3"
theme[free_end]="#d6e7ff"
theme[cached_start]="#4a4f65"
theme[cached_mid]="#8c92a3"
theme[cached_end]="#d6e7ff"
theme[available_start]="#4a4f65"
theme[available_mid]="#8c92a3"
theme[available_end]="#d6e7ff"
theme[used_start]="#4a4f65"
theme[used_mid]="#8c92a3"
theme[used_end]="#d6e7ff"
theme[download_start]="#4a4f65"
theme[download_mid]="#8c92a3"
theme[download_end]="#d6e7ff"
theme[upload_start]="#4a4f65"
theme[upload_mid]="#8c92a3"
theme[upload_end]="#d6e7ff"
+11
View File
@@ -0,0 +1,11 @@
[color]
gradient = 1
gradient_count = 8
gradient_color_1 = '#91e3e1'
gradient_color_2 = '#a7aaaf'
gradient_color_3 = '#d7d8db'
gradient_color_4 = '#e382d2'
gradient_color_5 = '#f6cbee'
gradient_color_6 = '#d9f7f6'
gradient_color_7 = '#f6cbee'
gradient_color_8 = '#91e3e1'
+1
View File
@@ -0,0 +1 @@
30, 32, 48
+23
View File
@@ -0,0 +1,23 @@
accent = "#89b4fa"
cursor = "#cdd6f4"
foreground = "#cdd6f4"
background = "#1e1e2e"
selection_foreground = "#e8f1ff"
selection_background = "#292b3b"
color0 = "#45475a"
color1 = "#f38ba8"
color2 = "#a6e3a1"
color3 = "#f9e2af"
color4 = "#89b4fa"
color5 = "#cba6f7"
color6 = "#94e2d5"
color7 = "#bac2de"
color8 = "#585b70"
color9 = "#f38ba8"
color10 = "#a6e3a1"
color11 = "#f9e2af"
color12 = "#89b4fa"
color13 = "#cba6f7"
color14 = "#94e2d5"
color15 = "#cdd6f4"
+23
View File
@@ -0,0 +1,23 @@
# Background and foreground colors
background = #1e1e2e
foreground = #cdd6f4
# Standard colors
palette = 0=#45475a
palette = 1=#f38ba8
palette = 2=#a6e3a1
palette = 3=#f9e2af
palette = 4=#89b4fa
palette = 5=#cba6f7
palette = 6=#94e2d5
palette = 7=#bac2de
# Bright colors
palette = 8=#585b70
palette = 9=#f38ba8
palette = 10=#a6e3a1
palette = 11=#f9e2af
palette = 12=#89b4fa
palette = 13=#cba6f7
palette = 14=#94e2d5
palette = 15=#cdd6f4
+166
View File
@@ -0,0 +1,166 @@
@define-color background #160D16;
@define-color foreground #fef9f3;
@define-color black #160D16;
@define-color red #fe4d2a;
@define-color green #83bc7b;
@define-color yellow #f7f24f;
@define-color blue #a7aaaf;
@define-color magenta #e382d2;
@define-color cyan #91e3e1;
@define-color white #F6C9A0;
@define-color bright_black #4d3c4d;
@define-color bright_red #ff9985;
@define-color bright_green #bbddb6;
@define-color bright_yellow #fffca3;
@define-color bright_blue #d7d8db;
@define-color bright_magenta #f6cbee;
@define-color bright_cyan #d9f7f6;
@define-color bright_white #fef9f3;
@define-color accent_bg_color @blue;
@define-color accent_fg_color @background;
@define-color accent_color @cyan;
@define-color window_bg_color @background;
@define-color window_fg_color @foreground;
@define-color view_bg_color @black;
@define-color view_fg_color @foreground;
@define-color sidebar_bg_color @black;
@define-color sidebar_fg_color @foreground;
@define-color sidebar_backdrop_color @black;
@define-color sidebar_shade_color @black;
@define-color headerbar_bg_color @background;
@define-color headerbar_fg_color @foreground;
@define-color headerbar_backdrop_color @black;
@define-color headerbar_shade_color @black;
@define-color card_bg_color @background;
@define-color card_fg_color @foreground;
@define-color popover_bg_color @black;
@define-color popover_fg_color @foreground;
@define-color destructive_bg_color @red;
@define-color destructive_fg_color @background;
@define-color success_bg_color @green;
@define-color success_fg_color @background;
@define-color warning_bg_color @yellow;
@define-color warning_fg_color @background;
@define-color error_bg_color @red;
@define-color error_fg_color @background;
@define-color dialog_bg_color @background;
@define-color dialog_fg_color @foreground;
@define-color borders alpha(@foreground, 0.1);
@define-color theme_fg_color @foreground;
@define-color theme_text_color @foreground;
@define-color theme_bg_color @background;
@define-color theme_base_color @black;
@define-color theme_selected_bg_color @blue;
@define-color theme_selected_fg_color @background;
@define-color insensitive_bg_color @background;
@define-color insensitive_fg_color @bright_black;
@define-color insensitive_base_color @black;
@define-color theme_unfocused_fg_color @foreground;
@define-color theme_unfocused_text_color @foreground;
@define-color theme_unfocused_bg_color @background;
@define-color theme_unfocused_base_color @black;
@define-color theme_unfocused_selected_bg_color @blue;
@define-color theme_unfocused_selected_fg_color @background;
@define-color unfocused_insensitive_color @bright_black;
@define-color unfocused_borders alpha(@foreground, 0.1);
@define-color warning_color @yellow;
@define-color error_color @red;
@define-color success_color @green;
@define-color destructive_color @red;
@define-color content_view_bg @black;
@define-color text_view_bg @black;
messagedialog {
background-color: @dialog_bg_color;
}
messagedialog label {
color: @dialog_fg_color;
font-size: 14pt;
font-weight: bold;
}
messagedialog .secondary-text {
font-size: 10pt;
font-style: italic;
}
messagedialog button {
background-color: @black;
color: @foreground;
border: 1px solid @bright_black;
padding: 10px;
}
messagedialog button:hover {
background-color: @blue;
}
banner revealer widget {
background: @bright_black;
padding: 5px;
color: @foreground;
}
alertdialog.background {
background-color: @dialog_bg_color;
color: @dialog_fg_color;
}
alertdialog .titlebar {
background-color: @headerbar_bg_color;
color: @headerbar_fg_color;
}
alertdialog box {
background-color: @dialog_bg_color;
}
alertdialog label {
color: @dialog_fg_color;
}
filechooser .dialog-action-box {
border-top: 1px solid @bright_black;
}
filechooser .dialog-action-box:backdrop {
border-top-color: @black;
}
filechooser #pathbarbox {
border-bottom: 1px solid @bright_black;
}
filechooserbutton:drop(active) {
box-shadow: none;
border-color: transparent;
}
toast {
background-color: @black;
color: @foreground;
}
toast button.circular.flat.image-button:hover {
color: @background;
background-color: @red;
}
.svg-icon {
filter: invert(79%) sepia(18%) saturate(611%) hue-rotate(192deg)
brightness(103%) contrast(94%);
}

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