Skip to content

Releases: gladimdim/omarchy-config-sync-plugin

v1.4.1

Choose a tag to compare

@gladimdim gladimdim released this 27 Sep 08:57

Fix applying incoming shortcuts that reference helper functions already present in the destination bindings file.

Also prevents unavailable helper-dependent shortcuts from appearing selectable in the review UI.

Omarchy Config Sync v1.4.0

Choose a tag to compare

@gladimdim gladimdim released this 27 Sep 08:31

A clearer first-run experience and safer migration for Git-managed plugins.

  • First push is explicit. Connecting an empty repository now opens Overview with a highlighted three-step guide, a single Seed repo (N items) action, clearer confirmation text, and a direct review path.
  • Bulk selection is closer to the data. Expanded Incoming and Outgoing groups now provide scoped Select all and Select none controls. Both-sides conflicts remain intentionally manual.
  • Large theme media stays local. Video wallpapers plus AVIF and HEIC images are excluded from theme synchronization.
  • Plain plugin copies can migrate safely. Plugins listed in plugins.json but installed as ordinary folders now appear with a Reinstall action. The old copy is backed up, and it is restored automatically if installation is cancelled or fails. Symlinked development plugins remain untouched.

Validation: omarchy plugin validate passed and all 178 Python tests passed.

Omarchy Config Sync v1.3.0

Choose a tag to compare

@gladimdim gladimdim released this 25 Sep 16:13
88c23b3

