This week in KDE: We really hate bugs and we want to squash them all

The bugfixing and polish continue this week, but we also managed to squeeze in some welcome UI improvements, particular for our Kate text editor!

New Features

File move and copy operations and other similar I/O related jobs now support nanosecond timestamp precision (Méven Car, Frameworks 5.72)

File copy operations throughout KDE software can now make use of the copy-on-write functionality of the Btrfs filesystem (Méven Car, Frameworks 5.72)

Bugfixes & performance Improvements

.Desktop files whose icons are defined to be SVG files with the full path included now render correctly in Dolphin (Alexander Lohnau, Dolphin 20.04.3)

Hitting Ctrl+Shift+W in Yakuake now closes the session as expected rather than displaying an unpleasant “Ambiguous Shortcut Detected” dialog (Nicolas Fella, Yakuake 20.04.3)

Fixed a case where Discover could hang on launch and then crash (Aleix Pol Gonzales, Plasma 5.12.10 and beyond)

Fixed a bug that could cause Plasma Panels to be incorrectly drawn on top of full-screen game windows (Vlad Zahorodnii, Plasma 5.18.6 and beyond)

When an application exits very soon after inhibiting screen locking, the inhibition is now correctly cleared (Kai Uwe Broulik, Plasma 5.18.6 and beyond)

Fixed a bug that could cause the system to log out instead of restarting or shutting down (David Edmundson, Plasma 5.19.2)

Fixed a crash on Wayland when dragging-and-dropping a URL from Telegram to Firefox (David Edmundson, Plasma 5.19.2)

Switching between KWin rendering backends now lets you return to the original one without having to navigate elsewhere and then return (Benjamin Port, Plasma 5.19.2)

Fix Plasma 5.19 regression: The logout action in the Lock/Logout widget now works again (David Edmundson, Plasma 5.19.3)

Fix Plasma 5.19 regression: window rules using the WM_CLASS property now work again (Ismael Asensio, Plasma 5.19.3)

Fix Plasma 5.19 regression: window rules created from the rule dialog accessible by right-clicking on a window’s titleabar are now saved and applied properly (Ismael Asensio, Plasma 5.19.3)

Fix Plasma 5.19 regression: deleting multiple applications’ shortcuts in the new Global Shortcuts page no longer either fails or causes System Settings to crash (David Redondo, Plasma 5.19.3)

That incredibly annoying bug whereby scrolling with a scroll wheel mouse in a GTK app stops working when a Plasma notification appears has just been fixed!!! (Vlad Zahorodnii, Plasma 5.19.3)

The System Settings Default Applications page now lists Nautilus as a filemanager when it’s installed (Méven Car, Plasma 5.19.3)

Setting detailed locale format settings now works properly (Alexander Lohnau, Plasma 5.19.3)

The Media Player widget now has a saner default size when not in the System Tray (Riccardo Robecchi, Plasma 5.19.3)

Fixed a bug that could cause re-colorable icons to be re-colored incorrectly when changing an application-specific color scheme (David Redondo, Frameworks 5.72)

Plasma no longer crashes when configuring a WPA2-Enterprise encrypted Wi-Fi network with an EAP-TLS with public key only CA certificate file (Albert Astals Cid, QCA 2.3.1)

User Interface Improvements

Yakuake’s window can now be de-maximized with the same keyboard shortcut used to maximize it if you hit it a second time (Anton Karmanov, Yakuake 20.04.3)

Kate’s tab bar is now visually consistent with all the tab bars in other KDE apps (Tomaz Canabrava, Kate 20.08.0):

In case you noticed that the wallpaper is blurry, don’t worry, I’m fixing it

Kate’s tab bar now opens new tabs on the right, like most other tabs bars do (Christoph Cullmann, Kate 20.08.0)

Plasma’s Emoji picker window(which you can open with the Meta+period keyboard shortcut) now closes when you hit the escape key (Alexander Lohnau, Plasma 5.20)

That same Emoji picker window now lets you copy emojis using the standard Ctrl+C shortcut (me: Nate Graham, Plasma 5.20)

When the user has applied updates that require a reboot, the System Tray icon becomes a “Restart” icon and prompts you to restart when you click on it (me: Nate Graham, Plasma 5.20)

The System Tray’s expanded view now displays a button you can click on to configure the System Tray itself (me: Nate Graham):

The file dialog now behaves the same as Dolphin in that when you navigate to the parent folder, the child folder is highlighted (Ahmad Samir, Frameworks 5.72)

When you user trash a file, empty the trash, then undo the deletion, the message shown is now more accurate (Ahmad Samir, Frameworks 5.72)

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

2020 KDE roadmap: mid-year update

Here’s a mid-year update on the 2020 roadmap I proposed six months ago:

FUSE mounts to better support accessing remote locations in non-KDE apps: DONE

kio-fuse was released in beta form early this year and is already packaged in many distros. It’s working great! The final release will happen later this year.


Privilege escalation in KIO and Dolphin: AT RISK

It turned out that there was more work remaining here than I had anticipated. Unfortunately nobody seems to have the critical combination of domain knowledge, interest in working on it, and time to do so. Assistance on https://phabricator.kde.org/D7563 would be appreciated to help make it happen this year.


Improved Samba share discovery in Dolphin: DONE

