Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 23 Sep 02:30
· 413 commits to main since this release

[2.0.0] — 2026-09-23

A redesign of the desktop app: a new shell with a Preferences dialog, keyboard-driven context
menus, a docked details pane, a rewritten photo viewer with infinite scroll, album management,
stop sharing and link expiry, a redesigned Shared with Me page, per-device restore, a tray that
shows the sync state, and a new app icon.

Schema: 31 (unchanged).

Added

  • Pause and resume sync. The Sync page, the tray and pdfs sync pause [--for 1h] /
    pdfs sync resume hold back queued uploads and mirror-folder reconciles. Reads through the mount
    keep working, writes keep being accepted and staged, and a timed pause ends by itself. The pause
    survives a restart.
  • See what is waiting to upload. The Sync page lists the queue with each item's last error and
    next retry, with Retry now per item and Retry All; pdfs sync queue and pdfs sync retry [id]
    do the same from the CLI. Nothing in the queue is ever dropped from here.
  • Resolve sync conflicts. (sync-conflict …) copies under My Files are listed on the Sync page
    next to the file they conflict with, with sizes, times and whether the content differs. Keep the
    original, keep the copy or keep both under a new name; whatever is not kept goes to Trash.
    pdfs conflicts and pdfs conflicts resolve <path> --keep original|copy|both do the same from
    the CLI. Files that are open or still uploading are refused until they settle.
  • Pause one folder. A mirrored folder on the Sync page has its own pause button; while paused
    it is not reconciled in either direction and its mode cannot be switched, and resuming syncs it
    straight away. pdfs sync pause --folder <id> / pdfs sync resume --folder <id> do the same, and
    pdfs sync list marks paused folders. The pause is kept across restarts. On-demand folders
    upload through the shared queue, so only the global pause holds them back.
  • Bandwidth limits. Preferences → General → Network caps upload and download speed in MiB/s,
    shared by every transfer and applied to running ones from their next block; downloads include
    reads through the mount. pdfs sync limit --up 2M --down 0 does the same, and pdfs sync limit
    on its own prints the current caps. The caps are kept in config.json across restarts.
  • Tray states and menu. The tray icon shows whether the drive is synced, syncing, paused,
    offline or needs attention. It asks the panel for attention while changes keep failing, and
    its tooltip gives the same line as the menu. A left click opens the app. The menu gains
    "N issues — View", which opens the Sync page, and "Sign In…" when signed out. "Hide Tray Icon"
    is remembered across logins (tray_hidden in config.json), and Preferences → Appearance
    → Show tray icon brings the icon back. "Stop Proton Drive…" asks for confirmation in the app,
    then stops the service and the tray. pdfs-app accepts --page <name> and --confirm-stop.
    A second launch raises the running window instead of opening another one.
  • Stop sharing. Shared by Me → item menu → "Stop Sharing…" and pdfs unshare <path> (with no
    id) remove the public link, every invitation and every member in one go. Each step is tried even
    if an earlier one fails, and a partial result names what is still shared.
  • Restore another computer's folders. Every computer's menu on the Computers page has
    "Restore to This Computer…", which syncs that computer's backed-up folders down to paths you
    pick; they keep syncing with that computer's copy, and this machine keeps its own identity.
    This computer's own restore moved from the header into its row's menu. pdfs sync restore --device <uid> does the same from the CLI.
  • Public link expiry. The Share dialog's create-link form has an "Expires" choice (Never,
    1 day, 7 days, 30 days), and an existing link shows when it expires or that it has expired.

