View on GitHub

ublue

A familiar(ish) Ubuntu desktop for Fedora Silverblue.

Fedora Silverblue for Ubuntu Expatriates

Warning Fedora 37 will be the last version of this, now that Fedora Silverblue supports building and booting from OCI images we will move to a cloud-native approach, hope to see you there! https://github.com/ublue-os/ubuntu

TLDR: I’ve been using Ubuntu since 2004, however I want a modern image based desktop. Can I have my cake and eat it too? This is not a new distribution (whew!), just a different set of defaults and apps scripted up, with a dash of container goodies so I can still also use Ubuntu.

The intended audience are cloud leaning developers who use Linux desktops, the niche of the niche. However it’s also a great gaming setup, traditional desktop, or whatever you’re using now because it’s also just Fedora. If you’re looking for a more reliable way to do this then Jim Campbell’s ansible playbook is probably a good place to start. Let’s open our minds and do a mashup … Here’s a video tour, or keep scrolling down!

Video Overview

Scope

This script is mostly trying to replicate Ubuntu’s desktop and terminal experience. It changes the default GNOME to a more familiar Ubuntu dock setup, and then sets up the Ubuntu Cloud Image as a Distrobox so that your CLI experience remains the same as Ubuntu.

Screenshot from 2021-11-06 16-06-50

If you want a more in depth view of what’s happening I encourage you to take this apart and see what it’s doing so you can learn about what I’m trying to do, and of course let me know about what you’re building so we can celebrate.

Features

:heart: :heart: :heart: WARNING: You are changing system defaults and pushing more into the container land than usual, please be respectful of our OSS family and be thoughtful before filing issues with either Fedora or the maintainers of the cloud images. Thanks!

After installing all the components, you will get:

I replaced the distro Firefox with the flatpak from upstream. As per upstream Silverblue, you want your apps to be either in containers (where you install them via apt/dnf) and your desktop apps to come via flatpaks.

Maintenance: The gotcha is you gotta shutdown/reboot your PC on the regular (whatever matches your workflow). This is the price the UNIX gods demand for the removal of dpkg-reconfigure -a from your life. I just shut it down at the end of each workday. Your reward is little-to-zero host OS maintenance.

Desktop Changes

While upstream GNOME is fine I’ve been using a seb128-built desktop for most of my adult life, it’s my home, so I made some changes.

This is not a distro, so no patches, etc, basically looking at the default setup in Ubuntu and mirroring it in Fedora. Tailor to your taste. I decided to use the distro packages for these extensions instead of snagging them from extensions.gnome.org. Sometimes these break so I turn off the version checking. YOLO not my circus, not my monkeys.

Instructions

  1. Install Fedora Silverblue - probably don’t do this on an existing system, just browse the repo and cherry pick if you’re interested.
  2. Make sure you’re up to date with rpm-ostree update and a reboot if necessary
  3. Clone this repo: git clone https://github.com/castrojo/ublue.git
  4. cd ublue
  5. Edit the applications.list file to your liking, I’ve chosen some decent defaults.
  6. Run the first part of the script: ./00-install-apps.sh
  7. Get a coffee, and then reboot your computer (Important!)
  8. (Optional): Run ./01-desktop.sh: This will change the desktop to a more Ubuntu setup, if you prefer vanilla GNOME don’t run this.
  9. (Optional): Run ./02-integrations.sh: This will set up a wallpaper and the Ubuntu fonts, and set up the distroboxes and keyboard shortcuts
  10. (Optional): Run the various scripts in bits/ to install vscode, tailscale, and the Ubuntu themes. We’ll add little mini scripts here that are convenient for us.

Make something better, turn on GitHub sponsors, and I’ll be the first one sending you money on the regular. Bring the cloud native dream to the people. Just please, for the love of all that is holy, don’t make another distro.

To revert (and I mean, totally revert, you’ve been warned):

  1. ./reset.sh will reset the dconf database and ostree back to defaults and reboot you back to the stock Fedora experience.

Distrobox, your new user space

We’ve included distrobox. We’ll use this to create our Ubuntu userspace:

distrobox-create -i docker.io/library/ubuntu:22.04 -n ubuntu

You can use any distribution image that is supported by distrobox (this is a bunch!) You can pull from any registry:

distrobox-create -i public.ecr.aws/amazonlinux/amazonlinux:2022 -n amazon

Follow the instructions from distrobox to use your new userspace. Whichever distro you choose, you can use the “native” package manager in the box to install applications (including graphical ones), and we generally recommend doing most of your work in distrobox. You can also add the following config into your gnome-terminal to launch into your distrobox when you open a terminal:

Screenshot from 2022-02-02 17-06-11

Using any distribution as a container via your terminal is a very powerful feature as you can now use an install just about any package from any where. Check the distrobox homepage for more info.

Note: Silverblue comes with toolbx by default, and it’s still included. Check the images/ directory for instructions on building your own images. Both projects use podman so it’s a matter of taste, the base tech is the same.

VSCode and other developer notes

IDEs expect access to lots of stuff, we can either follow this guide to install it inside a Distrobox or using Flatpaks. Alternatively we compromise by overlaying vscode and directly adding the repo from upstream.

This area needs work and is changing quickly!

Acknowledgements

Fun Stats

Alt