Butterfly Black Hairstreak (2.4) released
Linwood Butterfly
🎨 Powerful, minimalistic, cross-platform, opensource note-taking app

Announcing the Butterfly 2.4.0 Black Hairstreak release!
Long awaited, the next big Butterfly release is finally here! This release brings a lot of new features. This will be the foundation of new features in the future.
Help to spread the word and share Butterfly with your friends and colleagues!
Please visit the nightly version blog entries here:
- 2.4.0-beta.0
- 2.4.0-beta.1
- 2.4.0-beta.2
- 2.4.0-beta.3
- 2.4.0-rc.0
- 2.4.0-rc.1
- 2.4.0-rc.2
- 2.4.0-rc.3
- 2.4.0-rc.4
Highlights
-
📝 New Butterfly text format
-
📦 Rebuild pack system
-
🏷️ Improved Label Tool
-
🖋️ Improved Pen Element
-
🤝 Improved Collaboration
-
🧮 LaTeX Support
-
🎚️ Improved Pen Toolbar
-
🔷 Polygon Tool
-
📄 Reworked PDF System
-
⬆️ Binary and Version Upgrades
New text based format
Butterfly now supports a new text based file format. This format is designed to be human-readable and easy to edit, making it more accessible for users who prefer working with text files and working with version control systems.
Reworked Pack System
The previous pack system was difficult to use and had many problems regarding user experience. The new pack system is designed to be more user-friendly and easier to use.
Instead of saving the pack inside the document, the pack is now saved globally and if used, the specific data is saved inside the document. This allows for better organization and management of packs.
To have backwards compatibility, the packs inside documents will now be called Bundled packs
. These packs can be imported globally to use.
Improved Label Tool
Part of #802
The Label Tool will be improved in Linwood Butterfly Black Hairstreak. This release includes the first part of the improvements, which includes a new ctrl + enter shortcut to create a new text element below the current text element. This makes it easier to create new text elements without having to use the mouse.
Additionally an annoying bug with the label tool not allowing new lines has been fixed. Moving text elements after pasting them should now work correctly as well.
Improved Pen Element
Part of #802
You can now select a specific fill color for the pen element. This allows having a stroke and a fill to a single pen element, which is useful for creating shapes.
Additionally the stroke drawing algorithm dependency has been updated to improve the appearance and quality of hand-drawn strokes. This should make strokes look smoother and more natural on sharp curves.
Improved Collaboration
To stabilize the collaboration system, a bug that caused the server to crash when an invalid request was made has been fixed. This should improve the overall stability of the collaboration system.
Latex Support
This is a long awaited feature that allows you to use latex in markdown elements and rich text elements. This allows you to write mathematical formulas and equations in your documents using the familiar latex syntax.
You can now add math formulas to text elements using LaTeX syntax by clicking on the math button in the toolbar.
Pen Toolbar Improvements
The toolbar now includes a stroke width option, allowing you to easily adjust the stroke width of elements in your document without having to open the properties dialog.
Additionally there is now an option in the settings to make the simple toolbars (like color toolbar) temporary visible. If you start drawing, the toolbar will disappear.
New polygon tool and element
With the new polygon tool, you can now create custom polygons in your documents. This tool allows you to create polygons with any number of sides, making it a good choice for creating complex designs.
Please test this tool and give feedback on its usability and functionality.
Rework PDF system
Instead of converting PDF pages to images on import, there is now a dedicated PDF element. This should improve the quality of the imported PDFs and allow to edit the PDF elements in the future.
Additionally this should improve the performance and file size of loading documents with many PDF pages.
Already existing PDF elements remain unchanged.
Additionally PDF imports have now a name field to set a custom name for the imported pages. This will be used as prefix for the areas and pages created from the imported PDF. For example you can choose My PDF
as import name and the created pages will be named My PDF 1
, My PDF 2
, etc.
More over page names are empty by default now instead of always being default
. This will be shown inside the app in your localization as Untitled
or similar instead of showing always default
. For this to work you need to reset your templates to the new defaults or changing the page name to an empty name manually.
Binary and Version upgrades
Flutter was upgraded to 3.35. This includes many performance improvements and bug fixes.
Additionally the minimum Android version was increased from 6.0 (Marshmallow) to 7.0 (Nougat) since Flutter 3.35 requires this. Read more here.
With newer android versions, when Butterfly is killed in the background on Android, it will now restore to the last opened state instead of starting a new session.
The legacy apk build has been added to have an option to have a smaller binary size. Read more in the Android Documentation. If you don’t need smaller download sizes, it is recommended to use the default apk build. This will allow to add support for more app stores in the future which require smaller app sizes.
Notes
Thanks to all the beta testers and translators for helping to make this release possible! This update will be available soon on the Play Store, Snap Store, F-Droid and Microsoft Store. Please report any bugs you find on GitHub and share the app on social media to help the project grow!
Full changelog
Changes since 2.3.0-rc.1:
- Fix updated assets cannot be removed