Accéder au contenu principal

Articles

Affichage des articles associés au libellé gnome-planet

GUADEC 2019

This year again I attended GUADEC, now for the sixth time in a row. It was a great GUADEC, as usual, thanks to the organizers and the attendees for making it as enjoyable as it was! Friday 🎮 I attended Christian's talk about designing multi-process apps, it sparked the interest of Alexander Mikhaylenko who rapidly started playing with these concepts, as we plan since a long time to run Libretro cores in a subprocess in GNOME Games . Lubosz presented his work on the VR Linux desktop. Even better, he demoed it, and the next day it was possible to test it in the corridor! So I did, and it was pretty amusing. I had the pleasure to meet Andrei Lisita and watch his lightning talk about adding advanced savestates support to GNOME Games. It is the first time an intern working on Games attends GUADEC, but sadly this time it's his mentor (Alexander Mikhaylenko) who couldn't attend. One day maybe, an intern and a mentor for GNOME Games will meet. 😛 Games is a newcomer fri...

libhandy 0.0.10

libhandy 0.0.10 just got released, and it comes with a few new adaptive widgets for your GTK app. You can get this new version here . The View Switcher GNOME applications typically use a GtkStackSwitcher to switch between their views. This design works fine on a desktop, but not so well on really narrow devices like mobile phones, so Tobias Bernard designed a more modern and adaptive replacement — now available in libhandy as the HdyViewSwitcher . In many ways, the HdyViewSwitcher functions very similarly to a GtkStackSwitcher : you assign it a GtkStack containing your application's pages, and it will display a row of side-by-side, homogeneously-sized buttons, each representing a page. It differs in that it can display both the title and the icon of your pages, and that the layout of the buttons automatically adapts to a narrower version, depending on the available width. We have also added a view switcher bar, designed to be used at he bottom of the window: HdyView...

FOSDEM and GTK Hackfest 2019

FOSDEM 2019 This year was my second time at FOSDEM and it was both exhausting and a lot of fun! I went from Montpellier to Brussels in TGV, via the direct line connecting the two cities. I love high speed trains, they are comfy, you can bring lots of baggage, you are not probed, you can see the countryside, they typically connect the center of cities, and they even have Wi-Fi and power plugs! 🤯 Thanks to that, I have been able to bring the booth box that was sitting at my house since Capitole du Libre 2018 for free! In a tramway in Montpellier, with the GNOME booth box, Librem 5 devkits, and my stuff. I spent the vast majority of my time helping on the GNOME booth, I helped a tiny bit on the GNOME newcomers workshop where I add the chance to meet Jorge Creixell, which resulted into a merge request , and I played a bit with a Librem 5 devkit. Oh, and in two FOSDEMs I managed to attend zero talks. The most important thing for me has been hanging out with colleagues and frie...

My Name is Handy, Lib Handy

Libhandy 0.0.7 just got released! I didn't blog about this mobile and adaptive oriented GTK widget library since the release of its 0.0.4 version three months ago , so let's catch up on what has been added since. List Rows A common pattern in GNOME applications is lists , which are typically implemented via GtkListBox . More specific patterns arose, where rows have a title at the start, an optional subtitle below it, actions at the end and an icon or some other widget like a radio button as a prefix. These rows can also be expanded to reveal nested rows or anything else that fits the need. So far every application using these patterns implemented the rows by hand for each and every row. It made using these a bit cumbersome and it led to inconsistencies in sizing, even inside a single application. To make these patterns easier to use, we implemented HdyActionRow , HdyComboRow and HdyExpanderRow . HdyActionRow The action row is a simple and flexible row, it lets...

GNOME at Capitole du Libre 2018

Last Saturday and Sunday I went to the Capitole du Libre 2018 to animate the GNOME booth and help on the Purism one. It was my first time at the Capitole du Libre, and I really enjoyed the event even though I couldn't attend any talk but the closing keynote, which was really interesting as it was a round table with Tristan Nitot and Stéphane Bortzmeyer . The event is about free software and free culture in general, beside GNOME and Purism you could find associations as varied as Nos oignons , Framasoft , OSGeo , Dogmazic , Monnaie Libre Occitanie , Khaganat , ./play.it , 0 A.D. , various distros you already all know and more. I was happy to note that the attending crowed was extremely diverse, ranging from persons barely knowing what free software is to Arnaud Bonatti or persons in their early 10s and already more involved into free culture than I am. I was also happy to recognize persons I already met at the JDLL , either animating booths or visiting the GNOME booth. Th...

