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.

Previous
Previous

WTNP | System Backup & Recovery Configuration

Next
Next

WTNP | Zorin OS Education- Linux (#2)