Commit graph

3 commits

Author SHA1 Message Date
f8f012e5a5 Persist user settings across launches
Profile, naming, output folder, audio bit depth and auto-reveal toggle
now round-trip via ~/.config/nocoder/config.json instead of resetting
to defaults on every launch. Alpha is deliberately NOT persisted because
the toggle is conditional on the chosen profile and would create more
confusion than value when restored from a stale session.

* New nocoder/config.py owns the JSON file with read-modify-write
  merging so multiple writers (hwaccel.py + UI prefs) don't clobber
  each other. Atomic write via tempfile + os.replace.
* hwaccel.py refactored to use the shared load_config / update_config
  helpers; CONFIG_PATH still re-exported for backward compat.
* settings_pane.Settings gains to_persistable() that returns the
  subset to round-trip; new load_persisted_settings() validates each
  field against its allowed range and falls back to defaults.
* window.py loads settings on startup and persists them every time
  the settings-changed signal fires (which already covers the folder
  picker via set_output_folder).

Verified: round-trip works, validation rejects bogus values cleanly,
hwaccel survives the merge.
2026-04-21 20:49:29 +01:00
bc8dec79f0 README: drop the embedded logo + brand-mark blurb
Both were redundant in a textual README — the logo is in the app itself,
not something users need to see in the repo overview.
2026-04-21 20:45:21 +01:00
749e102bd5 Initial release: NO-CODER batch ProRes transcoder for Omarchy
Native GTK4 + libadwaita app that wraps ffmpeg to batch-convert source
video into editorial-ready Apple ProRes .mov. Targets Omarchy / Hyprland
on Arch Linux specifically.

Highlights:

* Real ffmpeg encode (prores_ks → prores fallback) with live progress
  parsing, cancelable serial queue, disk-space pre-check, source-missing
  guard, output-collision (N) suffixes.
* GPU decode auto-probe at install time — picks cuda → qsv → vaapi based
  on what actually initialises on the host. ProRes encoding stays on CPU
  (no vendor ships a GPU encoder); offloading the decode side cuts wall
  time 25-40% on H.264 / HEVC sources.
* Theme-aware: tracks the active Omarchy theme on every launch by
  parsing colors.toml / ghostty.conf / alacritty.toml / kitty.conf in
  priority order. 34 stock + custom themes verified.
* Pro camera support: .MXF (Canon XF / Sony XDCAM / Panasonic AVC-Intra)
  with proxy-directory pruning so dropping a Sony XAVC card maps masters
  in CLIP/ but skips the low-res duplicates in SUB/.
* Multi-track audio preserved — 4 mono PCM streams from a Canon C300/C500
  land in the output as 4 separate tracks. Optional 24-bit toggle.
* Live encode-speed indicator with ffmpeg -progress parsing; ETA refines
  from real measured throughput rather than a fixed heuristic.
* Hyprland-aware install — registers walker entry, six hicolor icon
  sizes, float+centre windowrule for class dev.nocoder.NoCoder.

Distribution model: git clone + bash install.sh. The installer copies the
source tree to ~/.local/share/nocoder/ so the clone is disposable. Updates
are git pull + re-run install.sh.

Documented at README.md.
2026-04-21 20:43:14 +01:00