Librem 5 ❤️ GNOME 3.32

I am glad to announce that the tooling I am working on since the beginning of the year is ready to be used! Thanks to new features introduced into libhandy 0.0.3 and 0.0.4 and thanks to a few fixes to Adwaita in GTK+ 3.24.1, you can make GTK+ 3 apps adaptive to work both on the desktop and on the upcoming GNOME-based Librem 5 phone. We are early in the GNOME 3.32 release schedule and the Librem 5 will be released a bit after it, so if you want your apps to work on the Librem 5, now is the best time: use libhandy 0.0.4 and up, use GTK+ 3.24.1 and up and target GNOME 3.32! A few apps like Fractal, Podcasts, Calls and Chatty are already using libhandy's adaptive capabilities, and other apps are working on their adaptive transition like Contacts, Games, Geary and Settings (all are works in progress). libhandy is available in Debian Unstable and Arch's AUR repository, and I wish it would be in Fedora already to let GNOME Settings' CI pass . For the moment, libhandy is a G...

Games 3.30: Features Overload

With a new version of GNOME always comes a new version of Games, and this new version comes packed with new features, bug fixes and developer experience improvements. Install Games 3.30 Platforms View and Developers View As part of his GSoC project, Saurabh implemented two new views of your games collection: one filtering games by their developers and another one filtering them by their platforms. To know more, read Saurabh's Segregating views and Description view articles on his blog. To implement this he needed to work a lot on the Grilo front, check his explanations in his Adding self registering keys to lua-factory article. He also started to work on a new page displaying many details about a game like the number of players and a description, it was unfortunately not ready on time for this release but will hopefully land in 3.32. Gamepad Navigation You can now navigate the UI with your gamepads! Select your collection view with the shoulder buttons, browse ...

Games, Tests and GitLab CI

We are getting midterm of the GNOME 3.30 development cycle and many things already happened in the Games world. I will spare the user facing news for later as today I want to tell you about development features we desperatly needed as maintainers: tests and continuous integration. TL;DR: GLib, Meson, Flatpak and GitLab CI make writing and running tests super easy! 😁 This will allow Games to be more stable and to have more features. The More the Buggier Not only does Games and retro-gtk are slowly becoming bigger and more complex, but to handle many platforms Games has to come flatpaked with Libretro cores. Games and retro-gtk are currently only tested manually and as far as I know, this is also true for the vast majority of the Libretro cores we distribute. That's quite a large number of untested lines of code, it is already impossible to test all of them manually and the test matrix is not going smaller. We are not immune to introducing new bugs or to accidentally reintro...

Fracturing Fractal

Last week my employer Purism allowed me to attend the Fractal hackfest in Strasbourg . There we chatted about the future of Fractal and of the messaging applications Purism needs for the Librem 5 . Fractal will have two split: a "vertical" split, separating the frontend of Fractal from its backend so we can have a shared Matrix backend; a "horizontal" split, separating Fractal into two applications communicating with the Matrix backend: one focusing on public rooms where you chat with strangers and most messages are noise for you (this application will be very similar to current Fractal), the other focusing on private conversations with few persons where you want to read everything and which will also support SMS. Also, hackfests are hard. 🍺😶

Adaptive GNOME Web

I started working on making GNOME Web work well on the Librem 5 ; to be sure it fits a phone's screen I want the windows to fit in a 360 points width, which is definitely small. To do so I started with the advices from Tobias Bernard to make Web have two modes that I named normal and narrow . The normal mode is Web as you know it, while the narrow mode moves all buttons from the header bar but the hamburger menu to a new action bar at the bottom, letting the windows reach yet unreachable widths. Web autmatically adapting to small sizes. And now, with device rotation on a tablet. The code is overall ready, I still need to break it into reviewable bits before submitting it upstream. Once this get merged: we want to not show tabs in narrow mode and instead to display a popover listing the available pages, we want to make the search bar shrink rather than to limit the minimum window size, we consider migrating away from the application menu model. ...

