53 Commits
Author SHA1 Message Date
yenru0 935e2b0bd0 image_viewer: Remove PDF annotation and form editing
Congratsbot / check-author (push) Skipped
Congratsbot / congrats (push) Waiting for needed jobs
deploy_nightly_docs / deploy_docs (push) Skipped
run_tests / orchestrate (push) Skipped
run_tests / check_style (push) Skipped
run_tests / clippy_windows (push) Skipped
run_tests / clippy_linux (push) Skipped
run_tests / clippy_mac (push) Skipped
run_tests / clippy_mac_x86_64 (push) Skipped
run_tests / run_tests_windows (push) Skipped
run_tests / run_tests_linux (push) Skipped
run_tests / run_tests_mac (push) Skipped
run_tests / miri_scheduler (push) Skipped
run_tests / doctests (push) Skipped
run_tests / check_workspace_binaries (push) Skipped
run_tests / build_visual_tests_binary (push) Skipped
run_tests / check_wasm (push) Skipped
run_tests / check_dependencies (push) Skipped
run_tests / check_docs (push) Skipped
run_tests / check_licenses (push) Skipped
run_tests / check_scripts (push) Skipped
run_tests / check_remote_server_linux_x86_64 (push) Skipped
run_tests / check_remote_server_mac_aarch64 (push) Skipped
run_tests / check_remote_server_windows_x86_64 (push) Skipped
run_tests / check_postgres_and_protobuf_migrations (push) Skipped
run_tests / extension_tests (push) Skipped
run_tests / tests_pass (push) Skipped
The annotation and form-filling surface is being dropped, so remove it
end to end rather than leave it half-maintained.

pdf_viewer loses the editing APIs and everything only they used:
add_ink_annotation, add_highlight_annotation, delete_annotation,
apply_form_edits, the form widget and annotation extraction, the
PdfFormWidget/PdfFormEdit/PdfAnnotation types, the document
serialization helper, and the pdfium guards and constants those
functions were the sole users of. Rendering, text, links, outline and
metadata are untouched; annotation rendering stays on because it paints
markup already embedded in viewed documents.

image_viewer loses the tool palette, form widget overlays, inline form
editors, pen canvas, option menus, the annotate toolbar button, the
Undo Edit and Delete Annotation actions and their key bindings, plus
the associated state and handlers. Text selection, find, links,
thumbnails, outline, properties, rotation, presentation and Save a Copy
remain.
2026-10-08 14:28:45 +09:00
yenru0 4ac68ee5af image_viewer: Make the full page width reachable when zoomed
Three layout issues kept horizontal scrolling from working when a page
was wider than the viewport: the viewport scrollbar was vertical-only,
so nothing could be dragged; centering the pages hid the left half of
an overflowing page, because scroll offsets cannot go positive; and the
centering came from a stretched flex child, which made the container
report no horizontal overflow at all.

The container now aligns children to the start so they keep their
content width, and pages center themselves with an auto margin only
while they still fit. The scrollbar covers both axes.

The interaction test asserts the invariants: the page's left edge
tracks the viewport edge plus the scroll offset, and the scroll range
spans the full page-minus-viewport overflow.
2026-10-08 14:08:30 +09:00
yenru0 0030767614 image_viewer: Fix PDF zoom lag and silent annotation no-ops
Zoom lag: page rasterization ran synchronously on the UI thread with the
exact zoom in the cache key, so every wheel tick re-rendered every
visible page before the next frame. Rasterization now happens in a
background task at a quantized zoom bucket (x1.25) while the closest
already-rendered bitmap stays on screen scaled to the layout; completed
renders swap in via notify. Frames the cache refuses (larger than the
budget) are never re-rendered, which previously spun an infinite
render loop.

The mock fallback renderer skipped the MAX_PAGE_DIMENSION clamp the
native path applies, so its frames grew past the cache budget at high
zoom and were refused on every attempt; the cap is now shared, and
lowered from 8192 to 4096 (a 1080p viewport is oversampled ~4x at that
point, and the worst-case frame drops from 207MB to 67MB).

