Skip to content

Proman4713/Utile-OS

Repository files navigation

Utile Logo

A Minimum-Friction Linux Desktop

Ubuntu derivative with Quality-of-Life and Aesthetic Improvements

Build Utile OS 26 ISO

Table Of Contents

Quick Start

  • Status: Pre-Release Snapshots
  • Target Audience: Ubuntu, Windows 11, macOS users
  • Minimum Requirements:
    1. A USB drive of at least 8GBs.
    2. Internal Storage: 25GB minimum.
    3. RAM: 6GB recommended.
    4. VRAM: 256MB minimum, 1GB or more recommended. 3D Acceleration strongly recommended.
    5. Secure Boot: Optional, although Disabled gives you a better-looking boot screen.

Disclaimers & Agreements

  • This project is not designed for personal use by anyone other than myself. I claim no liability for anything this project may do to your system as of now. If you use this project, you do so at your own risk.
  • I do not make the ISOs easily accessible for download on the repository's homepage for multiple reasons:
    1. The ISOs are largely untested and may not work at all.
    2. The ISOs are neither feature-complete nor bug-free.
    3. The ISOs have not yet been completely rid of Ubuntu branding. So it may be the case that they are not completely out of the scope of Canonical's trademarks, which is something that needs to change before this project is ready for distribution.
    4. The above means that I'm not claiming any rights over Canonical/Ubuntu brand elements that are still user-facing and yet to be removed. Nor am I suggesting that this is a project made by Canonical Ubuntu. It is simply a matter of time before the situation changes.
  • The ISOs have not been tested with offline Ubuntu installations.
  • The bash scripts available in my releases are not intended for use on an existing system. They assume a specific Ubuntu version depending on their filename and also assume that they are the first thing being run on your system. The vast majority of any customisations you may have applied will be overridden.
  • This project has already modified enough that Ubuntu upgrades may not go smoothly. This is something that even I am not willing to risk on my own system. This shall change before the final release with a custom upgrade solution.
  • This project uninstalls some packages from the Extended Selection, so be wary of that if you run it on an Ubuntu extended installation.
  • Considering that this project is mainly targeted at ISOs, the bash scripts are not idempotent, and they also modify both system and user defaults, so creating a new user after running this project does not uninstall the changes applied by the script.
  • This project is not endorsed or supported by Canonical, Ubuntu, or any other Linux distribution. It is a personal project somewhere between base Ubuntu and a custom Ubuntu derivative.
  • I am the only maintainer of this project. If you have any suggestions, please open an issue on the Issues page, but don't expect much from me. This is largely a hobby project dedicated to myself and learning some things about Linux.
  • By using this project, you also agree to the Microsoft Core Fonts EULA. Because it is automatically accepted during the installation of LibreOffice onto your system or onto the ISO.

Support me

If you somehow found this project useful, or used my wallpapers for your desktop, then please consider buying me a coffee :)

Structure

This project applies a set of 'patches' in the form of .bash files to modify certain aspects of the Ubuntu desktop. The patches are designed to build up a new system from the ground up rather than blindly importing configs or dconf dumps onto the system. This reduces the need to edit parts of the script based on updates in Ubuntu, GNOME, GNOME shell extensions, or anything else.

The patches are 'compiled' through the NodeJS compile.js script, which generates one big .sh file that can be applied to both ISOs and Ubuntu installations. The .sh files are then uploaded to GitHub releases and made available for download. This allows me to modularise the patches for ease of development, but also provide one shell script for ease of use and deployment.

The reason the patches are given the .bash extension, even though the product script is given the .sh extension, is to allow the ShellCheck VSCode extension to provide errors and warnings without repetitive shebangs in each patch.

Local development & build instructions are not yet available. Although if you really wanted to, you could check out the ISO Build workflow, which uses the NodeJS script, to replicate a similar process locally. If this works out, feel free to contribute your solution to the repository.

Plans

Before starting this project, I detailed a specific plan in an older readme; however, I have since realised that those plans were not realistically laid out due to various intricacies around how Ubuntu and apt/debian packages work. So this section is being repurposed for future plans. I write these plans when I think of them, and they are subject to change.

