<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>https://papier.sacha.house/</id>
  <title>papier: releases</title>
  <subtitle>The clipboard's history for Linux</subtitle>
  <link rel="self" type="application/atom+xml" href="https://papier.sacha.house/feed.xml"/>
  <link rel="alternate" type="text/html" href="https://papier.sacha.house/"/>
  <icon>https://papier.sacha.house/img/logo.png</icon>
  <author><name>Sacha Froment</name><uri>https://froment.software</uri></author>
  <updated>2026-11-09T00:00:00Z</updated>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.6.0</id>
    <title>papier 0.6.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.6.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Windows&lt;/strong&gt;: papier shows the system's clipboard history (the one Win+V shows), searched and filtered as on Linux, at a shortcut of its own (&lt;code&gt;picker.shortcut&lt;/code&gt;, Win+Shift+V by default). Enter puts an entry back on the clipboard; an entry can be copied as plain text, edited (the edit is a new copy), removed, and the history cleared. The system keeps the history and its pins (Settings &amp;gt; System &amp;gt; Clipboard). The release has a &lt;code&gt;papier-&amp;lt;version&amp;gt;-windows-x64.zip&lt;/code&gt;. Its CI builds it and runs its tests on Windows, where the system answers papier's reads; the runner's session has the clipboard history off, so reading the entries, putting one back and removing it have not run on a real desktop yet.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Each archive of a release has its SHA-256 in a file beside it (&lt;code&gt;&amp;lt;archive&amp;gt;.sha256&lt;/code&gt;), in place of &lt;code&gt;SHA256SUMS.txt&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.5.2</id>
    <title>papier 0.5.2</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.5.2"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Settings: a change (a theme chosen, a switch) is saved when &lt;code&gt;~/.config/papier&lt;/code&gt; does not exist yet. It was lost, and the preferences read back from no file put the old value back. It is gui_toolkit 0.123.0.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.5.1</id>
    <title>papier 0.5.1</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.5.1"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Settings: a number with a unit (Max age, in days) no longer makes its line as tall as the page. It is gui_toolkit 0.122.0.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.5.0</id>
    <title>papier 0.5.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.5.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;The history is a SQLite database, &lt;code&gt;history.db&lt;/code&gt;, with SQLite linked into papier. Each change is written at once, in one transaction. The history of papier 0.4 (&lt;code&gt;index&lt;/code&gt; and &lt;code&gt;blobs/&lt;/code&gt;) is imported at the first start, with its ids, times and pins, then deleted.&lt;/li&gt;&lt;li&gt;The search finds a word anywhere in the text of a copy, not only in its first kilobyte. A word of one or two letters is still looked for in the preview.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.4.0</id>
    <title>papier 0.4.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.4.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Settings&lt;/strong&gt; (Ctrl+, or the gear of the title bar): every preference on four pages (Appearance, Window, History, Capture), the search, a switch, a choice, a slider or a field for each, the themes as cards in their own colours. A change is saved and applied at once. It is gui_toolkit's &lt;code&gt;prefs_page&lt;/code&gt; (0.120.0).&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;capture.max_bytes&lt;/code&gt; is &lt;code&gt;capture.size_limit&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.3.0</id>
    <title>papier 0.3.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.3.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The machined finish&lt;/strong&gt;, the default (&lt;code&gt;picker.finish&lt;/code&gt;): bevelled buttons, the search as a sunken well with a ring of light when focused, the filters on a carved track. &lt;code&gt;flat&lt;/code&gt;, &lt;code&gt;gradient&lt;/code&gt; and &lt;code&gt;glass&lt;/code&gt; are the others.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Themes with a dark and a light version&lt;/strong&gt; (gui_toolkit 0.117.0): &lt;code&gt;picker.theme&lt;/code&gt; names Papier or one of the toolkit's 25 themes; &lt;code&gt;picker.mode&lt;/code&gt; shows the system's version and follows it when it changes, or the dark one, or the light one. &lt;code&gt;picker.glow&lt;/code&gt; turns the halos off.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Changed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;code&gt;picker.theme&lt;/code&gt; no longer takes &amp;quot;papier light&amp;quot;: the light version is &lt;code&gt;picker.mode light&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.2.0</id>
    <title>papier 0.2.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.2.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The menu of an entry&lt;/strong&gt;: a right click on a row, the Menu key or Shift+F10. Copy, Copy as plain text (rich text), Edit…, Open (an address in the browser, a file with its program, the rest as a file of its type), Open with (the applications the system knows for the type: gui_toolkit's &lt;code&gt;desktop.handlers_for_file&lt;/code&gt;), Show in folder (files), Save as…, Pin, Remove. Ctrl+O opens, Ctrl+S saves as.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The edit view&lt;/strong&gt;: Ctrl+E or the pencil puts the text of an entry in an editor. Ctrl+Enter copies it as a new entry; Ctrl+S saves it in place of the entry (its place and its pin kept); Escape leaves.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The preview follows an edit&lt;/strong&gt;: it was kept by the entry's id, which an edit does not change.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.6</id>
    <title>papier 0.1.6</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.6"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;papier is in no task bar while hidden&lt;/strong&gt; (gui_toolkit 0.114.2): started with &lt;code&gt;--hidden&lt;/code&gt;, its window was a toplevel with no picture, and ShojiWM's task bar listed it. The toplevel is now made when the window shows.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.5</id>
    <title>papier 0.1.5</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.5"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;No spin at the end of a wait&lt;/strong&gt; (gui_toolkit 0.114.1): on Wayland, a wait with less than a millisecond left returned at once, and the loop woke about 150 times before its deadline.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.4</id>
    <title>papier 0.1.4</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.4"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The search field is one box&lt;/strong&gt;: the field drew its own square focus ring inside the rounded search box. The box is now the toolkit's &lt;code&gt;field_frame&lt;/code&gt;: one surface and one rounded focus ring around the icon and the field.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.3</id>
    <title>papier 0.1.3</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.3"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The grip is grey&lt;/strong&gt;: its lines asked the theme for a colour name it lacks, and got the violet that marks a missing name. They take the weak text's colour, finer and shorter.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.2</id>
    <title>papier 0.1.2</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.2"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;A grip in the title bar&lt;/strong&gt;: three faint lines between the search and the filters mark a place reserved to move the window.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.1</id>
    <title>papier 0.1.1</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.1"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Fixed&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The window takes the keyboard when it shows&lt;/strong&gt;: papier asks the compositor for the focus (&lt;code&gt;xdg-activation&lt;/code&gt;). ShojiWM's Windows 7 configuration did not focus it, so the arrows and the search did nothing until a click.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The tray icon shows&lt;/strong&gt;: panels that read the icon in one call (Quickshell, Waybar) showed the &amp;quot;missing icon&amp;quot; pattern.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The selection moves at once over images&lt;/strong&gt;: a picture is decoded on a thread of its own, and the newest selection wins. A 4K screenshot took about 180 ms to decode, and the window waited for it at each step.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
  <entry>
    <id>https://papier.sacha.house/changelog.html#v0.1.0</id>
    <title>papier 0.1.0</title>
    <link rel="alternate" type="text/html" href="https://papier.sacha.house/changelog.html#v0.1.0"/>
    <updated>2026-11-09T00:00:00Z</updated>
    <content type="html">&lt;h3&gt;Added&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;The clipboard's history on Wayland&lt;/strong&gt;: every copy is recorded through the data-control protocol (&lt;code&gt;ext-data-control-v1&lt;/code&gt;, or &lt;code&gt;zwlr-data-control-unstable-v1&lt;/code&gt;), with no window and no focus: text, rich text (HTML), images (PNG, JPEG, WebP, GIF, BMP, SVG) and files copied in a file manager.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;One process for the session&lt;/strong&gt;: papier lives in the notification area and its window comes up in a few milliseconds. A second &lt;code&gt;papier&lt;/code&gt; hands it &lt;code&gt;show&lt;/code&gt;; &lt;code&gt;papier toggle&lt;/code&gt; is for a key binding.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The window&lt;/strong&gt;: an integrated title bar with the search and the filters (All, Text, Images, Files, Pinned), a dense list that builds only the rows in view, the selected entry in full beside it (text in a monospace face, images, files), a splitter, a status bar with the keys. Its size, its place (X11) and the list's width are remembered.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The keyboard&lt;/strong&gt;: typing filters, Up / Down / Page Up / Page Down move, Enter or a double click puts an entry back on the clipboard, Alt+1..9 the first nine, Ctrl+P pins, Shift+Delete removes, Tab switches the filter, Escape clears or hides.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Pinned entries&lt;/strong&gt; stay whatever the limits.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Secrets are left out&lt;/strong&gt;: what a password manager marks with &lt;code&gt;x-kde-passwordManagerHint&lt;/code&gt; is not recorded.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The clipboard kept&lt;/strong&gt;: when the program that owned it quits and empties it, the last entry goes back.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The history on the disk&lt;/strong&gt;: content-addressed blobs (a copy of the same bytes is one file) and an index written atomically; the same copy twice is one entry, moved to the top.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Preferences&lt;/strong&gt; (&lt;code&gt;papier prefs&lt;/code&gt;, &lt;code&gt;papier set&lt;/code&gt;, &lt;code&gt;--pref&lt;/code&gt;): history limits, what to record, the size limit, types to ignore, the primary selection, the theme (papier, papier light, or any of gui_toolkit's palettes), the window's size and text size.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The command line&lt;/strong&gt;: &lt;code&gt;list&lt;/code&gt;, &lt;code&gt;get&lt;/code&gt;, &lt;code&gt;copy&lt;/code&gt;, &lt;code&gt;pin&lt;/code&gt;, &lt;code&gt;unpin&lt;/code&gt;, &lt;code&gt;delete&lt;/code&gt;, &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;show&lt;/code&gt;, &lt;code&gt;hide&lt;/code&gt;, &lt;code&gt;toggle&lt;/code&gt;, &lt;code&gt;quit&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The desktop&lt;/strong&gt;: &lt;code&gt;papier install&lt;/code&gt; adds a launcher with its icons, &lt;code&gt;~/.local/bin/papier&lt;/code&gt; and the start with the session; &lt;code&gt;uninstall&lt;/code&gt; and &lt;code&gt;status&lt;/code&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;papiertool&lt;/strong&gt;: &lt;code&gt;build&lt;/code&gt;, &lt;code&gt;test&lt;/code&gt;, &lt;code&gt;check&lt;/code&gt;, &lt;code&gt;live&lt;/code&gt; (the real program in a headless sway), &lt;code&gt;shots&lt;/code&gt;, &lt;code&gt;logo&lt;/code&gt;, &lt;code&gt;package&lt;/code&gt;, &lt;code&gt;notes&lt;/code&gt;, &lt;code&gt;ship&lt;/code&gt;, &lt;code&gt;site&lt;/code&gt;.&lt;/li&gt;&lt;/ul&gt;</content>
  </entry>
</feed>