Annotations: the bundled libpdfium.so was never loaded because the
loader only tried working-directory-relative paths; it now also
resolves next to the executable, matching the bundled layout. Ink,
highlight, and delete editing returned Ok with unchanged bytes when no
native engine was present, so strokes silently did nothing; they now
return errors that surface through the existing logging.
2026-10-08 12:00:01 +09:00
yenru0 67b9fe8b73 image_viewer: Cover pinch zoom in the PDF interaction test
Assert that a pinch gesture scales the PDF zoom by the gesture delta,
pinning the on_pinch wiring across real event dispatch.
2026-10-03 21:14:03 +09:00
yenru0 157c4646bb image_viewer: Add horizontal panning to the PDF viewer
The PDF scroll container only scrolled vertically, so zoomed-in pages
could not be moved sideways. Switch it to two-axis scrolling: ctrl+wheel
and pinch zoom now anchor both axes, middle-drag pans both directions,
and the container shows a closed-hand cursor while panning. The anchor
scroll math is shared per axis.
2026-10-03 20:42:04 +09:00
yenru0 5fd4113081 image_viewer: Add anchored zoom and pan to the PDF viewer
The PDF viewport lacked the interaction set the image view already had:
ctrl/cmd+wheel and pinch zoomed nothing (plain wheel just scrolled),
middle-drag did not pan, and the zoom actions only applied image-mode
pan math, which does nothing for the scroll-based PDF layout.

- Ctrl/cmd+wheel zooms around the cursor: the native scroll handler on
  the same element runs first in the bubble phase, so the applied wheel
  delta is undone before anchoring the zoom.
- Pinch zooms around the touch point; zoom actions anchor the viewport
  center.
- Middle-drag pans, keeping left-drag for text selection and pen input.
- extract_document_details now falls back to a single mock US-Letter
  page when no native libpdfium is present, mirroring the mock
  rasterizer, so PDFs open on machines without the engine instead of
  failing with an image-format error.
- The annotation mouse test gates on native pdfium like the channel
  order test, since mock pages carry no text.

Anchor math lives in pdf_anchored_scroll_y with unit tests, and a
gpui integration test drives real wheel/drag events to assert the
document point under the cursor stays put while zooming.
2026-10-03 20:33:08 +09:00
yenru0 5ee6aa1e50 image_viewer: Fix swapped red and blue channels in PDF pages
GPUI's RenderImage contract is BGRA (assets.rs) and every platform atlas
uploads the bytes raw into BGRA8 textures. All other decode paths swap
R/B before building a RenderImage; the PDF path fed pdfium's RGBA buffer
straight through, so PDF pages rendered with swapped channels on every
platform (white/gray unaffected, colors wrong).