This was implemented for Dolphin 20.04. By all accounts, it’s working quite well!


Auto-rotation for tablets, convertibles, and other hardware with rotation sensors: DONE

This was implemented for Plasma 5.18 and works on Wayland (getting it working on X11 is a lost cause, apparently). If it isn’t working for you on Wayland, it’s likely that you don’t have the iio-sensor-proxy package installed, or your hardware isn’t supported by the kernel yet.


Implement more of the proposed visual design changes to the Breeze style and KDE apps: ON TRACK

Work is proceeding at a good pace. The new System Tray design was shipped with Plasma 5.19. We’re targeting 5.20 for the new application appearance and patches are landing. Things are on track.


Better wallpapers in the extra wallpapers repo: AT RISK

This is blocked on implementing a wallpaper cache. I took a stab at it for Plasma 5.18 but it turned out to be more complicated than I had anticipated and I kind of got demoralized and dropped it. Need to resume the work.


Per-screen scale factors on X11: UNLIKELY

Focus has shifted toward Wayland in a big way, and for the past few months, veteran KDE developers have been smashing Wayland problems left and right. They’ve gotten clipboard support working with Klipper and going between Wayland and XWayland windows; made Spectacle work properly; fixed a number of drag-and-drop issues, and are very close to finishing task manager thumbnails, screencasting, and more! Given the progress and momentum, there’s a strong desire to make Wayland finally usable rather than hack things into X11 that it was never designed to support and are unlikely to ever work properly.


Inertial scrolling throughout Plasma and QML apps: UNLIKELY

No work has happened here. A lot of the issue are in Qt itself and are very challenging to resolve, especially on X11. There may be more hope for getting it done on Wayland.


Power/session controls on the lock screen: AT RISK

I started implementing this and got it kinda-sorta working but then lost motivation and forgot about it. Sorry about that. I need to get back into it.


Well there you have it! Of course this is just a tiny fraction of the stuff actually going on, it’s just what’s relevant to the proposed roadmap I outlined earlier.

As always, if you want to see these things happen faster, please feel free to help out! The code is public and the people are friendly. 🙂 What do you have to lose!? Nothing, that’s what!

This week in KDE: polishing up Plasma 5.19

This week we plunged into fixing issues in Plasma 5.19 that slipped through QA as well as some older ones–a truly enormous number in all! We are taking to heart your pleas to focus on stability and polish. But of course we also worked on some new features too, because we can walk and chew bubblegum at the same time!

New Features

Spectacle’s timer feature and Shift+Printscreen (take full screen screenshot) and Meta+Shift+Printscreen (take rectangular region screenshot) shortcuts now work on Wayland (Méven Car, Plasma 5.20 and Spectacle 20.08.0)

Yakuake now shows a system tray item when running (which is optionally hide-able of course), so it’s easier to tell that it’s running and so that there’s a graphical way to summon (Maximillian Schiller, Yakuake 20.08.0)

It’s now possible to perform searches in a new private/incognito window using KRunner’s web shortcuts (Alexander Lohnau, Plasma 5.20)

KRunner’s web shortcuts runner now includes a module for searching the Arch wiki; search for “arch: foobar” in KRunner to try it out! (Alexander Lohnau, Frameworks 5.72)

For all those super secret Arch wiki searches that you don’t want anyone else to know about

Bugfixes & Performance Improvements

Okular’s form-filling feature now works more reliably for certain forms using JavaScript (Albert Astals Cid, Okular 1.10.3)

Apps removed from the favorites list shared across Kickoff, Kicker, and Application Dashboard now always stay removed after you reboot (Alexander Lohnau, Plasma 5.18.7)

Fix Plasma 5.19 regression: the Battery & Brightness applet now appears in the system tray again (David Edmundson, Plasma 5.19.1)

Fix Plasma 5.19 regression: The System Tray battery icon is no longer vertically mis-aligned when not showing the battery percentage (Michail Vourlakos, Plasma 5.19.1)

Fix Plasma 5.19 regression: System Tray icons set to “always show” are now always shown (Konrad Materka, Plasma 5.19.1)

Fix Plasma 5.19 regression: resolved various display issues with the new Hard Disk monitor (Arjen Hiemstra, Plasma 5.19.1)

The Kicker Application Menu no longer suffers from a visual glitch whereby the search results list is too small when there are a lot of favorite items (Alexander Lohnau, Plasma 5.19.1)

Copying system information to the clipboard no longer includes trailing spaces and newlines (Claudius Ellsel, Plasma 5.19.1)

System Settings no longer crashes when you visit the Thunderbolt page and then switch to another page (David Edmundson, Plasma 5.19.1)

Fix Plasma 5.19 regression: the Screen Edges effects now works again (Vlad Zahorodnii, Plasma 5.19.2)

Fix Plasma 5.19 regression: the “Configure Window Manager” menu item from the titlebar context menu now works again (Méven Car, Plasma 5.19.2)

