This is super important. Without these checks, the system can end up in a broken state where certain users or even the system itself lacks the "flathub" remote, which then breaks yafti's ability to install software, and also breaks consistency between multi-user accounts. Before these fixes, we only installed "flathub" for the current user on multi-user systems, and then never again, since our installation of Flathub was dependent on the removal of Fedora's own repositories, and never happened again after that. We now sanity-check both the system and the user-account on every yafti run. If someone doesn't want "flathub" at the user-level, they're welcome to make their own image which removes that check. But as a "starting point" template, we should strive to provide a robust example that the largest amount of people will be happy with, which means ensuring that Flathub exists for all users on the system! Most people run a single-user system, and will never even see these screens, since they'll see the initial screen which removes Fedora's repos and takes care of adding Flathub at the same time. These "system repair" screens will only be seen by people on multi-user systems or on various messed up systems. PS: The strange "run" condition is required since yafti demands that the return code of a command should be "0" to show a conditional screen, but "grep" by itself returns "1" when nothing matches. Negation operators such as `!` don't work in the run-conditions either, so this workaround does the job perfectly instead. It robustly checks for the exact number "0", meaning that the Flathub remote wasn't found.
144 lines
6.3 KiB
YAML
144 lines
6.3 KiB
YAML
title: Welcome to uBlue
|
|
properties:
|
|
mode: "run-on-change"
|
|
screens:
|
|
first-screen:
|
|
source: yafti.screen.title
|
|
values:
|
|
title: "Welcome to uBlue (Alpha)"
|
|
icon: "/path/to/icon"
|
|
description: |
|
|
This guided installer will help you get started with your new system.
|
|
can-we-modify-your-flatpaks:
|
|
source: yafti.screen.consent
|
|
values:
|
|
title: Welcome, Traveler!
|
|
condition:
|
|
run: flatpak remotes --columns=name | grep fedora
|
|
description: |
|
|
We have detected the limited, Fedora-provided Flatpak remote on your system, whose applications are usually missing important codecs and other features. This step will therefore remove all basic Fedora Flatpaks from your system! We will instead switch all core Flatpak applications over to the vastly superior, unfiltered Flathub. If you don't want to do this, simply exit this installer.
|
|
actions:
|
|
- run: flatpak remote-delete --system --force fedora
|
|
- run: flatpak remote-delete --user --force fedora
|
|
- run: flatpak remove --system --noninteractive --all
|
|
- run: flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
- run: flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
check-system-flathub:
|
|
source: yafti.screen.consent
|
|
values:
|
|
title: Missing Flathub Repository (System)
|
|
condition:
|
|
run: flatpak remotes --system --columns=name | grep flathub | wc -l | grep '^0$'
|
|
description: |
|
|
We have detected that you don't have Flathub's repository on your system. We will now add that repository to your system-wide list.
|
|
actions:
|
|
- run: flatpak remote-add --if-not-exists --system flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
check-user-flathub:
|
|
source: yafti.screen.consent
|
|
values:
|
|
title: Missing Flathub Repository (User)
|
|
condition:
|
|
run: flatpak remotes --user --columns=name | grep flathub | wc -l | grep '^0$'
|
|
description: |
|
|
We have detected that you don't have Flathub's repository on your current user account. We will now add that repository to your account.
|
|
actions:
|
|
- run: flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
|
|
applications:
|
|
source: yafti.screen.package
|
|
values:
|
|
title: Application Installer
|
|
show_terminal: true
|
|
package_manager: yafti.plugin.flatpak
|
|
package_manager_defaults:
|
|
user: false
|
|
system: true
|
|
groups:
|
|
Core GNOME Apps:
|
|
description: Core system applications for the GNOME desktop environment.
|
|
default: true
|
|
packages:
|
|
- Calculator: org.gnome.Calculator
|
|
- Calendar: org.gnome.Calendar
|
|
- Characters: org.gnome.Characters
|
|
- Cheese: org.gnome.Cheese
|
|
- Clocks: org.gnome.clocks
|
|
- Connections: org.gnome.Connections
|
|
- Contacts: org.gnome.Contacts
|
|
- Disk Usage Analyzer: org.gnome.baobab
|
|
- Document Scanner: org.gnome.SimpleScan
|
|
- Document Viewer: org.gnome.Evince
|
|
- Extension Manager: com.mattjakeman.ExtensionManager
|
|
- Font Viewer: org.gnome.font-viewer
|
|
- Image Viewer: org.gnome.eog
|
|
- Logs: org.gnome.Logs
|
|
- Maps: org.gnome.Maps
|
|
- Photos (Organizer): org.gnome.Photos
|
|
- Sushi (Nautilus Previewer): org.gnome.NautilusPreviewer
|
|
- Text Editor: org.gnome.TextEditor
|
|
- Videos (Player): org.gnome.Totem
|
|
- Weather: org.gnome.Weather
|
|
System Apps:
|
|
description: System applications for all desktop environments.
|
|
default: true
|
|
packages:
|
|
- Deja Dup Backups: org.gnome.DejaDup
|
|
- Fedora Media Writer: org.fedoraproject.MediaWriter
|
|
- Flatseal (Permission Manager): com.github.tchx84.Flatseal
|
|
- Font Downloader: org.gustavoperedo.FontDownloader
|
|
- Mozilla Firefox: org.mozilla.firefox
|
|
Web Browsers:
|
|
description: Additional browsers to complement or replace Firefox.
|
|
default: false
|
|
packages:
|
|
- Brave: com.brave.Browser
|
|
- Google Chrome: com.google.Chrome
|
|
- Microsoft Edge: com.microsoft.Edge
|
|
- Opera: com.opera.Opera
|
|
Gaming:
|
|
description: "Rock and Stone!"
|
|
default: false
|
|
packages:
|
|
- Bottles: com.usebottles.bottles
|
|
- Discord: com.discordapp.Discord
|
|
- GNOME Games: org.gnome.Games
|
|
- Heroic Games Launcher: com.heroicgameslauncher.hgl
|
|
- Steam: com.valvesoftware.Steam
|
|
- Gamescope (Utility): com.valvesoftware.Steam.Utility.gamescope
|
|
- MangoHUD (Utility): org.freedesktop.Platform.VulkanLayer.MangoHud//22.08
|
|
- SteamTinkerLaunch (Utility): com.valvesoftware.Steam.Utility.steamtinkerlaunch
|
|
- Proton Updater for Steam: net.davidotek.pupgui2
|
|
Office:
|
|
description: Boost your productivity.
|
|
default: false
|
|
packages:
|
|
- LibreOffice: org.libreoffice.LibreOffice
|
|
- OnlyOffice: org.onlyoffice.desktopeditors
|
|
- Obsidian: md.obsidian.Obsidian
|
|
- Slack: com.slack.Slack
|
|
- Standard Notes: org.standardnotes.standardnotes
|
|
- Thunderbird Email: org.mozilla.Thunderbird
|
|
Streaming:
|
|
description: Stream to the Internet.
|
|
default: false
|
|
packages:
|
|
- OBS Studio: com.obsproject.Studio
|
|
- VkCapture for OBS: com.obsproject.Studio.OBSVkCapture
|
|
- Gstreamer for OBS: com.obsproject.Studio.Plugin.Gstreamer
|
|
- Gstreamer VAAPI for OBS: com.obsproject.Studio.Plugin.GStreamerVaapi
|
|
- Boatswain for Streamdeck: com.feaneron.Boatswain
|
|
|
|
final-screen:
|
|
source: yafti.screen.title
|
|
values:
|
|
title: "All done!"
|
|
icon: "/path/to/icon"
|
|
links:
|
|
- "Install More Applications":
|
|
run: /usr/bin/gnome-software
|
|
- "Website":
|
|
run: /usr/bin/xdg-open https://ublue.it
|
|
- "Join the Discord Community":
|
|
run: /usr/bin/xdg-open https://discord.gg/XjG48C7VHx
|
|
description: |
|
|
Thanks for trying uBlue, we hope you enjoy it!
|