Git-installed plugins sync as a registry, not as copied files.

  • plugins.json replaces copied plugin code. A plugin folder with a .git checkout is never copied in either direction, so Apply cannot downgrade it or leave omarchy plugin update refusing to fast-forward. Publish records id, version, commit, and source URL instead (credentials stripped from the URL) (#18).
  • Changes tab acts through Omarchy's own installer. Install for a listed plugin that is missing runs omarchy plugin add <source> in a floating terminal, so you see Omarchy's warning and confirm there. Update runs omarchy plugin update <id>, which pulls the plugin's upstream, not the repo.
  • Outgoing rows for the registry. This machine being ahead, or a listed plugin you uninstalled, shows as an outgoing row (unticked by default).
  • Existing copies stop applying. A repo that already holds files under plugins/<id>/ for a git plugin no longer applies them; publishing that plugin's list entry removes the copy from the repo. Plugins without .git (your own, or a clone of a built-in) keep syncing file by file.

Validation: Python test suite (173 passed) and omarchy plugin validate passed.

Omarchy Config Sync v1.2.24

Choose a tag to compare

@gladimdim gladimdim released this 13 Sep 14:27
468620d

Shortcuts, helpers, and per-machine overlays.

  • Apply no longer hangs when a plugin changed on both machines. Keep local / Take repo on the plugin row unblocks Apply and Publish (#11).
  • Shortcut cherry-pick is Hyprland-safe. Bind commands that depend on a local are inlined when they are just a path, or skipped when they would abort require("hypr.bindings"). Poisoned repo lines are not copied on Apply or Resync (#12, #14).
  • Local helper scripts can be published. repo/bin/ plus ~/.local/bin files named by bindings or hooks appear under Helper scripts. Unrelated shims stay out of the diff (#13, #14).
  • Per-machine Hyprland overlays are ignored (input.local.lua, local.conf). Extra paths in .omarchy-config.json machine_local stay opt-in, same as hypr/monitors.lua. Plugin files such as Local.qml still sync. Night-light (hyprsunset.conf) stays portable (#15, based on #10).

Validation: Python test suite (158 passed) and omarchy plugin validate passed.

Omarchy Config Sync v1.2.22

Choose a tag to compare

@gladimdim gladimdim released this 10 Sep 20:26

Shortcuts defined with o.rebind(...) now appear in outgoing changes and can be selected for sync. This fixes missing shortcuts such as Super+Down and Super+Up when overriding Omarchy defaults. Publishing preserves the original o.rebind(...) call.

Validation: the Python test suite and Omarchy plugin validation passed.

Omarchy Config Sync v1.2.21

Choose a tag to compare

@gladimdim gladimdim released this 10 Sep 18:30

Theme changes now show the current local theme in outgoing changes. Previously, the review row could show the theme still saved in the config repository.

  • Show old and new theme names in change descriptions.
  • Describe nested shell and widget settings, including AI Limits tracked limits, with their old and new values.
  • Match widgets by ID when comparing reordered bar layouts.
  • Wrap long change descriptions within review cards and retain line counts.

Validation: 140 tests passed; one optional fixture test skipped. Omarchy plugin manifest validation passed.

v1.2.20 — Connect hang, Overview scroll, git hooks

Choose a tag to compare

@gladimdim gladimdim released this 10 Sep 17:58
b26909d

Connect no longer hangs, the Overview tab fills the panel, and git on this machine can no longer block Publish.

Connect no longer hangs (#1, #2, #8)

Pasting a repo URL and clicking Connect could sit in a busy state forever. The panel wrote the URL to the helper and never closed stdin; the helper waited for EOF.

The helper now reads one line for --stdin, still accepts --url / argv, and the panel always terminates the payload with a newline so a held-open pipe cannot deadlock.

Overview tab fills the panel (#4)

The Overview Flickable used a hardcoded bottom margin, which left an empty gap and cropped content behind a needless scrollbar. It now uses the remaining vertical space.

Host git hooks no longer intercept the plugin (#6)

A machine-wide core.hooksPath (pre-push that rejects unknown remotes, commit-msg linters) could fail clone, fetch, commit, or Publish even when GitHub auth was fine. Plugin git now clears hooksPath for that invocation only. Credential helpers are unchanged.

--dry-run now reports the files it would touch and leaves the machine and the clone alone.

Plugin trees stay as one row

Connect on a machine with many plugins could return a 5 MiB+ snapshot and look like it failed even though the repo was linked. Bundled plugin, hook, and bin files keep one checkbox each; per-file previews are omitted so the panel can open.

Size budgets match GitHub, not an old 512 MiB cap

Clone, apply, and publish allow up to 10 GiB on disk (GitHub's documented repository guideline). Timeouts for clone/fetch/push are longer so a full plugin tree can transfer. A hostile remote still cannot fill the disk without a ceiling.

Also

  • Marketplace re-verification after each release is documented in AGENTS.md.
  • manifest.json and PLUGIN_VERSION stay in lockstep; a test fails if they drift.

Upgrading

If your plugin directory is a clone, pull inside it and restart:

cd ~/.config/omarchy/plugins/gladimdim.config-sync
git pull
omarchy restart shell

From GitHub:

omarchy plugin update gladimdim.config-sync --yes

Use omarchy restart shell, not omarchy refresh shell — the latter resets shell.json to Omarchy defaults.

v1.2.19 — Removals sync as removals

Choose a tag to compare

@gladimdim gladimdim released this 03 Sep 12:35

Deleting a plugin or a config file on one machine now syncs as a deletion.

Removals are tracked as removals

A file or plugin you deleted here used to appear in Outgoing as an ordinary local edit — "Plugin updates · will sync" — and pressing Publish selected did nothing, reporting "Nothing to publish", because the publisher went looking for files that were no longer on disk.

A deletion is now carried as one end to end:

  • The row reads "Removed here · N files · will delete" instead of claiming it will sync.
  • Publishing it deletes it from the repo.
  • Applying a repo-side removal uninstalls it on this machine.

Deletions are opt-in

Every removal arrives unticked. default_publish and default_apply are false for removals, so Select all never sweeps one up, and nothing is deleted on another machine unless you tick that row on purpose. Expect Outgoing to show 0 included when the only outstanding changes are deletions — that is the safety default doing its job, not a bug.

Clean divergences merge themselves

When both sides have moved but no single file was edited on both, the panel no longer parks in a diverged state waiting for a Resync — it merges. Overlapping edits still surface as per-file conflicts to pick through, and a clone with a dirty working tree now reports why the merge was skipped instead of quietly doing nothing.

Also

  • A row no longer states its status twice. The backend already opens a bundle's summary with its status, so the panel's own prefix produced "Removed here · Removed here · 11 files"; the prefix is now dropped when the summary already leads with it.
  • Twelve new tests cover the above, including the guards that stop a removal escaping its root and the prune stopping at it. 124 tests pass.

Upgrading

If your plugin directory is a clone, pull inside it and restart:

cd ~/.config/omarchy/plugins/gladimdim.config-sync
git pull
omarchy restart shell

Use omarchy restart shell, not omarchy refresh shell — the latter resets shell.json to Omarchy defaults.

v1.2.18

Choose a tag to compare

@gladimdim gladimdim released this 03 Sep 11:21

Semantic change summaries

File rows in the review list now say what actually changed, instead of showing a generic description of the file. Each change appears as a pill under the row, reading old → new in the direction you're about to apply.

Recognized settings

File Summarized
omarchy/shell.json Dock bar position, bar transparency, idle lock, screensaver, bar widgets added/removed
omarchy/shell.toml Font base-size
terminals/* Font family and size (ghostty, alacritty, kitty, foot)
hypr/looknfeel.lua Gaps, border size, corner rounding, layout
hypr/input.lua Keyboard layout, tap-to-click, natural scroll, sensitivity
hypr/hyprsunset.conf Night light temperature
hypr/autostart.lua Launch-on-start entries added/removed

Anything else falls back to +N, -M lines or New file (N lines).

Also in this release

  • omarchy/shell.toml is now tracked in the inventory.
  • All summary reads stay bound to their trees and skip oversized files, keeping the hardening from 1.2.13–1.2.16 intact.

Full test suite: 112 tests, all passing.

v1.2.17

Choose a tag to compare

@gladimdim gladimdim released this 02 Sep 15:05

Updated preview image. Version 1.2.17