Fix Plasma 5.19 regression: WiFi network names in the Networks applet no longer interpret HTML, preventing maliciously-crafted network names from doing potentially nefarious things (me: Nate Graham, 5.19.2

Fix Plasma 5.19 regression: the Global Menu applet once again updates itself correctly when the current application changes (Carson Black, Plasma 5.19.2)

Fix Plasma 5.19 regression: KRunner’s window is once again positioned correctly when using a high DPI screen and the PLASMA_USE_QT_SCALING=1 environment variable (David Edmundson, Plasma 5.19.2)

Fix Plasma 5.19 regression: there is no longer a faint blue outline around the circular timeout indicator for notification pop-ups (Arjen Hiemstra, Plasma 5.19.2)

Interacting with the media controls on the lock screen will now pause the timer that determines when the UI fades out (me: Nate Graham, Plasma 5.19.2)

Copying system information to the clipboard in English now actually uses English for everything (Claudius Ellsel, Plasma 5.19.2)

The search feature in the new System Monitor configuration pages now works (David Edmundson, Plasma 5.19.2)

Picture of The Day wallpapers now work on the lock screen (Yunhe Guo, Plasma 5.20)

Fix Plasma 5.19 regression: Placeholder messages in Plasma applets now respect the Plasma style and color scheme (me: Nate Graham, Plasma 5.20, though I have asked distros to backport it to 5.19)

Fix Plasma 5.19 regression: After entering the password for a Wi-Fi network in the networks applet, you’re no longer pointlessly asked for the same password again in a dialog box (me: Nate Graham, Plasma 5.20, though I have asked distros to backport it to 5.19)

The Plasma panel no longer appears on top of full screen apps and views when on Wayland (somebody awesome, Plasma 5.20)

The trash now automatically purges its records for files that are deleted by hand, preventing a situation where the whole system would freeze because it was trying in vain to collect information about files that no longer existed (Ahmad Samir, Frameworks 5.72)

Monochrome icons in QML-based software are no longer often subtly blurry (Noah Davis, Frameworks 5.72)

Clicking on the scrollbar in certain scrollable Kirigami sheets no longer unexpectedly closes the sheet (Ismael Asensio, Frameworks 5.72)

Setting a default web shortcut now works (Alexander Lohnau, Frameworks 5.72)

The legal notice in KHelpCenter is now readable no matter what color scheme you’re using (Yuri Chornoivan, Frameworks 5.72)

Fixed a graphical glitch that could cause notification pop-ups’ timeout indicators to be drawn as a black square on old graphics hardware (Yaroslav Sidlovsky, Frameworks 5.72)

User Interface Improvements

Dolphin now displays remote shares and FUSE mounts with their user-friendly display name rather than the full path (Méven Car, Dolphin 20.08.0)

The new System Monitor widgets now have more sane default sizes (Marco Martin, Plasma 5.19.2)

System Tray items now respect Fitts’ Law; you can activate on the nearest applet when clicking on the pixel adjacent to the screen edge, making the click target effectively infinite in that direction (Michail Vourlakos, Plasma 5.20)

The Plasma audio applet and System Settings page now filter out unused audio devices by default to avoid cluttering up the view. You can however still show them if you’d like (me: Nate Graham, Plasma 5.20):

Discover now shows you when an application listed in the search or browse list comes from a different source than your default source (Aleix Pol Gonzalez, Plasma 5.20):

Notice the little Flatpak icons in the corner? I know this presentation isn’t ideal; I was planning to polish it up and add text but didn’t have time this week, sorry. Maybe next week!

The layout of the Digital Clock widget’s calendar pop-up has been refined and streamlined in response to user feedback (me: Nate Graham, Plasma 5.20):

Shadows for pop-ups in GTK3 apps using the Breeze-GTK theme now better match the shadows in Qt-based apps (Somebody going by the pseudonym “Toluschr,” Plasma 5.20)

The Web Shortcuts window now has a sane default size when opened from the System Settings Krunner page (Alexander Lohnau, Plasma 5.20)

The “Switch Application Language.. “menu item has been relocated from the Help menu to the Settings menu and renamed to “Configure Language…” to match the style of other items in that menu (me: Nate Graham, Frameworks 5.72):

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Laptop update 3: fixed the audio jack input source

I found a way to get external microphones connected to the audio jack working for my laptop ! KDE contributor Debarpan Debnath pointed me to an Arch wiki page that helped me reach a solution:

  1. Open/create the file /etc/modprobe.d/alsa.conf and add the following on a new line: options snd_hda_intel index=0 model=dell-headset-multi
  2. go to System Settings > Audio > Advanced > and check the checkbox saying “Automatically switch all running streams when a new output becomes available” (this applies to inputs too)
  3. Reboot
  4. Mute the microphone using the keyboard’s microphone mute button

Now the audio jack microphone is detected and will be automatically switched to! This also fixes the issue I was having with the mute button not muting the right microphone; it was in fact the same problem as the external microphone itself not working. I have added this information to the relevant Kernel bug report.

Now my headset’s microphone is working as expected–too late for last week’s virtual Plasma sprint though. Oh well, my colleagues got to hear my kids playing/rioting a lot. 🙂

There is now one remaining issue with the use of an external microphone: the two audio input sources are represented in the plasma-pa applet as different devices rather than as different ports of the same device, which would make the switch-on-connect module unnecessary and clean up the display in the Plasma audio applet. Apparently this is a PulseAudio issue in that the device’s hardware doesn’t fit cleanly into PulseAudio’s abstraction model! There are some PulseAudio patches to clean things up which I have reviewed. So for now, this is the best we can do:

Slow but consistent progress…

Laptop update 2

Here’s an update on the trials and tribulations encountered with my new Lenovo ThinkPad X1 Yoga gen 4.

Audio

I have submitted a merge request to clean up the audio display by filtering out inactive devices, which takes it from this:

… to this:

High DPI Scaling

The issue with plasma shadows not respecting the scale factor has been fixed.

Upstream (i.e. non-KDE) issues

I have filed Kernel and PulseAudio bugs to track the issues with audio and power management:

The saga continues…

This Week in KDE: Plasma 5.20 features start landing

In addition to a ton of bugfixes for Plasma 5.19 which we just released, this week we started to land big improvements for Plasma 5.20. Take a look:

New Features

It’s now possible to independently configure the file size cut-off for displaying previews for local and remote files in Dolphin (Gastón Haro, Dolphin 20.08.0):

It’s now possible to tile a window to a corner by quickly invoking two edge tiling shortcuts within one second; for example by hitting Meta+Right arrow and Meta+up arrow one after another, the window will be tiled to the top-right corner (me: Nate Graham, Plasma 5.20):

You can now middle-click on the System Tray Notifications icon to enter and exit Do Not Disturb mode (Kai Uwe Broulik, Plasma 5.20)

Bugfixes & Performance Improvements

The drawing tools in Okular’s presentation mode toolbar are no longer blurry when using a high DPI screen (David Hurka, Okular 1.10.3)

Yakuake’s main window no longer appears under a top panel on Wayland (Tranter Madi, Yakuake 20.08.0)

Fixed a bug that could prevent Yakuake from opening when using a dual-monitor setup with a single vertical panel on a screen edge close to the center of the full desktop (Maximillian Schiller, Yakuake 20.08.0)

Kate’s “Open Recent” menu now displays documents opened in Kate from the command line and other sources as well, not just the ones opened using the file dialog (Christoph Cullmann, Kate 20.08.0)

Fixed a common crash in Qt applications when quitting (Vlad Zahorodnii, Plasma 5.19.0)

Disconnected Wi-Fi networks now display the correct security type (Jan Grulich, Plasma 5.19.1

The Bluetooth system tray applet’s tooltip no longer shows the name of the wrong device (me: Nate Graham, Plasma 5.19.1)

Fixed a bug causing high CPU usage when scrolling through the list of rules in the new Window Rules System Settings page (Ismael Asensio, Plasma 5.19.1)

Rows in the System Tray popup are now centered vertically in a correct manner (Eugene Popov, Plasma 5.19.1)

Right-clicking on pinned apps to run their app-specific options (e.g. to open a private browsing window in Firefox or Chrome) now works properly when the action includes command-line arguments (Alexander Lohnau, Plasma 5.19.1)

When you search for an application in the Kickoff Application Launcher and then right-click on the search result, the “Edit Application…” menu item now works (Alexander Lohnau, Plasma 5.19.1)

Various apps whose .desktop files specify the icon as a full path to an SVG file now display those icons correctly in the Kicker, Kickoff, and Application Dashboard launchers (Alexander Lohnau, Plasma 5.19.1)

The activities database now has backup and self-repair mechanisms, which should reduce (if not eliminate) the occurrences of favorites and recent items being corrupted or forgotten (Ivan Čukić, Plasma 5.20.0)

Recent documents accessed in private Activities are no longer visible in KRunner search results accessed from other Activities (Méven Car, Plasma 5.20.0)

Fixed an issue preventing the new header appearance from working properly when using the Breeze Dark plasma theme (Chris Holland, Frameworks 5.71)

Content can no longer overflow in the grid items in the new “Get New [thing]” windows (Dan Leinir Turthra Jensen, Frameworks 5.72)

When using a dark color scheme, the new “Get new [thing]” windows no longer display white squares in the center of each grid item before the preview image loads (Dan Leinir Turthra Jensen, Frameworks 5.72)

The Baloo file indexer no longer skips indexing the filenames of files with a blacklisted MIME type (i.e. those whose contents are not useful to index); it will now always index filenames, but only perform full content indexing for files whose content makes sense to index. This should make it better overall at finding files but use hardly any more resources in the process (Stefan Brüns, Frameworks 5.72)

User Interface Improvements

The default Plasma layout has been changed to replace the Task manager with an Icons-Only Task manager with some apps pinned to it by default, on a thickened panel. This should provide a more familiar and modern layout with greater touch-friendliness by default. Remember that you can always change back if you don’t like it 🙂 (me: Nate Graham, Plasma 5.20):

The Plasma river’s progress cannot be stopped

The panel’s thickness is now easier to adjust: you can use a spinbox to enter a numerical size or fine-tune the side with plus and minus buttons, and you can still drag on it to adjust the size in a very coarse way, as before (me: Nate Graham, Plasma 5.20):

The System Tray’s expanded view of hidden items now uses a grid instead of a list, which makes it much more touch friendly and fixes a few bugs (me: Nate Graham, Plasma 5.20.0):

The visual glitch at the top of the window that eagle eyed readers may have noticed is https://bugs.kde.org/show_bug.cgi?id=422896

Task switchers now have shadows on Wayland, as expected (Vlad Zahorodnii, Frameworks 5.72)

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Lenovo ThinkPad X1 Yoga: impressions, bugs, workarounds, and thoughts about the future

My new laptop arrived last week and I’ve been using it since then! Here are my impressions so far of the Lenovo ThinkPad X1 Yoga (gen 4), and how it compares to my old laptop, a 2016 HP Spectre x360:

Hardware side

Case and ports

Top-notch quality. The laptop feels lightweight given its size, and it is very rigid. I had worried that the dark aluminum case would show fingerprints, but it’s not a problem. Port selection is generous: 2 USB-C+Thunderbolt+charging ports, 2 USB-A ports, an HDMI port, and a combo audio jack. Perfectly sufficient for my purposes, and better than the laptop it replaced! I do wish the USB-C ports were more snug, though. USB-C cables tend to wiggle around when plugged in. Also it would be nice if the lid could be opened with one hand, but that’s a very minor nitpick. Overall it is solidly better than my old laptop.

Screen

The Thinkpad X1 Yoga’s 4K screen is unbelievable. Color reproduction is excellent, there is no significant ghosting, and brightness goes high enough to use it outdoors without limitation. I turn the brightness down to 50% when using it indoors. It’s by far the best screen I’ve ever had the pleasure of using, and a huge upgrade over my old laptop!

Keyboard

The keyboard feel is perfect; typing on it is a dream! And its black keys contrast perfectly with the white backlighting to produce a good low-light typing experience too. However the layout of the keys presents a few annoyances that I’m having to get used to:

  • Left Fn and Ctrl keys are reversed compared to every other PC laptop keyboard. This can be changed in the BIOS, but then the labels don’t match the functionality, which is somehow even more confusing.
  • The PrintScreen key is located between the right Alt and Ctrl keys, and I find myself constantly pressing it when I mean to press the right Alt key, especially to hit Alt+Left to go back in Dolphin or Firefox. Seems like a weird place to put it.
  • The Home and End Keys are located up at the top of the keyboard, away from the arrow keys. I find myself wishing they were in a column at the right side of the keyboard as on my old laptop, where they were easier to press without changing the positioning of my right hand which often hovers around the arrows.
  • There are no dedicated media playback keys. This is not a major issue as I have mapped Alt+Ctrl left/right/space to those functions in Plasma’s shortcuts KCM. Still, I do miss the dedicated keys.
  • Toggling the keyboard backlight is done with Fn+Space, rather than a dedicated key. Also the multi-level brightness feature seems kind of superfluous. Simple on/off modes would be better IMO. Not really a big deal though.

Overall, compared to my old HP Spectre x360 laptop, I would say I prefer the typing feel and black key color of the Lenovo’s keyboard, but prefer the key layout of the HP’s keyboard.

Touchpad

The touchpad is perfect. It’s just the right size: not too big, and not too small. The glass-covered surface makes it a pleasure to use. With the Libinput driver, thumb and palm rejection are perfect, enabling my favorite way of using a touchpad: with my right thumb lazily resting at the bottom as if there were a physical button there. I click with the thumb and use the rest of my fingers to move the cursor or perform scrolling gestures. This is how I got used to using Mac touchpads back when I was an Apple user and the Lenovo’s hardware is good enough to replicate that. It’s not quite Mac quality, but I’d say the experience is 90% there. It’s really, really good, and a huge upgrade from my old laptop whose trackpad was a bit worse in almost every way.

Speakers

The speakers sounded great in Windows during my initial test so I know that the hardware is quite capable. However, on Linux the sound is not so good, and more work is needed on the driver side. So at the moment, the speakers are a disappointment and a regression compared to my old laptop, but hopefully improved audio drivers will make them better in the future.

Camera

The camera is horrible, which is an unwelcome surprise for this very expensive computer. Its resolution is a very low 720p, and there is noticeable lag/latency, which makes video conferencing annoying for other people as my mouth does not match my words. This is a significant regression compared to my old laptop, which had a 1080p camera with no appreciable lag. I didn’t test the camera in Windows before installing openSUSE Tumbleweed, so I don’t know if the lag is a hardware limitation or a driver bug.

Software side

On the software side, things have not been as good.

Installing openSUSE Tumbleweed was not too big of a hassle, given that I’ve done this a number of times before. I had to disable secure boot, which entailed a trip to the BIOS and bricking Windows. After installation, a number of local workarounds were required to make things function, in particular the audio, which still does not seem to be working properly. Just check out the relevant Arch Wiki pages! That’s a lot of stuff that you need to fix manually. After the OS was installed, I started to run into other issues:

Speakers and sound

Initially, the speakers were not detected at all. The relevant Arch Wiki page was very helpful here: installing the sof-firmware package fixed that, but then the audio quality was horrible. Compiling PulseAudio from source to get version 14 (which is not released yet) made it better, but still not as good as it was on Windows. I have filed a bug on PulseAudio as it seems like more work is needed: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/914

Also, there are pointless devices corresponding to the three HDMI/DisplayPort audio outputs, which should not be shown unless they’re actually in use. This affects both the Plasma audio applet as well as the Pavucontrol app:

It’s not totally clear to me whose fault this is, so I filed a bug on PulseAudio and also one on plasma-pa. We may be able to improve the display in Plasma at least, and I’m working on a merge request.

Power management

Battery life is poor. This laptop has a 51 watt-hour battery (up from 42 Wh on my previous laptop), but draws between 8 and 10 watts at idle. When actually using the machine, I’m only getting about 4 hours of battery life! Reviewers said that it got at least 7 hours in Windows, so this is pretty terrible. powertop reports that the display backlight uses 10 watts of power at full brightness, 5 watts when at its lowest level, and 4 watts when turned off entirely! And the bottom of the case is always warm, so perhaps the CPU is also not idling enough. So I suspect that there are some performance and power management bugs somewhere, as this level of power consumption does not seem expected, even with the 4K screen. On the plus side, at least the laptop charges very quickly with the included 65W charger. :/ I have not filed any bugs on this particular set of issues yet as I’m not suite sure where to start.

Touchscreen

Out of the box, the touchscreen did not work properly on X11 with Plasma, KDE apps, and other Qt apps–but it did work with GNOME and Electron apps! After filing a bug report on Qt, I discovered that switching to the libinput driver fixes the issue! To do this, you can uninstall the xf86-input-wacom package (which will also remove the Wacom page in System Settings, which may be undesirable if you’re using it) or alternatively you can apply the following patch to /usr/share/X11/xorg.conf.d/70-wacom.conf:

diff -rubd /usr/share/X11/xorg.conf.d/70-wacom.conf.orig /usr/share/X11/xorg.conf.d/70-wacom.conf
--- /usr/share/X11/xorg.conf.d/70-wacom.conf.orig       2020-06-08 08:08:01.576986784 -0600
+++ /usr/share/X11/xorg.conf.d/70-wacom.conf    2020-06-08 08:07:04.624218429 -0600
@@ -19,7 +19,7 @@
         MatchUSBID "056a:*"
         MatchDevicePath "/dev/input/event*"
         MatchIsTouchscreen "true"
-        Driver "wacom"
+        Driver "libinput"
 EndSection
 
 Section "InputClass"
@@ -43,7 +43,7 @@
        MatchProduct "Wacom|WACOM|PTK-540WL|ISD-V4"
        MatchDevicePath "/dev/input/event*"
        MatchIsTouchscreen "true"
-        Driver "wacom"
+        Driver "libinput"
 EndSection
 
 Section "InputClass"

Ubuntu has already made a similar change to their packaging and I filed a bug report for openSUSE as well: https://bugzilla.opensuse.org/show_bug.cgi?id=1172669.

Next up, touch scrolling did not work in Firefox. I already knew how to fix this, and I’ll teach you too:

  1. Add MOZ_USE_XINPUT2=1 to the /etc/environment file. This turns on touchscreen scrolling and enables pixel-by-pixel touchpad scrolling.
  2. Doing the above triggers a nasty bug that breaks scrolling when a notification appears, but you can work around that as follows: Open System Settings > Window Management > Window Behavior > Uncheck “Click raises active window”.

Obviously we should just fix the KWin bug that makes this workaround necessary. We eventually will!

After this, touch input works well, especially for GTK apps. We have a lot of work to do to make our own KDE apps work as well with a touchscreen as GTK apps do on average.

Broken Flatpak apps

I briefly encountered an issue where none of my Flatpak apps would launch:

$ flatpak run com.discordapp.Discord
Gtk-Message: 07:05:34.667: Failed to load module "unity-gtk-module"
Gtk-Message: 07:05:34.667: Failed to load module "canberra-gtk-module"
No protocol specified

(Discord:4): Gtk-WARNING **: 07:05:34.667: cannot open display: :99.0
[fake-sandbox: zypak-sandbox] No data could be read (host died?)
[fake-sandbox: zypak-sandbox] Quitting Zygote...

This utterly bizarre issue turned out to have been caused by me setting the computer’s hostname incorrectly, using sudo hostname <new hostname> instead of sudo hostnamectl set-hostname <new hostname> which triggers an SDDM bug which is fixed by the following open pull request: https://github.com/sddm/sddm/pull/1230. Hopefully the SDDM bug will be fixed soon, and in any event I should just add a GUI method of setting the computer’s hostname which I’ve been meaning to do for a while. See https://bugs.kde.org/show_bug.cgi?id=259285.

Scaling issues in Plasma

On X11, Plasma did not auto-detect that I was using a 4K screen, so I had to manually change the scale in the KScreen KCM. Then I had to manually sync that to SDDM in the SDDM KCM to make the login screen not look tiny. It would be nice if the appropriate scale factor would be autodetected, at least for 4k screens. I have filed https://bugs.kde.org/show_bug.cgi?id=422552. Happily, this already works out of the box on Wayland! So go Wayland.

In addition, once I did set a 200% scale factor, all the icons in Plasma looked tiny, making everything hideous. This is https://bugs.kde.org/show_bug.cgi?id=356446, and I worked around it by setting PLASMA_USE_QT_SCALING=1 in the environment, which fixes the issue and makes Plasma look fantastic at 200% scaling. However it also makes the minimize animation zoom into the wrong location. Boooo! As before, all this stuff works out-of-the-box on Wayland. Hmm…

Once I had the scale properly set, I noticed that various UI elements were not automatically scaled:

The first three actually work fine on Wayland! So I’m getting the sense that I should just bite the bullet and use Wayland, since the high DPI behavior is much better.

Next, I incrased the scale to 250% to make everything a bit bigger, and then various icons that are supposed to be monochrome became colorful. This is a minor issue, but I’ve submitted a patch to fix it: https://invent.kde.org/frameworks/breeze-icons/-/merge_requests/3

Anyway, other than these issues, scaling works great. We’re pretty close, I think.

Conclusion and the future

I wish I could say that it’s been a pleasant, trouble-free experience and that I’m loving my new computer. In truth, getting the ThinkPad X1 Yoga to function well enough to comfortably write this post took several frustrating days of poring over documentation, filing bug reports, tweaking config files, and altering kernel parameters. On top of that, it’s still not quite there yet and is worse than my old laptop in several ways despite costing twice as much money. The high DPI scaling issues are our fault in KDE, and we need to do better, but that’s just the tip of the iceberg. The problems run throughout the entire software stack. Simply put, this is not acceptable in 2020. We need to up our game of partnering with hardware makers to ship FOSS operating systems by default. Everything I’m going through with this computer is the kind of problem that should be caught by paid Linux QA teams so that it can be fixed before the hardware is released to customers.

I continue to believe that we will get nowhere until more hardware comes with a Linux-based OS pre-installed. People shouldn’t have to deal with this kind of nonsense! My wife has been happily using KDE Neon on her laptop for two years, but I had to do the initial installation. Normal people want their computers to just work, not endlessly fiddle around with settings to make things functional that should have been so out of the box in the first place.

Part of me wishes I had instead gone with the SlimBook Pro X 15 or the System76 Lemur Pro, which were strong contenders in my search. The SlimBook laptop can even be pre-installed with Plasma-bearing operating systems like KDE Neon and Kubuntu, and I’m sure the System76 folks would have done likewise had I asked nicely enough. Everything would have worked perfectly out of the box, because SlimBook and System76 have QA teams paid to do what I’ve been doing myself for the ThinkPad X1 Yoga. Alas those laptops didn’t have some of what I was looking for in the hardware department (principally touchscreens and higher quality speakers), but perhaps I was underestimating the importance of integration into a cohesive product. It certainly stands in stark relief right now.

I’m sure things will get better over time. Kernel fixes will accumulate, and the bug reports I’ve filed will start to get fixed. I may even fix some of them myself. But this state of affairs is simply not acceptable if we ever want to grow our audience beyond the ranks of tech nerds. No normal person spends over than a thousand dollars on a laptop for real productive purposes that will have to become an extended science experiment before it works properly. We need more hardware sold with our software pre-installed, period. That’s the next frontier, and I strongly believe that we need to make it our end goal for everything we do.

This week in KDE: Okular, Konsole, Plasma, and Wayland

It’s early in the Plasma 5.20 development cycle and some very nice new features landed this week! Various KDE apps–in particular Okular and Konsole–also got new features. It’s a feature-palooza!

Yes, yes, I know what some of you are thinking: “Why are you writing new features while there’s still so much buggy stuff?” In this case, one of the answers is that new features can often solve bugs. For example the Okular work you’ll read about below resulted in a dozen bug reports getting closed! Sometimes you really can have your cake and eat it, too. 🙂 And of course the Wayland work continues as well…

New Features

Okular’s annotations toolbar has been completely re-done and is now much more discoverable and easier to use! This improvement has been in development for over a year and I’d like to call attention to Simone Gaiarin for his tremendous work here! (Simone Gaiarin, Okular 1.11.0):

Konsole now shows you a thumbnail preview for image files that you hover your cursor over by default (Tomaz Canabrava, Konsole 20.08.0):

Middle-click paste now works on Wayland! (David Edmundson, Plasma 5.20.0)

Changing the screen brightness now smoothly animates the transition rather than jumping from one brightness level to another (Kai Uwe Broulik, Plasma 5.20.0)

It’s now possible to adjust the balance of individual elements of your speakers (Kai Uwe Broulik, Plasma 5.20):

File choosers displayed by Flatpak apps now implement the ‘choices’ element of the filechooser spec and can therefore be given custom views from the app itself (Michael Weghorn, Plasma 5.20.0)

The Web Browser widget now has a user-configurable zoom setting (Sora Steenvoort, Plasma 5.20.0):

The touchpad cursor speed setting can now be configured on a much more granular basis if desired (Giusy Margarita, Plasma 5.20.0):

Bugfixes & Performance Improvements

Dolphin now shows progress notifications for duplicated files when the duplication takes more than a moment (me: Nate Graham, Dolphin 20.04.2)

When using an alternative input method, Konsole now shows the input method window right below the cursor, where it’s supposed to be (Fuminobu Takeyama, Konsole 20.08.0)

Spectacle no longer gets killed when the notification displayed for the last screenshot disappears (Méven Car, Spectacle 20.08.0)

KRunner’s window now appears in the right place when using a top panel on Wayland (Benjamin Port, Plasma 5.20)

Folder previews no longer allow the embedded thumbnails to overflow out of the view when they’re very very tall or very very wide (Méven Car, Dolphin 20.08.0)

Dolphin’s free space bar is now correctly sized no matter your font settings (Ahmad Samir, Dolphin 20.08.0)

Yakuake no longer unconditionally switches terminals when Shift+Tab is pressed, unless you actually set that as a keyboard shortcut (Maximillian Schiller, Yakuake 20.08.0)

User Interface Improvements

Okular’s main window has received a visual overhaul, resulting in a new default toolbar layout and hiding the page bar at the bottom of the window by default (me: Nate Graham, Okular 1.11.0):

The Properties actions/menu items in Okular and Gwenview are now triggerable using the standard Alt+Return keyboard shortcut, just like in Dolphin (me: Nate Graham, Okular 1.11.0 and Gwenview 20.08.0)

Okular now makes it easier to see all of the page sizes in a document with more than one page size (me: Nate Graham, Okular 1.11.0):

It’s now possible to explicitly set the size of System Tray icons (Konrad Materka, Plasma 5.20):

KRunner’s recent documents feature now uses the same data store as everything else with a “recent documents” feature, making its results more consistent and relevant (Méven Car, Plasma 5.20)

The overwrite dialog now makes it clear when the to-be-overwritten file has a file size that differs by less than a kilobyte (Méven Car, Frameworks 5.71)

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

This week in KDE: all about the apps

This week we landed a lot of nice improvements for KDE’s apps, which I’ve highlighted below! Of course we didn’t forget about Plasma, so have a look-see:

New Features

Dolphin now lets you mount ISO images using a new menu item in the context menu (Kwon-Young Choi, Dolphin 20.08.0):

Konsole now lets you monitor a tab for the active process to complete (Will Westrop, Konsole 20.08.0):

Bugfixes & Performance Improvements

Improved search speed/performance in Okular’s sidebar (Ahmad Samir, Okular 1.10.2)

Fixed a very common Yakuake crash (Maximilian Schiller, 20.04.2)

Fixed a common crash in Konsole when right-clicking and using Qt 5.15 (Ahmad Samir, Konsole 20.04.2)

Gwenview’s touch gestures now work properly when using display scaling (Steffen Hartlieb, Gwenview 20.08.0)

Notes widgets placed in a panel now display the pop-up note if clicked on when all windows are hidden or minimized (Marco Martin, Plasma 5.19.0)

Clicking on the settings button for a notification now opens the Notification settings page with that particular app focused and visible (Benjamin Port, Plasma 5.19.0)

KRunner once again shows Firefox bookmarks (Alexander Lohnau, Plasma 5.19.0)

KRunner now does a better job of handling file paths beginning with a tilde (Méven Car, Plasma 5.20)

When using Dolphin to view the desktop using the special desktop:/ URL, the amount of free space is now correctly displayed in the status bar (Ahmad Samir, Plasma 5.20.0)

Dates displayed in the file overwrite confirmation dialog now respect the date formatting of your current locale (Méven Car, Frameworks 5.71)

Deleting files from a Samba share no longer displays a notification with an inaccurate number of deleted files (Kai Uwe Broulik, Frameworks 5.71)

User Interface Improvements

Okular’s sidebar user interface has been overhauled, with the result that it now takes up less horizontal space, is easier to show and hide quickly, has a more consistent appearance overall, and fixes many bugs (me: Nate Graham, Okular 1.11.0):

The default gesture for moving windows has been changed to Meta+click, to avoid conflicting with apps like Krita, Inkscape, and Blender which use Alt+click for their own usages. Tell all your friends and spread this information far and wide so people aren’t surprised! If you hate the new one and don’t use Krita, Blender, Inkscape, or another app which uses Alt+Click for something, you can of course change it back to Alt+click (Noah Davis, Plasma 5.20)

When dragging files from Dolphin (or elsewhere) onto the desktop, the files now end up at the location where you dragged them, rather than at the end of the last row (Radek Husek, Plasma 5.20)

The battery charge level icons displayed by the Battery And Brightness applet now reflect the current charge status more accurately (Daniel Roschka, Frameworks 5.71):
more accurate battery charge level icons

The standalone KRunner widget now closes the pop-up if you hit the Escape key while the text field is empty (Alexander Lohnau, Plasma 5.20)

When using an ultrawide screen wider than 21:9, the default horizontal panel now no longer spans the entire screen width, but rather remains at the size it would be on a 21:9 screen, horizontally centered. Also in this mode, notification pop-ups that are configured to appear close to the Notifications System Tray applet will pop up close to it rather than way far away in a corner of the screen (Kai Uwe Broulik, Plasma 5.20.0):

The new OSDs now show a percentage label for brightness and volume (me: Nate Graham, Plasma 5.20):

Screenshot_20200529_092619

How You Can Help

Have a look at https://community.kde.org/Get_Involved to discover ways to help be part of a project that really matters. Each contributor makes a huge difference in KDE; you are not a number or a cog in a machine! You don’t have to already be a programmer, either. I wasn’t when I got started. Try it, you’ll like it! We don’t bite!

Finally, consider making a tax-deductible donation to the KDE e.V. foundation.

Laptop update

Thanks to the KDE community, I’ve finally chosen and ordered a new laptop: a Lenovo ThinkPad X1 Yoga. People heavily recommended the X1 Carbon, which is essentially the same computer except less touch-focused. That led me to the Yoga which seems to fit the bill perfectly: in addition to the necessary touchscreen, according to reviews it has otherwise excellent screen characteristics, a perfect keyboard, great speakers, and a great trackpad. I also like the look and probable durability of the aluminum case. Though it’s not a Ryzen 4000-series laptop, CPU performance is still three times better than my current laptop, so I’m not complaining. Mine arrives in three weeks. Thanks again everyone!