feat: include files in yafti module
This commit is contained in:
parent
0fc7ac4331
commit
111466c16c
7 changed files with 179 additions and 1 deletions
|
|
@ -4,7 +4,7 @@ The `yafti` module can be used to install `yafti` and set it up to run on first
|
|||
|
||||
Optionally, a list of Flatpak names and IDs can be included under `custom-flatpaks:`. These will be enabled by default under their own section on the Flatpak installation screen of `yafti`.
|
||||
|
||||
The main `yafti` configuration file, `yafti.yml`, is in `/usr/share/ublue-os/firstboot/yafti.yml` and can be edited for a more custom first-boot experience.
|
||||
A default version of the `yafti` configuration file, `yafti.yml`, is supplied by this module. To make your own, create the file at `/usr/share/ublue-os/firstboot/yafti.yml`. The default version of the file can be found [here](https://github.com/ublue-os/bling/blob/main/modules/yafti/yafti.yml).
|
||||
|
||||
## Example configuration
|
||||
|
||||
|
|
|
|||
9
modules/yafti/launcher/autostart.desktop
Normal file
9
modules/yafti/launcher/autostart.desktop
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
[Desktop Entry]
|
||||
Name=uBlue First Boot Setup
|
||||
Comment=Sets up the uBlue desktop on first boot.
|
||||
GenericName=Launcher
|
||||
Categories=Utility;System;
|
||||
Exec=/usr/share/ublue-os/firstboot/launcher/autostart.sh
|
||||
Icon=application-x-executable
|
||||
Terminal=false
|
||||
Type=Application
|
||||
4
modules/yafti/launcher/autostart.sh
Executable file
4
modules/yafti/launcher/autostart.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# Simply launches the "yafti" GUI with the uBlue image's configuration.
|
||||
/usr/bin/yafti /usr/share/ublue-os/firstboot/yafti.yml
|
||||
BIN
modules/yafti/launcher/launcher-flowchart.png
Normal file
BIN
modules/yafti/launcher/launcher-flowchart.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 35 KiB |
15
modules/yafti/launcher/login-profile.sh
Normal file
15
modules/yafti/launcher/login-profile.sh
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
# Only process users with home directories, but skip the "root" user.
|
||||
if [ "$(id -u)" != "0" ] && [ ! -z "$HOME" ] && [ -d "$HOME" ]; then
|
||||
# Ensure target file exists and is a symlink (not a regular file or dir).
|
||||
if [ ! -L "$HOME"/.config/autostart/ublue-firstboot.desktop ]; then
|
||||
# Remove any leftovers or incorrect (non-link) files with the same name.
|
||||
rm -rf "$HOME"/.config/autostart/ublue-firstboot.desktop
|
||||
|
||||
# Create symlink to uBlue's autostart runner.
|
||||
# Note that "broken autostart symlinks" are harmless if they remain
|
||||
# after distro switching, and just cause a minor syslog warning. The
|
||||
# user can manually delete this file if they migrate away from uBlue.
|
||||
mkdir -p "$HOME"/.config/autostart
|
||||
ln -s "/usr/share/ublue-os/firstboot/launcher/autostart.desktop" "$HOME"/.config/autostart/ublue-firstboot.desktop
|
||||
fi
|
||||
fi
|
||||
|
|
@ -3,7 +3,14 @@
|
|||
# Tell build process to exit if there are any errors.
|
||||
set -euo pipefail
|
||||
|
||||
MODULE_DIRECTORY="${MODULE_DIRECTORY:-"/tmp/modules"}"
|
||||
|
||||
FIRSTBOOT_DATA="/usr/share/ublue-os/firstboot"
|
||||
|
||||
# doesn't overwrite user's yafti.yml
|
||||
cp -n "$MODULE_DIRECTORY/yafti/yafti.yml" "$FIRSTBOOT_DATA/yafti.yml"
|
||||
cp -r "$MODULE_DIRECTORY/yafti/launcher/" "$FIRSTBOOT_DATA/launcher/"
|
||||
|
||||
FIRSTBOOT_SCRIPT="${FIRSTBOOT_DATA}/launcher/login-profile.sh"
|
||||
PROFILED_DIR="/usr/etc/profile.d"
|
||||
FIRSTBOOT_LINK="${PROFILED_DIR}/ublue-firstboot.sh"
|
||||
|
|
|
|||
143
modules/yafti/yafti.yml
Normal file
143
modules/yafti/yafti.yml
Normal file
|
|
@ -0,0 +1,143 @@
|
|||
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
|
||||
- Camera: org.gnome.Snapshot
|
||||
- Characters: org.gnome.Characters
|
||||
- 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.Loupe
|
||||
- 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
|
||||
- GNOME Web: org.gnome.Epiphany
|
||||
- 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
|
||||
- Heroic Games Launcher: com.heroicgameslauncher.hgl
|
||||
- Steam: com.valvesoftware.Steam
|
||||
- Gamescope (Utility): org.freedesktop.Platform.VulkanLayer.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!
|
||||
Loading…
Add table
Add a link
Reference in a new issue