Welcome Dan Williams, new LibreOffice Developer focusing on UI/UX

Photo of Dan Williams

The Document Foundation is the small non-profit entity behind LibreOffice. It oversees the project and community, and is now expanding with new developer roles. So let’s say hello to Dan Williams, who joins the team to work on design and user interface (UI) improvements, with an initial focus on macOS:

Tell us a bit about yourself!

I’m from the USA, have lived on both US coasts at various times, and now live back in the “midwest” where I grew up.

I was previously a software engineer, team lead, and manager at Red Hat for more than 20 years. In that time I’ve worked on a large variety of projects, from local networking to cloud networking to desktop software. I spent two years helping build the One Laptop Per Child software stack which was an eye-opening experience from a UI and design perspective. I believe passionately in free and open-source software; all the code I’ve written so far in my career is open-source.

Oddly enough, I’m not new to the LibreOffice community; I was an OpenOffice contributor and co-founded the NeoOffice port to Mac OS X (now called macOS). That led to being hired by Red Hat to package and improve OpenOffice for Fedora and Red Hat Enterprise Linux, where I helped start the 64-bit port and realize the Native Widget Framework that’s still used in LibreOffice today. I eventually handed my Red Hat OpenOffice duties over to Caolán McNamara (now at Collabora) and moved on to networking. I still recognize quite a few of our community members who I worked with before!

Outside of office software I’m the maintainer of the ModemManager WWAN software stack and I seem to have developed a hobby of collecting LTE and 5G base stations. I enjoy playing with hardware (especially if it runs Linux), baking and cooking, building large structures out of wood, and occasionally brewing beer in my basement.

What’s your new role at TDF, and what will you be working on?

A significant part of my new role will echo my early OpenOffice contributions: Mac! I’ll convert the last bits of Carbon API into modern Cocoa ones. This old code involves some pretty core functionality like popup menus and key modifier detection so it’s going to be tricky but we need to do it. Nobody knows how much longer Apple’s going to support HIToolbox but I’d like to be prepared. I’m also going to improve general Mac usability and experience; I’ve been using LibreOffice on macOS since the beginning so I’m familiar with its rough edges.

LibreOffice screenshot, running on macOPS

But the Mac isn’t the only platform so I’ll be driving user interface improvements and fixing annoying bugs everywhere else too, regardless of platform or visual backend. I also look forward to working with the LibreOffice Design community to try out new ideas and see what sticks.

I enjoy the challenge of working throughout the entire codebase, from the depths of VCL/SAL up to the UI logic and layout in the applications at the top. I’m also a big believer in automated testing and continuous integration (CI) and I hope to improve our reliability and reduce regressions. It’s often a pain to write tests for a small bug fix or any other change, but I think they’re necessary for a healthy project.

How can all users of LibreOffice help out?

What are the most annoying interface and interaction bugs, for the Mac or otherwise? Make sure they’re in Bugzilla! I need help prioritizing issues – so here’s your chance to get your favorite bug looked at.

If you’re interested in LibreOffice’s user interface and visual identity, join the Design team.

Do you have Cocoa experience on the Mac and a bit of extra time? Help me out with bugs! I’d be happy to get you started.

LibreOffice and Google Summer of Code 2025: The results

Google Summer of Code logo

This year, LibreOffice was once again a mentoring organization in the Google Summer of Code (GSoC), a global program focused on bringing more developers into free and open source software development. Seven projects were finished successfully. Contributors and mentors enjoyed the time, and here we present some of the achievements, which should make their way into LibreOffice 26.2 in early February 2026!

You can experiment with the new features by using daily builds and report any problems in our bug tracker.


Import Markdown files into LibreOffice Writer by Ujjawal Kumar Chouhan

Mentors: Thorsten Behrens (Collabora), Ilmari Lauhakangas (TDF)

Requests to add support for the simple text formatting language known as Markdown to LibreOffice have been more and more frequent. These days Markdown is often encountered in forum posts, chat messages and readme files. In fact, the content of the website of The Document Foundation is written in Markdown.

Thanks to this project, LibreOffice now supports importing Markdown files and pasting Markdown content into Writer as well as pasting Markdown tables into Calc. The supported dialect is CommonMark with GitHub-style table syntax and the library used is MD4C.

