A lot of people always ask me what is the best way to contribute to opensource? Of course contributing code, documentation, spreading the gospel or even talking about opensource are great. However the easiest and seemingly least obvious method is to actually use opensource. The best way to do that is by running Linux on your workstation. There are a lot of great Linux distro’s to choose from and me being a RHatter, well let’s just say I have an impartial view.
Being an ex-macbooker, I love the simplicity and minimalist approach of Apple’s UI design and experience but I dislike their proprietary, closed system approach. As such I aim to find the best of both worlds: great UI experience without compromising on freedom, choice and promoting the power of opensource!
Currently I have a Lenovo Thinkpad X1 but great thing here is you have choice. I get that Apple’s Macbook hardware has a great look and feel (touchpad works great) but those are pretty minor things and your going to cover your laptop in stickers anyway, right?
Installing Fedora Latest
Fedora has a media writer and you can download this to create a USB Image to install Fedora. You can provide your own ISO or just let it create an image using the latest Fedora. Once you have USB image simply reboot your laptop/desktop press F12 or F8 to enter boot menu and boot from your USB. The rest is just accepting defaults. If your more advanced user you may want to also setup your own filesystem partitions and I always recommend turning on disk encryption with LUKS.
Customizing Fedora Workstation
Once you get booted into Fedora it’s time to customize. Unlike MacOS or Windows you can truly customize the desktop environment and while that is powerful and rewarding it also can be time consuming as well as turn most people off. The point here is to get something great with limited effort.
Just like any OS clicking the update button is usually the first step. You can of course click on Applications->System Tools->Software which launches the UI software package manager but this is Linux right?
$ sudo dnf update -y
Install GNOME Extentions
GNOME is the UI operating environment and has a modular plugin framework for extending it. There have been huge advances in GNOME performance and while developers do all the hard work, users make those contributions meaningful which in turns leads to more development resources.
$ sudo dnf install gnome-extensions-app
Install Dock from Dash Extensions
This extension will add a docking bar in center for favorite applications just like MacOS. Navigate to https://extensions.gnome.org/ and in search filled enter “dock from dash”. Click on the extension and in upper right there is a slider to enable the extension.
Install GNOME Tweaks
Using GNOME tweaks you can configure many aspects of the UI we will be using later
$ sudo dnf install -y gnome-tweaks
Install Google Chrome
$ sudo dnf install google-chrome
Overall wayland works but one area there is still issues is in screen sharing. If you care about that I would recommend disabling it.
$ sudo vi /etc/gdm/custom.conf WaylandEnable=false
Configure MacOS Theme
These steps will enable MacOS icons and desktop theme.
$ sudo dnf install la-capitaine-icon-theme
$ git clone https://github.com/paullinuxthemer/Mc-OS-themes.git
$ mkdir ~/.themes
$ cp -r Mc-OS-themes/McOS-MJV ~/.themes
Open GNOME Tweak tool Applications->Utilities->Tweak and navigate to appearance section. Set application theme to McOS-MJV and icons to La-Capitane. Navigate to window titlebars section and enable maximize/minimize under titlebar buttons. This adds buttons to all windows that let you maximize or minimize them.
Install RPM Fusion
This is a tool that gives you access to a lot of community developed tools and is very useful for workstations.
$ sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Optimize Battery Usage
There are additional drivers needed to ensure your battery is used efficiently. Not installing these leads to quicker battery drain.
$ sudo dnf install tlp tlp-rdw
For thinkpads add additional driver from RPM fusion.
$ dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
Install Multimedia Codecs
$ sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
$ sudo dnf groupupdate sound-and-video
Solarized is a color scheme for terminal sessions. Let’s face it staring at a black screen with green text is bad and tiring for your eyes. These color patters are soothing and will let you enjoy starring at CLI terminals.
$ sudo dnf install -y p7zip
$ mkdir ~/solarized
$ cd ~/solarized
$ git clone https://github.com/sigurdga/gnome-terminal-colors-solarized.git
Setup vim and install solarized colors for vim.
$ sudo dnf install -y vim
$ git clone https://github.com/altercation/vim-colors-solarized.git
$ mkdir -p ~/.vim/colors
$ cp vim-colors-solarized/colors/solarized.vim ~/.vim/colors/
Pretty much the standard IDE for software development, infrastructure-as-code, blogging or anything that requires editing text.
$ sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc
$ cat <<EOF | sudo tee /etc/yum.repos.d/vscode.repo [code] name=Visual Studio Code baseurl=https://packages.microsoft.com/yumrepos/vscode enabled=1 gpgcheck=1 gpgkey=https://packages.microsoft.com/keys/microsoft.asc EOF
$ sudo dnf check-update
$ sudo dnf install -y code
Install Ansible (Optional)
If you aren’t automating stuff with Ansible it is never to late to change your life.
$ sudo dnf install -y ansible
$ sudo dnf install -y python-ansible-runner
$ pip install ansible-runner-http
$ pip install openshift
$ ansible-galaxy collection install kubernetes.core
Install Go (Optional)
Golang is by far my language of choice for it’s simplicity and elegance.
$ mkdir -p ~/go/src/github.com
$ sudo dnf install -y go
$ vi ~/.bash_profile export GOBIN=/home/username export GOPATH=/home/username/src export EDITOR=vim
Install OpenShift and Kubectl (Optional)
Likely there are newer releases so grab latest. OpenShift and Kubectl 4.9
Install Operator SDK (Optional)
If you want to put all those Ansible skills to use in cloud-native world start writing Operators.
Likely there are newer releases so grab latest or release for your OCP release. Operator Framework 4.9
In this article we discussed the importance of choice and at least why you might consider Linux for your next workstation operating system. We also go through a step-by-step guide in configuring your Fedora workstation and give it similar look and feel to MacOS. If I only convinced one person to give Linux a try then it was all worth it!
(c) 2022 Keith Tenzer