Language Selection

English French German Italian Portuguese Spanish


The 12 Best Gnome Shell Extensions

Filed under

The GNOME Desktop Environment is among the most loved Linux Desktop Environments and with the right Linux tools you can turn it into the perfect one for you.

One way of customizing the DE is by using any of the many extensions available for free – which, apart from taking you steps closer to having an ideal UI/UX, greatly increase your productivity.

Below is our list of the top 12 extensions you can install on the GNOME Desktop.

Read more

GNOME Desktop/GTK Leftovers

Filed under
  • Andrei Lisita: Almost there

    All good things come to an end and so does the 2019 Google Summer of Code. With the last coding period having officially started my project is slowly approaching it’s last commit.

    Lately I have been working mostly on various issues regarding the looks and the behavior of the Savestates Manager, but there are also two new visible UI changes...

  • g_assert_finalize_object() in GLib 2.61.2

    One more API in this mini-series! g_assert_finalize_object(), which is available in GLib 2.61.2, which was released today.

    This one’s useful when writing tests (and only when writing tests). It’s been put together by Simon McVittie to implement the common pattern needed in tests, where you want to unref a GObject and assert that you just dropped the final reference to the object — i.e., check that no references to the object have been leaked in the test.

  • Finally TagEditor!

    After a lot of Merge Requests related with MBIDS and AcoustID, finally I started working on acoustid plugin.

    Before the logic was to return the recording with most sources. Now, we need to return multiple results. We need to retrieve first release belonging to each release group of each recording which matched with the given chromaprint.

KDE, Krita and GNOME

