Welcome to The Document Foundation Planet

This is a feed aggregator that collects what LibreOffice and Document Foundation contributors are writing in their respective blogs.

To have your blog added to this aggregator, please mail the website@global.libreoffice.org mailinglist or file a ticket in Redmine.


Thursday
03 September, 2026


face

Earlier this year we ran a survey about LibreOffice Base. Similar to the questionnaires about LibreOffice Draw (see first and second blog post) and LibreOffice Calc, we asked about use cases, the most important features, the pain points – and what users expect in the future to support development and to gather ideas how the user interface and workflow can be improved. In total, 455 participants completed the questions. Thanks a lot to everyone who took the time!

Demographics

As usual, the survey is heavily biased. The attendees self-estimate their expertise above the average, run the application more frequently, and show a different distribution in operating system usage compared to regular users.

Applications

To start off, we asked what tools they use. We included Spreadsheet Tools to also cover users who do not actually use a database, but think of a spreadsheet as kind of data storage. Participants responding None, obviously not managing any database, got a different follow-up question.

What tools do you use to manage databases?

Features

To trigger the idea of the following open questions, we asked about the importance of different features. Unlike the large number of functions in other modules, Base offers queries, reports, forms, tables, etc. which are all essential for the work with databases. Therefore we collected some features that may or may not be relevant for a sub-group or have room for improvements.

How important are these features for you?

What is your use case for the database management system?

People understand the question differently, and reply very short or rather verbosely. The answers may point to a professional environment if “payroll information for up to 10000 people” is mentioned, over SME’s processing order management, production count, and shipment status, to obviously private usage. The following attempt to categorize the answers cannot do justice to the variety of all replies:

  • Catalogs/Inventory: In-house Bakery, Receipts, Music/Books, CD/DVD, Musical scores. Plant samples, Publications/Scientific research, Health data
  • Web/Software: Backend storage, Software development, Websites, Managing SQL
  • ERP/Finance: Order management/Production count/Shipment status, Invoicing, User data, Cost management, Expenses,
  • Storing addresses and mail merge processing

For example:

“I use it mostly as place to store sensitive customers data. But since I have small quantities of information, I switched to LibreOffice Calc, which files can be also locked with the password.”

“Smaller business applications in the freight forwarding and logistics sectors, such as fleet management, warehouse management, category management, and invoicing.”

“Managing geospatial information with PostgreSQL/PostGIS and creating reports with the information from the attribute table using LibreOffice Base/Writer.”

“Storing data when it gets too big/slow for a CSV file for personal or internal work (engineering) projects.”

In your opinion, which LibreOffice Base features (if any) need improvement the most, and why?

The majority asks for improvements to the user interface with less clutter and a more attractive design. The workflow and user experience should become either simplified or more powerful, depending on the expertise and the scenario …


Monday
31 August, 2026


face

The NotebookBar (NBB) or tabbed interface is an alternative user interface for LibreOffice. In the second part of this series, I explain the way the NotebookBar takes icons and text to create the final output that you see on the screen.

Creating NotebookBar is LibreOffice Code

Currently, the NotebookBar is not exactly like the other UI files that in LibreOffice with weld mechanism. In the first part of the series of blog posts on this topic, I discussed the custom widgets in notebookbars and how to edit them using Glade.

The custom widgets rely on C++ code, especially for sizing and other characteristics. For example, Priority Merged Horizontal Box (sfxlo-PriorityMergedHBox) is a “horizontal box hiding children depending on its priorities”. It needs C++ code to implement the priority display of the children. If you search for it in C++ files, you will reach builder.cxx:

$ git grep -l sfxlo-PriorityMergedHBox "*.cxx"
vcl/source/window/builder.cxx

The above file is a huge > 100 KB C++ source code  that handles NotebookBar custom widgets, but also handles every other VCL widget.

The other parts of the relevant code for the NotebookBar resides in below files. Search for both “Notebookbar” and “notebookbar” in C++ files:

$ git ls-files "*otebook*cxx"
sfx2/source/notebookbar/NotebookbarTabControl.cxx
sfx2/source/notebookbar/SfxNotebookBar.cxx
vcl/qt5/QtInstanceNotebook.cxx
vcl/qt6/QtInstanceNotebook.cxx
vcl/source/control/NotebookbarPopup.cxx
vcl/source/control/notebookbar.cxx
vcl/source/window/NotebookBarAddonsMerger.cxx

