As of Linux 6.6-rc1, which contains the overlayfs fs-verity support, all the kernel changes that was required for composefs are upstream. This allows us to finalize the composefs image format and give guarantees of its future stability. This means that we are happy to welcome Com … | Continue reading
The next version of NewsFlash is ready. And it comes packed with so much new features and speed improvements + a new look, that the jump to version 3 is more than justified. Visual comparison to version 2.3 The most obvious difference is the use of the libadwaita 1.4 split views … | Continue reading
A few apps using libadwaita 1.4 It’s that time of year again, so let’s look at what’s new. New Adaptive Widgets I’ve already talked about them in my last blog post, so I won’t go into details this time. Breakpoints Libadwaita 1.4 introduces a breakpoint system, allowing to change … | Continue reading
I am pleased to announce a new Cambalache version. Cambalache is a new RAD tool for Gtk 4 and 3 with a clear MVC design and data model first philosophy. Version 0.14.0 brings two new features one of them not even originally supported by Glade. Release Notes: Add GMenu support Ad … | Continue reading
Long time, no release. When I last blogged about GNOME Crosswords, I had a design plan to improve the editing API. It’s been a busy summer since then. The crosswords team rewrote large chunks of code to implement and use this new API: crosswords: 146 files changed, 10545 insertio … | Continue reading
By now it is probably no longer news to many: GNOME Shell moved from GJS’ own custom imports system to standard JavaScript modules (ESM). Imports? ESM? JavaScript originated in web browsers to add a bit of interactivity to otherwise static pages. There was no need to split up sma … | Continue reading
Loupe is GNOME’s new Core app for viewing images. Starting with the GNOME 45 release, you might find it as Image Viewer on your system. It replaces the previous image-viewing app Eye of GNOME. In honor of this historic occasion, I wanted to give a bit of insight into the making a … | Continue reading
I am happy to announce the release of Portfolio 1.0.0! This new release is the first step in the modernization process to GTK 4 and Libadwaita. It’s also a continuation to my efforts of bringing a minimalist file manager to the mobile Linux community, with a few important bug fix … | Continue reading
A long requested feature for Sysprof (and most profiler tools in general) is support for visualizing data as FlameGraphs. They are essentially a different view on the same callgraph data we already generate. So yesterday afternoon I spent a bit of time prototyping them to sneak i … | Continue reading
One thing we’ve wanted for a while in Sysprof is the ability to look at what the process scheduler is doing. It can be handy to see what processes where switched and how they may be dependent on one-another. Previously, I’d fire up kernelshark for that as it’s a pretty invaluable … | Continue reading
It’s been a few months since I last reviewed the state of GNOME core apps. For GNOME 45, we have implemented the changes proposed in the “Imminent Core App Changes” section of that blog post: Loupe enters core as GNOME’s new image viewer app, developed by Christopher David and So … | Continue reading
I like to keep myself honest by using slower computers regularly to do my job. When things become obnoxious, it reminds me to take a closer look at what’s going on. Today, I did some more profiling of 45.beta with a not-too-old-but-still-a-bit-old laptop. It’s the first laptop I … | Continue reading
GWeather Last time I wrote we talked about a new search index for libgweather. In the end I decided to take another route so that we can improve application performance without any changes. Instead, I added a kdtree to do nearest neighbor search when deserializing GWeatherLocatio … | Continue reading
The problem we encountered in my last writing was that gnome-clocks was taking about 300 milliseconds to complete a basic search query. I guess the idea is that if you type “paris” into GNOME Shell you’ll get the time in either Paris, France or one of the Paris’ in the United Sta … | Continue reading
At this year’s GUADEC, I made a proposal: that the GNOME project should migrate its documentation from wiki.gnome.org to other locations, and then disable its wiki. This blog post describes the proposal in more detail, in order to receive feedback from the wider community. Backgr … | Continue reading
Every once in a while I take a moment to test GNOME OS on physical hardware. The experience today was quite a bit underwhelming. Fresh install, type a few characters into the search box, and things grind to a halt. Being the system profiler author I am, where would I consider spe … | Continue reading
tl;dr: Passim is a local caching server that uses mDNS to advertise files by their SHA-256 hash. Named after the Latin word for “here, there and everywhere” it might save a lot of people a lot of money. Introduction Much of the software running on your computer that connects to o … | Continue reading
Unfortunately I couldn’t be at GUADEC this year, but that wont stop me from demoing new things! I’ve been doing a lot of work on Sysprof now that we have semi-reliable frame unwinding on Fedora, Silverblue and GNOME OS. When I have tolling that works on the OS it makes it a lot e … | Continue reading
TL;DR: The gnome-shell-sass repository is no longer getting updated upstream. Background As gnome-shell’s CSS grew more complex, designers needed something more expressive, so they started compiling the stylesheet from SASS. The sources were moved to a subproject, so they could b … | Continue reading
Window management is one of those areas I’m fascinated with because even after 50 years, nobody’s fully cracked it yet. Ever since the dawn of time we’ve relied on the window metaphor as the primary way of multitasking on the desktop. In this metaphor, each app can spawn one or m … | Continue reading
One of the things I’ve done this cycle leading up to GNOME 45 is some rework on how we process *.syscap files. In particular, I wanted to really push the GListModel interface in GTK 4. That is a tall order at first sight because Sysprof capture files easily have hundreds of thous … | Continue reading
Apparently, spellchecking was preventing some people from porting their applications to GTK 4. So I spent a little time today extracting Text Editor’s spellcheck engine into a library you can use in your GTK 4 application without having to write fun data-structures on your own. I … | Continue reading
I can’t belive its been more than a year since my last composefs blog. So much has changed, yet the goal is the same. However, finally things are starting to settling down, so I think it is time to do an update on the current state. Background First some background, like what eve … | Continue reading
Endless OS contains an optional anonymous telemetry system, where installations of the OS collect usage data and periodically send it back to us at Endless OS Foundation. Although the system is open-source, has existed in various forms for close to a decade, and individual pieces … | Continue reading
Last week we had a small hackfest in Berlin, with a focus on making GNOME work better on mobile across the stack. We had about 15 people from various projects and backgrounds attending, including app developers, downstreams, hardware enablement, UX design, and more. In addition t … | Continue reading
I am pleased to announce a new release of Cambalache a new RAD tool for Gtk 3 and 4! Version 0.12.0 packs a year’s worth of new features and lots of improvements and bugfixes. Workspace CSS support Does your application use custom CSS? Now you can see CSS changes live in the work … | Continue reading
In case they needed introduction, pads are these collections of buttons and tactile sensors (ring or strip shaped) most typically found along the side of drawing tablets. These devices will be the topic of today. The Wacom ExpressKey Remote is a rare case of disembodied pad. Pict … | Continue reading
TL;DR: The current adaptive widgets have significant problems and have all been replaced and deprecated. You may want to port your apps, the migration guide is here. Over the past year, I’ve been working on replacing the old adaptive widgets in libadwaita, and as of a few days ag … | Continue reading
It’s that time of the month again, when some clueless guy tries to write a hit-piece about Flatpak and we all get dejavus. One of my favorite past-time activities for a while now has been seeing people on the internet trying to rationalize concepts and decisions, and instead of a … | Continue reading
As I mentioned in my last post, Builder has switched to GJS as it’s dynamic language for plugins. We already support a number of compiled languages including C, C++, Rust, and Vala. Previously we had used PyGObject. Do to the lack of GTypeInstance support in PyGObject, that isn’t … | Continue reading
One of the main features I want to land for the libpeas-2.0 ABI break is support for plugins in JavaScript. With the right set of patches, you can get that. Thanks to Philip Chimento, GJS will hopefully soon land support for running code in a SpiderMonkey realm. Philip also did u … | Continue reading
It’s been a while since my big core app reorganization for GNOME 3.22. Here is a history of core app changes since then: GNOME 3.26 (September 2017) added Music, To Do (which has since been renamed to Endeavor), and Document Scanner (simple-scan). (I blogged about this at the tim … | Continue reading
As some as you may know, MSI suffered a data breach which leaked a huge amount of source code, documentation and low-level firmware PRIVATE KEYS. This is super bad as it now allows anyone to sign a random firmware image and install it as an official MSI firmware. It’s even more s … | Continue reading
Co-authored by Sebastian Wick & Jonas Ådahl. During April 24 to 26 Red Hat invited people working on compositors and display drivers to come together to collaborate on bringing the Linux graphics stack to the next level. There were three high level topics that were discussed at l … | Continue reading
To celebrate Flatseal reaching 800,000 downloads on Flathub , a new release is out! Flatseal 2.0 comes with improved visuals powered by GTK 4 and Libadwaita and, with that, a few quality of life improvements and bug fixes. Kudos to @natasria for the initial work on porting the us … | Continue reading
It’s time for another Crosswords release. This is a somewhat quieter release on the surface as it doesn’t have as many user-visible changes. But like the last release, a lot happened under the hood in preparation for the next phase. This release marks a change in focus. I’ve shif … | Continue reading
Now that GNOME 44 is out the door, I took some time to do a bunch of the refactoring I’ve wanted in libpeas for quite some time. For those not in the know, libpeas is the plugin engine behind applications like Gedit and Builder. This does include an ABI break but libpeas-1.0 and … | Continue reading
The GNOME 44 release is rushing towards us like an irate pangolin! Here is a quick roundup of some of the Endless OS Foundation team’s contributions over its six-month development cycle. Software As in the previous cycle, our team has been a key contributor to GNOME Software 44. … | Continue reading
With the release of WebKitGTK 2.40.0, WebKitGTK now finally provides a stable API and ABI for GTK 4 applications. The following API versions are provided: webkit2gtk-4.0: this API version uses GTK 3 and libsoup 2. It is obsolete and users should immediately port to webkit2gtk-4.1 … | Continue reading
Another cycle, another release. Let’s take a look at what’s new. Banners AdwBanner is a brand new widget that replaces GtkInfoBar. Jamie started implementing it before 1.2 was released, but we were already in the API freeze so it was delayed to this cycle instead. While it looks … | Continue reading
After a long hiatus, a new release of Portfolio is out . This new release comes with important bug fixes, small-detail additions and a few visual improvements. In terms of visuals, by popular demand, the most notable change is the use of regular icons for the files browser view. … | Continue reading
Elastic is a new spring animation editor app. Ever since 1.0, libadwaita has had spring animations. These animations aren’t controlled with a duration and an easing function, but instead with physical properties: damping ratio (or optionally damping), mass, stiffness and initial … | Continue reading
When working on GTK 4, special care was taken to ensure that most of a GtkTextView‘s content could be rendered without GL program changes and maximal use of glDrawArrays() with vertices from a VBO. That goes a long way towards making smooth scrolling. In recent releases, GTK gain … | Continue reading
Howdy folks, It’s GNOME Crosswords release time again! This is a big release with a lot of changes. Most importantly, I was able to find some time over the holidays to do some long-overdue refactoring of the core game code. crosswords: 143 files changed, 12619 insertions(+), 5834 … | Continue reading
Last August, we ran a research exercise using a small tool called gnome-info-collect. The tool allowed GNOME users to anonymously send us non-sensitive data about how their systems were configured. The plan was to use that data to inform our design and development decisions. We g … | Continue reading
Part 1 of this series looks at the state of the climate emergency we’re in, and how we can still get our governments to do something about it. Part 2 looks at collapse scenarios we’re likely to face if we fail in those efforts, and part 3 is about concrete things we could work to … | Continue reading
I like to use the glab command-line tool, which used to be a third-party project but which has apparently now been adopted by GitLab themselves. In particular, the glab mr family of commands to interact with merge requests are invaluable for checking out branches from contributor … | Continue reading
Happy New Year, Crossword-lovers! This is a minor update in preparation for a bigger release in the next few weeks. We’ve done a lot of exciting work on Crosswords over the past few months that’s almost ready for release. However, there are a few things available already that I w … | Continue reading