Submind YouTube summaries
Thumbnail for LibreOffice Conference 2026: User Interface Evolution for Apple Devices

LibreOffice Conference 2026: User Interface Evolution for Apple Devices

Watch on YouTube

Video summary

The video provides a comprehensive historical overview of LibreOffice's journey on macOS, tracing its evolution from early experimental ports in the pre-Mac OS X era to the current state of the application. Initially, developers relied on the X11 version for Linux to quickly get a functional product running, which resulted in an interface that looked nothing like Apple's native Aqua design. Over the years, significant efforts were made to integrate with the operating system through the Native Widget Framework and later the Aqua VCL plugin, allowing LibreOffice to use Carbon and Cocoa APIs for better visual integration. However, despite these improvements, the application has largely relied on an aging codebase that still incorporates legacy technologies like Carbon and old event loops, leading to a user interface that feels somewhat dated compared to modern macOS applications. Current challenges facing the project stem from this technical debt, where maintaining compatibility with yearly macOS updates requires constant pixel-perfect adjustments for features like Dark Mode and Liquid Glass effects. The existing architecture is described as fragile, with issues such as deadlocks when dragging windows and inconsistent key bindings that do not match standard Mac OS behavior. Furthermore, the application often lags behind in adopting new system features, creating a gap between what users expect from a native app and what they actually receive. While the look and feel are generally acceptable, the underlying mechanics are inefficient, requiring developers to manually bridge gaps between macOS events and LibreOffice's internal systems, which hinders performance and stability. Looking toward the future, the presenter explores several potential paths for improvement, weighing the pros and cons of adopting the Qt framework versus continuing with the current native approach. While switching to Qt could simplify event handling and reduce code duplication, it might not fully solve feature lag issues as Qt updates do not always align immediately with Apple's releases. Another promising avenue is integrating Apple's on-device AI writing tools and other system-level features like Continuity Sketch and Siri Intents, which would enhance the user experience without forcing artificial intelligence onto users. These integrations could be implemented as optional extensions, allowing users to leverage powerful system capabilities while maintaining control over their workflow. Ultimately, the conclusion emphasizes that meaningful progress on the macOS platform requires community involvement rather than relying on a single developer. The presenter invites contributors to help address specific pain points such as improving key bindings, removing legacy Carbon code, and implementing new Apple features, offering mentorship and code reviews in return. While developing a fully native mobile experience for iOS and iPadOS is acknowledged as a massive undertaking requiring a completely different UI paradigm, smaller enhancements to the desktop version can be achieved relatively quickly with collective effort. The goal is to move away from maintaining outdated infrastructure and focus on delivering a smoother, more integrated experience that respects user choice while embracing the latest capabilities of Apple platforms.
Read the full video transcript
[music] Hi everyone, welcome. My name is Dan Williams and I'm a a document foundation engineer uh recently hired to work on user interface and Mac development. Today I will take you on a quick tour through the history of the Mac port uh and the evolution of Libra Office on the Mac and then I'll cover the current state of the Mac port and what we can do going forward to give Apple users a better experience on uh Apple platforms with lever office. So let's begin. So this is uh long a timeline of long long ago in the very beginning. Um you'll see here basically in prehistory openoff.org was first open sourced in 2000. Uh and then in between there and the actual release of Mac OS 10 there was a lot of interest uh in the new Mac OS at that point before it was even released. Uh so we had Patrick Lubie and Babach from Sun were working on a native uh Mac OS 10 port at that time. uh they were doing things like uh event loop integration, doing some basic graphics work. Uh that kind of stuff. It was uh Mac OS 10 itself was pretty rough at that point. Uh the public beta was somewhere in here. Uh and that was very rough. Uh and so I don't envy the work that Patrick and Babach and others uh at Sun at that point had to do to get things working to any particular point. This work was never completed. So uh you know quite difficult. There wasn't a lot that they could realistically do at that point. So Mac OS 10 1.0 is released uh in mid 2001. And then finally um you know about a year later or so we have Open Office 1.0 the final release. Uh and then a little bit after that we have the first beginnings of an actual Mac port of openoff.org or that works and that was based on the uh x11 version uh for Linux but essentially and Unix I guess because at that point somebody correct me if I'm wrong but uh open office also ran on Solaris um and the Macport used the X11 code and that was basically a way to make things work more quickly on the Mac because we could use all the existing code uh and we did not have to do a whole bunch of custom code for Mac OS 10 itself. So, what did that look like? Well, this is a a screenshot that I found um of what it it did look like. It used the normal uh Star Office and Open Office controls. Uh those were obviously did not look anything like the Aqua user interface that the Mac had, but you know, at least the Windows were native. There was some other uh small integrations there that got put together. Uh but everything was basically exactly as you'd see it uh on Linux or even on Windows. It was never going to be easy to use. It was never going to integrate well with the rest of Mac OS and it was basically a dead end, but it was a way to get there very quickly. So then next what happened uh in the UI side of things was around 2004 the native widget framework came out. Uh I had a hand in developing some of that when I was working at Red Hat early on as an open office developer. And what the native widget framework was supposed to do was also kind of be an easy way to get towards native looking controls even if it didn't feel uh particularly like the native OS. But it got a good good way there. Basically, we recognize that all platforms have some way of drawing what a control looks like. And so if you add a layer to kind of abstract that out and define there's, you know, a button control, there's a an a combo box control, there's an edit box control that has a couple of different parts in there. you can tell each platform to draw those pieces uh of the user interface and then copy those into uh the open office windows. And you can see here this I think is a a KDE version perhaps. Um but you know you can see that the controls here look much different than the previous ones that were the the default uh Open Office theme. So that debuted with Open Office 2.0 0 and I think the first users of that were GTK and KDE. There was a lot of interest around that. I had some early screenshots long ago on my people.redrered.com site, but when I left Red Hat, that got deleted and I forgot to back it up. So, that is lost to history. Next, we finally get a Mac OS 10 native port. um somewhere around 2007, work restarted on the Aqua VCL plugin, and that's the the native plugin that we still use today essentially for the Mac OS 10 port. Uh the first native release was Open Office 3.0 and that used native widget framework. It used a mix of Coco and Carbon. It used the Apple type services for Unicode, that's the ATSU, uh, for font detection and font metrics and those kinds of things. And, you know, it doesn't look so bad. It obviously doesn't look like a native application, but it gets a lot closer than what we had before. Um, and that was a lot of hard work uh from a lot of people. Um, but I think it it helped increase the perception of Open Office with Mac users. So then we jump forward a number of years and Quaon starts doing dialogue welding. The problem that we had uh or the problem the project had at this point was and at this point it's Libra office no longer open office was that a lot of the controls in the user interface was essentially handcoded or you know pixel positioned in the code. there was no good way to lay out the user interface more easily. Use graphical tools to do that. So, the welding project uh decided to use graphical tools like Glade, which is a fairly well-known GTK graphical interface designer, uh, and be able to lay those files out, write those details to an XML file, and then Libra Office loads in the XML file and is able to create those widgets that the XML file specifies. It's a lot easier for people to change the look uh of Libra Office and add new user interface elements because you can do it graphically instead of all over the code. It's closer to native widgets than before. And inside the code, there are actually native widgets created and placed in a widget hierarchy for the different uh toolkits. But when it comes to the Mac, uh the Mac doesn't actually use any of that. The way that it works on the Mac right now is that it still goes through the normal uh Libra Office uh control setup and then draws native widgets in place of uh where the rest of the uh cute VCL plugin and GTK etc actually draw their own native controls. So it could be useful. It is useful in some cases but the Mac doesn't really take advantage of it. So where are we now? We've kind of reached a point with diminishing returns uh on the native widget framework. We've gotten as far as we can kind of go with that. Uh and for the past 10 years or so, the focus has been on keeping up with changes that Apple makes in the operating systems every year, fixing bugs and uh better integration with standard Mac features. But the user interface on the Mac side itself hasn't really had any significant advances since uh almost 2008 um when the native widget framework finally debuted for the Mac port. So we'll dive a little deeper into that. What the native widget framework for Mac does um is that it literally takes there's there's one control, one operating system or API object. There's one for a button, there's one for a combo box, and those are kind of offscreen somewhere. Um long ago they were literally offscreen. Uh but these days are just in memory. And every time that Libra Office wants to draw any of the controls, the code will take that one, resize it, set all the attributes on it. Is it disabled? Is it selected? Does it have a focus rectangle? Uh what's the background color? It'll change that one control, take a picture of that, and copy it on the screen. And so you know essentially there's a kind of box over here somewhere that you don't see and we just draw it copy it and then the next one change all the the uh properties draw it copy it and that's how the entire interface is drawn. It works you know but it's not not great. There's also a lot of old APIs. There's still a few bits of carbon. Carbon is the old framework that took a lot of the classic Mac OS APIs from the 90s and moved those into OS 10 and updated a lot of the compatibility issues that it had. Uh so it's kind of a subset of the old classic Mac OS APIs ported to OS 10. There are still two pieces of Carbon in Libra Office's Mac plugin right now. Um, and those pieces are uh there's some stuff for pop-up menus and then frames. Um, probably won't be super hard to remove those. Uh, but you also don't need to because Carbon exists and it works. Uh, but it's almost 30 years old. Carbon and Apple of all companies, you would expect to kill backwards compatibility. They haven't done it yet. I expect they'll probably start getting rid of carbon fairly soon. So, we probably want to change that. Uh the also the Apple remote code depends on these old frameworks as well. And that's for things like uh capturing global uh keystrokes or mouse um buttons, mouse events. Uh and that's one thing that we need to either drop completely because I don't know how many people have those old Apple remotes anymore. Um, but that's the third place that still uses some of the old APIs. There's also a pretty creaky event loop right now. One of the problems is that um bridging between Mac OS's events and the internal Libra Office uh event loop can be uh a little problematic. There are sometimes re-entry issues. We recently had a bug where just dragging the window around then Mac OS would try to snap the window to full size that triggered a deadlock inside Libra Office that was somewhat difficult to solve. Uh that particular area of the code is not great. So it is very fragile due to some of those uh those state mappings that we have to do between the Mac OS side uh and the internal Libra Office side. Then we also have to deal with every year Apple comes out with a new operating system version and every year they change some things. These are some of the older uh versions from you know like late 20s uh 2000s and mid2010s. It's kind of a progression of uh what kinds of changes there are. You know this the change from here to here. Maybe the metrics didn't change that much, but uh you know, I mean, from here to here to here, these bars are a lot different. And so sometimes we need to tweak things on a per pixel basis to account for that. Another issue was liquid glass recently. Uh I know Patrick had to do some like this gets two more pixels when we draw it and this gets a few less pixels when we draw it. Um it's not that's one of the things that has to happen every single year that takes a little energy away. There's also dark mode. Um you know I know that Libra Office has issues with uh operating system themes and dark mode light mode on a number of different platforms. Mac OS is no different. That was introduced with Mojave and that causes uh problems uh throughout the codebase. So, what kinds of issues do we see just in general today? Uh, first, the look and feel is not exactly where we want it to be. You know, it's not bad, but we've been living with it for a long time, and it um could work better. Uh, also, every year when Apple does the operating system refreshes, they come out with new features. Libra Office tends to lag those features fairly significantly. Uh, I'll talk about some of those a little bit later, ones that I think might be useful for Libra Office users and uh, ones that probably wouldn't be too bad to to implement. U, but, you know, there's only a few people who are working on that area of the code. Uh, and so any help would be appreciated on those. Uh, there's also, like I talked about the event loop, there's bugs in odd places due to some of the translation layers. Uh, and one other thing that has come up a lot recently is some of the key bindings aren't quite consistent with what Mac OS does. So, Libra Office has default key bindings for moving the cursor around without using the mouse for, you know, in one case. Uh, but those aren't quite the same as what every other uh application on Mac OS uses. So, with all that, what comes next? Well, let's find out. One option uh that I've been exploring recently is to use the well-known cute uh platform or excuse me cute crossplatform framework. Uh there is already an existing plugin for Linux and that also because cute is crossplatform it works on Windows it works on Linux it works on Mac it works on mobile devices as well iOS and probably Android I don't know for sure Android. Yes. Uh what happens if we try to clean that up and use that for the Mac? Well, one of the things that would be a pretty big benefit there is that a lot of those issues and some of those gaps, especially around event handling and some of the graphical stuff, they kind of go away because the framework handles that for us and we don't have to write specific code in Libra Office to deal with that. It also gets rid of a lot of code uh in other places that we can just let cute handle. Um and if the visual results of that is similar to what we already have, it seems like maybe that would be a win from the uh developer time perspective. If we can spend time focusing on things that uh are more important for Mac users or give you Mac users a better experience as opposed to some of that creaky old stuff down in the guts, but we can also do Mac specific things still alongside Cube. What are some of the issues with that? Well, we'd need to do some upstream work uh in the Cube project itself. One thing that I was looking at recently was pop-up menus. Those are still not native pop-up menus the same way we currently have with the Mac port. Um, so we'd probably need to enhance cute itself. Uh, and it's still not using real native widgets. The cute plugin does use welding that we talked about earlier, so we might get a little bit further there. Um but also uh they're still not quite what we could do ourselves internally. And also uh using cute does not solve a lot of those feature lag problems that I talked about earlier because they don't always update cute for these things immediately when Apple does either. But that's not a net loss for us because we haven't been doing that in the Libra Office project ourselves. This is one uh this is kind of the current state of what the cute VCL plugin looks like. On this side is the cute one. On this side is the current uh Libra Office Mac native aqua version. You know, you can tell there's some places that we need to fix some things up and the spacing isn't quite what uh what we want. I'm working on that. Others are working on that, too. Uh but it doesn't look that different. So perhaps if we can get to the point where they look similar enough, great. Maybe that's a path forward. Otherwise, we could do dialog welding with Aqua. It gets us closer to a fully native look, but it is also a huge chunk of work because we need to develop all of that. We need to um essentially duplicate a lot of the logic that the cute plugin already does uh to do the welding. and it still uses native widget framework for some parts anyway. So, it's a net addition of a huge chunk of code to the Mac side and the Aqua side um and a maintenance burden. So, I I'm still on the fence. I'd like to try it. I don't know if I'll have time to try it, but honestly, I think it's probably not the right direction. Another thing we can look at is mobile platforms. Calabra released a downstream app for iPhones a number of years ago. U but we're also talking as uh the upstream Libra Office project. What would it look like for first party or upstream mobile apps uh on uh app stores for we already have an Android one I believe but that's just a viewer. Is that correct? >> Impress viewer. >> Impress viewer. So, what would it look like if for Android and iOS, iPad, whatever, iPhone Duo if you happen to have one? Uh, what would it look like to have a a much more functional application on mobile platforms? That's also a huge chunk of work. And it's obviously going to need a completely different user interface because first off, you're touching it. Uh, you're not using a mouse. And so, our UI elements need to be bigger. They need to be more simplified. Uh but I think it would be pretty awesome to have a lot more of the functionality on iPhone or iPad uh as we already have uh on the desktop. But kind of a little more down to earth, what kinds of things could we do on the Mac side that people can actually use in a relatively recent or relatively short time frame? Well, there's a number. First off, let's talk about AI. Libra Office, I guess, takes a somewhat cautious approach to AI. It does not try to force AI on you, and it is all up to choice. You can decide to use uh AI through extensions and plugins if you want. Um, but you know, there's no little AI assistant down in the corner trying to make you use AI all the time. How does that apply to Apple platforms? Well, something Apple released a number of years ago are AI writing or Apple writing tools and that is a mostly ondevice framework that is throughout the entire OS and you can select port or parts of text and have the writing tools change that text for you, proofread that text. Um, I've seen a number of users asking for this. Uh, and it turns out that it's probably not too hard to do, but it does require a number of hooks into the Libra Office text engine that do not yet exist for any platform. Uh so maybe we could do those and make that kind of thing available uh to other platforms because what Apple writing tools do is they try to reach into your document and when you tell it to change something they process that and then they want to update the text in your document. So that's not too bad. And these are some examples of this is the the talk description uh that I have and that's what it looks like when it's processed through some of the Apple writing tools. You can decide whether the Apple writing tools are are better than I am or not. Uh there's also image playgrounds and that's uh you can type and change uh tell the system what kind of image you want to create. uh you can have it go out to chat GPT. This is also kind of a fairly encapsulated code and a bolt-on. So you can see here you can just kind of pick some themes and describe something and then you get a picture out of it. You know, it's OSwide. Why not support it if it's not that much? There's also continuity sketch. This one I think could be pretty interesting and it also is a fairly easy bolt-on. um you draw on your phone or an iPad with your finger or a stylus and then you can add that sketch into your Office document. Um it's pretty easy to the the flow is pretty easy on the Mac and I think that would be a pretty good uh thing to support. There's some miscellaneous things. There's Siri intents which is a new thing from I think a year or two ago. Um, and that's where you can have uh you can declare operations that your application can do and then when the user asks Siri to do something on the Mac, uh Siri can figure out how to control the application uh and reach in and do things to your document or do things to your text. There's also we could use system spell and grammar checking. That's a choice Calabra made with their uh iPhone app to use the system spell checker instead of the integrated Libra Office one. Maybe that's an option. Um and then also there another interesting one would be the spotlight importer. Uh if you have Libra Office documents, I don't think these days you can search them with spotlight. Um also if you load them onto your phone, you can't really see a preview of those documents or what's inside. Um you know, so these are some kind of smaller things that I think would be uh pretty useful for Mac users. But I'm only one person despite what you've heard. I'm not a coding god. So, it takes a community. And if anybody wants to help out on any of these things, I'm very willing to mentor or do code reviews, that kind of stuff. And I would be interested in working on some of these, but it would be great to have some help as well. And if you have any other ideas, please send them along. Thank you. I think we've got maybe a minute or two for questions. I have a question. >> It's interesting you mentioned the Apple supplied AI tools which um if we make them available on to users, we may have to do it in a way that they are aware that they are on device or I don't want to be in a position where we're simultaneously marketing Libra Office as having no built-in AI. Then they install it on Mac OS. Then they right click on the text and it says rewrite it and they'll say what the hell where did that come from? So I reticent to put more and more and more options in but maybe some kind of first start. Do you want to use Apple's built-in >> AI and that's something that we have to specifically enable and so we could gate that you know in front of a some kind of notification. >> Yeah. Yeah. For sure. One last question. >> What drives what sort of feedback hang on what sort of bugs or feedback do you get from the Mac OS user using Libra Office or what prevent them from is it related to the u Mac OS UI as you described or is it related to I would say conversion from office to lial office? I would say most of the feedback that I see and maybe Haiko can chip or chime in there too. Most of the feedback I see is not really about the user interface. It looks okay for most of the users, but it's often about how it works. You know, in a very uh micro basis, you know, the key, like I said, the key bindings aren't quite what they should be. Um, you know, [snorts] other Mac specific bugs. Um, but that might just be because I'm only looking at the bug reports and it's not what general community discussion is. Haiko, do you have any quick thoughts on that? >> Well, I think the UI works pretty nicely well and I don't recall any specific issue about UI. There might be a few, but it's nothing that is of major concern to user. But general we have a lot to do and we introduce issues