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