Language Selection

English French German Italian Portuguese Spanish

GNOME

GNOME Developers: Microsoft Stifling the Competition and GStreamer/Graphene

Filed under
GNOME
  • Musings on the Microsoft Component Firmware Update (CFU) Protocol

    CFU has a bazaar pre-download phase before sending the firmware to the microcontroller so the uC can check if the firmware is required and compatible. CFU also requires devices to be able to transfer the entire new transfer mode in runtime mode. The pre-download “offer” allows the uC to check any sub-components attached (e.g. other devices attached to the SoC) and forces it to do dep resolution in case sub-components have to be updated in a specific order.

    Pushing the dep resolution down to the uC means the uC has to do all the version comparisons and also know all the logic with regard to protocol incompatibilities. You could be in a position where the uC firmware needs to be updated so that it “knows” about the new protocol restrictions, which are needed to update the uC and the things attached in the right order in a subsequent update. If we always update the uC to the latest, the probably-factory-default running version doesn’t know about the new restrictions.

    The other issue with this is that the peripheral is unaware of the other devices in the system, so for instance couldn’t only install a new firmware version for only new builds of Windows for example. Something that we support in fwupd is being able to restrict the peripheral device firmware to a specific SMBIOS CHID or a system firmware vendor, which lets vendors solve the “same hardware in different chassis, with custom firmware” problem. I don’t see how that could be possible using CFU unless I misunderstand the new .inf features. All the dependency resolution should be in the metadata layer (e.g. in the .inf file) rather than being pushed down to the hardware running the old firmware.

  • Emmanuele Bassi: Another layer

    Five years (and change) ago I was looking at the data types and API that were needed to write a 3D-capable scene graph API; I was also learning about SIMD instructions and compiler builtins on IA and ARM, as well as a bunch of math I didn’t really study in my brush offs with formal higher education. The result was a small library called Graphene.

    Over the years I added more API, moved the build system from Autotools over to Meson, and wrote a whole separate library for its test suite.

    In the meantime, GStreamer started using Graphene in its GL element; GTK 3.9x is very much using Graphene internally and exposing it as public API; Mutter developers are working on reimplementing the various math types in their copies of Cogl and Clutter using Graphene; and Alex wrote an entire 3D engine using it.

12 extensions for your GNOME desktop

Filed under
GNOME

The GNOME desktop is the default graphical user interface for most of the popular Linux distributions and some of the BSD and Solaris operating systems. Currently at version 3, GNOME provides a sleek user experience, and extensions are available for additional functionality.

We've covered GNOME extensions at Opensource.com before, but to celebrate GNOME's 22nd anniversary, I decided to revisit the topic. Some of these extensions may already be installed, depending on your Linux distribution; if not, check your package manager.

Read more

Also: Happy anniversary GNOME: What's your favorite version?

How to record screencasts in GNOME 3

GNOME: GNOME Shell & Mutter, Gnome MPV (Celluloid), Savestates Manager

Filed under
GNOME
  • GNOME Shell & Mutter Reach The 3.34 Beta Milestone With Last-Minute Changes

    Earlier this week was the GNOME 3.34 beta release that also marked the UI/feature/API/ABI freezes for this six month update to the GNOME desktop The GNOME Shell and Mutter are late to the party but on Friday evening saw their 3.33.90 (3.34 beta) releases.

    GNOME Shell saw support added for DnD app picker folder management, clocks/weather integration support for sandboxed applications, support for start-up via systemd user instances, replacing Tweener with Clutter animations, consistent animation of new window actions, and a variety of bug fixes.

  • Gnome MPV 0.17 Released! It’s Renamed to ‘Celluloid’

    By releasing version 0.17, the GTK+ frontend for mpv Gnome MPV is officially renamed to Celluloid.

  • Towards a happy ending

    A very important bug/regression that I’m glad we were able to fix is the NintendoDS crash that was caused by introducing the Savestates Manager. We couldn’t have included this feature in a release as long as this bug was present since it was a major regression as the user wasn’t even able to start a NintendoDS game at all.

    The bug was caused by the fact that we used to re-instantiate the emulator core everytime we would start the game or load a new savestate. This didn’t cause any problems with other cores but it seems that the NintendoDS core didn’t like this.

