Commit Graph
1557 Commits
Author SHA1 Message Date
Ryan Hughes bcbe12b075 Unify config into shell.json and add Noctalia plugin support 2026-05-14 02:21:48 -04:00
Ryan Hughes 5c0f5669c9 Switch the image picker to IpcHandler 2026-05-14 02:21:48 -04:00
Ryan Hughes 4e8bf99240 Polish docs and harden plugin loading 2026-05-14 02:21:48 -04:00
Ryan Hughes 714e8a453b Move bar-settings and background-switcher into the shell 2026-05-14 02:21:48 -04:00
Ryan Hughes c72a8756b3 Add omarchy-shell with a plugin registry 2026-05-14 02:21:48 -04:00
Ryan Hughes af5a71347b Address reviewer findings for bar settings GUI
CRITICAL:
- Re-inject working entry into the settings form every time the dialog
  opens. Previously the Loader's onLoaded only fires when the
  sourceComponent identity changes, so reopening the dialog on the same
  widget id (or on a second instance of the same id, e.g. two spacers)
  showed stale field values.
- 'Add widget' menu and the centerAnchor dropdown both read
  draft.layout[section] without depending on the section array
  identity. Mutating the array in place did not invalidate those
  bindings, so the menu would show a stale availability list and let
  non-spacer widgets be added twice. Layout mutations now replace the
  whole  object so any binding that reads it re-evaluates.

WARNINGS:
- Save now writes only the diff against the merged defaults so future
  bar-defaults changes are not silently shadowed by a stale snapshot.
- FileView onFileChanged handlers simplified to a single reload() —
  the explicit second loader call was duplicating loadConfig and
  bumping barConfigSerial twice per change (visible flicker).
- userFile onLoaded ignores reloads while the user has an unsaved
  working draft so external edits during editing do not clobber the
  in-progress state.
- SpinBox forms switched from onValueChanged to onValueModified so the
  initial-value bind no longer fires fieldChanged.
- Hyprland window-rule sizes aligned with the FloatingWindow
  implicitWidth/Height values (720 main, 380 dialog).
- omarchy-launch-bar-settings falls back to initialTitle when focusing,
  so a dialog that has not yet had its title applied still surfaces
  the existing instance.
2026-05-14 02:21:47 -04:00
Ryan Hughes a03f589258 Add visual bar customizer
Each layout entry is now an object — {id, ...inline settings} — instead
of a (name, separate modules map) pair. Multiple instances of the same
widget are trivially supported (spacer is the main beneficiary). Settings
travel with the entry, so reordering keeps them attached.

shell.qml:
- normalizeLayout converts string entries to {id} and drops invalid ones
- ModuleSlot binds to a full entry; moduleName and moduleSettings derive
  from it via entryId/entrySettings helpers
- centerAnchor lookup walks layoutEntries directly
- builtinBarConfig defaults use the object form
- README + bar-defaults.json updated to the new schema

bar-settings/ (new Quickshell config):
- Top toolbar with Reset / Save and Position / centerAnchor dropdowns
- Three section editors (left/center/right) with current widgets shown
  as cards: name + description + move up/down/settings/remove buttons
- '+ Add widget' menu per section, sorted alphabetically by display name
  (only spacer can repeat; everything else is one per bar)
- Per-widget settings dialog (FloatingWindow) loads an inline schema for
  widgets in the catalog. Initial schemas: spacer (size), calendar
  (formats), brightness (step)
- FileView { atomicWrites } writes to ~/.config/omarchy/bar.json on Save

