• Pl chevron_right

      Aryan Kaushik: Open Forms is now 0.4.0 - and the GUI Builder is here

      news.movim.eu / PlanetGnome • 2 months from now • 3 minutes

    Open Forms is now 0.4.0 - and the GUI Builder is here

    A quick recap for the newcomers

    Ever been to a conference where you set up a booth or tried to collect quick feedback and experienced the joy of:

    • Captive portal logout
    • Timeouts
    • Flaky Wi-Fi drivers on Linux devices
    • Poor bandwidth or dead zones

    Meme showcasing wifi fails when using forms

    This is exactly what happened while setting up a booth at GUADEC. The Wi-Fi on the Linux tablet worked, we logged into the captive portal, the chip failed, Wi-Fi gone. Restart. Repeat.

    Meme showing a person giving their child a book on 'Wifi drivers on linux' as something to cry about

    We eventually worked around it with a phone hotspot, but that locked the phone to the booth. A one-off inconvenience? Maybe. But at any conference, summit, or community event, at least one of these happens reliably.

    So I looked for a native, offline form collection tool. Nothing existed without a web dependency. So I built one.

    Open Forms is a native GNOME app that collects form inputs locally, stores responses in CSV, works completely offline, and never touches an external service. Your data stays on your device. Full stop.

    Open Forms pages

    What's new in 0.4.0 - the GUI Form Builder

    The original version shipped with one acknowledged limitation: you had to write JSON configs by hand to define your forms.

    Now, I know what you're thinking. "Writing JSON to set up a form? That's totally normal and not at all a terrible first impression for non-technical users." And you'd be completely wrong, to me it was normal and then my sis had this to say "who even thought JSON for such a basic thing is a good idea, who'd even write one" which was true. I knew it and hence it was always on the roadmap to fix, which 0.4.0 finally fixes.

    Open Forms now ships a full visual form builder.

    Design a form entirely from the UI - add fields, set labels, reorder things, tweak options, and hit Save. That's it. The builder writes a standard JSON config to disk, same schema as always, so nothing downstream changes.

    It also works as an editor. Open an existing config, click Edit, and the whole form loads up ready to tweak. Save goes back to the original file. No more JSON editing required.

    Open forms builder page

    Libadwaita is genuinely great

    The builder needed to work well on both a regular desktop and a Linux phone without me maintaining two separate layouts or sprinkling breakpoints everywhere. Libadwaita just... handles that.

    The result is that Open Forms feels native on GNOME and equally at home on a Linux phone, and I genuinely didn't have to think hard about either. That's the kind of toolkit win that's hard to overstate when you're building something solo over weekends.


    The JSON schema is unchanged

    If you already have configs, they work exactly as before. The builder is purely additive, it reads and writes the same format. If you like editing JSON directly, nothing stops you. I'm not going to judge, but my sister might.

    Also thanks to Felipe and all others who gave great ideas about increasing maintainability. JSON might become a technical debt in future, and I appreciate the insights about the same. Let's see how it goes.

    Install

    Snap Store

    snap install open-forms
    

    Flatpak / Build from source

    See the GitHub repository for build instructions. There is also a Flatpak release available .

    What's next

    • A11y improvements
    • Maybe and just maybe an optional sync feature
    • Hosting on Flathub - if you've been through that process and have advice, please reach out

    Open Forms is still a small, focused project doing one thing. If you've ever dealt with Wi-Fi pain while collecting data at an event, give it a try. Bug reports, feature requests, and feedback are all very welcome.

    And if you find it useful - a star on GitHub goes a long way for a solo project. 🙂

    Open Forms on GitHub

    • Pl chevron_right

      Sophie Herold: Testing Library Code in GNOME OS

      news.movim.eu / PlanetGnome • 12:58 • 1 minute

    Yesterday, I wanted to debug a glycin (or Shell) issue on GNOME OS. Turns out, there is currently no documentation that works or includes all necessary steps.

    Here is the simplest variant if you don’t develop on GNOME OS and have an internet connection that can download 16 GB in a reasonable amount of time.

    First we get a toolbox image to build our code.

    $ toolbox create gnomeos-nightly -i quay.io/gnome_infrastructure/gnome-build-meta:gnomeos-devel-nightly

    After entering the toolbox with

    $ toolbox enter gnomeos-nightly

    we can clone and build our project with sysext-utils that are included in our image:

    $ meson setup ./build --prefix /usr --libdir="lib/$(gcc -print-multiarch)"
    $ sysext-build example ./build

    This creates a example.sysext.raw file.

    Now, we need a GNOME OS to test our build. We can download the image and install it in Boxes. After logging in, we can just drag and drop the example.sysext.raw into the VM.

    Before we can install it, we need to get the development tools for our VM:

    $ run0 updatectl enable devel --now

    After that, we need to restart the VM.

    Finally, we can test our build:

    $ run0 sysext-add ~/Downloads/example.sysext.raw

    Adding the --persistent flag to this command will make the changes stay active across reboots.

    If the changes made it impossible to boot into the VM again, we can start the VM in “Safe mode” from the boot menu. After logging in, we can manually remove the extension:

    $ run0 rm /var/lib/extensions/example.raw

    Happy hacking!

    • Pl chevron_right

      Jonathan Blandford: Remembering Seth

      news.movim.eu / PlanetGnome • 1 day ago • 2 minutes

    I heard the news about Seth Nickell’s passing last week, and have been in a bit of a funk ever since.

    Seth was brilliant, iconoclastic, fearless.

    It’s been a long while since Seth was an active part of the GNOME Community, but his influence on the project can still be seen in its DNA if you know where to look. He arrived on the GNOME scene while still in school with hundreds of ideas on how to improve things. It was an interesting time: We had just launched GNOME 1.5 and were searching for a new path towards GNOME 2.0. The Sun usability study had been published and the community had internalized the need to change directions. Seth rolled up his sleeves and did the work needed to help light that path.

    Seth championed radical proposals such as instant apply, button ordering , message dialog fixes , and more. He cleaned up the control-center proposing some of the most visible changes from GNOME 1 to 2. He also did the initial designs for epiphany, pushing for a cleaner browser experience during an era of high browser complexity. He had a vision of desktops as a democratic tool, as easy and natural to use as any other tool in the human experience.

    As a designer, Seth was focused on trying to understand who we were designing for and making sure we were solving problems for them. While he wasn’t beyond fixing paddings / layouts, he wanted to get the Big Picture right. He wasn’t beyond rolling up his sleeves writing code to move things forward, but was at his best as a champion and visionary, arguing for us to take risks and continue to innovate .

    Spending time was Seth was a hoot. He had such a flair for the dramatic. I remember…

    • …the time he sold the design for what would become NetworkManager to a bunch of engineers. He got up on the stage and announced: “We are going to make this [holding an ethernet cable] as easy to use as this [producing a power plug] !” It’s hard to describe how many steps it took to set up networking back then.
    • …his vision of an improved messaging system — Project Yarrr. He used ☠ (U+2620) as the SVN repo name partially to see how many internal tools weren’t UTF-8 clean.
    • …him breaking out into an operatic rendition of “ Tradition ” when  developers were pushing back on a change he was proposing.
    • …the time he changed everyone’s background in the RH office to have crop circles over night. He showed up the next morning in a robe dressed as an old-testament prophet, beating a drum and carrying a “RHEL5 IS NIGH” sign.
    • …hanging  printouts of hate mail he got for various design choices outside of the Mega Cube (a group activity)!
    • And everyone who was around for the Dark Princess Incident will always remember it.

    Being one of the public faces of GNOME2 was hard, and he moved on. Later, he worked on OLPC and Sugar, and made his mark there. After that, he seemed to travel a lot. We lost touch, though he’d reappear every couple of years to say hi. I hope he found what he was looking for.

    Farewell, my friend. The world now has less color in it.

    seth.png

    • Pl chevron_right

      Thibault Martin: TIL that Yubikeys are convenient for Linux login

      news.movim.eu / PlanetGnome • 2 days ago • 3 minutes

    I got myself a Yubikey recently, and I wanted to use it as a nice convenience to:

    1. Grant me sudo privileges
    2. Unlock my session
    3. Decrypt my LUKS-encrypted disk

    I've only managed to do the first two, since they both rely on Linux Pluggable Authentication Modules (PAM). Luckily for me, one of PAM's modules supports U2F, the standard Yubikeys rely on.

    First I need to install pam-u2f to add U2F support to PAM, and pamu2fcfg to configure my key.

    $ sudo rpm-ostree install pam-u2f pamu2fcfg
    

    Since I'm running an immutable OS I need to reboot, and then I can create the correct directory and file to dump an U2F key into it.

    $ mkdir -p ~/.config/Yubico
    $ pamu2fcfg > ~/.config/Yubico/u2f_keys
    

    Then I make sure to have a root session open in case I lock myself out of sudoers.

    $ sudo su
    #
    

    In a different terminal, I can edit the sudoers file to add this line

    #%PAM-1.0
    auth       sufficient   pam_u2f.so cue openasuser
    auth       include      system-auth
    account    include      system-auth
    password   include      system-auth
    session    optional     pam_keyinit.so revoke
    session    required     pam_limits.so
    session    include      system-auth
    

    I save this file and open a new terminal. I type in sudo vi and it asks me to touch my FIDO authenticator before opening vi! If I touch the Yubikey, it indeed opens vi with root privileges.

    Let's break down the line:

    • auth for authentication
    • sufficient passing this authentication challenge is enough (it's not an additional factor of authentication)
    • pam_u2f.so the module we load is for U2F, the standard Yubikeys use
    • cue print "Please touch the FIDO authenticator." when the user needs to authenticate
    • openasuser to fetch the authentication file without root privileges

    It's also possible to use it to unlock my session, but it would be a bit reckless to allow anyone with my Yubikey to log into my laptop. If my backpack gets stolen and it has both my Yubikey and my laptop, anyone can log in.

    It's possible to make the login screen require either my user password, or all of

    • The Yubikey itself
    • The PIN of the Yubikey
    • Me to touch the Yubikey

    If someone fails more than three times to enter the correct PIN, the Yubikey will lock itself and require a PUK to be unlocked. This gives me an additional layer of security, and it's more convenient than having to type a full length passphrase.

    I've added the following line to /etc/pam.d/greetd (the greeter I use):

    #%PAM-1.0
    auth       sufficient  pam_u2f.so cue openasuser pinverification=1 userpresence=1
    auth       substack    system-auth
    [...]
    

    [!warning] I can lose my Yubikey

    I use my Yubikey as a nice convenience to set up a weaker PIN while not compromising too much on security. I use it instead of a password, no in addition to it.

    Since I can lose or break my Yubikey and I don't want to buy two of them, I make the U2F login sufficient but not required . This means I can still fallback to password authentication if I lose my Yubikey.

    Finally, DankMaterialShell uses its own lockscreen manager too. I still want to be able to fallback to password authentication if need be, so I'll configure it to accept U2F OR the password, not both.

    This means that the lockscreen will call /etc/pam.d/dankshell-u2f to know what to do when the screen is locked. Since this file doesn't exist, I can create it with the following content.

    #%PAM-1.0
    auth sufficient pam_u2f.so cue openasuser pinverification=1 userpresence=1
    

    I need a fallback for when I don't have my Yubikey, so I also create the one for this occasion

    #%PAM-1.0
    auth include system-auth
    

    Finally, I have a consistent setup where both my login and lock screen require me to plug my key, enter its PIN and touch it, or enter my full password. When it comes to sudo, I can only touch my key without requiring an PIN.

    My next quest will be to use my Yubikey to unlock my LUKS-encrypted disk.

    • Pl chevron_right

      Jordan Petridis: Goblins in your toolchain

      news.movim.eu / PlanetGnome • 3 days ago • 2 minutes

    At the start of the month, Bilal gave us all a giant gift with Goblint . On the first week it was already impressive. Now it’s an invaluable tool for anyone that ever interfaced with GObject, glib or GTK. It will catch leaks, bugs, or even offer to auto fix and modernize your code to the modern paradigms we use. It’s one of those things that is going to save countless hours of debugging and more importantly, prevent the issues before they even get committed. Jonathan Blandford wrote about using it two days ago, and I suggest you read the post .

    Everyone is trying to use goblint, and we are all stumbling upon the same issues integrating it into our tooling. Initially, it was only able to produce Sarif reports, which GitLab still has behind a feature flag , in addition to only  be available in GitLab Enterprise Editions.

    I added support for GitLab’s Code Quality format which has some support in the non-proprietary Community Edition we use in the GNOME and Freedesktop.org instances. Sadly, almost everything nice is still only available in the enterprise editions, but at least there is this little Widget in the Merge Requests page.

    A screenshot of the linked Merge Request showcasing the Code Quality GitLab widget.

    Additionally, we now have CI templates for Goblint. One is adding a job to the existing gnomeos-basic-ci component we use everywhere. Simply go to your latest pipeline and look for the job .

    A screenshot of the linked job and its output log

    The report will also show up in Merge Requests that have been updated since yesterday.  The gnomeos-basic-ci has other goodies like sanitizers, static analyzers, test coverage, etc wired out of the box, so you should give it a try if you are not using it yet.

    If you do but don’t want the goblint job, you can disable it easily with inputs: goblint: "disabled" similar to all the other tools the component provides.

    include:
      - project: "GNOME/citemplates"
        file: "templates/default-rules.yml"
      - component: "gitlab.gnome.org/GNOME/citemplates/gnomeos-basic-ci@26.1"

    If you want only a goblint job, I’ve also added a standalone template that you can use. (Or copy-paste from it).

    include:
      - component: "gitlab.gnome.org/GNOME/citemplates/goblint@26.1"
        inputs:
          job-stage: "lint"

    In order for the Code Quality report to work, you will need to have a report uploaded from your target branch, so GitLab will have something to compare the one from the merge request with. The template rules will handle that for you, but keep it in mind.

    At this moment all the lints are warnings so the job will never be fatal. This is why we can enabled it by default without worrying about breaking pipelines for now. You can further configure its behavior to your needs, and error out if you want to, through the configuration file.

    min_glib_version = "2.76"
    
    [rules.g_declare_semicolon]
    level = "ignore"
    
    [rules.untranslated_string]
    level = "error"
    ignore = ["**/test-*.c"]

    It’s also very likely that we are going to add goblint and its LSP server to the GNOME SDK Flatpak runtime, along with GNOME OS, so it will always be available for use with tools like Builder and foundry.

    Enjoy

    • Pl chevron_right

      Jakub Steiner: Revert That Vector Nonsense!

      news.movim.eu / PlanetGnome • 5 days ago

    A few years back I did a quick exploration of what GNOME app icons might look like in an alternate universe where we kept on using VGA displays. Chiselling pixels away is therapeutic. So while there is absolutely no use for these, I keep on making them if only to bring some attention to what really matters for GNOME, having nice apps.

    Here's a batch of mostly GNOME Circle app icons, with some 3rd party ones thrown in.

    Pixel art GNOME app icons, batch 1 Pixel art GNOME app icons, batch 2 Pixel art GNOME app icons, batch 3 Pixel art GNOME app icons, batch 4 Pixel art GNOME app icons, batch 5 Pixel art GNOME app icons, batch 6 Pixel art GNOME app icons, batch 7

    If you're reading this on my site rather than Planet GNOME or some flickering terminal in an abandoned Vault, then congratulations. You've stumbled upon a working Pip-Boy module! Found it half-buried under irradiated rubble, its phosphor display still humming with that familiar green glow. Enjoy these icons the way the dwellers of Vault 101 were always meant to, one glorious scanline at a time.

    • Pl chevron_right

      Michael Catanzaro: git config am.threeWay

      news.movim.eu / PlanetGnome • 5 days ago • 1 minute

    If you work with patches and git am , then you’re probably used to seeing patches fail to apply. For example:

    $ git am CVE-2025-14512.patch
    Applying: gfileattribute: Fix integer overflow calculating escaping for byte strings
    error: patch failed: gio/gfileattribute.c:166
    error: gio/gfileattribute.c: patch does not apply
    Patch failed at 0001 gfileattribute: Fix integer overflow calculating escaping for byte strings
    hint: Use 'git am --show-current-patch=diff' to see the failed patch
    hint: When you have resolved this problem, run "git am --continue".
    hint: If you prefer to skip this patch, run "git am --skip" instead.
    hint: To restore the original branch and stop patching, run "git am --abort".
    hint: Disable this message with "git config set advice.mergeConflict false"

    This is sad and frustrating because the entire patch has failed, and now you have to apply the entire thing manually. That is no good.

    Here is the solution, which I wish I had learned long ago:

    $ git config --global am.threeWay true

    This enables three-way merge conflict resolution, same as if you were using git cherry-pick or git merge . For example:

    $ git am CVE-2025-14512.patch
    Applying: gfileattribute: Fix integer overflow calculating escaping for byte strings
    Using index info to reconstruct a base tree...
    M	gio/gfileattribute.c
    Falling back to patching base and 3-way merge...
    Auto-merging gio/gfileattribute.c
    CONFLICT (content): Merge conflict in gio/gfileattribute.c
    error: Failed to merge in the changes.
    Patch failed at 0001 gfileattribute: Fix integer overflow calculating escaping for byte strings
    hint: Use 'git am --show-current-patch=diff' to see the failed patch
    hint: When you have resolved this problem, run "git am --continue".
    hint: If you prefer to skip this patch, run "git am --skip" instead.
    hint: To restore the original branch and stop patching, run "git am --abort".
    hint: Disable this message with "git config set advice.mergeConflict false"

    Now you have merge conflicts, which you can handle as usual. This seems like a better default for pretty much everybody, so if you use git am , you should probably enable it.

    I’ve no doubt that many readers will have known about this already, but it’s new to me, and it makes me happy, so I wanted to share. You’re welcome, Internet!

    • Pl chevron_right

      Jonathan Blandford: Goblint Notes

      news.movim.eu / PlanetGnome • 6 days ago • 2 minutes

    I was excited to see Bilal’s announcement of goblint, and I’ve spent the past week getting Crosswords to work with it. This is a tool I’ve always wanted and I’m pretty convinced it will be a great boon for the GNOME ecosystem. I’m posting my notes in hope that more people try it out:

    • First and most importantly, Bilal has been so great to work with. I have filed ~20 issues and feature requests and he fixed them all very quickly. In some cases, he fixed the underlying issue before I completed adding annotations to the code.
    • Most of the issues flagged were idiomatic and stylistic, but it did find real bugs. It found a half-dozen leaks, a missing g_timeout removal, and five missing class function chain ups. One was a long-standing crasher. There’s a definite improvement in quality from adopting this tool.
    • I’m also excited about pairing this with new GSoC interns. The types of things goblint flags are the things that students hit in particular (when they don’t write it all their code with AI). I think goblint will be even more important to our ecosystem as a teaching tool to our C codebase. It’s already effectively replaced my styleguide.
    • In a few instances, the use_g_autoptr rule outstripped static-scan’s ability to track leaks. Ultimately, I ended up annotating and removing the g_autoptr() calls as I couldn’t get the two to play nicely together.
    • Along the same lines, cairo, pango, and librsvg all lack G_DEFINE_AUTOPTR_CLEANUP_FUNC . It would be really great if we could fix these core libraries. In the meantime, you can add the following to your project’s goblint.toml file:
    [rules.use_g_autoptr_inline_cleanup]
    level = "error"
    ignore_types = ["cairo_*", "Pango*", "RsvgHandle"]
    
    • I had some trouble getting the pipeline integrated with GNOME’s gitlab. The gitlab recipe on his page uses premium features unavailable in the self hosted version. If it’s helpful for others, here’s what I ended up using:
    goblint:
      stage: analysis
      extends:
        - "opensuse-container@x86_64.stable"
        - ".fdo.distribution-image@opensuse"
      needs:
        - job: opensuse-container@x86_64.stable
          artifacts: false
      before_script:
        - source ci/env.sh
        - cargo install --git https://github.com/bilelmoussaoui/goblint goblint
      script:
        # Goblint is fast. We run it twice: Once to generate the report,
        # and a second time to display the output and triger an error
        - /root/.cargo/bin/goblint . --format sarif > goblint.sarif || true
        - /root/.cargo/bin/goblint . --format text
      artifacts:
        reports:
          sast: goblint.sarif
        when: always

    YMMV

    • Pl chevron_right

      This Week in GNOME: #246 Offline Dictionaries

      news.movim.eu / PlanetGnome • 6 days ago • 6 minutes

    Update on what happened across the GNOME project in the week from April 17 to April 24.

    GNOME Core Apps and Libraries

    Libadwaita

    Building blocks for modern GNOME apps using GTK4.

    Alice (she/her) 🏳️‍⚧️🏳️‍🌈 says

    libadwaita demo runs on android now, and apk files can be grabbed from CI

    Alice (she/her) 🏳️‍⚧️🏳️‍🌈 reports

    AdwSidebar and AdwViewSwitcherSidebar now allow adding widgets above and below their content. This can be used to add things like account switchers

    Third Party Projects

    Haydn Trowell says

    Kotoba, a fast, fully offline Japanese–English dictionary, is now available on Flathub.

    Key features:

    • Flexible search: Look up words using kanji, kana, rōmaji, or English meanings
    • Responsive results: Matches appear almost instantly
    • Detailed entries: Readings, meanings, example sentences, and usage notes where available
    • Smart conjugation handling: Recognizes inflected verb and adjective forms and maps them to their base entries
    • Bookmarks: Save words to review later
    • Fully offline: Works without an internet connection

    Get it on Flathub: https://flathub.org/apps/net.trowell.kotoba

    kotoba-entries.B2m-08A3_1x2Mzi.webp

    Antonio Zugaldia says

    Stargate is a new Java and Kotlin library that gives JVM applications access to XDG Desktop Portals on Linux.

    • Full coverage of the portal spec, including Global Shortcuts, Remote Desktop, Notification, and Settings.
    • Adds system tray icon support via the XDG Status Notifier Item specification.
    • Ships with a demo app built using Java GI, the GTK/GNOME Java bindings (come say hi at #java-gi:matrix.org ).

    Available on Maven Central. More at https://github.com/zugaldia/stargate .

    Bilal Elmoussaoui reports

    goblint has received a lot of work lately. Supporting 22 new rules since the last update and a webpage displaying the list of the rules and the available per-rule configurations https://bilelmoussaoui.github.io/goblint/ . The page can include an extensive documentation like the following https://bilelmoussaoui.github.io/goblint/#use_g_autoptr_inline_cleanup but that is the only rule having that for now.

    Jan-Michael Brummer reports

    Take control of your health with Blood Pressure 1.0.0.

    Released just a month ago, this powerful yet easy-to-use app helps you track systolic and diastolic blood pressure as well as pulse with precision. Visualize your progress through clear, intuitive charts and gain valuable insights with in-depth statistics based on ESH/ESC guidelines.

    Log measurements effortlessly with date, time, and optional notes, explore your history at a glance, and benefit from comprehensive analysis designed to support better health decisions. It’s available on Flathub: https://flathub.org/en/apps/org.tabos.bloodpressure

    bloodpressure1.CxZTe89g_2myOWS.webp

    bloodpressure2.3zsPqlbE_Z13scdY.webp

    Nathan Perlman says

    After a few months of on-and-off development, Rewaita v1.1.2 has finally been released!

    For anyone who doesn’t know, Rewaita is a customization tool for applying colour schemes to Adwaita and GNOME.

    What’s new:

    • Finally added proper Firefox support, and is also compatible with the Firefox Gnome Theme for those who use it.
    • More customization options, including three more window control themes, and a new colour scheme (Gruvbox Hard).
    • Now includes an option to force light text in the app overview, which might be useful to blur-my-shell users.
    • Some quality of life improvements like a better user guide, and bug fixes with significantly less crashing.
    • Added Chinese Simplified translations.

    Thanks to everyone who helped out with this release! Available on Flathub as always, as well as the AUR. More at https://github.com/swordpuffin/Rewaita .

    adwaita_theming.Dx-T6VFi_sc0IC.webp

    adwaita_theming_2.DUBOpUbD_2eOHFs.webp

    Solitaire

    Play Patience Games

    Will Warner reports

    Solitaire 50.1 has been released! I want to thank everyone who contributed to this update. Firstly, to the translators who created translations for the app within the first two weeks of it being on Damned Lies. Second, to everyone who submitted and commented on issues, I appreciate your help.

    Here’s what changed: • Added translations: Brazilian Portuguese, Cornish, Kazakh, Serbian, Swedish, Ukrainian, Slovenian, Russian • Added categories to the desktop entry • Added all of the missing Aisleriot card themes except for Guyenne Classic • Fixed a bug where re-deals weren’t decremented upon undoing them • Fixed a bug that allowed one too many re-deals • Clarified the uses of the solver in the preferences • Added a ‘Display the Winnability Warning’ option to the preferences • Made the theme refresh when the theme selector dialog is closed • Adjusted the brand colors to not clash with the window colors • Added spacing between cards and margins for the playing area • Added a ‘New Game’ option to the ‘Impossible to win’ dialog • Added a fail-safe for GTK not handling drags correctly on X11

    Get it on Flathub

    Pipeline

    Follow your favorite video creators.

    schmiddi reports

    Pipeline version 4.0.0 was released this week! This release overhauls downloading videos. Instead of depending on an external program to download videos, Pipeline now has downloading videos built-in. This also includes watching downloaded videos directly in the application. Besides that, you can now inspect your watch history in the application. There were further minor additions and improvements, which you can read about in the changelog of this release .

    Note that this release also contains a breaking change for Pipeline users using external video players: By default, the Flatpak on Flathub does not have the permission to spawn external video players anymore. If you want to continue using external players instead of the built-in video player, you will to manually grant Pipeline this permission, as detailed in the preferences dialog of Pipeline or in this wiki page .

    Parabolic

    Download web video and audio.

    Nick reports

    Parabolic V2026.4.0 is here!

    This release contains many bug fixes, new features and design improvements making Parabolic an even better app! This release also includes a new macOS version of Parabolic - expanding our userbase!

    A huge thank you to everyone who has tested and reported bugs throughout this development cycle. ❤️

    Here’s the full changelog:

    • Added macOS app for the GNOME version of Parabolic
    • Added Windows portable version of Parabolic
    • Added the ability to toggle super resolution formats in Parabolic’s settings
    • Added the ability to specify a preferred frame rate for video downloads in Parabolic’s settings
    • Added the ability to toggle immediate audio or video downloads separately
    • Added the ability to automatically translate embedded metadata and chapters to the app’s language on supported sites. This can be turned off in Converter settings
    • Added the ability to update deno from within the app
    • Added thumbnail image preview to add download dialog and downloads view
    • Added failed filter to downloads view
    • Added total duration label to playlist items view
    • Improved Parabolic’s startup time by using NativeAOT compilation
    • Improved selection of playlist video formats when resolutions are specified
    • Improved selection of playlist audio formats on Windows when bitrates are specified
    • Improved cropping of audio thumbnails
    • Improved handling of long file names, they will now be truncated if too long
    • Removed unsupported cookie browsers on Windows. Manual txt files should be used instead
    • Fixed an issue where download progress did not show correctly
    • Fixed an issue where the preferred video codec was ignored when a preferred frame rate was also set
    • Fixed an issue where the exported M3U playlist file would contain duplicate entries
    • Fixed an issue where credentials would not save on Linux
    • Fixed an issue where batch files were unusable on Linux and macOS
    • Fixed an issue where uploading a cookies file did not work on Windows
    • Fixed an issue where time frame downloads would not complete on Windows
    • Fixed an issue where certain video formats would process infinitely on Windows
    • Updated yt-dlp

    That’s all for this week!

    See you next week, and be sure to stop by #thisweek:gnome.org with updates on your own projects!