We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

FOSDEM 2022 - Welcome to Libadwaita

00:00

Formal Metadata

Title
FOSDEM 2022 - Welcome to Libadwaita
Title of Series
Number of Parts
287
Author
Contributors
License
CC Attribution 2.0 Belgium:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor.
Identifiers
Publisher
Release Date
Language

Content Metadata

Subject Area
Genre
Abstract
GTK4 is finally ready for production, and with it comes Libadwaita, the next generation of the GNOME app development platform. This new library builds on what Libhandy did for GTK3 but takes it even further, streamlining many of the most common things app developers need to build great apps for GNOME, across both desktop and mobile. This includes standardized patterns and widgets for basic layout elements like lists and cards, adaptive navigation, touch/touchpad gestures, easier ways of using color in apps, and much more. This talk will give a quick overview of the current capabilities of the platform, and show how app developers are making use of it to build apps that work well on computers of all shapes and sizes.
Adaptive behaviorMoment (mathematics)Library (computing)Mobile appPattern languageMobile WebComputing platformTerm (mathematics)ECosMereologySoftware developerSoftware design patternPlotterPhysical systemOrder (biology)Form factor (electronics)NumberDampingCuboidResultant19 (number)Multiplication signElectronic mailing listSoftwareBuildingGUI widgetComputer hardwareDiagramProgram flowchart
EmulationPattern languageLibrary (computing)QuicksortMobile appCohesion (computer science)Program flowchart
Electric generatorQuicksortLibrary (computing)Reading (process)Mobile appSoftware developerImplementationCore dumpPattern languageComputing platformInheritance (object-oriented programming)Program flowchartXML
MultilaterationMobile appExtension (kinesiology)Computing platformMultiplication signBitSingle-precision floating-point formatQuicksortComputer animation
GimpWordMatrix (mathematics)Information managementElement (mathematics)Graphical user interfaceFacebookQuicksortAcoustic shadowElectronic mailing listPlastikkarteTouch typingMeasurementVideo gameGUI widgetGradientStandard deviationConnected spaceWindowSpacetimeBitDegree (graph theory)Computer animationProgram flowchart
Mobile appMultiplication signComputing platformSoftware developerDigital photographyPhysical systemCartesian coordinate systemMereologyHypermediaSoftware testingRevision controlAsynchronous Transfer ModeVideoconferencingContrast (vision)QuicksortGUI widgetInheritance (object-oriented programming)Medical imagingUltraviolet photoelectron spectroscopyAbsolute valueComputer animation
Data typeMobile appTesselationRevision controlRow (database)QuicksortReal numberRight angleDifferent (Kate Ryan album)Category of beingNP-hardBitGraph coloring
Core dumpLevel (video gaming)NumberReal-time operating systemGUI widgetMobile appCASE <Informatik>Multiplication signProgram flowchartComputer animation
Multiplication signAsynchronous Transfer ModeLevel (video gaming)Graph coloringWindowSoftware developerNumberComputer configurationCodeMassShooting methodComputer animation
Computer iconPasswordGamma functionCurve fittingGame theoryUniform resource nameMIDIOpen setOrder (biology)Graph coloringUniform resource locatorComputer fontGroup actionReal numberVideo gameText editorMobile appSoftware developerPhysical systemGradientDifferent (Kate Ryan album)Level (video gaming)AdditionSet (mathematics)Multiplication signBitStandard deviationComputer iconSoftware design patternGraph coloringStudent's t-testInheritance (object-oriented programming)Symbol tableSpherical capNumbering schemeGreedy algorithmGUI widgetShooting methodRight angleConstructor (object-oriented programming)CodeGreen's functionFocus (optics)Source code
GUI widgetRegular graphGUI widgetDemo (music)Arithmetic progressionMereologySocial classSpring (hydrology)EmailSelectivity (electronic)Heegaard splittingRobotPlastikkarteSoftware developerMobile appAsynchronous Transfer ModeTheory of everythingError messageCuboidRandomizationCASE <Informatik>Library (computing)Computer animation
Data typeLink (knot theory)Mobile appLibrary (computing)Row (database)WritingArithmetic meanCore dump1 (number)Point (geometry)AreaText editorVideo gameDemo (music)Standard deviationComputer animation
Computer iconComputer iconContrast (vision)Term (mathematics)Heegaard splittingFeedbackGUI widgetDemo (music)QuicksortArithmetic meanLibrary (computing)MereologyData recoveryRule of inferenceGreen's functionFamilyComputer animation
Gamma functionMenu (computing)Selectivity (electronic)AreaNormal (geometry)Computer fileFile archiverTwitterVideoconferencingMobile WebStrategy gameWeightTransformation (genetics)Absolute valueWebsiteHypermediaArithmetic progressionAdditionCircleMedical imagingProcess (computing)Right angleClient (computing)Multiplication signCodeShared memorySoftware developerWallpaper groupElectric generatorMobile appMetadataQuicksortQR codeComputer animation
Type theoryMobile appOrder (biology)QuicksortStrategy gameLatent heatSoftware developerMeasurementScaling (geometry)Point (geometry)DivisorComputer animation
MereologyBitForm (programming)Arithmetic progressionQuicksortComputing platformMobile appPoint (geometry)AreaProgram flowchart
BitMatrix (mathematics)Point (geometry)Goodness of fitLink (knot theory)Multiplication signArithmetic meanInheritance (object-oriented programming)Greatest elementSoftware developerTouch typingComputing platformSlide ruleGUI widgetComputer animation
GUI widgetGoodness of fitTerm (mathematics)Core dumpPerspective (visual)Set (mathematics)PlanningCASE <Informatik>Expert system1 (number)Object (grammar)QuicksortImplementationMobile appPartial derivative2 (number)Keyboard shortcutOnline chatElectronic mailing listComputing platformTouch typingProper mapProjective planeStack (abstract data type)Complex (psychology)Pattern languageMultiplication signProgramming languageSoftware developerSoftware design patternPoint (geometry)Phase transitionCartesian coordinate systemFocus (optics)WhiteboardCross-platformOrder (biology)CircleBuildingEndliche ModelltheorieNormal (geometry)Extension (kinesiology)Open sourceRepetitionDataflowProcess (computing)Sound effectVideo gameLibrary (computing)Category of beingOptical disc driveKey (cryptography)Graph coloringVideoconferencingACIDUsabilityArithmetic meanWebsitePhysical lawGroup actionIntelIdeal (ethics)ArmSuite (music)40 (number)QuarkLogic gateMoment (mathematics)Computer animation
Computer animation
Transcript: English(auto-generated)
Hi everyone, I'm Tobias, I'm on the GNOME design team, and I work for Pureism on the Libre5 team. And I've been doing that since basically the beginning of this whole GNOME mobile initiative, like, I guess, yeah, like early 2018.
And today I'm here to talk to you about Libet YDA, which is the future of our development platform. And yeah, that's very exciting. So one of the trickiest problems that we have to figure out, like as a essentially new platform, is that there aren't like a lot of devices out there yet.
And so there isn't like a huge developer base of people with new Linux phones today who can already start like bootstrapping the software ecosystem. So the question is like, how can you solve that, right? Like, how can we get the software ecosystem going
before the hardware is there, which will make the hardware interesting for people to get, also, I guess, in another sense. And our approach to this is something we call adaptiveness. The idea there is that while there aren't that many people who have new Linux phones at the moment, there are quite a few who have new Linux desktops, and especially GNOME desktops.
And there's already a thriving developer ecosystem there. And so instead of creating a completely new ecosystem from scratch for phones, we're just scaling the existing desktop one to support these new form factors. And the way we're doing it is just by making that the easiest way to build desktop apps.
So in a weird way, just making it easier to build desktop apps is also what makes the phone ecosystem viable at the same time. Because at the end of the day, and I think we've seen that on other platforms as well, most apps across most platforms are fairly similar, both in terms of the stuff they do and the design patterns.
And so it actually makes a ton of sense to just basically reuse 98% of everything across all platforms. And so yeah, I think that's just what we've been doing for the last few years. Steadily move in that direction and make it ever easier to do that. In GTK3, the way this is implemented is a library called libhandy,
which started initially as just like this small collection of mobile-relevant widgets. But then over time, we added more and more things to it. And as we cleaned up things in order to work on mobile, we just made them in a way that works on desktop too.
And then eventually it just became the place where you put new platform widgets. A kind of platform library for the standard ways of implementing common patterns like list boxes and so on. And I think that was a lot more successful than we could have ever dreamed of initially.
Where by the end of the GTK3 cycle, I guess mid-middle of last year, there were tons and tons of first- and third-party apps using all these patterns in really cool and sometimes creative ways. And yeah, it was really like sort of a cohesive app ecosystem built on this pattern library.
And it all kind of like just came together fairly organically, which was very cool to see. But of course, throughout all of this, GTK4 was already in development. And yeah, as of like a year ago or so, we have a stable release.
And so there was also the question, like, how do we move forward to the next generation of the technology? And what are the opportunities that open up with that? And one of the things that we decided to do is basically take what we had with LibHandy, like this
sort of already de facto platform library, and make it fully official and give it a new, more official name. And like really integrated more tightly with documentation, the HIG and everything else, where basically like this is sort of the canonical implementation of all of these core patterns that we use in the core apps.
And that we also encourage third-party app developers to use, including like all of the adaptive patterns that we have developed in the Pandy over the last few years. And if you're following the news, then you already know that LibHandy 1.0 was released at the very end of last year.
So yeah, just like a few weeks ago. But I mean, I guess that makes this perfect timing where I can sort of like update you on everything that's new in LibHandy 1.0 and give you a little bit of an overview of where the platform is at right now and what we're also expecting to see in the next GNOME release and beyond.
Probably the biggest new thing in libidwida is the overhaul style. Because yeah, we've spent a pretty extensive amount of time over the last six months or so, overhauling like every single sort of possible detail of it to really modernize it, simplify things, and like also allow for some features that we've wanted for quite some time.
And I'll go into that a little bit later. But yeah, let's start off by just looking at some apps that have already been ported. So one of the big overarching goals was to just make everything feel lighter, cleaner, more modern, fewer borders, fewer
gradients and other sort of like 90s looking things and more just like simple, clean, a lot of white space. I mean, yeah, I think you get the idea. A lot of it sort of connects to things that we were already doing and just like takes a little bit further, like the pill buttons.
But yeah, in general, like rounding things a little bit more, having softer shadows, like multi-layered shadows that look a lot more polished. For example, like also window shadows, stuff like that. If you look at like the sidebar, you can see that like the selected item doesn't like touch the sides anymore.
It's also like a small thing that makes things feel lighter. Scroll bars are also a lot nicer now. And yeah, just all of those sort of like basic widgets have been, I think, polished to a degree that we haven't had to date.
And it's just like all feels a lot nicer. Like, for example, in general, like lists and cards, like you can see here in software, it's all got like this nice new standardized shadow. And yes, it just feels nicer. But we didn't do all this work revamping the style sheet and going through all the widgets and so on just for the good looks.
Although those are very important, but also to enable some pretty foundational features that we've wanted for a long time. The most important of which is having proper support for dark preference. Historically, we've had a dark version of the Edwida style sheet. But that was not intended as a general purpose style sheet to just like be applied to the whole system, which is why like that wasn't an option.
But rather, it was specifically for media apps like video players or photo apps and such where you don't want the chrome like around your like the media that you're looking at to sort of be the most prominent thing.
And so that's why you need it to be dark. But it was not designed to have like the contrast that you need for something that basically like is used across the whole system. Also supporting a dark style sheet is not just like a thing that you can do at the system level, right? It's not like you provide a new dark style sheet and that solves everything.
Individual applications actually need to do work to support it. And that's something that requires this to be so like an actual supported part of the platform and something developers test for. And yeah, that is like something that they think about when they design the app, not just like sort of a thing that the system applies on top of that.
And that's why all of the like hacky dark modes that people have done in the past don't really work because you need the app developer to be involved. But the great thing with the new stuff we're introducing with Libedwida is that that is now possible. There are no proper APIs for all of this, and that allows us to actually do this in a way that makes sense.
So let's look at this in some real apps. On the right here, you have the new appearance panel, which is basically backgrounds plus this dark light switch. And then, yeah, some examples here. Do note that this is a VM recording, so it's a little bit choppy. It's smoother in real life.
And yeah, as I said, basically anything that has custom styling in apps needs a custom dark version, for example, like these category tiles. But also, yeah, there's a lot of things that you don't think about. For example, the pills that we have in software and a bunch of other apps. If you just have like sort of hard coded light colors, that doesn't work.
You need to be transparent and sometimes different shades. So it's actually a lot more work than you think in some places. Or, for example, also the folders in Nautilus, we had to change them from the light brown that we had because it really didn't work in dark. And yeah, a bunch of other stuff like that. But I think we've worked through most of the edge cases in at least the core apps.
And I think we have a good path forward for third party apps as well to support this preference in a very nice and greasy way. The other new feature that this new stylesheet enables and that we've also wanted for a really long time is the ability to recolor widgets.
And that applies at a number of levels. So both like, for example, like an individual button or just like re-tinting the whole window. But the ability to be like, I want this thing to be this color is something that as a developer you want a lot of the time. But so far we just didn't have it as an option.
So yeah, it's very exciting to finally be able to do that. And that's also enabled by the massive simplification we did in the stylesheet, like both visually and code wise. And a bunch of the stuff that we did for dark mode. So this all kind of like ties in together and allows for a bunch of really cool new stuff.
So let's look at some real life examples of that. Probably the simplest of which is just app accent color. For example, here it's purple because I guess the icon is purple. And so you can see it, for example, in the underline on the location path bar, but also the focus outlines.
And yeah, here the suggested action button and basically everything that usually would use the normal like blue accent color here just uses purple instead. Yeah, including, for example, like the switches and preferences and a bunch of other stuff.
But yeah, it's basically just like a simple way for app developers to make their app look a little bit custom. For a more substantive example of recoloring, let's look at text editor. So here you just have the standard system light dark switcher. But in addition to that, the app also has settings for the color scheme.
And this is very interesting because not only does it affect the actual like highlighted code, but it also affects the color of the app. So, for example, like if you change it to solarize, which is like this dark green blue kind of color, then the whole app recolors do that.
Not just the text view, including all the menus and the buttons and everything else, which maybe looks simple when you see it here. But trust me, like in GTK3, doing this would have been or is a lot of work because basically the few apps that do this essentially include the invited style sheet in the app. And then they just basically recompile the style sheet every time they need to change it
because it's got all these gradients and really complex like CSS constructs that we got rid of. And now it's as easy as this. You just do it in CSS. And to show you exactly like how the recoloring works and why it's now so much easier, I think this is a great example.
And because basically like a lot of widgets, instead of being a really complex, like different color and gradient and border and so on, they're just the same color as the text, but like transparent. And you can see that here, like with the red, basically, yeah, if you set a shitty color, like you're not going to be able to read it.
But if you set a good color, then this is a very simple way to like be able to just change the background color. And it also enables, for example, in apps like this, which is a third party app. Like I'm not sure this is a design pattern that we recommend, but like this is a thing you can now fairly easily do, essentially just set a background color on something and it will just work.
And yeah, that's, that's the kind of work that like we had to do at kind of every level of the stylesheet in order to enable these kinds of recoloring techniques that now I think are going to be really exciting for developers to build things with. So that was all of the stylesheet stuff, which I think is the main highlight of the Vodvita 1.0.
But there's also a few other things like a few smaller widgets and also some things related to the stylesheet. That are new in the demo and so on. So let's quickly look at that. So yeah, not a ton of new widgets, but there are a few, including this helper for split buttons, which is basically needed
because now the header bars are simpler and we like needed a way to handle like these split buttons with a divider in between. There's also a new stack class demo, which has, I mean, since we own the stylesheet now, it kind of makes sense to actually have a better demo for it. And includes all of the new cool style classes, like yeah, pill buttons, various kinds of
like style classes that you can add to like indicate if something is an error or something. Various lists and cards. There's a new selection mode, like larger checkbox. And there's also like simplified styling for the OSD scroll bars, for example.
Progress bars, for example, and a whole bunch of other stuff. It's just like a place to see all of these styles. And I guess, yeah, also for developers to look at how to do that. And then on the more substantive side, there's animations, which finally landed. Manuel's work from last year's GSoC is at least, I think, a large part of it has now landed.
And yeah, it includes spring animations, which is very cool. And we haven't really used this in many places yet, but yeah, I'm very excited personally on bots doing that more. And then, yeah, I think the main new widget is Toasts, which are like a replacement for in-app notifications.
But a lot nicer, much simpler to use for app developers, and it handles more cases. So yeah, that's pretty cool. And finally, let's get to the really exciting part of the talk, which is just, you know, looking at random apps that have already been ported to GDK4. Because, yeah, surprisingly for a library that has been out for, yeah, like
a month, there's already like dozens of apps using libidwida and just looking amazing. So yeah, let's just look at some of them. So let's start by looking at some core apps. This is the port for weather, which hasn't landed yet, but it's already looking pretty good.
And I think it's probably going to land for 42, fingers crossed. And yeah, there's a sound recorder, which just looks amazing with the new styling. Yeah, this, it was already a forward looking app before, but yeah, this just looks so much better now. This is an experimental-ish thing that we're trying in Tor.
I hope it lands because it looks really cool. But yeah, this is the kind of stuff that we can do now. I think you've probably seen screenshots of the GDK4 Nautilus online. Like it's still a little bit rough in some areas and it's unclear if it's going to like make it for 42.
But yeah, like it just really looks cool. And yeah, you've already seen text editor with like the super fancy recoloring. Like, yeah, I think the core apps are the ones that are ported, which I guess is like maybe about two thirds at this point are looking amazing with this.
And yeah, I can't wait for everything to be ported. So next, let's look at the design tools. Most of our design tools are already ported to GDK4 and on FlatHub. But yeah, I think these are some good demos of some standard widgets. For example, like the new split button.
Which, yeah, I think this was one of the more complicated examples that we had to work through. Both the split button and the export popover. But also it now uses toasts to give feedback when you're saving a screenshot. I mean, contrast you've already seen, but yeah, it still looks, it still looks super cool with the recoloring.
And yeah, I think this is also already live on FlatHub. Then icon library, probably one of our most used design tools has also already been ported. And yeah, I mean, it's the same app as before.
It's just faster and looks nicer. So that's always great. And here's a new sort of entry to the design tool family, which is a Lorem Ipsum generator that Maximiliano made. And yeah, as you can see, like we're doing pretty well there in terms of porting. And finally, let's look at some third party apps, especially from GNOME Circle.
Here's Fragments, Felix's torrent client, which in addition to the GTK4 port, I mean, this is still work in progress. But in addition to the port, it's also getting some design updates. Which are hopefully going to enable some very cool new features in the near future. Especially like per file, sort of like selective downloads.
And yeah, as you can see, there's also a bunch of other cool new stuff in there. So yeah, very excited about that landing hopefully soon. Another one from Circle is Bilal's decoder, which is just like to scan and to generate QR code.
But yeah, it's one of those really like simple, nice apps that just like do one thing very well. And yeah, also looks amazing in GTK4. This is my own app, Nostalgia, the basically like archive of GNOME wallpapers. Which was recently ported thanks to Maximiliano. And here's another one from Circle, Share Preview.
Which is this really cool app by Rafael. That basically like allows you to preview the social media images and like metadata. Without using the shitty websites that like Twitter or whoever give you. So yeah, the few times a year that I make websites, it's really cool.
And another one here is TextPieces. Which is like a developer tool to essentially like transform text in various ways. And yeah, I think it's also been ported to GTK4 for quite a while. And looks cool with the new style. And finally, Inception. We're cutting one of the previous clips from this video in video trimmer here.
And as you can see, even did a great job adapting the UI to GTK4 and libadwida. For example, like this custom, I don't know, progress bar thing where you can cut the video. Yeah, it just looks super slick. So you might be wondering now, this is the mobile devices dev room.
Where's all the mobile devices stuff? You didn't show us any phones. And nah, that's true. Because as I explained earlier, like that is kind of the whole strategy. You don't want stuff to be phone specific because the majority of our developer base are on desktops. And what we need to do in order to grow this ecosystem is make stuff relevant to all devices.
Because that way everyone can benefit. And sort of the whole ecosystem grows together even though not everyone has every type of device. But just like for good measure, I have a few examples here of all the same apps that I've shown you earlier.
But sort of scaled to a phone size. And they do all work there. Because I think at this point it's just kind of assumed that if an app makes sense on a phone form factor, it will scale to that form factor. And it's just kind of a normal thing. Like I don't think, I don't know, it's as sort of exotic as it used to be.
Which I think is amazing. I think that's just like a huge set of progress. So yeah, I mean that isn't to say that there aren't parts of the platform that we need to work on still. For example dialogues are still a bit of an area where we need more work on the platform. But yeah, I mean the amount of progress that we've seen over the last few years has been huge.
And I think we can all be really, really proud of what we've achieved. And of course, as usual, I need to point out that all of the stuff I'm showing you here is not stuff that I did. I'm summarizing what the entire community has achieved over, I don't know, like the past year.
And so I think first and foremost I need to mention Alexander Michalenko. Who maintains Limitwider and really did the majority of the work to make all of this possible. Both like on the stylesheet side. Where I think, yeah, not just like development wise but also design wise.
He's like done so, so much really good work. And yeah, I mean not to mention all of the super magical widgets and everything else that he does. Like huge kudos. But also many, many other people like Adrien Plaza, Christopher Davis, many others.
Thank you all so much for making all this happen. I think it's always incredible looking back at even just like a few months. How much gets done and how much everyone has contributed to it. It's really great. And yeah, I also want to mention some of the other designers on the GNOME design team.
For example, like Alan and Jakob did a lot of good work. Both like in the stylesheets stuff here. But also documenting it, updating all the screenshots in the Hig, all of that. There's a lot of invisible work happening to keep this platform moving.
And it's really great and inspiring to work with everyone. And of course if you also feel inspired by that, you can get involved. These are the links to GNOME GitLab and Matrix. Where we hang out and build Libidwida and all the other cool stuff around there.
And yeah, come join us. And yeah, with that we've reached the end. Thank you very much. The link to where I'm gonna put the slides is here at the bottom. And yeah, if you want to contact me later with questions, here are some ways to get in touch.
And otherwise, yeah, I think we have some time for questions. So yeah, I'd be happy to answer questions if you have any. Thanks.
I have no idea. Five seconds to go. Oh well. Can try again. Yes. Thank you very much for this interesting talk, Tobias. Yes, we have some issues with Tobias' video, so you'll likely unfortunately not be able to see him.
But we can still do the questions, I think. So the top one is, are the GTK4 bindings for Python there yet? That's probably a question for Alexander Michalenko who's in the chat.
As far as I know, there are Python apps using Libadwita already. So I would say yes, question mark. Yeah, I'd say it's all g object introspectable, so it should be there. And the next one is, what is the status of Libadwita with GTK4 and Rust bindings?
Say if I want to build a new app in Rust, should I go for Libadwita or use Lipendi with GTK3? That's an easy one. Yeah, that's easy to answer. I think for new apps, we've been recommending doing Libadwita since, I don't know, the middle of last year. Because it's not worth the effort to port. Just like, yeah, use Libadwita.
And there's plenty of apps that do that and have been doing it for, I don't know, I guess almost a year. So it should be no problem. Yeah, there's lots of good examples around there. If you were starting a Rust app, would you use Realm 4 or Libadwita directly? That's a question for the Rust experts. I don't know, it's Bilal anywhere.
But I've not seen one using Realm 4 yet, I think, but I might have missed it. So I think the ones that I saw used it directly, but I might be wrong there. I'm not aware of any apps shipping with that.
And Flo is commenting, I'm developing a new calendar app based on Libadwita in Rust development feels really nice. So that's basically like a compliment for the APIs and the workflow. I'll forward that to Alex and the team. I'm just the designer.
Very good. I think that's most of the questions in the chat at the moment, so if nothing else pops up, then I can maybe ask some questions. So if I would start an app, which apps would you recommend to look at for patterns that use Libadwita in the way it should be used?
Some recommendations? I think a lot of the core apps that we ported are in a pretty good place. Like, I don't know, clocks. A lot of the settings panels, even at least from the design side now, are in a really good place compared to, I don't know, before the GTK4 port.
A lot of the settings panels were pretty, yeah, not ideal in that regard, and that's already been cleaned up recently. For third-party apps, since it landed yesterday, Fragments is pretty cool.
But I think, honestly, in general, the apps that have been ported to GTK4 and Libadwita and are already shipping with them, they're almost all good examples because, I don't know, a lot of the things that were problems in the past are just sort of solved now. The amount of misused patterns and so on, in my experience at least, has decreased a lot.
But I guess anything that's in Circle or in Core and has been ported already is a good thing to look at, obviously depending on your programming language and, I don't know, what exact navigation or whatever you need.
Okay, are there any upcoming things in Libadwita you might want to mention since we have some time? Like, that has not landed, but from the design side, where do you think that should come at some point in a later release? I think we're still in the post-release phase where, I don't know, there was this rush to get everything done for 1.0.
And it's, at least to me, not super clear what the exact next steps are going to be. There's some stuff that's half-finished and that we need to get back to, so that's probably going to be next. One of those things is the About window, which we've wanted to make a proper new adaptive version of for a long time.
And there is a merge request that's, I think, almost ready. I'm not sure exactly what's in it there. I think there's some API disagreements. So there's that. There's list entry, like, a proper list entry widget, which currently we have, I don't know, a bunch of partial implementations of.
But we need to, like, sort of really bring all of those together and have a single implementation that covers all the use cases. Or, I don't know, maybe we'll decide that it should actually be two widgets or something. I don't know. That's something that's definitely in the works. I think, like, in terms of stuff that we need rather than that's already on the way, I think dialog is something we need to look at soon-ish.
Because that, from a perspective of actually using apps on mobile is probably the biggest gap. Yeah, those are the things that come to mind. But, I don't know, with a lot of the stuff, it also depends
on, like, if a contributor comes along and, like, you know, contributes something, then that ends up being the thing we land next. It's not like, you know, there's this, like, super, you know, clear plan for what exactly is going to happen in what order. Like, it is open source. And we're, but we can expect, basically, the gap between libpandy and libit-wider
to get larger over time and, like, more stuff only getting added to libit-wider? Yeah, I mean, my understanding is the policy is, like, no more new stuff in libpandy unless it's also in libit-wider. So, yeah. And I think, like, yeah, generally the focus has shifted to libit-wider.
Also, because, like, starting, I guess, in 43 or so, like, there's not really going to be any more core apps using GTK3. So, it doesn't really make sense to invest more effort. Or, I mean, fingers crossed, obviously. Like, you never know how long is VTE or, like, WebP is going to take, but let's hope. And do you expect larger non-core apps like Inkscape and these kind of things to switch to libit-wider at some point?
I mean, that's up to Inkscape. Like, I've never really had much success convincing Inkscape people of things, but... Or, like, other, yeah, sorry.
Yeah, I mean, I'd be interested in exploring that if they want to do that, but, like, I don't know. I think that for those kinds of applications, I think they have so many custom widgets that they're almost, like, they're sort of, I don't know, there's, like, libit-wider, there's Granite, and then there's Inkscape, like, or GIMP even.
They sort of live in their own world, and I think it would require pretty significant redesign to actually, like, fully bring that on board. I would be very interested in, but I think, I don't know, it's difficult. Yeah, I see. But you would expect, like, cross-platform applications like these still to use kind
of, like, the libit-wider library, although it's, like, targeting the GNOME platform to a large extent? I mean, that's up to them, right? Like, I mean, you can use libit-wider in lots of ways. It's not like, I mean, I think elementary are using it just for the touch gestures. And they're not using any of their widgets per se, or, like, sort of actual visible widgets.
So, I don't know, I mean, I think we're still going to see how that shakes out over, like, the next year or two, as more complex apps get ported. I mean, I don't know, I've seen some, like, fairly interesting, fairly complex apps using libit-wider already, but those are new apps.
Like, there's this Nodes app called R-node, and there was this other thing that I didn't really understand what it did, and it had a weird name, like LXI-something-something. So, I don't know, like, you know, it's not like you can't build sort of Inkscape complexity apps with it. It's just that, like, porting to this style and, I guess, also our design pattern is a lot of work, and also a lot of design work.
And those projects tend to, like, move fairly slowly. Okay, we're basically at the end. 40 seconds left. I'd like to thank you again for presenting on libit-wider and the future of the GNOME stack here.
And thanks a lot, and talk to you soon. Thank you. Yeah, thanks for organizing with that room. And the room is going to open in a couple of seconds, and I think some people might move over and ask some special questions, so we might hang around a little longer.
Yeah, sounds good.