omarchy-launch-bar-settings + hypr window rules pin the settings window
to a 760px floating square. controlCenter gains a 'Customize bar…' button
that launches it.
2026-05-14 02:21:47 -04:00
Ryan Hughes 30dc9fddde Add Quickshell bar 2026-05-14 02:21:47 -04:00
Ryan Hughes 087909714e Add tmux keybindings viewer 2026-05-13 00:20:38 -04:00
Ryan Hughes d932f47eaf Prevent bg-next from taking non-images 2026-05-12 21:57:57 -04:00
David Heinemeier Hansson 8d5e9e794e Move to pnpm dlx with a 5-day lag to skip the latest zero-day npm package exploits 2026-05-12 23:58:27 +02:00
Ryan Hughes c0e099fed5 Prevent wiping waybar configs to reposition 2026-05-11 20:07:18 -04:00
Ryan Hughes aada2a4c9c Preserve waybar position on refresh 2026-05-11 20:01:18 -04:00
Ryan Hughes 3d8c061a39 Lazy load theme switcher thumbnails 2026-05-11 17:41:30 -04:00
Ryan Hughes 427783c41f Stub theme switcher benchmark 2026-05-11 17:20:46 -04:00
Ryan Hughes f24dd82181 Add filter typing to theme switcher 2026-05-11 17:10:45 -04:00
Ryan Hughes 903f27fdd1 Tighten image selector request handling 2026-05-11 16:50:26 -04:00
Ryan Hughes b89079ae5c Show theme names in theme switcher 2026-05-11 15:40:19 -04:00
David Heinemeier HanssonandRyan Hughes f6bd69bc0f Fix color sync 2026-05-11 15:29:31 -04:00
David Heinemeier HanssonandRyan Hughes ef129b9dab Consistency 2026-05-11 15:29:31 -04:00
David Heinemeier HanssonandRyan Hughes 0426f9b206 Cache warming 2026-05-11 15:29:31 -04:00
David Heinemeier HanssonandRyan Hughes b48f67058b Use consistent terms 2026-05-11 15:29:31 -04:00
David Heinemeier HanssonandRyan Hughes 000b7c79af Improve performance 2026-05-11 15:29:11 -04:00
David Heinemeier HanssonandRyan Hughes 0b2332e45d Permanent process for speed 2026-05-11 15:29:11 -04:00
David Heinemeier HanssonandRyan Hughes 5487c17d19 Single namespace is fine 2026-05-11 15:28:52 -04:00
David Heinemeier HanssonandRyan Hughes 008f0cf7dd Extract generic switcher 2026-05-11 15:28:52 -04:00
David Heinemeier HanssonandRyan Hughes 333ec367df Let's build our own wall 2026-05-11 15:28:33 -04:00
David Heinemeier HanssonandRyan Hughes 7a988d8909 Switch to using the switcher on all the normal keybindings 2026-05-11 15:27:56 -04:00
David Heinemeier HanssonandRyan Hughes 67751a45b5 Correct indention 2026-05-11 15:27:43 -04:00
David Heinemeier HanssonandRyan Hughes da822f6ffb Change from swaybg to skwd-wall
Nicer picker and support for movie bgs
2026-05-11 15:27:43 -04:00
Ryan Hughes 350b9a33b3 Fix keybinds display 2026-05-11 10:40:26 -04:00
Ryan Hughes e39206f24d Simplify montor scaling 2026-05-11 10:40:26 -04:00
Ryan Hughes 804571d8e2 Update all hyprland references to new lua ones 2026-05-11 10:40:26 -04:00
Mateusz KowalczykandGitHub 1acaa7ba4d Fix brightness indicator glitches caused by hardware-side key auto-repeat (#5760)
* Avoid overlapping brightness change key events.

* Clarify the fix comment
2026-05-11 16:33:58 +02:00
David Heinemeier Hansson dc4e6a6a50 One more weather icon tweak for light drizzle 2026-05-11 16:32:51 +02:00
David Heinemeier Hansson 147cc721f0 Better rain mapping of icons 2026-05-11 16:21:54 +02:00
c6ecdd1000 Add dispatch shortcuts to help menu (#5756)
* feat: dispatch shortcuts from help menu

* Retain uwsm launch wrapping

---------

Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-11 15:40:04 +02:00
David Heinemeier HanssonandGitHub 5738583319 RetroArch game launcher installer (#5753)
* Agents should use the notification helper

* Turn a single RetroArch game into its own application launcher

* Tweak installer

* Extract selection logic into cli

* Use consistent glyph

* One more
2026-05-11 13:01:45 +02:00
c4dbf12920 Add pre-refresh-pacman.d hooks for custom repository support (#5681)
Fires after the channel template is copied to /etc/pacman.conf and before
`pacman -Syyuu` runs, letting users layer custom Pacman repositories or
IgnorePkg directives onto the freshly-written config so they're respected
by the upgrade. Useful for users running on overlay distros (CachyOS,
Chaotic-AUR, internal company repos) where a wipe-and-reinstall would
otherwise pull vanilla Arch versions.

Ships with `pre-refresh-pacman.d/add-custom-repo.sample` showing the
pattern.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 10:19:12 +02:00
David Heinemeier Hansson 378ba984ca Checkout the full git so branch switching is still possible
Closes #5701
2026-05-11 10:11:53 +02:00
46365b7d4d Scope branding image pickers to ~/Pictures, fix About transcode mode (#5733)
* Scope branding image pickers to ~/Pictures, fix About transcode mode

The "Set From Image" path in both Style → About and Style → Screensaver
was scanning all of $HOME for *.svg / *.png and feeding the result into
Walker dmenu. On a populated home directory this can be tens of thousands
of entries, leaving the picker effectively unusable.

Scope the picker to ${XDG_PICTURES_DIR:-$HOME/Pictures}, matching the
pattern already used in omarchy-capture-screenshot.

While here, drop the hardcoded --mode block from omarchy-branding-about
so the About transcode falls back to the default braille mode, matching
what omarchy-branding-screensaver does and what stock about.txt ships
with. The reduced --width 54 stays so the result fits the fastfetch
logo column.

* Explain the scope of the picker

---------

Co-authored-by: Gavin Nugent <245706154+28allday@users.noreply.github.com>
Co-authored-by: David Heinemeier Hansson <david@hey.com>
2026-05-11 09:53:07 +02:00
David Heinemeier Hansson cd461059d0 Just a little wider 2026-05-10 20:33:34 +02:00
David Heinemeier Hansson f09743b2e9 libretro-vice is now an explosion of minor pkgs 2026-05-10 16:47:21 +02:00
David Heinemeier Hansson 8788dd2eb2 Fix arg order 2026-05-10 16:44:09 +02:00
David Heinemeier Hansson f426ae0de8 Lookup code symbols for better keybindings list 2026-05-10 16:31:08 +02:00
afcfaf6b1e Control Waybar position (#5730)
* Waybar positioning and shape

* Reveal weather again on left/right

* Fix indicators moving bar left/right

* Clean it up

* Cleanup

* One step forward, one step backwards

* Fix styles

* More style massage

* More tweaks

* Just position for now

* Fix keys

* No longer needed

* No need to reset

* Simplify

* Reset but protect waybar configs

* Not needed

* Fix glyph

* Not needed

* Cleanup

* Better wording

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-10 15:42:26 +02:00
David Heinemeier Hansson f26cc8f157 Send a notification when we switch 2026-05-10 15:22:41 +02:00
David Heinemeier Hansson 566c106ec1 Better wording 2026-05-10 15:11:47 +02:00
David Heinemeier Hansson 5346bc6db1 Only return state when we are toggling
Otherwise we know it!
2026-05-10 15:08:33 +02:00
David Heinemeier Hansson 0075645f0e Set hyprlock corners too 2026-05-10 15:05:34 +02:00