🌓

My step-by-step guide setting up Linux in 2022 Linux has got to a point where I'm in no need to come back to Windows/Mac OSX after missing features or frustration of things not working.

by
on May 20, 2022
(6 minute read)

For the last decade we’ve seen Apple and Microsoft increasingly focusing on milking more money from their users rather than hearing them and making better experiences.

Simple Cloud Hosting Built for Developers

Microsoft, by pushing their stupid Edge browser, factory installed spammy apps and trials that clutter a clean install and are difficult to get rid of, overall extremely annoying UX issues that they still haven’t fixed like forcing system-locking updates at the worst time they can (when turning on/off your PC for example, which is when you actually need to do some work or need to leave), turning everything into a subscription by forcing you to pay every month for Office regardless of your cloud usage, redesigning parts of the UI just for the sake of releasing a new Windows version (while making it worse, sluggish and incomplete)…

Apple, by delaying HTML5/Web features on their Safari browser so you need to download stuff from their App Store for an acceptable experience, removing chargers and connectors from a $2,000 purchase so you buy their $80 adapters, rotting cables that degrade after a few years, soldering RAM and other hardware components so you need to buy a whole new Apple thing, making you upgrade your old devices to a new OS version that they know will not work well and block you from downgrading, inexplicable incompatibilities with competitor’s software and hardware…

And then there’s Linux, still greatly unknown to the masses but becoming very friendly to their users. Long gone are the days where you had to be comfortable using a command line and have a free weekend to spare because on a fresh install you started with no sound, no WiFi, no screen brightness control or the correct resolution for your monitor. Or because there weren’t usable apps for work-related stuff.

This has changed. It’s 2022 and Linux has got to a point where I’m in no need to come back to Windows/Mac OS X after a few months of frustration and missing functionality on Linux. For the past year I’ve got a couple Apple laptops, a Windows desktop and an old laptop with Linux in it. Thing is, I’ve been able to be productive and actually enjoy working in Linux. And I haven’t found any blocker or issue that made me waste my time trying to fix it, on the contrary, there’s no annoyances that OSX and Windows have.

Also, many companies are starting to support Linux more seriously: Nvidia open sourced a bit of code, HP is releasing a Linux laptop for developers at ~$1k, more and more companies (SlimBook, Tuxedo, etc.) are selling Linux-friendly laptops and Linux distros are getting more support and funding than ever.

So here we go, here’s my simple setup on what I do on a fresh Linux installation which is just some settings tweaking and app installs, as well as the occasional command line, but just a tiny bit.

My preferred Linux distro (for laptops/desktops): Xubuntu

I love Linux, but I hate dealing with miss-configurations, driver installations and troubleshooting. Ubuntu gives me that, while I’d love to go with Linux Mint or other distros, I know Ubuntu will just work and needs no setup, has tons of compatible drivers and updates extremely often. And if I have any issues, I can find tons of resources online of people in the same situation as myself.

As for the graphical interface, I’ve always loved XFCE for it’s performance/beautifulness ratio. It is lightweight yet good looking enough, and it’s gotten even better over the years while keeping faithful to their principles. No animations, shadows, transparencies or unnecessary eye-candy… I’m very OK with that, I don’t need it. Plus, the speed boost it gives to your machine is super satisfying. Even in high-end devices such as my desktop gaming computer I find extremely amusing to have a super-lightweight OS. Everything works so fast it’s hilariously shocking.

So from here on, this article is just a quick list of tasks I do to get a new device up and ready, mostly so I remember what I did and can replicate it later on a new laptop. Hopefully you will discover some gems.

Customizing Xubuntu

Dark mode: Settings > Appearance > Greybird-dark

Customize Lock screen: Settings > LightDM GTK+ Greeter Settings

Bigger Black cursor: Settings > Mouse & Trackpad > Theme

DPI: Settings > Appearance > DPI: 120

Windows key: Settings > Keyboard > Application Shortcuts > Add > xfce4-popup-whiskermenu > OK > Press the Windows key

Colored Emojis

Still surprised in 2022 the default emojis are ugly black and white ones. Pretty sure someone has designed some decent colored ones and released them with an open license friendly to Linux.

sudo apt-add-repository ppa:eosrei/fonts
sudo apt install fonts-noto-color-emoji

Install custom fonts

I miss a few fonts, some are great open source or free ones I love and some are the official ones from companies I work for.

Tablet PC specific settings

Open Onboard and tweak around Auto-show.

Status bar widgets