libfprint 1.0, Libinput 1.14 and OpenCL 2.2-11

Filed under
Graphics/Benchmarks
Linux
GNOME
  • Bastien Nocera: libfprint 1.0 (and fprintd 0.9.0)

    After more than a year of work libfprint 1.0 has just been released!

    It contains a lot of bug fixes for a number of different drivers, which would make it better for any stable or unstable release of your OS.

    There was a small ABI break between versions 0.8.1 and 0.8.2, which means that any dependency (really just fprintd) will need to be recompiled. And it's good seeing as we also have a new fprintd release which also fixes a number of bugs.

  • libinput 1.14.0
    libinput 1.14.0 is now available.
    
    A flurry of patches over the last RC but most of these were CI related. Two
    new significant bugfixes: the calibration matrix is now returned correctly
    even when it is the identity matrix. And the tablet pressure range is scaled
    correctly into the available physical range. Previously, the bottom 5% where
    effectively missing and pressure offset on worn-out pens handling took some
    of the scale away from the top.
    
    Below is the text from the 1.14.rc1 announcement which lists the other big
    features added since the 1.13 release.
    
    We have new and improved thumb detection for touchpads, thanks to Matt
    Mayfield. On Clickpad devices this should make interactions where a thumb is
    resting on the touchpad or dropped during an interaction more reliable. A
    summary of the changes can be found here:
    https://who-t.blogspot.com/2019/07/libinputs-new-thumb-detection-code.html
    
    The Dell Canvas Totem is now supported by libinput. It is exposed as a new
    tool type through the tablet interface along with two new axes. Note that
    this is only low-level support, the actual integration of the totem needs
    Wayland protocol changes and significant changes in all applications that
    want to make use of it. A summary of the changes can be found here.
    https://who-t.blogspot.com/2019/06/libinput-and-dell-canvas-totem.html
    
    Touch-capable tablets now tie both devices together for rotation. If you set
    the tablet to left-handed, the touchpad will be rotated along with the
    tablet. Note that this does not affect the left-handed-ness of the touchpad,
    merely the rotation. 
    
    Tablet proximity out handling for tablets that are unreliably sending
    proximity out events is now always timeout-based. It is no longer necessary
    to add per-device quirks to enable this feature and it is completely
    transparent on devices that work correctly anyway. The blog post below has a
    summary:
    https://who-t.blogspot.com/2019/06/libinput-and-tablet-proximity-handling.html
    
    Tablets that send duplicate tools (BTN_TOOL_PEN and BTN_TOOL_ERASER) now
    ignore the latter. This is an intermediate fix only but at least makes those
    tablets more usable than they are now. Issue #259 is the tracker for this
    particular behaviour if you are affected by it.
    
    The handling of kernel fuzz has been slightly improved. Where our udev rule
    fails to reset the fuzz on the kernel device, we disable the hysteresis and
    rely on the kernel now to handle it. Previously our hysteresis would take
    effect on top of the kernel's, causing nonresponsive behaviour.
    
    Note to distribitors: the python-evdev dependency has been dropped, the
    tools that used it are now using python-libevdev instead.
    
    As usual, the git shortlog is below.
    
    Benjamin Tissoires (3):
          gitlab-ci: allow to run on unprivileged containers
          gitlab-ci: force using docker format for the generated images
          tests: increase the timeout for the subprocess to receive the quit signal
    
    Brian Ashworth (1):
          evdev: always store user calibration matrix
    
    Peter Hutterer (14):
          tools: record: fix segfault on exit
          tools: record: fix two memory leaks
          meson.build: drop explicit install:true from configure_file
          gitlab CI: replace the user:password with a netrc file
          gitlab CI: fetch the WAYLAND_WEB_TOKEN from a file
          tablet: point the pressure offset log messages to the right URL
          tablet: add a comment explaining why we adjust the pressure offset downwards
          Add the ck_double_eq_tol() macros to the backwards compat headers
          test: fix the pressure offset tests
          tablet: make the pressure-offset inclusive of the axis minimum
          tablet: reduce the pressure range by the offset
          test: don't test at the 100 y range
          tablet: scale the available pressure range into the pressure thresholds
          libinput 1.14.0
    
    git tag: 1.14.0
  • Libinput 1.14 Released With Dell Canvas Totem Support, Touchpad Improvements

    Version 1.14 of the libinput library for unified input handling on Linux X.Org and Wayland systems is now available.

    Libinput 1.14 is notable for introducing support for the Dell Canvas Totem input device as a unique input device and we could be seeing more of these types of devices in the future.

  • Khronos Releases OpenCL 2.2-11 While Still Waiting For OpenCL-Next

    The Khronos Group has released the OpenCL 2.2-11 specification to address various issues with the existing OpenCL specification while the next major release as "OpenCL-Next" is likely still a number of months away.

    OpenCL 2.2-11 was released overnight with various bug fixes, clarifications, better formatting of the documentation, and integration with the OpenCL reference pages. That updated specification is available from the Khronos.org Registry.