One Widget to Adapt Them All and to The Librem 5 Port Them

In my previous article I shared my plans to help porting existing GTK+ applications to Purism 's upcoming Librem 5 phone without having to fork them. This article will present the GTK+ widget I developed for Purism to make this happen. For more information on what Purism is working on for the Librem 5, please check Nicole Faerber's latest article . C'est pas sorcier The underlying idea is to allow applications to dynamically switch between the two main GNOME application layouts: a row of panels — each panel being the view of an element from the previous one — and a stack of panels. The goal isn't to changes applications using the stack paradigm but the ones using the row one, allowing them to reach smaller sizes and to be usable on constrained sizes while keeping their initial paradigm and design when the screen space is sufficient. The development cost to port the applications to this adaptive design should be as low as possible. To achieve that, I wrote a GT...

GTK+ Apps on Phones

As some of you may already know, I recently joined Purism to help developing GTK+ apps for the upcoming Librem 5 phone . Purism and GNOME share a lot of ideas and values, so the GNOME HIG and GNOME apps are what we will focus on primarily: we will do all we can to not fork nor to reinvent the wheel but to help allowing existing GTK+ applications to work on phones. How Fit are Existing GTK+ Apps? Phones are very different from laptops and even tablets: their screen is very small and their main input method is a single thumb on a touchscreen. Luckily, many GNOME applications are touch-friendly and are fit for small screens. Many applications present you a tree of information you can browse and I see two main layouts used by for GNOME applications to let you navigate it. A first kind of layout is found in applications like Documents, I'll call it stack UI : it uses all the available space to display the collection of information sources (in that case, documents), clicking a...

CRT Filter in Games — SUSE Hack Week

SUSE Hack Week 0x10 finished on previous Friday, during it I wanted to support hardware rendering in retro-gtk . This project had two sides, the first one was to allow the Libretro cores to draw their video with OpenGL, the second one was to render their video using OpenGL to allow filtering it via shaders. It was unrealistic to do both sides of this project in one week and, being at the time a complete beginner when it comes to OpenGL, I didn't plan to succeed any of these projects but just to learn a lot. The week before the Hack Week, I took some time to study GtkGLArea and to implement a skeleton for the RetroGLDisplay widget, which was similar to RetroCairoDisplay but was drawing nothing. The GTK+ part of the project being ready, I was able to focus on the OpenGL part during the Hack Week. Friday The first day I looked for OpenGL tutorials and I managed to implement an "Hello, triangle" tutorial . I played a bit more with it and got the triangle blinking...

retro-gtk: The Future, Marty!

Let's come back to retro-gtk. In the previous articles I explained how bad retro-gtk was, what I did to start improving it and more importantly what I did to prepare the terrain for further development. This article will detail the aforementioned planed improvements! Unless stated otherwise, I don't plan these changes to be part of retro-gtk 0.14 and I have no idea when they will be implemented. If I say anything you know to be wrong or if you know something which could help the library's development, please share it in the comments! Stabilization of the API As stated in the previous article, I want retro-gtk's API to stop breaking as much as it did in the past. Starting with 0.14, we will avoid API and ABI breaks as much as possible, and if we do any we will document them properly. The API should be stable but given that some big changes are coming I don't feel comfortable promising proper stability just yet. Gitlab I requested to move retro-gtk to GNOM...

retro-gtk: Renaissance

This is the second article in a small series about retro-gtk, I recommend you to read the first one, retro-gtk: Postmortem , before this one. In the previous article I listed some problems I encountered while developing and using retro-gtk; in this one I will present some solutions I implemented to fix them! ☺ All that is presented in this article is part of the newly-released retro-gtk 0.13.1, which is the first version of the 0.14 development cycle. Changing the Scope The Libretro API is tricky: lots of little details need to be handled properly and it isn't always very clear how to do so. By mimicking this API, retro-gtk inherited its complexity, making it way more complex than it should be as there aren't many different ways for a Libretro frontend to handle the cores correctly. retro-gtk was forwarding the complexity of the Libretro API to its users rather than abstracting it. About a year ago I decided to slowly change the scope of the library. In the previous art...