Filed under
  • My KDE Onboarding Sprint 2019 report

    This week I took part on the KDE Onboarding Sprint 2019 (part of what's been known as Nuremberg Megasprint (i.e. KDEConnect+KWin+Onboarding) in, you guessed it, Nuremberg.

    The goal of the sprint was "how do we make it easier for people to start contributing". We mostly focused on the "start contributing *code*" side, though we briefly touched artists and translators too.

  • Strokes are Working Now

    Okay, good news today. I have been porting DefaultTool to the new node-replacing system and it is working now, finally, at least for the part I have already done.

    The work involves combining a number of different modules in Krita: the stroke system,KoInteractionTool and its interaction strategies, and, well, the COW mechanism in Flake.

    KoInteractionTool is the class used to manage the interaction with vector shapes, and is subclassed by DefaultTool. The behaviours of KoInteractionTool (and thus DefaultTool) are defined by KoInteractionStrategys. Upon the press of the mouse button, DefaultTool creates an instance of some subclass of KoInteractionStrategy, say, ShapeMoveStrategy, according to the point of the click as well as keyboard modifiers. Mouse move events after that are all handled by the interaction strategy. When the mouse is released, the interaction strategy’s finishInteraction() is called, and then createCommand(). If the latter returns some KUndo2Command, the command is added to the undo history. Till now it sounds simple.


    A problem I found lies in the final stage–if the mouse is released as soon as being pressed and no undo command is created, Krita will simply crash. It does not happen when I use gdb to start Krita so it seems to be a timing issue though it leads to difficulty for debugging as well. Dmitry used a self-modified version of Qt to produce a backtrace, indicating the problem probably lies in KisCanvas2‘s canvasUpdateCompressor, which is not thread-safe. However, after I changed it to KisThreadSafeSignalCompressor, the crash still happens, unfortunately.

  • The Plan

    So I started my GSoC project with understanding and retrieval of MusicBrainz Identifiers. That was a slow start, other than that I added mappings for MBIDs in grilo. This is required because,
    we’ve tracker properties for MBIDs and we’ve grilo properties for MBIDs, but there’s no linkage between them. So we needed to add mapping from grilo to tracker.

    Last week one more thing which I tried was finally retrieving MBIDs in GNOME Music. That was very exciting, because for past one month, I’ve been dealing with extraction of MBIDs through different extractors especially GStreamer extractor. So finally seeing those tags in Music made me really excited. It wasn’t hard retrieving those tags in Music, there’s already tracker plugin launched by Music which retrieves different tags, so I just added MBIDs in query module. Once you get the required MBIDs in Music, all you need to do is launch already existing cover-art grilo plugin with required tags and automatically cover art will be updated!

Matthias Clasen: More text rendering updates

Filed under

Pango follows Unicode UAX14 and UAX29 for finding word boundaries and line break opportunities. The algorithm described in there is language-independent, but allows for language-specific tweaks. The Unicode standard calls this tailoring.

While Pango has had implementations for both the language-independent and -dependent parts before, we didn’t have them clearly separated in the API, until now.

In 1.44, we introduce a new pango_tailor_break() function which applies language-specific tweaks to a segment of text that has a uniform language. It is meant to be called after pango_default_break().

Read more

Dash to Panel Just Got a Major Update

Filed under

A brand new version of the Dash to Panel GNOME Shell extension is now available — and it features some great changes.

For those unaware, Dash to Panel is a popular Dash to Dock alternative that marries the GNOME Shell Dash and the GNOME Top Bar into a single, unified panel (think the Windows or Plasma 5 desktops).

Dash to Panel v20 is the first major update to the extension since last December.

The update introduces, among some smaller changes, a slate of window preview enhancements, such as a revised version of the slick preview morphing animation we previewed back in June.

Users also get more control over the appearance of window previews, with settings to adjust the size, padding, opacity, button location, header visible and font style (!) all debuting in this release.

Read more

Gnome Shell Dash To Panel v20 Brings Major Window Previews Im\provements

Filed under

The Gnome Shell Dash to Panel (not to be confused with Dash to Dock, from which the Ubuntu Dock is forked) extension combines the Dash with the top Gnome panel. The result is a single panel that provides an icon taskbar, the tray, system menu, and date / time indicator. This is similar to the KDE Plasma and Windows 7 (and newer) taskbar. The extension supports Gnome Shell 3.18 and newer.

The latest Dash to Panel v20 includes major improvements to its window previews. With this version, the window previews have been re-written using custom components so they no longer steal input.

Along with this, there are also quite a few new window preview features, like new styling options such as size, padding, close button location, header visibility and font style. And that's not all - the live window previews size is now dynamic for each thumbnail, which makes a lot of sense since windows have different geometries, so previously you'd get huge borders around the previews.

Read more

GNOME Packages, More Updated in Tumbleweed This Week

Filed under

Two openSUSE Tumbleweed snapshots have been released since our last Tumbleweed update on Saturday.

The most recent snapshot, 20190723, updated Mozilla Firefox to version 68.0.1. The browser fixed the missing Full-Screen button when watching videos in full screen mode on HBO GO. The new 68 version enhanced the Dark Mode reader view to include darkening the controls, sidebars and toolbars. It also addressed several Common Vulnerabilities and Exposures (CVE). The snapshot provided an update to GNOME 3.32.4, which fixed an issue that led to some packages with multiple appdata files not correctly showing up on the updates page. The Guile programming language package update to 2.2.6 fixed regression introduced in the previous version that broke HTTP servers locale encoding. Hardware library hwinfo 21.67 fixed Direct Access Storage Devices (DASD) detection. A major 7.0 version of hylafax+ arrived in the snapshot. The Linux Kernel brought several new features with the 5.2.1 kernel and enhanced security for a hardware vulnerability affecting Intel processors. The open-source painting program Krita 4.2.3 version offered a variety of fixes including a copy and paste fix of the animation frames. A few libraries like libgphoto2, libuv and libva received update. There were also several Perl and Rubygem packages that were updated in the snapshot. The file manager for the Xfce Desktop Environment, thunar 1.8.8, fixed XML declaration in uca.xml and the 2.15 transactional-update package enable network during updates and allow updates of the bootloader on EFI systems. The snapshot is currently trending at a 93 rating, according to the Tumbleweed snapshot reviewer.

Read more

Arc Menu GNOME Shell Extension Update Adds New Options, Better Performance

Filed under

Fans of the Arc Menu extension for GNOME Shell desktops have plenty of reason to upgrade to the latest release.

Version 30 of Arc Menu features “many changes and updates to the ArcMenu code base” that, developers say, “substantially” improve the app launcher’s look, form, and function.

Arc Menu’s ‘search’ functionality has been retooled to better match the main GNOME Shell Applications screen.

Accordingly, the applet now pays attention to the “search” sources that are enabled in GNOME Control Centre > Search. This means you’ll see matching files, system settings, new software (in GNOME Software) returned in the panel, all cleanly delineated by header labels.

Read more

Programming Leftovers: Python and GNOME

Filed under
  • Python Circle: Preventing cross-site scripting attack on your Django website

    Cross-site scripting (XSS) is a security exploit which allows an attacker to inject into a website malicious client-side code. The attacker can do some undesirable things like adding false content or spy on visitors to steal their personal information.

  • Real Python: Digging Deeper Into Migrations

    In the previous article in this series, you learned about the purpose of Django migrations. You have become familiar with fundamental usage patterns like creating and applying migrations. Now it’s time to dig deeper into the migration system and take a peek at some of its underlying mechanics.

  • PyCharm 2019.2 Out Now

    PyCharm 2019.2 is out now: improved Jupyter Notebook experience, syntax highlighting for many more languages out of the box, initial Python 3.8 support, and much more. Download now

  • Why and How I use generators in python

    As a developer, more than often I have to deal with sequential data. That could mean processing every item in the sequence either to prepare it for the next process or storing into some sort of database.

    One of the most common data structure in python is list. And I use it a lot in my code. But it's not a good choice if number of items in sequence is unpredictable. For example, the length of list could be 5, 100, 10,000 or 5,00,0000 or even more.

  • Federico Mena-Quintero: Constructors

    This article, Perils of Constructors, explains all of these problems very well. It is not centered on GObject, but rather on constructors in object-oriented languages in general.

  • [Older] West Coast Docs Hackfest - 2019

    This past week I joined several other members of the GNOME docs team (as well as the Engagement and GTK teams) to work as part of the West Coast Hackfest in Portland, Oregon. From the GNOME Docs side, our efforts were split between resolving documentation issue reports, improving our CI, and making some initial steps towards better help on the web.

    On the issues side, we resolved over 20 doc issues, many of which involved multiple components and discussions to arrive at the best way to fix the problem. For myself, I revamped the instructions on how to search from within the GNOME Files / Nautilus application, which mainly involved updating the current help and adding information on how you can customize which directories are included (or not included) in the search results. As part of this, I also filed a bug to improve a UI component of the search customization. I was able to give a bit of love to gedit docs, as well, though there is still more to do to bring those docs fully up-to-date.


Filed under

The fourth snapshot of GNOME 3.33 is now (finally) available!

Sorry for the delay on this; Problems with some module dependencies and
traveling got in the middle; thanks to Michael Catanzaro to help me
with this release!

Read more

Also: GNOME 3.33.4 Released As The Last Step Before The GNOME 3.34 Beta

Syndicate content

More in Tux Machines

CAN-Bus HAT for Raspberry Pi 4 offers RTC and wide-range power

Copperhill’s third-gen, $65 “PiCAN3” HAT features Raspberry Pi 4 support and a SocketCAN-ready CAN-Bus 2.0B port. The HAT has an RTC and is powered by a 3A, 6-20V Switch Mode Power Supply that can also power the Pi. Copperhill Technologies has launched a CAN-Bus HAT for the Raspberry Pi 4 Model B designed for industrial and automotive applications. Like the PiCAN2. which we briefly covered last year as part of our report on Network Sorcery’s UCAN software for CAN-equipped Raspberry Pi boards, the HAT is equipped with a Microchip MCP2515 CAN controller and MCP2551 CAN transceiver. Read more

Android Leftovers

FreeBSD 12 & DragonFlyBSD 5.6 Running Well On The AMD Ryzen 7 3700X + MSI X570 GODLIKE

For those wondering how well FreeBSD and DragonFlyBSD are handling AMD's new Ryzen 3000 series desktop processors, here are some benchmarks on a Ryzen 7 3700X with MSI MEG X570 GODLIKE where both of these popular BSD operating systems were working out-of-the-box. For some fun mid-week benchmarking, here are those results of FreeBSD 12.0 and DragonFlyBSD 5.6.2 up against openSUSE Tumbleweed and Ubuntu 19.04. Back in July I looked at FreeBSD 12 on the Ryzen 9 3900X but at that time at least DragonFlyBSD had troubles booting on that system. When trying out the Ryzen 7 3700X + MSI GODLIKE X570 motherboard on the latest BIOS, everything "just worked" without any compatibility issues for either of these BSDs. Read more

How to break out of a hypervisor: Abuse Qemu-KVM on-Linux pre-5.3 – or VMware with an AMD driver

A pair of newly disclosed security flaws could allow malicious virtual machine guests to break out of their hypervisor's walled gardens and execute malicious code on the host box. Both CVE-2019-14835 and CVE-2019-5049 are not particularly easy to exploit as they require specific types of hardware or events to occur. However, if successful, either could allow a miscreant to run malware on the host from a VM instance. CVE-2019-14835 was discovered and reported by Peter Pi, a member of the Tencent Blade Team. It is found in the Linux kernel versions 2.6.34 up to version 5.3, where it is patched. Read more