Swap R/B at both RenderImage construction sites (page view + thumbnails)
and pin pdf_viewer's RGBA raster contract with a native channel-order
regression test (skips when no libpdfium is present).
2026-10-03 20:09:25 +09:00
yenru0 312b37539c gwen: Bundle pdfium in macOS builds
Issue Triage Queue Board / Sync triage queue board (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / run_tests_linux (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / build_static_bwrap_linux_aarch64 (push) Has been cancelled
release_nightly / build_static_bwrap_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
Congratsbot / check-author (push) Has been cancelled
deploy_nightly_docs / deploy_docs (push) Has been cancelled
run_tests / orchestrate (push) Has been cancelled
run_tests / check_style (push) Has been cancelled
Update Duplicate Magnets Issue / update-duplicate-magnets (push) Has been cancelled
Congratsbot / congrats (push) Has been cancelled
run_tests / clippy_windows (push) Has been cancelled
run_tests / clippy_linux (push) Has been cancelled
run_tests / clippy_mac (push) Has been cancelled
run_tests / clippy_mac_x86_64 (push) Has been cancelled
run_tests / run_tests_windows (push) Has been cancelled
run_tests / run_tests_linux (push) Has been cancelled
run_tests / run_tests_mac (push) Has been cancelled
run_tests / miri_scheduler (push) Has been cancelled
run_tests / doctests (push) Has been cancelled
run_tests / check_workspace_binaries (push) Has been cancelled
run_tests / build_visual_tests_binary (push) Has been cancelled
run_tests / check_wasm (push) Has been cancelled
run_tests / check_dependencies (push) Has been cancelled
run_tests / check_docs (push) Has been cancelled
run_tests / check_licenses (push) Has been cancelled
run_tests / check_scripts (push) Has been cancelled
run_tests / check_remote_server_linux_x86_64 (push) Has been cancelled
run_tests / check_remote_server_mac_aarch64 (push) Has been cancelled
run_tests / check_remote_server_windows_x86_64 (push) Has been cancelled
run_tests / check_postgres_and_protobuf_migrations (push) Has been cancelled
run_tests / extension_tests (push) Has been cancelled
run_tests / tests_pass (push) Has been cancelled
Guild Stale Assignments / sweep (push) Has been cancelled
Community PR Cleanup / cleanup (push) Has been cancelled
PR Board Meta Fields Refresh / refresh (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Track duplicate bot effectiveness / classify-closed-issue (push) Has been cancelled
Track duplicate bot effectiveness / classify-open (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
Close Stale Issues / stale (push) Has been cancelled
compliance_check / scheduled_compliance_check (push) Has been cancelled
release_nightly / check_nightly_tag (push) Has been cancelled
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Guild Weekly Shipped / digest (push) Has been cancelled
script/bundle-mac now downloads the pinned pdfium-mac tarball from
bblanchon/pdfium-binaries into Zed.app/Contents/Frameworks, matching
what bundle-linux and bundle-windows.ps1 already do, so the bundled
pdf_viewer no longer falls back to synthetic rendering on macOS. The
runtime loader probes ../Frameworks next to the executable.
2026-10-01 10:37:32 +09:00
yenru0 b61647f0bf gwen: Stop tracking the SSH password file
Issue Triage Queue Board / Sync triage queue board (push) Has been cancelled
Update All Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
release_nightly / check_nightly_tag (push) Has been cancelled
release_nightly / run_tests_linux (push) Has been cancelled
release_nightly / bundle_linux_aarch64 (push) Has been cancelled
release_nightly / bundle_linux_x86_64 (push) Has been cancelled
release_nightly / build_static_bwrap_linux_aarch64 (push) Has been cancelled
release_nightly / build_static_bwrap_linux_x86_64 (push) Has been cancelled
release_nightly / bundle_mac_aarch64 (push) Has been cancelled
release_nightly / bundle_mac_x86_64 (push) Has been cancelled
release_nightly / bundle_windows_aarch64 (push) Has been cancelled
release_nightly / bundle_windows_x86_64 (push) Has been cancelled
release_nightly / build_nix_linux_x86_64 (push) Has been cancelled
release_nightly / build_nix_mac_aarch64 (push) Has been cancelled
release_nightly / update_nightly_tag (push) Has been cancelled
release_nightly / notify_on_failure (push) Has been cancelled
Congratsbot / check-author (push) Has been cancelled
deploy_nightly_docs / deploy_docs (push) Has been cancelled
run_tests / orchestrate (push) Has been cancelled
run_tests / check_style (push) Has been cancelled
Congratsbot / congrats (push) Has been cancelled
run_tests / clippy_windows (push) Has been cancelled
run_tests / clippy_linux (push) Has been cancelled
run_tests / clippy_mac (push) Has been cancelled
run_tests / clippy_mac_x86_64 (push) Has been cancelled
run_tests / run_tests_linux (push) Has been cancelled
run_tests / run_tests_mac (push) Has been cancelled
run_tests / miri_scheduler (push) Has been cancelled
run_tests / doctests (push) Has been cancelled
run_tests / check_workspace_binaries (push) Has been cancelled
run_tests / build_visual_tests_binary (push) Has been cancelled
run_tests / check_wasm (push) Has been cancelled
run_tests / check_dependencies (push) Has been cancelled
run_tests / check_docs (push) Has been cancelled
run_tests / check_licenses (push) Has been cancelled
run_tests / check_scripts (push) Has been cancelled
run_tests / check_remote_server_linux_x86_64 (push) Has been cancelled
run_tests / check_remote_server_mac_aarch64 (push) Has been cancelled
run_tests / check_remote_server_windows_x86_64 (push) Has been cancelled
run_tests / check_postgres_and_protobuf_migrations (push) Has been cancelled
run_tests / extension_tests (push) Has been cancelled
run_tests / tests_pass (push) Has been cancelled
Guild Weekly Shipped / digest (push) Has been cancelled
Guild Stale Assignments / sweep (push) Has been cancelled
Community PR Cleanup / cleanup (push) Has been cancelled
PR Board Meta Fields Refresh / refresh (push) Has been cancelled
Hotfix Review Monitor / check-hotfix-reviews (push) Has been cancelled
Stale PR Review Reminder / check-stale-prs (push) Has been cancelled
Update Weekly Top Ranking Issues / update_top_ranking_issues (push) Has been cancelled
Bump collab-staging Tag / update-collab-staging-tag (push) Has been cancelled
run_tests / run_tests_windows (push) Has been cancelled
The Windows build machine credential was committed in the rebrand
commit and is retained in history. Untrack it and ignore the path; the
machine has been decommissioned, but rotate the password and, if the
history needs to be scrubbed, rewrite it with git filter-repo.
2026-09-29 09:41:10 +09:00
yenru0 14bb6c16c2 gwen: Set version to 0.1.0 and disable upstream update checks
Gwen is not ready for 1.0.0; drop the crate version to 0.1.0 (README
along with it). Comment out the Check for Updates menu item and the
auto_update::init call — both query Zed's release infrastructure, which
does not apply to Gwen builds — until Gwen runs its own update server.
The appx identity versions in the Windows injector manifests are an
MSIX pairing contract and stay at 1.0.0.0.
2026-09-29 09:38:20 +09:00
yenru0 6a4747d647 gwen: Use project contact email and trim help menu
Point feedback, flatpak and snap contact mailto at
yenru0604@proton.me, and comment out the Twitter and Join the Team help
menu items until Gwen has its own accounts.
2026-09-29 09:32:07 +09:00
yenru0 74405573c9 gwen: Rebrand documentation to Gwen
Rewrite product prose and local path/command examples across the docs
to match the shipped application (gwen CLI, Gwen config paths, Gwen.app,
com.yrkaierx.Gwen). Upstream distribution channels, service URLs and
package identifiers stay factually intact.
2026-09-29 09:24:34 +09:00
yenru0 fe62a99bf5 gwen: Purge remaining Zed branding from user-facing surfaces
Sweep every user-visible product string to Gwen: app menus (Quit,
Hide, Gwen Repository), feedback links (repo/issues now point at
github.com/kk376/zed, email to yenru@yrkaierx.com), move-to-Applications
and update dialogs, provider and settings copy, CLI help, installer and
desktop/flatpak/snap/plist metadata.

Rename user-facing settings values with back-compat aliases: base_keymap
"Gwen" (accepts "Zed"), fonts ".GwenMono"/".GwenSans" (accept
".ZedMono"/".ZedSans"), icon theme "Gwen (Default)". Fix F10
app-menu keymap arguments to "Gwen" and align the Windows installer
AppMutex with release_channel::app_identifier(). Internal identifiers,
wire protocol names, upstream service URLs and legal attribution are
intentionally kept.
2026-09-29 09:24:34 +09:00
yenru0 faa11dea4c gwen: Add background image picker to onboarding
Add a Background section to the welcome page: a file picker writes
background.path into user settings, a Clear button removes it, and the
chosen image is previewed in place. No default background is set; fit,
position and opacity remain in the Settings page.
2026-09-29 08:19:52 +09:00
yenru0 4e15e1e0ed gwen: Point macOS bundle metadata at Gwen icons
The icon rename removed app-icon-*.png but left the cargo-bundle
metadata referencing them, so bundle-mac could not produce an app
bundle. Point every channel at app-icon-gwen*.png, align bundle
identifiers and names with release_channel (com.yrkaierx.Gwen*), and
rename the DMG artifact and volume to Gwen.
2026-09-29 08:09:05 +09:00
yenru0 b2d4f99845 gwen: Add Gwen theme family and make it the default
Bundle Gwen Dark (Hallowed Night) and Gwen Light in assets/themes/gwen,
derived from the champion's canon palette: hallowed mist cyan for
accents/functions, Gwen blue for types, violet for keywords, Camavor
gold for constants, pink-stitching rose for properties, mist mint for
strings over a Black Mist night base.

Set Gwen as the default theme pair in settings and the shipped settings
templates, surface it as the first tile in the onboarding theme picker
and the theme preview gallery, and guard the family with a bundled
theme regression test.
2026-09-29 08:08:44 +09:00
yenru0 38490b4554 image_viewer: Fix PDF annotation tooling feedback and blank-space drags
- Show the armed tool on the annotation palette via the button's
  selected state; the previous selected_label workaround never rendered
  because the selected state was never set
- Switch the page cursor to a crosshair while the pen tool is armed
- Let highlight and text drags start on blank space and form the
  selection when the drag reaches text instead of dying silently
- Cover the palette click, highlight, pen, and blank-space drag flows
  with a hermetic test
2026-09-25 04:33:25 +09:00
yenru0 de4affc638 image_viewer: Make the outline panel width adjustable
- Add a drag handle on the outline panel's right edge that resizes the
  panel between 120 and 480 pixels
- Track the drag on the surrounding row so the pointer can roam, and
  clamp the width to keep the panel usable
- Keep the chosen width while toggling the panel and inherit it when
  the view is split
2026-09-25 01:56:32 +09:00
yenru0 1b2685ac9b image_viewer: Preserve PDF state across page changes
- Add ImageItemEvent::PageChanged and emit it from ImageItem::set_page
  instead of Reloaded and MetadataUpdated, since turning a page does not
  change the document bytes
- Handle PageChanged in ImageView by only refreshing layout state,
  keeping the outline, page and thumbnail caches, form edits, undo
  history, and annotations intact
- Jumping via the outline no longer resets the outline panel to
  "No outline"
2026-09-25 01:30:39 +09:00
yenru0 ad13ed3b7d gwen: Embed Gwen icon and product metadata in Windows binaries
- Map the dev release channel to app-icon-gwen.ico and product name
  Gwen in the Windows version resource instead of the upstream Zed Dev
  icon and name
- Set CompanyName to yrkaierx to match the installer's AppPublisher
2026-09-24 22:28:03 +09:00
yenru0 8cbbb66e97 image_viewer: Undo and delete PDF annotations
- Every committed document edit (annotations and form entries) pushes the
  previous state onto a bounded history, so ctrl-z, the annotation
  palette's Undo button, and the context menu's "Undo Edit" walk back
  through them; undoing past the first edit returns to the file's bytes.
- Right clicking an annotation offers "Delete Annotation". The engine
  lists a page's markup annotations (links, widgets, and popups are
  excluded) and removes the one under the pointer by its annotation index.
- The palette's Undo button is disabled while the history is empty, and
  every edit clears the annotation cache that hit testing reads.
2026-09-24 12:36:13 +09:00
yenru0 37750c24e2 image_viewer: Highlight and draw on PDFs
- A toolbar toggle opens an annotation palette with select, highlight,
  and pen tools plus four highlight colours.
- The highlight tool turns a text drag into highlight annotations, one
  per page the selection spans, and clears the selection afterwards.
- The pen tool records a freehand stroke while dragging and commits it as
  an ink annotation on release; the live stroke paints over the page.
- Links and form fields only take clicks while the select tool is armed,
  and committed annotations share the edited-bytes path, so they travel
  into the saved copy and into the rasterized pages.
- The engine layer appends quad points through pdfium's attachment-point
  API and lets pdfium generate the highlight and ink appearances, which
  keeps them rendering correctly at any zoom.
2026-09-24 04:53:22 +09:00
yenru0 0fd48144f9 image_viewer: Fill PDF forms
- Form widgets appear as overlays over the rasterized field appearances:
  text fields take an inline editor (Enter commits, Escape leaves),
  checkboxes and radios toggle on click, and dropdowns open their options.
- Committed edits rewrite the document once and swap renders over to the
  rewritten bytes, so filled values are visible immediately and travel
  into the saved copy.
- The engine layer drives pdfium's form API through the public bindings
  trait, with RAII guards for the document, form environment, page, and
  annotation handles, and it reports unmatched field names instead of
  dropping edits silently.
2026-09-24 04:37:23 +09:00
yenru0 46d628e9c7 image_viewer: Select PDF text by character
- Selections are character ranges backed by pdfium character boxes,
  fetched per page on demand and cached, so a drag stops mid-word and
  copy yields the exact substring.
- Double clicks select the word under the pointer and right clicks
  outside the selection select the word before opening the context menu.
- Highlight runs merge neighbouring characters on a line, keeping the
  painted quad count low, and margins clicks resolve to the nearest glyph.
- Saving a copy of the document is available from the toolbar, the
  context menu, and ctrl-s; picking the opened file itself is a no-op.
2026-09-24 04:09:43 +09:00
yenru0 ebf342c60b image_viewer: Add properties panel, page rotation, and presentation mode
- Document properties render as a sidebar with everything pdfium reports:
  title, author, subject, keywords, creator, producer, dates, page count,
  and file size.
- Rotating pages turns all of them a quarter turn. Rendered bitmaps carry
  the rotation, overlay geometry (links, selection, find hits) is mapped
  into display space, and hit testing maps clicks back into page space.
- Presentation mode lays out a single fitted page with sidebars, find bar,
  and page labels hidden; Escape leaves it.
- Fit to view now also works for PDFs by fitting the current page into the
  viewport, which previously only applied to images.
2026-09-24 04:00:15 +09:00
yenru0 d6d891bd5c image_viewer: Add PDF thumbnails and outline sidebars
- Page thumbnails render at a small DPI into their own cache and only for
  the visible scroll window, mirroring the page viewport's lazy rendering.
- The document outline extracts on first open and renders as an indented
  tree; entries with destinations jump the viewport, unresolvable ones stay
  visible but inert.
- Both panels share the left sidebar and are mutually exclusive, and the
  page bitmap window helper is now shared with the main viewport.
2026-09-24 03:57:44 +09:00
yenru0 818b00d47e image_viewer: Add PDF find in document and internal link jumps
Chrome-parity navigation work for the PDF viewer:

- Find in document (ctrl-f): query editor, match counter, Enter/Shift+Enter
  and ctrl-g navigation, yellow highlights with a stronger tint on the
  active match, and a page jump per match.
- Internal link destinations: pdfium now reports dest_page for GoTo links,
  so clicking a link that points inside the document jumps to that page
  instead of being dropped.
- Space/Shift+Space scroll the viewport a screen at a time, unless the
  find bar has focus so the query stays typeable.
2026-09-24 03:45:02 +09:00
yenru0 c8b11be511 gwen: Ship pdfium license notices in bundles 2026-09-23 23:14:41 +09:00
yenru0 25703f24dd gwen: Disable sign in by default and show upstream baseline in About 2026-09-23 19:51:29 +09:00
yenru0 eb2c399f24 gwen: Sweep remaining user-visible Zed strings 2026-09-23 10:16:19 +09:00
yenru0 39abdad320 gwen: Escape AppId brace for Inno Setup 2026-09-23 05:04:19 +09:00
yenru0 1521cc7f3f gwen: Extract conpty nupkg with tar on Windows PowerShell 5.1 2026-09-23 04:35:29 +09:00
yenru0 aa69163256 gwen: Bundle pdfium runtime in Windows installer 2026-09-23 04:06:21 +09:00
yenru0 6a26f35739 gwen: Adapt Windows bundle pipeline for Gwen 2026-09-23 03:03:29 +09:00
yenru0 2ad867cd0b gwen: Embed Gwen icon in about window and test runner 2026-09-23 01:47:04 +09:00
yenru0 e5a89be25c gwen: Point build script icon path at Gwen asset 2026-09-23 01:41:13 +09:00
yenru0 b5f0951720 remote: Reuse pre-rename zed_server binaries on hosts 2026-09-23 01:37:58 +09:00
yenru0 9318ba692f gwen: Remove unused Zed app icons 2026-09-23 00:18:10 +09:00
yenru0 7d89a22c0c gwen: Drop channel prefix from version output 2026-09-22 23:19:16 +09:00
yenru0 3e046788b5 gwen: Rebrand to Gwen 1.0.0 with independent identity and environment 2026-09-22 22:46:11 +09:00
yenru0 e39622d51c bundle: Ship pdfium runtime library for native PDF viewing 2026-09-22 19:52:41 +09:00
yenru0 617a8d3814 Merge remote-tracking branch 'kk376/feat/pdf-viewer' into pdf-viewer
# Conflicts:
#	README.md
2026-09-22 19:48:31 +09:00
yenru0 fa7c57817c release: Bump custom version to 1.22.0-Y1 2026-09-22 13:50:30 +09:00
yenru0 2abcfff462 remote: Upload bundled remote server binary to hosts without one 2026-09-22 13:25:33 +09:00
yenru0 baf7acb0bc merge: Update Cargo.lock for 1.22.0-Y0 2026-09-22 13:22:09 +09:00
yenru0 f1ba3ea49f Merge remote-tracking branch 'origin/main'
# Conflicts:
#	Cargo.lock
#	crates/settings_content/src/settings_content.rs
#	crates/zed/Cargo.toml
#	script/bundle-linux
2026-09-22 13:17:50 +09:00
yenru0 06b53ae438 bundle: Ship install/uninstall scripts and enable remote server provisioning 2026-09-22 13:16:30 +09:00
yenru0 e2f0824c36 release: Bump custom version to 1.19.0-Y0
Set custom build version identifier to Y0 (starting from index 0)
following the 1.19.0 release base.

Release Notes:

- Improved: Set custom release version to 1.19.0-Y0.
2026-09-03 20:23:53 +09:00
yenru0 d9f6214406 workspace: Add background image position and none-fit support
Allows anchoring background images via `background.position`:
`center` (default), `top_left`, `top_right`, `bottom_left`,
`bottom_right`, matching CSS `background-position` semantics.

Also adds `none` to `background.fit` to keep the original image size,
making watermark-style bottom-right or corner positioning possible
without stretching or cover cropping.
2026-09-03 16:40:06 +09:00
yenru0 ef0ddca6ce workspace: Rework background image to VS Code-style surface tint
Replaces the whole-UI opacity hack with a theme-level surface tint:

- background.opacity now scales the alpha of editor/terminal/panel
  surface colors only, so the image shows through the code area while
  text, borders, tabs and chrome stay fully opaque and readable
- the image element renders at full opacity behind the workspace
- theme reloads automatically when background settings change
2026-09-03 15:45:48 +09:00
yenru0 ada1148914 workspace: Fix foreground hang and let background show through UI
- Move the background image load and decode off the foreground thread
  (they were being polled there and tripped hang detection)
- Add background.ui_opacity: scales the opacity of everything drawn on
  top of the image so it shows through panels
2026-09-03 13:52:27 +09:00
yenru0 46d3b70e76 settings_ui: Expose background image settings on the Appearance page
Adds Image Path, Fit and Opacity controls to the Appearance settings page
so the workspace background image can be configured in-app instead of
editing settings JSON.
2026-09-03 11:20:07 +09:00
yenru0 4c94072003 workspace: Add background image setting with offline-resilient loading
Adds a workspace background image that renders behind all UI, configured
via a new `background` settings section (path, fit, opacity).

The image is loaded asynchronously with a 2-second timeout and is never
read on the render path, so an unreachable source (e.g. a dead network
mount) cannot block or freeze the workspace. The first successful read is
cached under the data directory (written once, never rewritten), and when
the source is unavailable the cached image is served from that cache, so
the background keeps working offline.
2026-09-02 19:12:22 +09:00