Icons in Notebookbar

If you open the NotebookBar UI for LibreOffice Writer or other components like Calc, etc., what you see lacks two important things: icons and text.

Notebookbar widgetsNotebookbar widgets

First, let’s look into icons. The icon files come from the set of icon themes that are available with LibreOffice. The icon theme of LibreOffice is configurable, therefore you do not see some specific LibreOffice icon in the design. That makes the work of UI designers harder, but lets LibreOffice choose among different icon themes.

You may find more information in the icon-themes/ module README.md file, which describes how to create new icon themes, and how to link the icons to specific icons via .xcu files. For example, in officecfg/registry/data/org/openoffice/Office/UI/CalcCommands.xcu you see:

<node oor:name=".uno:OpenFromCalc" oor:op="replace">
    <prop oor:name="Label" oor:type="xs:string">
        <value xml:lang="en-US">~Open...</value>
    </prop>
    <prop oor:name="Properties" oor:type="xs:int">
        <value>1</value>
    </prop>
</node>

This is defined for the UNO dispatch command, .uno:OpenFromCalc, which opens a file for Calc. The complete list of UNO dispatch commands is available here:

For each command, two icon sizes are created, one small and one big icon. lc_<command name>.png and sc_<command name>.png, if not in SVG format. At first, one should add the icons for a new command to the colibre theme, in order to be usable also with other themes.

Here, the filenames will be lc_openfromcalc.png and sc_openfromcalc.png, which are available …


Thursday
27 August, 2026


face

Berlin, 26. avgust 2026 – TDF (The Document Foundation) danes objavlja izid LibreOffice 26.8, nove osrednje izdaje brezplačnega in odprto-kodnega pisarniškega paketa, ki je takoj na voljo za Windows, macOS in Linux v več kot 120 jezikih. Izdaja je delo 206 sodelavcev, od katerih jih je 155 prostovoljcev.

LibreOffice 26.8 se osredotoča na tri področja: tipografsko kakovost tega, kar s paketom ustvarite, nabor sistemov pisanja, ki jih pravilno obvladuje, in zvestobo, s katero dokumenti preživijo izmenjavo z drugimi pisarniškimi paketi.

Sistemi pisanja


Največ opravljenega dela v LibreOffice 26.8 naslavlja dvosmerno in kompleksno besedilo. Writer zdaj samodejno zazna smer odstavka, ko odprete ali prilepite dokumente ali navadno besedilo. Prelom vrstic postavi presledke konca vrstice glede na smer odstavka in ne glede na sosednje znake. Ročice za spreminjanje velikosti predmetov se pravilno vedejo v dokumentih CJK, ki se pišejo od desne proti levi in navpično. Dvosmerni kontrolni znaki so zdaj vidni poleg drugih oznak za oblikovanje. V programu Calc se z vnosom besedila od desne proti levi v prazno celico samodejno nastavi smer te celice.

Semantika poravnave je bila ustrezno spremenjena: novi dokumenti imajo privzeto poravnavo na začetek in ne levo, spreminjanje smeri odstavka pa ne odraža več eksplicitno levo ali desno poravnanih odstavkov.

Program Math je pridobil poimenovane funkcije in operatorje za pisavi N'Ko in Adlam, ki se uporabljata za mandejske jezike v Zahodni Afriki in za fulanski jezik, skupaj z levo usmerjenimi vektorji in harpunami za formule od desne proti levi. Možnost besedilne mreže CJK je bila preimenovana, da odraža njeno dejansko funkcijo, in sicer omogoča mrežo rokopisa genkō yōshi. Imena pisav, zabeležena v jezikih, ki niso tudi jezik vmesnika, so zdaj razrešena, zato se dokumenti, napisani drugje, prikažejo v pisavah, ki so jih izbrali njihovi avtorji.

Nič od tega opravljenega dela nima tržnega učinka. Prizadeti jeziki predstavljajo majhne trge ali pa sploh nobenega. Vključeno je, ker pisarniški paket, ki služi le jezikom s kupno močjo, ni infrastruktura, temveč izdelek.