Age rating data for Flathub apps

Filed under
GNOME

OARS (Open Age Ratings Service) defines a scheme to include content rating information in apps’ AppData/AppStream file. GNOME Software and similar tools use this metadata to show age ratings for applications. In Endless OS, we also support restricting which applications a given user can install based on this data – see this page, and the reports it links to, for a bit more information about this feature and its future.

Read more

Matthias Clasen: Pango 1.44 wrap-up

Filed under
GNOME

In my last post discussing changes in Pango 1.44, I’ve asked for feedback. We’ve received some, thanks to everybody who reported issues!

We tried to address some of the fallout in several follow-up releases. I’ll do a 1.44.4 release with the last round of fixes before too long.

Here is a summary.

Read more

Running GNOME in a Container

Filed under
GNOME
HowTos

Virtualization has always been a rich man's game, and more frugal enthusiasts—unable to afford fancy server-class components—often struggle to keep up. Linux provides free high-quality hypervisors, but when you start to throw real workloads at the host, its resources become saturated quickly. No amount of spare RAM shoved into an old Dell desktop is going to remedy this situation. If a properly decked-out host is out of your reach, you might want to consider containers instead.

Instead of virtualizing an entire computer, containers allow parts of the Linux kernel to be portioned into several pieces. This occurs without the overhead of emulating hardware or running several identical kernels. A full GUI environment, such as GNOME Shell can be launched inside a container, with a little gumption.

You can accomplish this through namespaces, a feature built in to the Linux kernel. An in-depth look at this feature is beyond the scope of this article, but a brief example sheds light on how these features can create containers. Each kind of namespace segments a different part of the kernel. The PID namespace, for example, prevents processes inside the namespace from seeing other processes running in the kernel. As a result, those processes believe that they are the only ones running on the computer. Each namespace does the same thing for other areas of the kernel as well. The mount namespace isolates the filesystem of the processes inside of it. The network namespace provides a unique network stack to processes running inside of them. The IPC, user, UTS and cgroup namespaces do the same for those areas of the kernel as well. When the seven namespaces are combined, the result is a container: an environment isolated enough to believe it is a freestanding Linux system.

Container frameworks will abstract the minutia of configuring namespaces away from the user, but each framework has a different emphasis. Docker is the most popular and is designed to run multiple copies of identical containers at scale. LXC/LXD is meant to create containers easily that mimic particular Linux distributions. In fact, earlier versions of LXC included a collection of scripts that created the filesystems of popular distributions. A third option is libvirt's lxc driver. Contrary to how it may sound, libvirt-lxc does not use LXC/LXD at all. Instead, the libvirt-lxc driver manipulates kernel namespaces directly. libvirt-lxc integrates into other tools within the libvirt suite as well, so the configuration of libvirt-lxc containers resembles those of virtual machines running in other libvirt drivers instead of a native LXC/LXD container. It is easy to learn as a result, even if the branding is confusing.