Changed

  • New app shell. Every page has its own header bar; the sidebar ends in a footer with sync
    state, storage and the account; the Settings page became a Preferences dialog (Ctrl+,), with
    transfers on the Sync page and developer details in About. The app follows the system accent
    colour; the Proton purple accent is a preference.
  • My Files header. New folder and both uploads sit in one New menu; the view button switches
    grid and list, and its menu sorts by name, size or date, reversed or not, folders first or not.
    The choice is remembered. Build Thumbnails and Open in File Manager moved to the folder menu.
  • Browsing history. Back and forward buttons (Alt+Left/Right, mouse back/forward) replace the
    single Up button; Alt+Up goes to the parent folder. Back leaves a search first.
  • Move to… picks the destination from a folder browser instead of a typed path, and works on a
    whole selection. Rename selects the name without its extension.
  • Drop to upload. Files and folders dropped on My Files upload into the folder on screen. The
    upload toast links to the Sync page.
  • Photos. The main view is called Timeline. Right-clicking a photo opens a menu to open it,
    favourite it, select it or move it to Trash; Ctrl+A selects every loaded photo. An empty filter
    says what it filtered ("No videos in June 2024") instead of the first-run hint. A banner shows
    while a Takeout import runs and links to it. Pages load 200 photos at a time and keep loading
    until the window is full.
  • Trash. Select several items (click, Shift/Ctrl+click, Ctrl+A) to restore or permanently
    delete them together; the permanent delete still asks first, with the count.
  • Shared by Me. A row opens the item. Copy link stays one click away; Open, Show in My Files,
    Open Link and Manage Access… are in the row's menu.
  • Computers. Rename, Use This Computer's Identity and Remove are in one menu per computer.
    Removing a computer deletes its backups, so the dialog now asks for its name to be typed. The
    page says which computer this machine backs up as, and says "computer" throughout.
  • Sign in. Failures read as sentences — wrong password, too many attempts, no connection, no
    keyring, a skipped two-factor or verification step — instead of the raw error. The button spins
    while signing in, and the page links to account creation and password reset. The two-factor
    dialog mentions recovery codes.
  • Real menus. Right-click menus in My Files, Photos, Shared by Me and Computers are GTK menus:
    arrow keys, Enter and Escape work, and the Menu key or Shift+F10 opens the one for the selection
    in My Files. Items follow one order — Open, Open With…, Play · Available offline · Share…,
    Copy Link · Rename…, Move To…, Versions… · Move to Trash. Right-clicking empty space offers New
    Folder, the uploads, Select All, Refresh and Open in File Manager. Open With… asks which
    application to use.
  • One selection in My Files. The grid and the list share their selection, so switching views
    keeps what is selected, and dragging across empty space draws a selection box in both.
  • Details pane. On a window at least 1000 px wide the details pane docks beside the files
    instead of covering them. It has Info, Offline, Sharing and Versions sections: who has access or
    whether there is a public link, how many versions there are, and Share…, Copy Link and
    Versions… buttons.
  • Search in this folder. Inside a folder, a folder button beside the search box limits the search
    to that folder and everything below it. pdfs search --in <folder> does the same from the CLI.
    In the list view a Location column shows which folder each hit is in. Pinned files listed by the
    search prompt and pdfs-query show whether they are on disk, instead of always showing them as
    not downloaded.
  • Album management. The Albums view has a New Album button, and an album's right-click menu
    offers Rename… and Delete Album…. Deleting an album keeps its photos in the timeline. A photo's
    menu and the selection bar offer Add to Album…, and inside an album, Remove from Album takes a
    photo out without trashing it. Albums shared with you only open. The CLI gains pdfs new-album,
    rename-album, delete-album, add-to-album and remove-from-album. This needs
    proton-drive-rs 0.6.6.
  • Albums view fixes. The timeline's filter row no longer shows over the album grid. The header
    counts albums. Back from an album returns to the grid where you left it instead of reloading it,
    and going from Albums back to Timeline keeps the timeline's scroll position unless an album was
    opened in between.
  • Photo viewer rewrite. The lightbox's controls fade out after two seconds without pointer
    movement. Photos zoom with Ctrl+scroll, a pinch, +/-, 1 for 100 % and double-click, and
    pan by dragging; 0 fits them again. The details panel docks beside the photo instead of 120 ms
    covering it. Stepping past the last loaded photo loads the next page, and the counter shows the
    library's total rather than the loaded count. A video plays inline. Save a Copy uses the photo's
    real name and reports failures, and Open With… offers the app chooser.
  • Photos scroll without a Load More button. The timeline loads the next page while you are
    still a screen and a half from the end, with a spinner under it while a page is on its way. A
    month scrubber on the right edge of the whole timeline, marked by year, jumps to the month you
    drag it to and follows the scroll otherwise.
  • Activity log redesign. The feed is grouped by day (Today, Yesterday, weekday, date), with
    a time column and filter chips for All, Transfers, Changes, Sharing and Problems. A conflict the
    daemon logs again on every run now shows once, with a count. A "Needs attention" section on top
    lists the conflicts still waiting for a decision. Each logged conflict has a Resolve… button that
    opens the same dialog as the Sync page, and reads as resolved once the copy is gone.
  • Share dialog. The Invite button stays off until every address looks like an email; a
    malformed one marks the field red and names the entry in a tooltip. Buttons show a spinner
    while their request runs, so a slow invite or link removal can't be sent twice.
  • New app icon. A white cloud with the download arrow cut out of it, on a rounded Proton
    purple tile with a darker lower edge, drawn to the GNOME app-icon grid. It stays legible down to
    16 px on light and dark panels.
  • Shared with Me redesign. Only sections with something in them are shown, and a page
    with nothing shared says so in one place. Pending invitations sit at the top, with an Accept
    button beside each. A row reads as the name over who shared it, when, and its size; what the
    share allows is a tinted pill ("Can view", "Can edit", "Can manage") rather than a bare
    role word that looked like a button. Open, Show in My Files and Leave… are in the row's ⋮
    menu, and folders show a chevron. Inside a shared folder the header shows the path from the
    share down, with a back button. Add Bookmark is an icon in the header.
  • US spelling throughout. The app, the CLI and the docs say "Favorite" and "color", matching the
    pdfs favorite command.