You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
v2026.8.6
Notebook tags, just like macOS Finder: tap the ⋯ menu on any notebook and choose Add Tag to pick one of seven colours (red, orange, yellow, green, blue, purple, grey). The tag appears as a small coloured dot on the top-left of the notebook's thumbnail in both the grid and list views — change or remove it any time from the same menu. The Tags chip on the home screen now opens the same palette: pick a colour to see every notebook tagged with it (the chip's icon tints to match, and the breadcrumb shows “Tag · Red”), tap the active colour again to clear the filter, or use “Clear filter”, the back button, or any other chip.
Selecting or deleting huge regions no longer freezes: lassoing a large area (or sweeping the stroke eraser across a dense page) used to run an expensive geometry hit-test against every stroke on the page on the main thread, freezing the UI before the selection even appeared. The hit-test now runs on a background thread over a safe snapshot of the page's ink, so the selection box pops in without a hitch — and if you scroll while it's computing, the selection still lands correctly on its page.
Deleting a big selection is now near-instant: removing a large group of strokes used to scan the whole page's stroke list once per deleted stroke (quadratic), which stuttered badly on big deletes. Deletion now removes every selected stroke in a single pass, so erase, delete, cut, and undo/redo stay fast no matter how much ink you remove at once.
Dense pages render far more smoothly in landscape and at zoom: every page's ink used to be re-drawn stroke-by-stroke on every frame — so any edit (or even a search highlight) forced every visible page to re-issue all of its strokes, which was worst in full-screen landscape where several pages are on screen at once. Pages with lots of ink are now rasterised once into a cached layer that is simply blitted on redraw, and the cache only re-renders a page when that page's ink actually changes. Scrolling, zooming, panning, search highlighting and undo/redo all benefit.
Selection ghosts stay in sync with the new rendering: the faint "ghost" of a selection's original position appears the moment you select and disappears the moment you deselect, commit, or undo — including shapes that auto-select right after being drawn.
Memory-safe caching: the new ink-layer cache sizes itself to the device's memory, skips very light pages (a few strokes are cheaper to draw directly), avoids caching layers too big to fit, and falls back to direct drawing under memory pressure — so nothing regresses on low-memory devices.
AGPL-3.0 license: OctopusNotes is now licensed under the GNU Affero General Public License v3.0. Settings → About → Licenses reflects the change with a link to the full license text.
Replaced PDFBox with an in-house Kotlin engine (`pdfedit`) that performs instant incremental saves, native PDF 1.5+ parsing, and bug fixes for text extraction and outline resolution across 32 unit tests. Heavily optimised pdf rendering.
Links in PDF (⋯ menu): lists every hyperlink in the document — external URLs open in your browser, internal links jump straight to their page. Built on a new hand-rolled link reader (PdfLinkReader) that walks each page's /Annots and understands /URI, /GoTo, and /Launch actions plus named destinations — the same way the bookmark reader works.
PDF properties (⋯ menu): shows the page count and every distinct page size with its standard name (A4, Letter, Legal…, in mm) — handy for spotting mixed-size imports.
Current page easier to spot in Pages view: the highlight border around the active page thumbnail is now thicker (3dp → 5dp), so you can find the page you're working on at a glance.
Active page highlight wraps the whole page card: in the Pages view the current-page outline now rings the entire item — the thumbnail, the page number and the ⋁ menu together — instead of just the thumbnail, so the page you're on is unmistakable at any grid size. The page-number row is part of the tappable card now too, so tapping the number opens that page.
New filled pen icon: the pen tool button uses a solid filled pen glyph instead of the old outline one — it still layers your pen colour inside the theme-tinted outline rim, so the icon stays readable against any toolbar background and updates with your current colour.
All toolbar and menu icons elevated: every icon button across the app — drawing toolbar, tool-option strips, search bar, home screen, page grid, popups and dialogs — now sits at 4dp elevation, giving the whole interface a crisper, layered look (tool buttons with a filled background get a subtle shadow; ripple-only buttons get the lift in z-order).
Licenses screen brought up to date: Settings → About → Open source licenses now credits Google Material Design Icons (Apache 2.0) and AndroidX RecyclerView (Apache 2.0), and lists JUnit (Eclipse Public License 2.0) with a link to the EPL text — PDFBox is gone from the list, matching its removal.
Settings page redesigned: settings are now grouped into four clean cards — Editing, Home screen, Data and About — instead of one long flat list, so related options are easy to find at a glance. One-of-N choices (notebook thumbnail, PDF thumbnail) show their current value on the row and open a single-choice dialog instead of an inline radio list; Grid/List is now a chip toggle matching the home screen's filter chips; and Export/Import moved into the Data card as tonal buttons with directional icons. All preference keys are unchanged, so existing settings carry over.
Switch sub-texts now explain the off state: the Add pages continuously switch says “Add new pages manually with the + icon” when off, and Show tool options says “Options stay closed when you switch tools until you tap the tool button” — no more guessing what turning something off actually does.
Canvas color setting: a new Settings → Editing → Canvas color row opens the full colour picker (palette, spectrum, hex, quick colours) and the colour you choose becomes the background around and between the PDF pages in the drawing view — great for reducing glare or matching your desk setup. Defaults to the classic dark surround.
Notebook and folder menus tidied up: the popup you get from the ⋁ arrow next to a notebook or folder name now uses proper icons (lock for Lock Note, star for Favorites, trash for Delete), consistent 52dp rows with theme-tinted icons, and a divider that separates the red Delete action from the rest — so destructive actions are unmistakable. The folder menu's colour swatches keep their grey outline now instead of tinting the whole circle.
Marquee text for long notebook names: a new Settings → Home screen → Marquee text switch. When on, any notebook name too wide to fit its card on the home screen slowly scrolls — it holds at the start for 2 seconds, scrolls until the end is visible, then loops. Names that fit are never animated, folders are unaffected, and switching it off restores the plain "…" truncation.
New template, link, export and duplicate icons: the ⋯ menu's Change template row got a proper template glyph (a grid with a plus and crop marks) instead of the reused pages-grid icon, the Links in PDF row uses the filled Material Symbols link, Export shows a real file-export icon instead of the copy glyph, and the Duplicate action in the Pages view now shows a circled-plus duplicate icon (matching the selection bar and notebook menu) instead of the copy icon — all in the same tinted, rounded Material Symbols family.