Plans
  1. Make my own APT repository and Debian packages.
  2. Override upstream's base-files package to provide logos and release metadata.
  3. Change bashrc to use a lighter colour for the user@computer text.
  4. Either contribute my distribution's ASCII symbol to fastfetch or include it in a debian package and set the --logo argument in a bashrc alias of fastfetch/neofetch.
  5. Implement icon theme overrides to the Yaru theme to remove Ubuntu's trademarks from many places.
  6. Implement an installer that allows me to follow Utile OS's philosophies while also making the user manually choose to install codecs to avoid legal grey areas.
  7. Implement my own Plymouth theme.
  8. Figure out a way to use/implement an equivalent of the Customised Workspaces, Customize Clock on Lock Screen, and Lock screen background extensions without cluttering the UI
  9. Fully transition to use Debian packages (i.e. make more packages) to make modifications rather than manually executing commands.
  10. Similarly, make a utile-gnome-shell-extensions package to be able to install preferred extensions as system extensions and update them without needing the hacky seed_extension function in patch 000.
  11. Create a utile-gnome-defaults package for the gsettings/dconf changes
  12. Implement a custom upgrade solution to handle my own package repositories and hold Ubuntu upgrades until I finish syncing this project with upstream.
  13. Implement my own app store (packaged in Debian, not a Snap), which makes the issue of Snap vs. Debian less of a technical dilemma and more of a user-friendly choice. This app store must also improve on the UI/UX of usual Linux app stores, which, in my opinion, are developed by people who are too tech-centric to dedicate enough thought to the appeal of their UI. Additionally, I would like to allow developers to publish Debian-packaged apps to this store even if they don't come from the device's apt sources. This could potentially be done by verifying a developer's identity and their app's safety, then only adding their app's source repository if the user chooses to install the app.
Debatable
  1. Should I add ClamAV? Potentially with a custom extension to go with it to provide a GUI in the top bar/quick settings?
  2. Should I allow a custom wallpaper for the lock screen through extensions (potentially custom, to unify GDM login and lock screen)?
  3. Should I create an extension to reduce the size of the headerbar in GNOME, especially with fractional scaling?
  4. Should I include a pre-configure 'Dash2Dock Animated' extension? Is that too much like macOS in a way that it shouldn't be?
  5. Similarly, what about the 'Compiz alike magic lamp effect' extension? This could be too much, but maybe another extension that provides a springier minimise animation than the default?
  6. Should I include auto-cpufreq/thermald by default for better battery life? Perhaps with an extension to provide a UI for that as well?
  7. The average user does not have NAS devices and doesn't use NFS, should I disable the NetworkManager-wait-online.service to speed up boot time? What are the tradeoffs?

Why?

Utile OS started as an idea for my YouTube channel, Codeswallop, where I intend to publish a series of video essays based around Linux desktop system design and UX. For these videos, I'll need to research and address various pain points (tiny or large) in the Linux desktop - with Ubuntu particularly serving as a starting point - that slowly accumulate to cause a total result of inexplicable frustration for a user transitioning from another OS.

The YouTube videos are meant to talk from a technically unrestricted perspective where I can present pain points and what could be done about them without consistently looking into why one solution is - or isn't - realistic from a technical/backend perspective. This will give me more room to address the significant majority of pain points from a UX-only perspective to provide a framework that a technical organisation could use to pin goals and later think about technical possibilities or implementations to determine what is worth pursuing first.

If you want to read more from me about this, then I'm pleased to say that there exists an unfortunate rant in the old readme file.

This project serves as a container for everything that I dare to try to address these pain points.

'Utile' (pronounced 'you-tile') is an old English word that meant 'Useful' before Shakespeare decided to first write the now famous word. It was derived from Middle French and still exists in the French language to this day. I particularly picked this word to highlight the helpfulness that I want to provide with this project.

Rights & Licensing

  • This project is licensed under the well-known GPL v3, which covers all the code and shell scripts written here. The license is available inside LICENSE.md.
  • On the other hand, media files available at resources/ are licensed using Creative Commons, which covers images, designs, audio, video, and everything else that may exist in that folder as long as it contains the same Creative Commons license. The license available at resources/LICENSE.md.

About

A Linux Desktop based on Ubuntu (Work-In-Progress)

Resources

License

Contributing

Stars

Watchers

Forks

Contributors