User Tools

Site Tools


linux_desktop_setup

It's 2024 and I'm doing my every-few-years "try to make Linux usable". I've gotten farther than ever with only moderate amounts of embarrassingly shallow and obvious bugs. Here are my disorganized findings/tips.

Distro and desktop environment

After an exhaustive and exhausting evaluation, here's the tested distros ranked:

  1. Linux Mint: Winner. It's Ubuntu, but with adults coming in to fix/remove the dumb stuff (GNOME 3, snaps, etc).
  2. Manjaro with Cinnamon is fine, but as neat as Arch-based distros are, I'd rather have something that third party vendors have actually heard of. Also, other Manjaros? See desktop environment list below.
  3. Xubuntu: Good if XFCE is for you, but it's not for me (see desktop environment list below).
  4. Ubuntu Cinnamon: The right idea, but no reason for this to exist when Mint exists.
  5. Debian: Yay freedom, boo drivers not working.
  6. EndeavorOS: Also-ran #4584 that will be dead and forgotten before you finish reading this sentence. The post-install welcome window tells you all you need to know: a massive grid of buttons with every random function someone wanted added.
  7. Ubuntu: The desktop environment designed by a head injury victim whose only prior experience was hearing an Android 1.0 interface half-described to them over a walkie-talkie. Choked with anti-features like snaps (open source client/closed source server, apps don't integrate right half the time, craps up your mount table with dozens of fake entries). Still has good bones for a real distro to fork from, but any dream of Ubuntu itself being usable by adults to achieve goals has long died.
  8. Arch: No installer, no inbuilt GUI, and every operation is an inch-thick bomb defusal procedure. That said, decent if off-beat package manager, and it handles third party open source installs via its "AUR" better than other distros. A fine base for a real distro to start from, but then you just have something that no third party supports (see Manjaro).

Connected to the above, here are the correct opinions on desktop environments:

  • Overall: Too damn many. Half these things should die so their developers can work on the survivors, because every single one has toddler-level bugs that you can stumble into within 3 minutes of first boot.
  1. Cinnamon: The best available. Mature codebase from GNOME (before GNOME got dumb), modern UI features (icon-based dock, thumbnail previews, reasonable start menu).
  2. XFCE: Not bad, but while it's fine to drop into as a tourist, it's too inflexible to be a daily driver.
  3. KDE: I am shocked how slow it can make a modern computer, and how quick you'll find dumb bugs. Can't even do taskbar window thumbnails out of box.
  4. Mate: Not broken, but also frozen in 2005. Welcome to Windows XP.
  5. Budgie: Trying to the same as Cinnamon, but from scratch and at pre-alpha quality.
  6. i3: Insufferable nerd shit by people that never learned what UI discoverability is. The vim of desktops.
  7. GNOME: See "Ubuntu" above – this UI needs to be put out of its misery. I would rather learn i3 than put up with this shit.
  8. Enlightenment: This is it, the most jibbering batshit insane environment tested. On first boot, a sequence of incredibly neurotic warnings pop up for things ranging from ACPI stepping revision of your motherboard to the notification that ethernet, in fact, still exists. The launcher icons violently explode continuously at you if you so much as hover over them. Right click menu includes an option ominously labeled "Run everything". I mentioned using it to a friend, and he replied "Oh, you don't know about the Enlightenment guy? He's nuts" and linked me this article, which states, among many things, that every interaction is based on the casting of void* pointers. I never thought I could look at a GUI and feel the pointer casting, but here, you can.

Random setup tips

This is assuming you're on Linux Mint, per objective truths above.

Biggest new thing that makes Linux potentially livable

ChatGPT! You don't have to mine through loathsome Linux forums any more, because a robot has already been there to mine the facts and discard the bitter slapfights.

It's perfect for finding which cryptic tool will help you achieve a given basic thing. It's made a tremendous difference to the morale of attempting to survive a desktop Linux.

Mouse cursor offset bug

I have multiple monitors, one of which is rotated 90 degrees. Attempting to input this into the display manager will mean that the mouse cursor's appearance becomes offset from its actual location. This is an amazingly easy to find, shallow bug, so I'm sure will survive for decades.

Good news: Just install the real nvidia drivers, and it works.

Installing stuff

Mint's Software Manager is pretty good and can handle most third party Linux supporting apps itself, including:

  • Discord
  • Spotify
  • Dropbox (use system package!)
  • VLC
  • Brave
  • VirtualBox

Here's what you should *NOT* use it for:

  • Zoom. If you install flatpak via Software Manager, then the authorization click-through to login from the browser won't work. Just google "zoom install linux" and get the company's deb file.

Stuff to install

Windows migrations (not all figured out yet):

  • WinMerge → meld
  • VLC → VLC
  • Notepad++ → xed? vscode? something else?
  • Greenshot → ?
  • WizTree → ?

Quick installation command:

sudo apt install meld vlc

AutoHotKey-type-stuff

On Windows I use a bunch of AutoHotKey recipes. I haven't replaced it all yet, but here's what I have so far.

For simple button mapping, use xbindkeys (to bind a key/button to a command) and xdotool (to simulate a keypress with a command).

sudo apt-get install xbindkeys xdotool
xbindkeys --defaults > ~/.xbindkeysrc

Then edit ~/.xbindkeysrc with:

"xdotool key XF86AudioNext"
  b:8

"xdotool key XF86AudioPlay"
  b:9

This maps the mouse side buttons to the next song and play/pause media buttons. If your side button has a different identifier, you can find out by running the following command and clicking around:

xev | grep -i button

To (re-)run the binder:

killall xbindkeys ; xbindkeys

To ensure it starts on login, run the "Startup applications" program and verify it's in the list; add it if not.

Font rendering fix

I imported some Windows fonts, but some of them (especially Calibri) rendered really awful – no smoothing, or worse, smoothing only on ligatures like "fi". Dumb.

Turns out these fonts have pixel fonts mixed in, which Linux uses badly. Solution is to not use the embedded pixel fonts, which means a dive into the gross world of Linux font options. Some people even collect and trade cryptic font config files…how shameful. Source.

To fix, make /home/tkbletsc/.config/fontconfig/conf.d/99-hatebitmapfonts.conf with content:

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
    <!-- Prevent Gnome from using embedded bitmaps in fonts like Calibri -->
    <match target="font">
        <edit name="embeddedbitmap" mode="assign"><bool>false</bool></edit>
    </match>

    <!-- Reject bitmap fonts in favour of Truetype, Postscript, etc. -->
    <match target="font">
        <selectfont><rejectfont><pattern>
            <patelt name="scalable"><bool>false</bool></patelt>
        </pattern></rejectfont></selectfont>
    </match>

    <!-- Substitute truetype fonts for bitmap ones -->
    <match target="font">
        <edit name="prefer_outline"><bool>true</bool></edit>
    </match>
</fontconfig>

Editing the style

Weirdly, Cinnamon has lots of themes which work well, but very little ability to do finer-grain edits. I wanted my taskbar to be blue, because otherwise it's a grey overload, so I went on a bit of a walkabout.

Conclusion:

  • First, pick your favorite theme to edit, mine was Mint-Y-Dark-Aqua
  • Copy to ~/.themes and rename
mkdir ~/.themes
cd ~/.themes
cp -r /usr/share/themes/Mint-Y-Dark-Aqua/ .
mv Mint-Y-Dark-Aqua My-Dark-Aqua
  • Edit My-Dark-Aqua/index.theme and set Name, GtkTheme, and Comment as desired
  • Edit My-Dark-Aqua/cinnamon/cinnamon.css:
.panel-top, .panel-bottom, .panel-left, .panel-right {
  ...
  background-color: rgba(25, 25, 100, 0.99); /* tkb: taskbar color */
linux_desktop_setup.txt · Last modified: 2024/02/02 20:07 by tkbletsc

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki