I switched my Manjaro installation to Gnome instead of KDE last night, as a lot of the tools I use seem to assume a Gnome/GTK environment and some of the integrations didn’t work right on KDE.

Anyway, I can now use my home PC as a space heater 🔥

I mentioned that I was thinking about installing Manjaro Linux… well I went ahead and did it. Not even just a little, by dual-booting with Windows 10. No, I wiped everything and just went for it as my one and only operating system. What follows is my notes from the install, so if I want to get back to where I was at some point in the future, I can retrace my steps.

“Live USB” Installer

Due to having a Broadcom wireless adapter in my self-built PC, the networking didn’t work “out of the box” for me. Which was a surprise, because it did work the last time I installed Linux. From what I’ve read, kernel 3 worked fine, but kernel 4 (on the Live image) has some problems with these cards, due to their drivers. This actually stumped me for a while, but in the end… iPhone tethering to the rescue! Put an iPhone into “hotspot” mode, then plug it in to the PC via USB, and Manjaro picks it up as a working network adapter pretty much instantly. It worked over Bluetooth as well. I’ll admit I was impressed by this.

This let me connect to the internet and test how to get the WiFi card working. Once I had a plan for that, it was on to the installation

Installation

Other than the network adapter, everything else about the installation was a breeze. Manjaro came pre-installed with the proprietary Nvidia graphics driver, and after picking a few options (user account, disk partitioning), the installer formatted the disk, set everything up, and prompted me to reboot within a couple of minutes.

Post Installation

So here’s where I had to fix a couple of things.

Network Drivers

With the iPhone still tethered, the process was something like this:

  • Perform a full system update using the package manager
  • Use the Manjaro Kernel Manager to install and switch to the latest Linux 5.0 kernel
  • Uninstall the broadcom-wl driver package
  • Reboot
  • Install the broadcom-wl-dkms drivers
  • Reboot
  • Configure the network connection in the connection manager

I configured my VPN by downloading the profiles from NordVPN, imported one of them, then set my WiFi connection to automatically connect to the VPN when the network started up.

Blank Screen during/after boot

I encountered a really strange issue where the login screen would not show after boot, and the system would appear to hang until I pressed some keys. It wasn’t a huge deal, once I figured out to press something, but it did start to niggle and made my system feel slower. After a lot of searching I came across this thread talking about similar symptoms. I installed the recommended package haveged, enabled the service, rebooted, and the problem was instantly fixed. After a little more reading, I replaced haveged with rng-tools, and everything has been fine since.

Other tweaks

I followed some of the suggestions from this video – namely install the fonts, reduce “swappiness”, install Pamac and a firewall.

Look and Feel

This was my first time using KDE as my desktop environment, so I was keen to spend some time customising it to my liking. So far I’ve settled on the “Adapta Breeze Nokto” theme, some additional icons, and played around with the panel + widget setup. It’s not fancy, but my desktop currently looks like this:

I’m generally a fan of darker themes, as they’re less of a strain on my eyes.

Other Random Notes

So far I’ve only installed a couple of extra software packages and tweaked a couple of small things.

  • I installed Lutris, for running Blizzard games. Hearthstone and World of Warcraft run flawlessly in my limited testing.
  • Visual Studio Code was also installed, for pretty much anything involving an editor.
  • Steam came pre-installed. A quick check shows around half my existing library is already compatible with Linux; the rest I’ll check through “Steam Play” and Proton.
  • I added a “bootsplash” loading screen using the (kinda vague) instructions in this thread. Basically: install a suitable theme, edit a kernel hook and rebuild the kernel, then add an option to GRUB. Given the speed everything loads at, this might be unnecessary – it’s shown for at most 1.5 seconds.
  • On SSD-based systems, enable the fstrim.timer service to enable TRIM support (recommended).
  • With the Nvidia driver, get better looking scrolling in Firefox by enabling layers.acceleration.force-enabled in about:config.

That’s all my notes for now. No doubt I’ll post up more as I get more comfortable with the OS and explore the capabilities a bit more ?

I’m getting an urge to switch my main desktop PC back to some flavour of Linux. It’s been a couple of years, and the Windows Subsystem for Linux has been adequate, but I’ve never been able to get it to work 100%. There’s always something complaining, that should be working “cross-platform” out of the box.

Although, to be honest, for all the time I get on the desktop these days it’s probably just change for the sake of change…

For someone who’s primarily a developer/support person, I spend a lot of time setting up and configuring – or fixing – servers. I guess this came from an eagerness to learn and I got tarred with the “Linux/Server” Guy brushes at some point!

My interest in Operations has had an uptick again recently, so I’ve been doing a bit of reading of late. This morning, while waiting on news about some work-related activities I’ve come across a couple of interesting articles:

My First 5 Minutes On A Server; Or, Essential Security for Linux Servers by Brian Kennedy is a fantastic little quick-start for securing a Linux server. It’s not everything you need to do, but as noted in the article, it sets the foundations for a secure server which is easy to keep secure. Do these steps first, then go about securing any additional services you need to run.

One thing I’ve been wondering about, is setting up my own email system, rather than run on Google Apps. As convenient as the Google platform is, I do sometimes think I’m trusting them with a bit too much of my information. Recent revelations about the NSA/GCHQ, PRISM, and whatever-comes-next, from Edward Snowden haven’t done much to allay those worries.

But Google Apps is convenient. It wraps my mail, calander, contacts, and many other things into a nice package that is available everywhere and syncs across platform, with Push notifications, search, and other modern conveniences… but never the less, I’ve been thinking about how I could move away from the “Do-No-Evil” Empire, which is why Drew Crawford’s excellent, in-depth article “NSA-proof your e-mail in 2 hours” was a great find. I might spin up an instance on my dormant Joyent account and give it a try on one of my spare domains, so I can evaluate the process and benefits before deciding on moving my primary mail domain.

Other topics which have crossed my path this weekend are system configuration, maintenance, and automation using tools such as Chef and Puppet. The idea of taking a known-good environment and replicating it with just a few commands is definitely appealing – particularly when it comes to tasks such as setting up development/test environments! I haven’t gone too far into these topics yet, but I’m hoping to find the time in the next few weeks to go through some of the articles I’ve found.

That cool little “Coder for Raspberry Pi” project from Google which I linked to earlier doesn’t just run on Raspberry Pi. You can run it on any old Linux PC (Mac works too, but the instructions are slightly different).

I set it up in less than 2 minutes using these commands (note that I’m running Debian Sid):

sudo useradd -M pi
sudo apt-get install redis-server
cd ~/projects
git clone https://github.com/googlecreativelab/coder.git
cd coder/coder-base
npm install
npm start

Node.js is also a requirement, so if you don’t have that, you’ll need to install that at step 2 as well.

Once everything is up and running, point your browser at https://localhost:8081/. You’ll need to specify a password the first time you run Coder, after which you’ll be able to try the environment out. It’s pretty neat, and the sample clone of Asteroids is quite addictive!