Read more

Cinnamon Desktop (Gnome3 fork) vs MATE Desktop (Gnome2) a review

Filed under
GNOME

Cinnamon is the principal desktop environment of the Linux Mint distribution and is available as an optional desktop for other Linux distributions and other Unix-like operating systems as well.

The development of Cinnamon began as a reaction to the April 2011 release of GNOME 3 in which the conventional desktop metaphor of GNOME 2 was abandoned in favor of GNOME Shell.

Following several attempts to extend GNOME 3 such that it would suit the Linux Mint design goals, the Mint developers forked several GNOME 3 components to build an independent desktop environment.

Separation from GNOME was completed in Cinnamon 2.0, which was released in October 2013.

Applets and desklets are no longer compatible with GNOME 3.

Read more

GNOME 3.33.90 released

Filed under
GNOME

>Hi developers and testers,

GNOME 3.33.90 is now available, slightly ahead of schedule for a change!

This is the first beta release for GNOME 3.34. To ensure the quality of the final release, we have entered feature freeze, UI freeze, and API freeze, so now is a good time for distributors planning to ship GNOME 3.34 to start testing the packages.

If you want to compile GNOME 3.33.90, you can use the official BuildStream project snapshot. Thanks to BuildStream's build sandbox, it should build reliably for you regardless of your host system:

https://download.gnome.org/teams/releng/3.33.90/gnome-3.33.90.tar.xz

The list of updated modules and changes is available here:

https://download.gnome.org/core/3.33/3.33.90/NEWS

The source packages are available here:

https://download.gnome.org/core/3.33/3.33.90/sources/

WARNING!
--------
This release is a snapshot of development code. Although it is buildable and usable, it is primarily intended for testing and hacking purposes. GNOME uses odd minor version numbers to indicate development status.

For more information about 3.33, the full schedule, the official module lists and the proposed module lists, please see our 3.33 wiki page:

https://www.gnome.org/start/unstable

Michael

Read more

Also: GNOME 3.34 Beta Released - Now Under UI/Feature/API/ABI Freezes

App Grid in GNOME Shell

Filed under
GNOME

During the London UX Hackfest, in 2017, GNOME designers and developers had many interesting ideas about different ways to organize GNOME Shell’s UI elements. Letting designers create freely, without having to consider toolkit limitations or time constraints, can produce wonderful results!

It is interesting to notice that many of these ideas floated around the concept of an user-customizable application grid.

In fact, such kind of application grid exists in Endless OS (which by itself is loosely inspired by how smartphones do that) and our user research has shown that it improves discoverability. New users that are presented to Endless OS can easily and quickly navigate through the OS.

Read more

Syndicate content

More in Tux Machines

Dev branch moving towards Qt 6

As you know, Qt 5.14 will be branched pretty soon. After that I would expect that most new development work would start to be aimed towards Qt 6. As it looks right now, 5.15 will be a smaller release where we polish what we have in 5.14, and prepare some things for Qt 6. To reflect that and help us all understand that the development focus is now towards Qt 6, I would like to propose that dev becomes the Qt 6 branch after we branched away 5.14 (and we merge wip/qt6 back into dev). We can then either create a 5.15 branch at the same time, or slightly later, once 5.14 has stabilised a bit more (e.g. after the beta or RC). Read more Also: Qt's Development Branch To Begin Forming Qt 6

Today in Techrights

How to Check Which Debian Version are you Running

Wondering which Debian version are you running? This tutorial teaches you several ways to check Debian version in the terminal. Read more

Tilda: A Great Dropdown Terminal

If you need a full sized, full featured persistent terminal that appears and hides at a single keystroke, Tilda is your friend. Like most Free Software, it has too little documentation, and some conflicting documentation out on the web. That's OK, with this document make Tilda do a heck of a lot of what it was designed to do. This document didn't cover multiple Tilda instance or transparency, but I'm sure both will be easy for you to achieve with a little web search and experimentation. Read more