Korora Project is a Linux distro I created over 13 years ago, which (since 2010) takes Fedora and applies dozens of tweaks in an effort to make it more usable “out of the box” for every day users.
Even with one or two others helping, it has been a lot of work so I’ve taken a break from the project for the last year to focus on other things. There has been no release of Korora since and so lately I’ve been running stock Fedora 29 Workstation (GNOME) on my laptop.
I enjoy the Korora defaults though and given that my family also runs Korora, I wanted a way to be able to move them to stock Fedora while keeping the same packages as well as the look and feel.
So, I created a Korora Ansible Role (it’s also on Ansible Galaxy) to apply the same Korora tweaks for stock Fedora Workstation (GNOME) plus an example playbook which uses it.
I tried to make it flexible by using variables so that users can change default package lists and settings for each machine, as required.
Running it on your local machine is pretty trivial, there’s a shell script with a sample inventory for localhost.
$ git clone --recursive https://github.com/csmart/korora-ansible ~/korora-ansible
$ cd ~/korora-ansible
$ ./run.sh
The end result is something like this!
Customising it for particular machines is pretty easy thanks to Ansible, especially when using a YAML inventory.
For example, the following inventory for localhost at ~/korora-ansible/inventory/hosts-custom.yml will override defaults and add a few extras.
- Remove totem
- Install kodi
- Change GNOME favourites (links in the dash)
- Install nginx webserver, enable it and open the firewall for web traffic
- Install Adapta theme and set GTK and GNOME shell themes
- Set fonts for the system
- You can do more!
cd ~/korora-ansible
cat > ./inventory/hosts-custom.yml<<EOF
all:
hosts:
localhost:
ansible_connection: local
korora_packages_custom:
remove:
- totem
korora_shell_favourites:
install:
- kodi
apps:
- firefox.desktop
- vlc.desktop
- kodi.desktop
- shotwell.desktop
- org.gnome.Nautilus.desktop
- org.gnome.Software.desktop
- org.gnome.Terminal.desktop
korora_services_custom:
install:
- nginx
enable:
- nginx
korora_firewall_custom:
allow:
- http
korora_gtk_theme:
name: Adapta
install:
- adapta-gtk-theme
korora_shell_theme:
name: Adapta
korora_desktop_font:
name: "Droid Sans Regular 11"
install:
- google-droid-sans-fonts
korora_desktop_document_font:
name: "Droid Sans Regular 11"
korora_desktop_titlebar_font:
name: "Droid Sans Bold 11"
korora_terminal_font:
name: "Droid Sans Mono Regular 11"
install:
- google-droid-sans-mono-fonts
vars:
ansible_python_interpreter: /usr/bin/python3
EOF
You would run the playbook with that custom inventory file by passing it in as the first argument.
$ ./run.sh ./inventory/hosts-custom.yml