Tipografija

Program Writer uvaja sestavljalnik odstavkov, algoritem postavitve, ki uravnava razmik med besedami po celotnem odstavku, namesto da bi optimiziral vsako vrstico posebej. Enovrstični, pohlepni pristop, ki ga uporabljajo urejevalniki besedil, je standarden že od uvedbe tehnologije in ustvarja poravnano besedilo, v katerem se izmenjujejo prenatrpane in redke vrstice, kjer koli se dolge besede približajo prelomu.

Različice tipografij OpenType so zdaj izvorno podprte, kar omogoča rabo spremenljivih pisav, kot so bile zasnovane, vključno z osmi, ki prilagajajo kontrast in razmerje črk velikosti, na katero je besedilo nastavljeno.

Poravnava mreže osnovnic zdaj deluje pravilno za besedilo znotraj okvirjev, mrežo pa je mogoče prikazati med urejanjem z nastavljivo barvo.

Izmenjava dokumentov

LibreOffice Chart zagotavlja osnovno podporo za krožno pot za novejše vrste grafikonov, ki jih Microsoft Office zapisuje v datoteke OOXML: grafikon kvartilov, lijaki, razvrščeni histogram (pareto), sončni izbruh, drevesni grafikon …


Thursday
20 August, 2026


face

General Activities LibreOffice 26.2.5 was announced on July 23 Olivier Hallot (TDF) added help pages for many new Calc functions and for matrix input dialog in Math and improved help for regular expressions Alain Romedenne added help for the Python modules scriptforge, msgbox and officehelper Miklós Vajna (Collabora) fixed an


Saturday
15 August, 2026


face

FBSimCity, the explorable isometric city of Firebird internals, is at v0.9.0 &mdash; and this one adds the thing the project has been circling since it started. The city has always carried the same caveat: it is a model, it parses no SQL, and no Firebird code runs in your browser. The new machine room is the other thing.The machine roomThe machine room runs the actual Firebird engine: version


Friday
14 August, 2026


face