Additionally, Collabora developers added support for exporting to Markdown from Writer.

Learn more about Markdown import in the final report.


New Dialog To Edit Table Styles by Karthik Godha

Mentors: Heiko Tietze (TDF), Rafael Lima

LibreOffice does not yet support proper styles for tables, but has a system for applying direct formatting to them. Before Karthik’s work, it was only possible to add new formatting templates, while now existing ones can be edited as well. At the time of writing this, the feature has not yet been merged into the code base, but hopefully it will appear in the next weeks.

Learn more about the table styles project in the final report.


Python code auto-completion by Manish Bera

Mentors: Xisco Faulí, Hossein Nourikhah (TDF)

Power users are sure to love the improvements brought to Python support by this project. Now Python IDEs are able to provide auto-completion for LibreOffice UNO API methods and properties, flag type errors and display information about parameters and types.

Learn more about the Python auto-completion project in the final report.


BASIC IDE code auto-completion by Devansh Varshney

Mentors: Jonathan Clark, Hossein Nourikhah (TDF), Rafael Lima

BASIC macro developers are not forgotten: this project implemented an object browser, allowing the macro author to see all the available and used methods and properties, including the whole UNO API. A helpful view for details is shown, reducing the need to dig through the API documentation. After this foundational achievement, the next goal is to add context-aware auto-completion to the BASIC IDE editor.

Learn more about the BASIC auto-completion project in the final report.


Rust UNO Language Binding by Mohamed Ali Mohamed

Mentor: Stephan Bergmann (Collabora)

Rust is a popular type safe programming language, which can now be used to write LibreOffice extensions or do any kind of scripting and processing via the UNO API.

Learn more about the Rust binding in the final report.


Implement report builder in C++ by Adam Seskunas

Mentors: Michael Weghorn, Hossein Nourikhah (TDF)

The Report Builder produces Writer documents from Base files. While it might not be the most popular feature in LibreOffice, there have been increasing concerns about the maintainability of the current Java-based tool. The first group of people to celebrate Adam’s reimplementation will surely be Linux package maintainers, who had even started omitting the feature entirely. At the time of writing this, the feature has not yet been merged into the code base.

Learn more about the C++ Report Builder in the final report.


Rework Impress slideshow to use DrawingLayer primitives by Shardul Vikram Singh

Mentors: Thorsten Behrens, Sarper Akdemir (Collabora)

This is important modernising work happening under the hood of Impress. The project mostly completed the rework on Linux, laying a foundation for rendering modernisation on other platforms. The code itself lives in a separate feature branch for now and will not be merged for LibreOffice 26.2.

Learn more about the slideshow rework in the final report.

Wrapping up

Many thanks to all contributors who spent their summer time improving LibreOffice. You are awesome! And special thanks also to the mentors who always put so much love and energy into these tasks. That’s what makes LibreOffice rock.

Now we are looking forward to next year’s GSoC. If you are interested, why not prepare early? Learn more at out wiki page where some ideas are listed.

Participating in GSoC is a great way to build your skills, and show future employers what you’re capable of!

Projects selected for LibreOffice in the Google Summer of Code 2025

The LibreOffice Google Summer of Code projects have been selected for 2025.

  • Adam Seskunas – Implement Report Builder in C++: replacing the current Java-based Report Builder with a new solution will improve maintainability and remove one of the last remaining dependencies on Java.
  • Karthik Godha – New dialog to edit Table Styles: Writer and Calc have a feature called AutoFormat styles with the possibility to add custom styles. This project will make it possible to edit existing table styles.
  • Devansh Varshney – BASIC IDE code auto-completion: rudimentary auto-completion for BASIC macro authors is already available, but this project will make the feature much more helpful.
  • Manish Bera – Python code auto-completion: currently there is no support at all for Python auto-completion when developing scripts for LibreOffice, so this will be quite a welcome addition.
  • Mohamed Ali Mohamed – Rust UNO language binding: last year LibreOffice received support for Lua and the latest .NET and now it’s time to make it possible to use the API with Rust.
  • Ujjawal Kumar – Import Markdown files into Writer: Markdown is a rather popular markup language for quickly formatting text in blog content, comments, chats and more. Requests to support it have increased recently, so it makes sense to tackle it.
  • Shardul Vikram Singh – Rework Impress slideshow to use DrawingLayer primitives: this is one of those projects that are incomprehensible to most users, but really important for the long term maintenance of the code.