CPU Graph: I find it a good practice to monitor my devices CPU to see how much stress they’re going through. Specially useful to see if any App has gone crazy, or to save CPU cycles and battery whenever I need it most. Keeping it on the status bar is a great unobtrusive way to keep an eye on the battery drainage.

Clock: Show seconds (add %S).

Battery: show percentage/time remaining.

Apps

Here’s a list of the apps I need for work. I don’t develop native Apps often so no need for Xcode, Android Studio and such. I prefer open source software and, whenever possible, multi-platform.

Brave browser

I know it’s not the best browser out there and that the “privacy” statements they make have some fine print. But I have everything synced in there and have a ton of Chrome/Chromium Extensions developed there so I can’t make the switch yet to Firefox.

Syncthing

Love it. It’s replaced Dropbox, iCloud, Mega, and any other paid alternative out there. I have it installed on every computer/laptop I own plus a couple Raspberry Pis with old HDs running 24/7 for redundancy. Super cheap hardware and low electricity bills (4-7 Watts) that work wonders.

Visual Sudio Code

I know it’s not the most complete IDE out there, but the flexibility you get with extensions and it being light and open source makes me love it.

DBeaver

I’m not going to lie, I miss Sequel Ace (revamp of Sequel Pro) on Mac OSX to manage MySQL/MariaDB databases. But DBeaver works on all OSes, is being actively developed and has most features. On the downside, I miss the simplicity of a well designed Apple App.

FileZilla

I miss Cyberduck here mainly for its simplicity too. And FileZilla remembers me of the old days when you coded websites with <TABLE> and <FONT>, but it is powerful and has all the features I need to quickly access server files.

Github Desktop

I could do with the command line… But the file diff viewer, listing commits, etc… is nicer than scrolling in the terminal.

KDE Connect

Get notifications from your phone and many other goodies, works great.

VLC

Best video player ever with every codec. No explanation needed for this one.

Redshift

Eye strain saver to work at night.

ClipIt

Clipboard Manager, haven’t tried many but this one fulfils my needs.

Espanso

Allows me to type Spanish accents (my config file is available here).

Tooling Apps

Please donate to keep this server up

Docker, Git…

Bonus Apps

Those are pretty much all the Apps that I use on a weekly basis. Some other honorable mentions:

  • Iriun Webcam: for more professional video-chats using a smartphone’s camera
  • Caffeine: last updated in 2009? need to find a recently updated one like KeepingYouAwake but for Linux
  • Postman: probably going to be replaced by a web-app called Hoppscotch.io, Postman is becoming very cluttered
  • Balena Etcher: to burn ISO images (can do multiple USBs at once, which is a nice touch)
  • Teamviewer: mainly for customer support and helping my parents/coworkers
  • Ulauncher: app launcher similar to Spotlight Search in OSX
  • Slimjet: a slim version of Chrome that works on just 100MB RAM (doesn’t play some videos but it’s still impressive and ideal for low-resource machines, just as a last resort, don’t get it if you can do with normal Chrome/Brave/Firefox)
  • Flameshot: for taking screenshots and annotating stuff in them
  • Pitivi: simple video editor

Things I miss and haven’t found a replacement yet

  • iTerm2: not available on Linux, I’m looking for alternatives that have a sidebar with snippets functionality I can quickly select. There’s probably 10 commands I use several times a day and I don’t like aliases: I like seeing exactly what’s going to be sent, plus sometimes I want to tweak the parameters of a command.
  • Sequel Ace: using DBeaver for now, miss the simplicity
  • ImageOptim: drag and drop an image to optimize its size. There’s another great one for Windows that does more than just images.

Free 100% online banking account

💳 Get your free debit Mastercard

No comments yet

Treasure Chest

Get notified of new projects I make
Usually one email every 3 months

Follow me for cool new products and interesting findings on graphic design, web development, marketing, startups, life and humor.


/*Twitter*/ !function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs"); /*Facebook (function(d, s, id) {var js, fjs = d.getElementsByTagName(s)[0];if (d.getElementById(id)) {return;}js = d.createElement(s); js.id = id;js.src = "//connect.facebook.net/en_GB/all.js#xfbml=1&appId=28624667607";fjs.parentNode.insertBefore(js, fjs);}(document, 'script', 'facebook-jssdk'));*/ /*Google+*/ window.___gcfg = {lang: 'en-GB'};(function() {var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;po.src = 'https://apis.google.com/js/plusone.js';var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);})();