Electric Firebird (mariuz/electric-firebird on GitHub) compiles the Firebird database engine to WebAssembly, following the same approach PGlite took for PostgreSQL. The goal is to let Firebird run both server-side (Node.js) and fully client-side in the browser, with no server round-trip required for queries.Highlights:Two backends: a native Node.js implementation (via the Firebird Embedded Server


Sunday
09 August, 2026


face

Correction (added 9 August 2026): the section below headed &ldquo;A synchronous replica that dies hangs commits&rdquo; is wrong. Dmitry Sibiryakov pointed this out on firebird-general, and the source confirms it. In src/jrd/replication/Publisher.cpp, checkStatus() is called with canThrow = false on the commit path, so it cannot throw; disable_on_error (default true) instead clears the replicating


Tuesday
04 August, 2026


face

Firebird's client library, libfbclient / fbclient.dll, has always been distributed exclusively as a shared library. PR #9104 by Adriano dos Santos Fernandes, merged into the Firebird source tree on July 24, 2026, changes that: it introduces an optional, non-default static archive (libfbclient.a on POSIX, fbclient_static.lib on Windows) for applications that need to link the client library


Friday
31 July, 2026


face

Big news for anyone using Firebird from Node.js: the pure-JavaScript node-firebird driver shipped eight releases in under a week (v2.6.0 &rarr; v2.14.0), completing its entire roadmap and closing all 47 open issues &mdash; some dating back to 2015. The driver now stands at feature parity with the best Node.js drivers for Postgres and MySQL, while staying pure JavaScript with zero native


face

We are excited to announce the release of cl-firebird v1.0.0 &mdash; a pure Common Lisp database driver for Firebird 3.0, 4.0, 5.0, and 6.0+. Featuring full 1:1 feature parity with node-firebird, this release brings 12-factor connection URIs, thread-safe connection pooling, named placeholder parameter binding, custom type parsers (type-cast), streaming cursors, database events (POST_EVENT),


Thursday
30 July, 2026


face

In the past we run several surveys to better understand the use cases for Calc, Impress, Draw, and Writer templates. And since TDF hired a developer for Base it’s time to investigate this module.

We collected a couple of questions that address not only actual users of LibreOffice Base but also people who use other tools or no database at all.

So please participate at https://survey.documentfoundation.org/493555 (expired August/18th).

If you are afraid of the English language either use a translator or let us do it. The more participants we get the better we can steer the development. As usual, we will present the results in this blog.

 


face

FBSimCity &mdash; the explorable isometric city of Firebird internals &mdash; is at v0.4.0, and this release adds a whole backup yard, built around what gbak and nbackup actually do. gbak: the backup that pins your OIT gbak takes a logical backup online: it attaches like any other client and reads every table through a snapshot transaction. That snapshot is the interesting part &mdash; it pins


Tuesday
28 July, 2026


face

I've published FBSimCity, an interactive visualization of Firebird internals: an explorable isometric city where every building is a subsystem from the classic Conceptual Architecture for Firebird paper (Chan &amp; Yashkir), and queries commute through the pipeline as glowing particles &mdash; REMOTE harbor &rarr; Y-valve &rarr; DSQL &rarr; JRD, with the lock manager tower watching over it. The


Wednesday
22 July, 2026


face

LibreOffice 26.8 will be released as final at the end of August, 2026 ( Check the Release Plan ). LibreOffice 26.8 RC1 is the third pre-release since development of version 26.8 started at the beginning of December, 2025. Since the previous release, LibreOffice 26.8 Beta1, 133 commits have been submitted


Wednesday
15 July, 2026


face

General Activities LibreOffice 26.2.4 was announced on June 5 Olivier Hallot (TDF) added a help article for presentation sections, added support for MathML markup in help pages, improved help for Writer’s break submenu and for some Calc functions and updated help after UI changes Adolfo Jayme Barrientos improved strings in


Monday
13 July, 2026


face

We are thrilled to share the journey of our last 7 releases (from v2.3.3 to v2.6.0), which mark one of the most transformative periods in the history of the node-firebird driver. With this series of releases, we’ve migrated the driver to native TypeScript 7, implemented native Promise &amp; async/await APIs, added support for Firebird 5.0 and 6.0 features,


Sunday
12 July, 2026


face

Not bad for a few days of work , There are still lot's of bugs and UI inconsistencies&nbsp;ps: It's a fork of existing extension but using updated node drivers and updated roadmap (Firebird 6 support / Typescript 6.x)pps: I need to recover my MFA Azure Developer account to publish it soon&nbsp;


Friday
10 July, 2026


face

Going Native-Free: Introducing the Pure Node.js Wire Driver for Firebird Published in Engineering • Pull Request #168 Summary If you have ever built Node.js applications that communicate with a Firebird database, you are likely familiar with the standard setup routine. Traditionally, high-level drivers depended heavily on the native client library (


Wednesday
08 July, 2026


face

LibreOffice 26.8 will be released as final at the end of August, 2026 ( Check the Release Plan ). LibreOffice 26.8 Beta1 is the second pre-release since development of version 26.8 started at the beginning of December, 2025. Since the previous release, LibreOffice 26.8 Alpha1, 445 commits have been submitted


face

IBPhoenix is pleased to announce the release of a new free ebook:Practical Firebird Performance Diagnostics: A Structured ApproachUnlike traditional performance tuning guides, this ebook focuses on the reasoning behind successful diagnostics. It introduces a structured framework that helps Firebird professionals move from observed symptoms to defensible explanations by classifying problems,


Friday
12 June, 2026


face

General Activities LibreOffice 25.8.7 was announced on May 12 Olivier Hallot (TDF) improved the explanation for DATE function in Calc’s Function Wizard, continued documenting in help how LibreOffice treats non-integer values for function parameters expecting integer values, added a help page for Draft View in Writer, added help for Calculated


Saturday
06 June, 2026


face

Firebird is gaining support for Unix Domain Sockets (UDS) through PR #9034, a feature aimed at improving local inter-process connectivity, especially in constrained environments like Android and iOS. The change introduces a new unix:// connection string format and a RemoteServiceUnixSocket configuration option, allowing Firebird clients and services to communicate over filesystem-based sockets


Wednesday
13 May, 2026


face

General Activities LibreOffice 26.2.3 was announced on April 30 Olivier Hallot (TDF) updated Writer’s Compatibility options help, improved documentation for wrapped images in headers, worked on documenting in help how LibreOffice treats non-integer values for function parameters expecting integer values, improved help for Declare statement in BASIC, added help for


Friday
08 May, 2026


face

&nbsp;Breaking the Single-Thread Barrier: How Firebird’s New Parallel Sort Changes Everything1. Introduction: The Multi-Core ParadoxThere is a specific economic and technical frustration well-known to database architects: authorizing the purchase of high-end silicon with 64 or 128 cores, only to watch the OS scheduler show a single thread redlining while the rest of the hardware sits idle.


Friday
24 April, 2026


face

Major Update: Help Us Test the New Firebird Docker Images We have been working on a significant overhaul of the official firebird-docker images, and a pre-release version is now available for testing at: Pre-release Container Registry We would love to get feedback from the community before these changes are merged upstream. What’s New Firebird 6


face

FlameRobin 0.9.16 released focuses on: modernizing CI/build tooling fixing compiler/linker issues , improving packaging (Flatpak), and delivering a set of Firebird metadata/DDL extraction and SQL editor correctness improvementshttps://github.com/mariuz/flamerobin/releases/tag/0.9.16


Wednesday
22 April, 2026


face

Git is not only broken by design, it also has some practical shortcomings around git-format-patch and git-am, as it turns out:

$ mkdir repo1
$ ls -a repo1
. ..
$ git init -q repo1
$ ls -a repo1
. .. .git
$ git -C repo1 commit --allow-empty -F ../subject.txt
[master (root-commit) 82b1f4c] Empty test commit
$ git -C repo1 log --oneline --stat
82b1f4c (HEAD -> master) Empty test commit
$ ls -a repo1
. .. .git
$ cat repo1/hello.txt
cat: repo1/hello.txt: No such file or directory
$ git -C repo1 format-patch -k -1 HEAD -o ..
../0001-Empty-test-commit.patch
$ rm -fr repo1
$ mkdir repo2
$ ls -a repo2
. ..
$ git init -q repo2
$ ls -a repo2
. .. .git
$ cat repo2/hello.txt
cat: repo2/hello.txt: No such file or directory
$ git -C repo2 am -k ../0001-Empty-test-commit.patch
Applying: Empty test commit
applying to an empty history
$ git -C repo2 log --oneline --stat
292e19c (HEAD -> master) Empty test commit
hello.txt | 1 +
1 file changed, 1 insertion(+)
$ ls -a repo2
. .. .git hello.txt
$ cat repo2/hello.txt
Hello from the void

Which leaves the question, what’s the content of that subject.txt?

Want to take a guess?

See below.

$ cat subject.txt
Empty test commit
---
hello.txt | 1 +
1 file changed, 1 insertion(+)
diff --git a/hello.txt b/hello.txt
new file mode 100644
index 0000000..479e903
--- /dev/null
+++ b/hello.txt
@@ -0,0 +1 @@
+Hello from the void


Tuesday
21 April, 2026


face

In September 2025, I attended the LibreOffice Conference in Budapest, Hungary, on the 4th and the 5th, and a community meeting on the 3rd. Thanks to The Document Foundation (TDF) for sponsoring my travel and accommodation costs. The conference venue was Faculty of Informatics, Eötvös Loránd University (ELTE).

The conference was planned to be held from the 4th to the 6th, but the program for the 6th of September had to be canceled due to the venue being unavailable because of a marathon in Budapest. So, all the talks got squeezed into just two days, making the schedule a bit hectic.

The TDF had booked my room at the Corvin Hotel. It was a double bedroom with a window. The breakfast was included in the hotel booking. The hotel was walking distance from the conference venue. One could also take a tram from the hotel to reach the venue.

A double bed

A shot of my room. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

Tram

A tram in Budapest. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

3rd of September

On the 3rd of September, we had a community meeting at the above-mentioned venue. I walked with my friend Dione to the venue. Upon reaching there, I noticed that the university had no boundaries and gates. This reminded me of the previous year’s conference venue in Luxembourg, which also had no boundaries or gates.

In contrast, Indian universities and institutes typically have walls and gates serving as boundaries to separate them from the rest of the city. Many of these institutes also have security guards at the entrance, who may ask attendees to present proof of admission before allowing them inside. I was surprised to find that institutes in Europe, like the one where the conference was held, did not have such boundaries.

The building where the conference was held was red, which happened to be the same color as the building for the previous year’s conference venue. I remember joking with Dione that the criteria for the conference venue might have been the color of the building.

A red building

The red building in the picture served as the conference venue. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

During the community meeting, we shared ideas on how to spread the word about LibreOffice. The meeting lasted for a couple of hours.

After the community meeting, we went to the hotel for dinner sponsored by the TDF.

Cake slices

These Esterházy cake bites were really yummy. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

Raspberry Currant cake slices

Raspberry Currant cake slices. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

4th of September

On the first day of the conference, attendees were given swag bags containing a pad, sticky notes, a pen, a conference T-shirt, and a bottle.

A blue colored T-shirt on a bed along with a pen, a bottle, a diary and a sticky note

Conference swag. Photo by Ravi Dwivedi, released under CC-BY-SA 4.0.

The talks started early in the morning with Eliane Domingos, Chairperson of TDF’s Board of Directors, giving the inauguration talk …


Sunday
19 April, 2026


face

I've been looking fairly closely at the coordinate system of VCL. I understood it fairly well, but as I have a Pro subscription of Gemini, I asked it to look at it for me to tell me how it thinks it works. Here is what it came up with:


If you’ve ever worked on a complex UI rendering engine, you know that placing a single pixel on the screen is rarely as simple as draw(x, y). A single coordinate actually exists in several different "realities" simultaneously.

In LibreOffice’s VCL (Visual Components Library), a coordinate has to travel through up to five distinct spatial dimensions to get from the mathematical purity of a document model to the physical LED pixels on your monitor.

If you get an offset wrong or apply a scaling factor out of order, your text disappears off the page, your borders render fuzzy, or your PDF exports break entirely. To fix these issues and modernize the rendering stack, we have to establish a strict, predictable pipeline.

Here is a deep dive into the five coordinate spaces of the LibreOffice VCL, and the math required to traverse them.

The 5 Coordinate Spaces

Think of these spaces as a series of nested Russian dolls. To get to the center (the document), you have to open them one by one.

1. Absolute Logic (Document Space)

This is the pure, mathematical space of the document itself.

  • Units: Defined by the MapMode (e.g., 1/100th of a millimeter for high-precision printing).
  • Origin (0,0): The absolute top-left corner of the page or document canvas.
  • The Variable: Represented simply as nX or nY.

2. Logic Units (Pipeline Space)

This is an intermediate staging area. The coordinate is still in logical document units, but it has been intentionally shifted.

  • The Shift: mnOutOffLogic.
  • Why it exists: This is an artificial shift applied to the document origin. It is frequently used when VCL needs to render a specific sub-section or "tile" of a document without actually changing the underlying coordinates of the objects themselves.

3. View Space (Viewport Space)

Welcome to the realm of pixels—specifically, pixels relative to the viewport (the scrollable area of the application).

  • The Transformation: To get here, we multiply the Logic Units by the DPI and Zoom scale (mfMapScX / mfMapScY).
  • The Shift: mnMapOfsX / mnMapOfsY (The Mapping Offset).
  • Why it exists: The origin (0,0) here is the top-left of your current scroll position. As you scroll down a Writer document, the mapping offset changes, shifting the view without altering the document.

4. Window Space (Client Space)

These are pixels relative to the GUI window frame itself.

  • The Shift: mnOutOffOrigX / mnOutOffOrigY (The VCL Pixel Offset).
  • Why it exists: The origin (0,0) is the top-left corner of the specific LibreOffice window or UI widget you are interacting with. VCL uses this offset internally to account for things like scrollbars, widget borders, or docking areas inside a window. This is the coordinate space where your mouse click events …

Wednesday
15 April, 2026


face

General Activities LibreOffice 25.8.6 and LibreOffice 26.2.2 were announced on March 26 Olivier Hallot (TDF) added a help page for drag & drop features for items in text documents, updated help for Text Grid in Writer and PDF export General page and improved the help for Calc’s advanced filter options

<- Current blog entries