Good luck to the contributors – we appreciate their work on these important features and improvements! And thanks to our mentors for assisting them: Thorsten Behrens, Stephan Bergmann and Sarper Akdemir (allotropia); Rafael Lima; Jonathan Clark, Heiko Tietze, Xisco Faulí, Michael Weghorn and Hossein Nourikhah (TDF).

Between August 25 and September 1, contributors will submit their code, project summaries, and final evaluations of their mentors. Find out more about the timeline here, and check out more details about the projects on this page.

LibreOffice is in the Google Summer of Code 2025!

GSoC logo

Everyone loves having shiny new features in LibreOffice. But how do we get them? Many are developed by volunteers and people in the ecosystem.

But another great source of new features is the Google Summer of Code (GSoC), a global, online program focused on bringing new contributors into open source software development. GSoC Contributors work with open source organisations on a 12+ week programming project under the guidance of mentors.

And we’re happy to announce that for 2025’s GSoC, LibreOffice is once again taking part!

Find out more here

LibreOffice QA Team: Fixing a bug in three days

LibreOffice QA Team on Matrix-style code background

LibreOffice is used by 200 million people around the world. Every major release goes through extensive testing, with Alpha, Beta and Release Candidate versions – and there are regular monthly minor updates to fix issues too. The QA Team analyses bug reports from users, and here’s an example of how quickly they work when everything goes to plan:

  • 2025-01-21 21:14:02 UTC: Bug report submitted.
  • 2025-01-23 18:16:53 UTC: raal from the QA Team looks at the bug report and rules out Linux.
  • 2025-01-25 06:05:46 UTC: Saburo confirms that the error occurs on Windows. And – which is extremely helpful – finds the commit that has caused the error.
  • 2025-01-25 08:08:16 UTC: raal informs the affected developer.
  • 2025-01-25 09:54:38 UTC: Mike Kaganski provides a bug fix.
  • 2025-01-25 11:35:15 UTC: After the bug fix has been successfully built and tested on all supported operating systems, it is included in the next daily build of LibreOffice.

Learn more about the QA Team, and give them a hand to gain experience in the world of QA

localwriter: An optional LibreOffice Writer extension for local generative AI

localwriter screenshot

LibreOffice is a privacy-oriented office suite that runs on your own computer and doesn’t include AI features out-of-the-box. But we know that many users are interested in combining AI tools with the suite, so we talked to John Balis who is working on a (fully optional!) LibreOffice extension called localwriter. Here’s what he had to say…

What does the extension do?

Localwriter is a libreoffice writer extension to allow for inline generative editing with local inference. It can be used with any language model supported by Ollama or text-generation-webui. This extension adds two powerful commands to LibreOffice Writer:

  • Extend Selection – Uses a language model to predict what comes after the selected text. There are a lot of ways to use this. Some example use cases for this include, writing a story or an email given a particular prompt, adding additional possible items to a grocery list, or summarizing the selected text.
  • Edit Selection – A dialog box appears to prompt the user for instructions about how to edit the selected text, then the selected text is replaced by the edited text. Some examples for use cases for this include changing the tone of an email, translating text to a different language, and semantically editing a scene in a story.

When did you start working on it?

I started working on localwriter in July 2024, because I wanted an AI tool to assist with my writing that would benefit from the intrinsic advantages in terms of availability (can’t lose access), confidentiality (doesn’t leak data), and integrity (no surprise model version changes) that come with using a fully open source local AI stack instead of a third-party API. I feel it is really important to embrace learning to benefit from artificial intelligence without sacrificing agency, and this software follows from that line of thinking.

What are the current limitations, and what’s coming next?

localwriter currently only supports LibreOffice Writer, although Calc support is in development and will be offered in the next release. Another limitation is that it does not support streaming, and does not offer a “Chat with document” feature.

How can others help to improve it?

There are a ton of open feature requests in the repository from several users, which should be really easy for an experienced LibreOffice extension developer to complete. I can easily set up anyone interested with a task to work on. Tests would be welcome, as currently it doesn’t have any tests. Also, donating to me helps me allocate my own time towards development.

Get the extension here