Today in a state of ultimate boredom I decided that I would configure my personal laptop with Ubuntu.
Now, don't get me wrong, I hate this piece of sh*t as much as the next guy, but I hear that QHD scaling works out of the box with recent versions of Ubuntu. In the past i had bad experience with setting up various applications on the distro of my choosing (Debian/XFCE). GTK applications behaved a certain way, QT another. Last time i tried that it took me a good full day to get things "decent".
Now a very basic primer on, well, me. I have been using various Linux distributions since the late 90s. At some poing in my life that i had lots of spare time (there's a time and place for everything and it's called college) i used to spend approx. 1h configuring my newly installed Slackware installation to my liking. First thing i would do was re-configure the kernel. make menuconfig, lots of coke and 1h later i was done.
Fast-forward to 2020. I am now 38 and just need things to work. My distribution of choice for the past 5years has been Debian/XFCE. With minimal configuration i was able to get a decent development setup. The issues started when i bought a QHD laptop, namely the Dell XPS 9380. This little thing sports a 4k touchscreen and a fingerprint sensor. So the hunt for a decent distribution began. I immediatelly tried my go-2 setup, debian + xfce but ran into a lot of scaling issues (plus Viber would not run because of a libssl version incompatibility). After a while i reinstalled the OEM version of Windows 10 PRO that came with the laptop(i like my VTX ON!) and called it off.
Today, during a typical Greek summer day, temperatures soaring, having gotten off work, i decided to get linux onto my laptop once more. Because why not? Do i have anything better to do? So i decided to give Ubuntu another chance. I would tolerate the UI if i could get things working pretty decently.
Installation woes #1 I cannot connect to a hidden wi-fi network during installation.
Guess what? All my wifi networks are hidden. Why on earth would hidden wi-fi networks not be supported by the installation UI? That's just bad design!
No problem though, i will connect to my WiFi once i boot up and download all updates. I am then greeted by the next thing that slowly tips my mental ballance towards "angry".
What is this? A Boot manager for ants? Is there so much to ask for Grub to behave? Now, granted, it is certainly not Grub's fault and the fix is seemingly easy albeit CLI-related. Anyone not familiar with the CLI and how to trouble-shoot BASIC FUNCTIONALITY ISSUES is going to be stuck. At this point i am thinking, "while i don't remember how to fix this by heart, i'll figure it out, no biggie".
I then start configuring the basic functionality of my system. I see that finger scrolling does not work in firefox. Time to fix this issue. Why pay for a 4k touchscreen display and not have it work? A quick search later i have a valid candidate to look into.
The article suggests a firefox configuration and then editing a installation-wide file under /etc. I know what, i will knock this out of the park using my trusted, favourite editor, Vim. I remember that Ubuntu has like a central application management thingie, so i search for that. I open the app, search for Vim and install it with no hassle at all.
I then open up the terminall app and proceed to try the suggested fix from AskUbuntu, only to be greeted with this:
The only thing that passes through my mind (besides the flashing colour red) is "What the f*ck did i just install then?". What is happending? Do they not take care of the PATH? No clue, don't care, i'll just apt install it. After this i managed to get vim properly installed, tried the suggestion in the article and got one finger touch scrolling in FireFox, something that i took for granted in Windows.
The last thing that i tried to configure was the fingerprint login. I seem to remember that this laptop supports Ubuntu so my hopes were slightly-elevated.
I now know that Dell does not support the fingerprint sensor under Linux and that there is no known, working kernel driver for the sensor. So this is another thing that i will have to live without. Again, this is not Linux's fault. But if anyone is to claim that Linux is "desktop ready" has another thing coming to them. The desktop is hard and requires vendor support. Linux-is-not-there. If it was, software scaling would work without fidgeting with 100 different environment variables. The fingerprint sensor would work, because the software vendor (Canonical) would have included the drivers in the build. Viber would certainly work without the need for troubleshooting.
So, Linux is not there yet. And i don't see it getting there without major support from popular Software nd Hardware vendors. The community has certainly come a long way since the 90s.
I have now configured my system the way i want it. I have swallowed the bitter pill of minor things not working as i would like them. I admit that in some respects i am overreacting! After all that i am greeted with a sysem that just works. It works evey time the way it is supposed to. I now have a decent development environment. Applications behave the way they are supposed to. Interoperability between applications (hello Unix!) is great. I can cat, grep, pipe all day! I can even LD_PRELOAD BREAK SH*T.
I would not change this for anything else. I just don't have all day, Linux!
While the fingerprint sensor is a lost cause for now, i have gotten the integrated webcam to work with Ubuntu using Howdy. This is a feature that i could not enable on Windows 10 since this is not a Windows Hello compatible camera because it is missing IR. But under linux, project Howdy have implemented a pam module with python and OpenCV. This means that every time the system needs privillege escalation, instead of filling in my password i simply look at the camera and it's done. The experience so far has been seamless. Whenever i sudo apt install something i press enter and look at the camera and it's done. Since this is a PAM module it works everywhere. I have added a few shots of my face in various lighting conditions and it works great. Howdy is pretty configurable too.
Here's a video on how it works
I have also managed to get gestures working using this guide.
I now have a modern setup using biometrics for authentication. It only took a couple of days of casual googling and troubleshooting.