Project 6: Zorin OS Core- Linux (#1)
A custom Linux setup — my very first — that sparked my “Linux fire.” This build was all about learning what I could do, taking an idea from imagination to implementation.
Overview:
This project was designed to convert a lightweight Linux system (Zorin OS Core) into a personal leisure and entertainment hub, which ultimately turned into a full-on daily driver setup. The focus was on offline retro-style games, distraction-free media tools, open-source office tools and a clean desktop interface.
Why Zorin OS Core? Zorin OS Core offered a balance of performance and style, ideal for older or mid-range hardware. Its Windows-like/Chrome-like layout made it intuitive for a new Linux NOOB like myself to navigate the OS, desktop environment, and interface. Definitely recommend for first-time users who want a modern DE and easy-to-use system right out of the box. They also offer different options such as the PRO version (paid), Core version (free), and Edu version (free). So if you love the Zorin OS, they do offer a PRO option with support.
Step 1: Installation and Initial Setup
Downloaded Zorin OS Core ISO and flashed it using balenaEtcher to a USB 3.0 drive.
Disabled Secure Boot in BIOS. (This is something that I learned the hard way. Everything will install and run just fine if you have Secure Boot enabled, but you must NOT ONLY enable but enroll the MOK during the setup or you may run into some issues moving forward with different tasks. I did remove the secure boot feature as I am using this device as a ‘test-device’ in a ‘home-lab’.)
Connected to a wired network to ensure smooth updates during installation. (You don’t have to do this, but I will say this, doing it made sure that I got all the proper updates I needed without fail. You can do a no network connection install, but I wanted the most up-to-date versions and updates during the install.)
Installed using the guided installer and chose minimal options to reduce bloat.
Step 2: System Updates
After the install, the system is likely to reboot, and then we can log in to the device to start the post-install process. Login and fire up the terminal, and then we will run a few quick commands.
Run:
sudo apt update
sudo apt upgrade -y
flatpak update -y
This should update our system and all software. Once complete, just for good measure, we can run one more command. This will reboot our system.
Run:
sudo reboot
Step 3: Customizing the Desktop Environment
First, I used the Zorin Appearance application to configure the system to my own personal desktop environment:
Set the system to dark theme
Kept the panel at the bottom
Increased the panel width and height
Increased the icon size in the panel
Created and set my own wallpaper
Increased the font/text size and desktop icon size
Enabled desktop icons
Set the HOME folder
Set the TRASH folder
Step 4: Installing Entertainment Apps
Installed offline-friendly and retro-inspired games using the terminal, so here we fired up the terminal and ran a few more commands:
Run:
sudo apt install supertux supertuxkart kapman
With this command I was able to install Supertuxkart (Linux-style MarioKart), Supertux (Linux-style SuperMario), and Kapman (Linux-style Pacman). We will add this on to an additional project moving forward: creating a Game Hub, one location to launch all of our retro games.
Additionally, I wanted to install a few more applications. I needed something that would allow for remote tech support (peer-to-peer), and I wanted to trial two additional applications that I learned about during my introduction to Linux distros and open-source software. From here we can once again install these applications through the Software (Application Center) as well as the terminal. We can fire up the terminal, and run a few more commands.
Run:
flatpak install flathub com.rustdesk.RustDesk
RustDesk (Flatpak) | Remote Tech Support Tool
flatpak install flathub io.freetubeapp.FreeTube
FreeTube (Flatpak) | YouTube without all the ads, no account
sudo apt install mozilla-firefox
Firefox (Snap) | Second Web Browser to test
Step 5: Creating a Custom Game Launcher (GameHub)
Alright, for this section, this is something that I simply just wondered if I could, then why not, right? So I wanted to be able to have a ‘hub,’ a central point where I could launch any of the retro games that I installed without having to search or go through the application launcher. So I looked up ‘how to build a window with buttons?’ and I found something called YAD which was dope because I could install it on my Linux device(s). So of course, I fired up the terminal and then ran a few commands:
Run:
sudo apt install yad
With the terminal fired up still, I created a (.sh) file using nano with something like:
nano gamehub.sh
Wrote a script GameHub.sh:
#!/bin/bash
yad --form \
--title="Linux Game Hub" \
--width=300 --height=300 \
--image="/home/justcurt/Pictures/gamehub-resized.png" \
--image-on-top \
--button="SuperTuxKart:0" \
--button="SuperTux2:1" \
--button="Kapman:2"
case $? in
0) nohup /usr/games/supertuxkart >/dev/null 2>&1 & ;;
1) nohup /usr/games/supertux2 >/dev/null 2>&1 & ;;
2) nohup /usr/games/kapman >/dev/null 2>&1 & ;;
esac
Now that everything is working as I had envisioned, I decided to create another ‘hub’ and this one more specifically geared towards office tools (libre office, okular, pdf arranger)
Wrote a script OfficeHub.sh:
#!/bin/bash
yad --form \
--title="Office Tools Hub" \
--width=400 --height=400 \
--image="/home/$USER/Pictures/officehub-bg.png" \
--image-on-top \
--button="LibreOffice:0" \
--button="Okular:1" \
--button="Document Scanner:2" \
--button="Exit:3"
case $? in
0) nohup libreoffice --nologo >/dev/null 2>&1 & ;;
1) nohup flatpak run org.kde.okular >/dev/null 2>&1 & ;;
2) nohup pdfarranger >/dev/null 2>&1 & ;;
3) exit 0 ;;
esac
Made it executable and wrapped it in a .desktop launcher with a playful retro icon.
Step 6: Final Panel and Desktop Layout
Cleaned up the desktop and kept it focused
Created (.desktop) files for:
Brave
Firefox
RustDesk
FreeTube
Example: (Flatpak - Package example)
[Desktop Entry]
Version=1.0
Type=Application
Name=Firefox
Comment=Browse the web
Exec=/usr/bin/flatpak run org.mozilla.firefox
Icon=org.mozilla.firefox
Terminal=false
Categories=Network;WebBrowser;
GameHub Launcher (SuperTuxKart, SuperTux, Kapman) (Desktop launcher wrapped script)
[Desktop Entry]
Version=1.0
Type=Application
Name=Linux Game Hub
Comment=Launch favorite retro games
Exec=bash -c "/home/justcurt/Scripts/GameHub.sh"
Icon=applications-games
Terminal=false
Categories=Game;
OfficeHub Launcher (LibreOffice, Okular, PDF Arranger) (Desktop launcher wrapped script)
[Desktop Entry]
Version=1.0
Type=Application
Name=Linux Office Hub
Comment=Launch favorite office apps
Exec=bash -c "/home/justcurt/Scripts/OfficeHub.sh"
Icon=applications-office
Terminal=false
Categories=Office;
Kept the original folders in place:
HOME
TRASH
Panel included:
App Launcher, Terminal, File Manager, App Center, System Settings
Monitoring tools: GUFW, Disk Usage Analyzer, System Monitor
Final Outcome
Launch games or tools from desktop or panel.
Browse YouTube via FreeTube.
Connect remotely using RustDesk.
Low memory usage and excellent responsiveness on modest hardware.