From b7fb4ecd9cdac7d1775152744e232c291fe28659 Mon Sep 17 00:00:00 2001 From: Joe Ipson Date: Tue, 19 Mar 2024 15:55:41 -0600 Subject: [PATCH] Big README update, removed Framework build since we're not using TLP anyways, some other small changes --- .github/workflows/build.yml | 1 - README.md | 246 ++++++++++++++---- boot_menu.yml | 5 - config/common_modules/default-flatpaks.yml | 1 + .../usr/share/ublue-os/firstboot/yafti.yml | 1 + .../usr/share/ublue-os/just/60-custom.just | 22 -- config/framework.yml | 23 -- 7 files changed, 193 insertions(+), 106 deletions(-) delete mode 100644 config/framework.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 26c5df0..86ccc88 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,6 @@ jobs: # !! Add your recipes here - base.yml - nvidia.yml - - framework.yml - asus.yml - asus-nvidia.yml - surface.yml diff --git a/README.md b/README.md index f55c8ba..8c051e2 100644 --- a/README.md +++ b/README.md @@ -6,36 +6,192 @@

-## Getting started +# About & Inspirations + +My spin based on [Fedora Silverblue](https://fedoraproject.org/atomic-desktops/silverblue/), which is derived from the amazing [Universal Blue](https://universal-blue.org/images/main/) project. This image is created with [BlueBuild](https://blue-build.org/) tooling for making & maintaining container-based Linux desktop images. + +cabos is inspired and borrows heavily from [Bluefin-DX](https://projectbluefin.io) and [gidro-os](https://github.com/fiftydinar/gidro-os). + +The main idea is to have an up-to-date, stable, and pre-configured base OS, and to use customized containers with Distrobox to do development work within it. You can see an example of a base Ubuntu container to get started with [here](https://github.com/jitcos/jetskis). + +# Modifications + +Removed packages (RPMs): +* Firefox +* htop +* nvtop (Except for Nvidia images) +* Gnome Software rpm-ostree package (not needed since we use rpm-ostree auto-updater) +* Gnome classic session +* Gnome Tour +* Gnome Initial Setup +* Gnome System Monitor +* Gnome system extensions +* Gnome Tweaks +* Gnome Terminal + +Installed packages (RPMs): +* [System76 Scheduler](https://github.com/pop-os/system76-scheduler) +* [System76 Power Management](https://github.com/pop-os/system76-power) +* Android Tools (adb & fastboot) +* Zsh +* Mosh +* Micro +* [Gnome Boxes](https://apps.gnome.org/Boxes/) +* [VS Code](https://code.visualstudio.com/) +* p7zip & p7zip-plugins +* Podman +* Docker CE +* playerctl +* Samba +* Qemu + +Installed akmods: +* [V4L2-loopback](https://github.com/umlaeute/v4l2loopback) (for allowing change of behavior for universal screensharing) +* [XOne](https://github.com/medusalix/xone) (Xbox One RF driver) +* [XPadNeo](https://github.com/atar-axis/xpadneo) (Xbox One Bluetooth driver) +* [WineSync](https://github.com/Cat-Lady/winesync-dkms/blob/main/README.md) (for possibly improving Windows apps performance) + +Installed extensions: +* [Blur My Shell](https://github.com/aunetx/blur-my-shell) +* [Caffeine](https://github.com/eonpatapon/gnome-shell-extension-caffeine) +* [Hide Universal Access](https://extensions.gnome.org/extension/2398/hide-universal-access/) +* [Dash to Panel](https://extensions.gnome.org/extension/1160/dash-to-panel/) +* [GSConnect](https://extensions.gnome.org/extension/1319/gsconnect/) +* [AppIndicator Support](https://extensions.gnome.org/extension/615/appindicator-support/) +* [s76-scheduler](https://github.com/mjakeman/s76-scheduler-plugin) +* [Start Overlay in Application View](https://github.com/Hexcz/Start-Overlay-in-Application-View-for-Gnome-40-) +* [WorkspaceSwitcherWrapAround](https://github.com/theychx/WorkspaceSwitcherWrapAround) +* [disable-workspace-animation](https://github.com/ethnarque/gnome-disable-workspace-animation) +* [disable-workspace-switcher](https://github.com/cleardevice/gnome-disable-workspace-switcher) +* [Hibernate Status Button](https://extensions.gnome.org/extension/755/hibernate-status-button/) + +Installed flatpaks: +* [Firefox](https://flathub.org/apps/org.mozilla.firefox) from Flathub instead of the system package +* [Mission Center](https://flathub.org/apps/io.missioncenter.MissionCenter) from Flathub instead of Gnome System Monitor +* [Calculator](https://apps.gnome.org/en/Calculator/) +* [Calendar](https://apps.gnome.org/en/Calendar/) +* [Camera](https://apps.gnome.org/en/Snapshot/) +* [Contacts](https://apps.gnome.org/en/Contacts/) +* [Clocks](https://apps.gnome.org/en/Clocks/) +* [Document Viewer](https://apps.gnome.org/en/Evince/) +* [Text Editor](https://apps.gnome.org/en/TextEditor/) +* [G4Music](https://flathub.org/apps/com.github.neithern.g4music) +* [Clapper](https://flathub.org/apps/com.github.rafostar.Clapper) +* [Image Viewer](https://apps.gnome.org/en/Loupe/) +* [Sticky Notes](https://flathub.org/apps/com.vixalien.sticky) +* [Flatseal](https://flathub.org/apps/com.github.tchx84.Flatseal) +* [Warehouse](https://flathub.org/apps/io.github.flattool.Warehouse) +* [PinApp](https://flathub.org/apps/io.github.fabrialberio.pinapp) +* [Extension Manager](https://flathub.org/apps/com.mattjakeman.ExtensionManager) +* [Blue Recorder](https://flathub.org/apps/sa.sy.bluerecorder) + +Optional flatpaks at first login: +* [Characters](https://flathub.org/apps/org.gnome.Characters) +* [Disk Usage Analyzer](https://flathub.org/apps/org.gnome.baobab) +* [Font Viewer](https://flathub.org/apps/org.gnome.font-viewer) +* [Logs](https://flathub.org/apps/org.gnome.Logs) +* [Maps](https://flathub.org/apps/org.gnome.Maps) +* [Photos (Organizer)](https://flathub.org/apps/org.gnome.Photos) +* [Sushi (Nautilus Previewer)](https://flathub.org/apps/org.gnome.NautilusPreviewer) +* [Weather](https://flathub.org/apps/org.gnome.Weather) +* [Fedora Media Writer](https://flathub.org/apps/org.fedoraproject.MediaWriter) +* [Font Downloader](https://flathub.org/apps/org.gustavoperedo.FontDownloader) +* [Brave Browser](https://flathub.org/apps/com.brave.Browser) +* [GNOME Web](https://flathub.org/apps/org.gnome.Epiphany) +* [Google Chrome](https://flathub.org/apps/com.google.Chrome) +* [Microsoft Edge](https://flathub.org/apps/com.microsoft.Edge) +* [Opera](https://flathub.org/apps/com.opera.Opera) +* [GNOME Builder](https://flathub.org/apps/org.gnome.Builder) +* [PyCharm (Community)](https://flathub.org/apps/com.jetbrains.PyCharm-Community) +* [PyCharm (Professional)](https://flathub.org/apps/com.jetbrains.PyCharm-Professional) +* [IntelliJ IDEA (Community)](https://flathub.org/apps/com.jetbrains.IntelliJ-IDEA-Community) +* [IntelliJ IDEA (Ultimate)](https://flathub.org/apps/com.jetbrains.IntelliJ-IDEA-Ultimate) +* [Webstorm](https://flathub.org/apps/com.jetbrains.WebStorm) +* [PhpStorm](https://flathub.org/apps/com.jetbrains.PhpStorm) +* [Rider](https://flathub.org/apps/com.jetbrains.Rider) +* [CLion](https://flathub.org/apps/com.jetbrains.CLion) +* [GoLand](https://flathub.org/apps/com.jetbrains.GoLand) +* [Android Studio](https://flathub.org/apps/com.google.AndroidStudio) +* [Sublime Text 3](https://flathub.org/apps/com.sublimetext.three) +* [Bruno](https://flathub.org/apps/com.usebruno.Bruno) +* [Insomnia](https://flathub.org/apps/rest.insomnia.Insomnia) +* [Postman](https://flathub.org/apps/com.getpostman.Postman) +* [Podman Desktop](https://flathub.org/apps/io.podman_desktop.PodmanDesktop) +* [Meld](https://flathub.org/apps/org.gnome.meld) +* [Spotify](https://flathub.org/apps/com.spotify.Client) +* [Pithos (Pandora)](https://flathub.org/apps/io.github.Pithos) +* [VLC](https://flathub.org/apps/org.videolan.VLC) +* [Kdenlive](https://flathub.org/apps/org.kde.kdenlive) +* [Shotcut](https://flathub.org/apps/org.shotcut.Shotcut) +* [Flowblade](https://flathub.org/apps/io.github.jliljebl.Flowblade) +* [OpenShot](https://flathub.org/apps/org.openshot.OpenShot) +* [Audacity](https://flathub.org/apps/org.audacityteam.Audacity) +* [GIMP](https://flathub.org/apps/org.gimp.GIMP) +* [Krita](https://flathub.org/apps/org.kde.krita) +* [Inkscape](https://flathub.org/apps/org.inkscape.Inkscape) +* [Figma](https://flathub.org/apps/io.github.Figma_Linux.figma_linux) +* [PrusaSlicer](https://flathub.org/apps/com.prusa3d.PrusaSlicer) +* [Cura](https://flathub.org/apps/com.ultimaker.cura) +* [FreeCAD](https://flathub.org/apps/org.freecadweb.FreeCAD) +* [OpenSCAD](https://flathub.org/apps/org.openscad.OpenSCAD) +* [Discord](https://flathub.org/apps/com.discordapp.Discord) +* [Telegram](https://flathub.org/apps/org.telegram.desktop) +* [WhatsApp](https://flathub.org/apps/io.github.mimbrero.WhatsAppDesktop) +* [Signal](https://flathub.org/apps/org.signal.Signal) +* [Slack](https://flathub.org/apps/com.slack.Slack) +* [Microsoft Teams](https://flathub.org/apps/com.github.IsmaelMartinez.teams_for_linux) +* [Bottles](https://flathub.org/apps/com.usebottles.bottles) +* [Lutris](https://flathub.org/apps/net.lutris.Lutris) +* [Heroic Launcher](https://flathub.org/apps/com.heroicgameslauncher.hgl) +* [Steam](https://flathub.org/apps/com.valvesoftware.Steam) +* [Gamescope](https://flathub.org/apps/org.freedesktop.Platform.VulkanLayer.gamescope) +* [MangoHUD](https://flathub.org/apps/org.freedesktop.Platform.VulkanLayer.MangoHud//22.08) +* [SteamTinkerLaunch](https://flathub.org/apps/com.valvesoftware.Steam.Utility.steamtinkerlaunch) +* [Proton Updater](https://flathub.org/apps/net.davidotek.pupgui2) +* [OnlyOffice](https://flathub.org/apps/org.onlyoffice.desktopeditors) +* [LibreOffice](https://flathub.org/apps/org.libreoffice.LibreOffice) +* [Obsidian](https://flathub.org/apps/md.obsidian.Obsidian) +* [Standard Notes](https://flathub.org/apps/org.standardnotes.standardnotes) +* [Thunderbird](https://flathub.org/apps/org.mozilla.Thunderbird) +* [OBS Studio](https://flathub.org/apps/com.obsproject.Studio) +* [Boatswain](https://flathub.org/apps/com.feaneron.Boatswain) + +Settings applied by default: +* 4 static workspaces (dynamical workspaces disabled) +* Disabled workspaces only on primary monitor +* Disabled "hot corners" +* Disable middle-click paste +* Enable normal "Minimize, Maximize, and Close" buttons on application windows +* Use Alt+Left & Alt-Right to navigate workspaces +* Use Alt+, for Previous Track +* Use Alt+. for Next Track +* Use Alt+/ for Play/Pause +* Enabled two-finger scrolling +* Disabled "natural" scrolling direction +* Enabled tap-to-click +* Not using UI scaling - but set 1.5x font scaling +* Default to "dark" theme +* Enabled Night Light +* Enabled GSConnect +* [Increased inotify limits](https://www.suse.com/support/kb/doc/?id=000020048) (for preventing errors like "too many open files" when installing/using some huge applications & games) + +# Installation + +## ISO (Recommended) + +ISOs are online-based & are constantly upgraded. There is no need to worry about the version & the date of the ISO. + +ISO is available for download [here.](https://github.com/jitcos/cabos/releases/tag/auto-iso) + +Just download & proceed with installation. + +After you get into the OS, type this command into Terminal & reboot: -See the [Make Your Own-page in the documentation](https://universal-blue.org/tinker/make-your-own/) for quick setup instructions for setting up your own repository based on this template. - -Don't worry, it only requires some basic knowledge about using the terminal and git. - -After setup, it is recommended you update this README to describe your custom image. - -> **Note** -> Everywhere in this repository, make sure to replace `jitcos/cabos` with the details of your own repository. Unless you used one of the automatic repository setup tools in which case the previous repo identifier should already be your repo's details. - -> **Warning** -> To start, you *must* create a branch called `live` which is exclusively for your customizations. That is the **only** branch the GitHub workflow will deploy to your container registry. Don't make any changes to the original "template" branch. It should remain untouched. By using this branch structure, you ensure a clear separation between your own "published image" branch, your development branches, and the original upstream "template" branch. Periodically sync and fast-forward the upstream "template" branch to the most recent revision. Then, simply rebase your `live` branch onto the updated template to effortlessly incorporate the latest improvements into your own repository, without the need for any messy, manual "merge commits". - -## Customization - -The easiest way to start customizing is by looking at and modifying `config/recipe.yml`. It's documented using comments and should be pretty easy to understand. - -If you want to add custom configuration files, you can just add them in the `/usr/etc/` directory, which is the official OSTree "configuration template" directory and will be applied to `/etc/` on boot. `config/files/usr` is copied into your image's `/usr` by default. If you need to add other directories in the root of your image, that can be done using the `files` module. Writing to `/var/` in the image builds of OSTree-based distros isn't supported and will not work, as that is a local user-managed directory! - -For more information about customization, see [the README in the config directory](config/README.md) - -Documentation around making custom images exists / should be written in two separate places: -* [The Tinkerer's Guide on the website](https://universal-blue.org/tinker/make-your-own/) for general documentation around making custom images, best practices, tutorials, and so on. -* Inside this repository for documentation specific to the ins and outs of the template (like module documentation), and just some essential guidance on how to make custom images. - -## Installation +``` +rpm-ostree rebase ostree-image-signed:docker://ghcr.io/jitcos/cabos:latest +``` -> **Warning** -> [This is an experimental feature](https://www.fedoraproject.org/wiki/Changes/OstreeNativeContainerStable) and should not be used in production, try it in a VM for a while! +## Rebase from Silverblue To rebase an existing Silverblue/Kinoite installation to the latest build: @@ -62,32 +218,12 @@ This repository builds date tags as well, so if you want to rebase to a particul rpm-ostree rebase ostree-image-signed:docker://ghcr.io/jitcos/cabos:20230403 ``` -This repository by default also supports signing. - -The `latest` tag will automatically point to the latest build. That build will still always use the Fedora version specified in `recipe.yml`, so you won't get accidentally updated to the next major version. - -## ISO - -This template includes a simple Github Action to build and release an ISO of your image. - -To run the action, simply edit the `boot_menu.yml` by changing all the references to startingpoint to your repository. This should trigger the action automatically. - -The Action uses [isogenerator](https://github.com/ublue-os/isogenerator) and works in a similar manner to the official Universal Blue ISO. If you have any issues, you should first check [the documentation page on installation](https://universal-blue.org/installation/). The ISO is a netinstaller and should always pull the latest version of your image. - -Note that this release-iso action is not a replacement for a full-blown release automation like [release-please](https://github.com/googleapis/release-please). - -## `just` - -The [`just`](https://just.systems/) command runner is included in all `ublue-os/main`-derived images. - -You need to have a `~/.justfile` with the following contents and `just` aliased to `just --unstable` (default in posix-compatible shells on ublue) to get started with just locally. -``` -!include /usr/share/ublue-os/just/main.just -!include /usr/share/ublue-os/just/nvidia.just -!include /usr/share/ublue-os/just/custom.just -``` -Then type `just` to list the just recipes available. +# Modifications -The file `/usr/share/ublue-os/just/custom.just` is intended for the custom just commands (recipes) you wish to include in your image. By default, it includes the justfiles from [`ublue-os/bling`](https://github.com/ublue-os/bling), if you wish to disable that, you need to just remove the line that includes bling.just. +Optional config: +* `ujust configure-grub`: Hide GRUB text output on boot (if you want to make boot process faster [press Shift on boot if you need to see boot menu]) +* `ujust enable-hibernation`: Setup new swapfile and change configurations to allow your computer to hibernate or suspend-to-hibernate -See [the just-page in the Universal Blue documentation](https://universal-blue.org/guide/just/) for more information. +# Recommended Extensions +* [Grand Theft Focus](https://extensions.gnome.org/extension/5410/grand-theft-focus/) - Just be sure to configure Telegram/WhatsApp properly +* [System76 Power](https://github.com/LFd3v/gnome-shell-extension-system76-power) Manually install this for support with the System76 Power service diff --git a/boot_menu.yml b/boot_menu.yml index caf1f5a..54f593f 100644 --- a/boot_menu.yml +++ b/boot_menu.yml @@ -9,11 +9,6 @@ ublue_variants: flavors: - label: cabos-nvidia info: cabos (For NVIDIA GPUs) - - label: jitcos/cabos-framework - ks: /kickstart/ublue-os.ks - flavors: - - label: cabos-framework - info: cabos (Framework Edition) - label: jitcos/cabos-asus ks: /kickstart/ublue-os.ks flavors: diff --git a/config/common_modules/default-flatpaks.yml b/config/common_modules/default-flatpaks.yml index fc7aa4b..78c057f 100644 --- a/config/common_modules/default-flatpaks.yml +++ b/config/common_modules/default-flatpaks.yml @@ -20,6 +20,7 @@ system: - com.github.tchx84.Flatseal - io.github.fabrialberio.pinapp - com.mattjakeman.ExtensionManager + - io.github.flattool.Warehouse - sa.sy.bluerecorder - org.mozilla.firefox - it.mijorus.gearlever diff --git a/config/files/usr/share/ublue-os/firstboot/yafti.yml b/config/files/usr/share/ublue-os/firstboot/yafti.yml index 617dbe9..e8c6b8c 100644 --- a/config/files/usr/share/ublue-os/firstboot/yafti.yml +++ b/config/files/usr/share/ublue-os/firstboot/yafti.yml @@ -96,6 +96,7 @@ screens: - GoLand: com.jetbrains.GoLand - Android Studio: com.google.AndroidStudio - Sublime Text: com.sublimetext.three + - Bruno: com.usebruno.Bruno - Insomnia: rest.insomnia.Insomnia - Postman: com.getpostman.Postman - Podman Desktop: io.podman_desktop.PodmanDesktop diff --git a/config/files/usr/share/ublue-os/just/60-custom.just b/config/files/usr/share/ublue-os/just/60-custom.just index 7f52058..1ed28c9 100644 --- a/config/files/usr/share/ublue-os/just/60-custom.just +++ b/config/files/usr/share/ublue-os/just/60-custom.just @@ -42,28 +42,6 @@ configure-grub ACTION="prompt": fi fi -configure-scaling ACTION="prompt": - #!/usr/bin/env bash - bold=$(tput bold) - normal=$(tput sgr0) - OPTION={{ ACTION }} - if [ "$OPTION" == "prompt" ]; then - echo "${bold}Configuring Fractional Display Scaling${normal}" - echo 'Enable or disable fractional display scaling? Press ESC to exit.' - OPTION=$(ugum choose "Enable (Default)" Disable) - elif [ "$OPTION" == "help" ]; then - echo "Usage: ujust configure-scaling