You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
moonstone/recipe.json

488 lines
19 KiB
JSON

{
"log_file": "/etc/vanilla/first-setup.log",
"distro_name": "Vanilla OS",
"distro_logo": "org.vanillaos.FirstSetup",
"pre_run": [
"export DEBIAN_FRONTEND=noninteractive",
"apt update",
"apt install -f",
"apt upgrade -y"
],
"post_run": [
"apt update",
"apt install -f"
],
"tour": {
"get-involved": {
"icon": "system-users-symbolic",
"title": "Get Involved",
"description": "Vanilla OS is a community project. You can contribute to the project by reporting bugs, suggesting new features, or even by writing code.",
"read_more_link": "https://vanillaos.org/get-involved"
},
"community": {
"icon": "help-faq-symbolic",
"title": "Join The Community",
"description": "Our community is active on Discord. You can join us to ask questions, get help, or just to chat with other users.",
"read_more_link": "https://discord.gg/3cD2Q7Ht3S"
},
"abroot": {
"icon": "security-medium-symbolic",
"title": "Immutable and Atomic",
"description": "Vanilla OS is an immutable and atomic Linux distribution. It is based on Ubuntu and uses ABRoot to provide atomic transactions.",
"read_more_link": "https://documentation.vanillaos.org/docs/ABRoot/"
},
"apx": {
"icon": "vanilla-container-terminal-symbolic",
"title": "Sub-System Ready To Go",
"description": "Vanilla OS comes with Apx, a new package manager which installs software in integrated containers to prevent host compromise.",
"read_more_link": "https://documentation.vanillaos.org/docs/apx/"
}
},
"steps": {
"welcome": {
"template": "welcome"
},
"theme": {
"template": "theme"
},
"packages": {
"template": "preferences",
"icon": "vanilla-package-symbolic",
"title": "Package Manager",
"description": "Choose one or more package managers to install",
"without_selection": {
"allowed": true,
"message": "You have chosen not to install any package manager, you will only be able to install packages using the package manager (apx).\n\nGNOME Software will be disabled.",
"title": "No package manager selected",
"final": [
{
"type": "command",
"commands": [
"apt remove -y gnome-software"
]
}
]
},
"preferences": [
{
"id": "flatpak",
"title": "Flatpak",
"subtitle": "Manage and configure Flatpaks and the Flathub repository.",
"default": true
},
{
"id": "snap",
"title": "Snap",
"subtitle": "Manage and configure Snaps and the Snapcraft repository.",
"disabled": true
},
{
"id": "appimage",
"title": "AppImage",
"subtitle": "Install necessary dependencies to run AppImages.",
"default": true
},
{
"id": "-",
"title": "-",
"subtitle": "-",
"disabled": true,
"default": true
}
],
"final": [
{
"if": "flatpak",
"type": "command",
"commands": [
"apt install -y flatpak gnome-software-plugin-flatpak",
"!nextBoot flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo"
]
},
{
"if": "snap",
"type": "command",
"commands": ["apt install -y snapd"]
},
{
"if": "appimage",
"type": "command",
"commands": ["apt install -y fuse3 libfuse2"]
}
]
},
"apps": {
"template": "applications",
"icon": "org.gnome.Software-symbolic",
"title": "Applications",
"description": "Choose which applications to install.",
"bundles": [
{
"id": "core-apps",
"title": "Core Applications",
"subtitle": "Essential GNOME apps like Calendar or Document Viewer.",
"default": true,
"applications" : [
{
"name" : "Calendar",
"icon" : "org.gnome.Calendar",
"flatpak" : true
},
{
"name" : "Characters",
"icon" : "org.gnome.Characters",
"flatpak" : true,
"snap" : true
},
{
"name" : "Cheese",
"icon" : "org.gnome.Cheese",
"flatpak" : true,
"snap" : true
},
{
"name" : "Clocks",
"icon" : "org.gnome.clocks",
"flatpak" : true,
"snap" : true
},
{
"name" : "Connections",
"icon" : "org.gnome.Connections",
"flatpak" : true
},
{
"name" : "Contacts",
"icon" : "org.gnome.Contacts",
"flatpak" : true,
"snap" : true
},
{
"name" : "Disk Usage Analyzer",
"icon" : "org.gnome.baobab",
"flatpak" : true
},
{
"name" : "Document Viewer",
"icon" : "org.gnome.Evince",
"flatpak" : true,
"snap" : true
},
{
"name" : "Fonts",
"icon" : "org.gnome.font-viewer",
"flatpak" : true
},
{
"name" : "Image Viewer",
"icon" : "org.gnome.eog",
"flatpak" : true,
"snap" : true
},
{
"name" : "Logs",
"icon" : "org.gnome.Logs",
"flatpak" : true,
"snap" : true
},
{
"name" : "Maps",
"icon" : "org.gnome.Maps",
"flatpak" : true
},
{
"name" : "Text Editor",
"icon" : "org.gnome.TextEditor",
"flatpak" : true
},
{
"name" : "Weather",
"icon" : "org.gnome.Weather",
"flatpak" : true,
"snap" : true
}
]
},
{
"id": "office",
"title": "Office",
"subtitle": "The LibreOffice suite.",
"default": false,
"applications" : [
{
"name" : "LibreOffice",
"icon" : "org.libreoffice.LibreOffice",
"flatpak": true,
"snap" : true
}
]
},
{
"id": "utilities",
"title": "Common Utilities",
"subtitle": "Useful utilities like Bottles or Sound Recorder.",
"default": false,
"applications" : [
{
"name" : "Bottles",
"icon" : "com.usebottles.bottles",
"flatpak" : true
},
{
"name" : "Boxes",
"icon" : "org.gnome.Boxes",
"flatpak" : true,
"snap" : true
},
{
"name" : "Flatseal",
"icon" : "com.github.tchx84.Flatseal",
"flatpak" : true
},
{
"name" : "Metadata Cleaner",
"icon" : "fr.romainvigier.MetadataCleaner",
"flatpak" : true
},
{
"name" : "Rnote",
"icon" : "com.github.flxzt.rnote",
"flatpak" : true
},
{
"name" : "Shortwave",
"icon" : "de.haeckerfelix.Shortwave",
"flatpak" : true,
"snap" : true
},
{
"name" : "Sound Recorder",
"icon" : "org.gnome.SoundRecorder",
"flatpak" : true
}
]
}
],
"final": [
{
"if" : "Calendar",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Calendar"]
},
{
"if" : "Characters",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Characters || snap install gnome-characters"]
},
{
"if" : "Cheese",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Cheese || snap install cheese"]
},
{
"if" : "Clocks",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.clocks || snap install gnome-clocks"]
},
{
"if" : "Connections",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Connections"]
},
{
"if" : "Contacts",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Contacts || snap install gnome-contacts"]
},
{
"if" : "Disk Usage Analyzer",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.baobab"]
},
{
"if" : "Document Viewer",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Evince || snap install evince"]
},
{
"if" : "Fonts",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.font-viewer"]
},
{
"if" : "Image Viewer",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.eog || snap install eog"]
},
{
"if" : "Logs",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Logs || snap install gnome-logs"]
},
{
"if" : "Maps",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Maps"]
},
{
"if" : "Text Editor",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.TextEditor"]
},
{
"if" : "Weather",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Weather || snap install gnome-weather"]
},
{
"if" : "LibreOffice",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.libreoffice.LibreOffice || snap install libreoffice"]
},
{
"if" : "Bottles",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y com.usebottles.bottles"]
},
{
"if" : "Boxes",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.Boxes || snap install gnome-boxes"]
},
{
"if" : "Flatseal",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y com.github.tchx84.Flatseal"]
},
{
"if" : "Metadata Cleaner",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y fr.romainvigier.MetadataCleaner"]
},
{
"if" : "Rnote",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y com.github.flxzt.rnote"]
},
{
"if" : "Shortwave",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y de.haeckerfelix.Shortwave || snap install shortwave"]
},
{
"if" : "Sound Recorder",
"type" : "command",
"commands" : ["!nextBoot flatpak install -y org.gnome.SoundRecorder"]
}
]
},
"nvidia": {
"template": "yes-no",
"display-conditions": [
"lspci | grep -i '.* nvidia .*'"
],
"icon": "video-display-symbolic",
"title": "NVIDIA® Drivers",
"description": "Choose whether to install proprietary NVIDIA drivers for better compatibility and performance.",
"buttons": {
"yes": "Yes, install",
"no": "Skip",
"info": {
"type": "text",
"title": "About Proprietary Drivers",
"text": "A proprietary driver has private code that neither Vanilla OS nor Ubuntu developers can review.\n\nSecurity and other updates are dependent on the driver vendor."
}
},
"final": [
{
"if": "nvidia",
"type": "command",
"commands": [
"apt install -y linux-headers-$(uname -r)",
"ubuntu-drivers install --recommended"
]
}
]
},
"vm": {
"template": "yes-no",
"display-conditions": [
"grep 'hypervisor' /proc/cpuinfo"
],
"icon": "application-x-appliance-symbolic",
"title": "Open VM Tools",
"description": "Choose whether to install Open VM Tools for the virtual machine.",
"buttons": {
"yes": "Install",
"no": "Skip",
"info": {
"type": "text",
"title": "About Open VM Tools",
"text": "Install Open VM Tools for seamless integration with Virtual machines."
}
},
"final": [
{
"if": "vm",
"type": "command",
"commands": ["apt install -y open-vm-tools open-vm-tools-desktop"]
}
]
},
"codecs": {
"template": "yes-no",
"icon": "vanilla-puzzle-piece-symbolic",
"title": "Restricted Codecs",
"description": "Choose whether to install restricted codecs and fonts.",
"buttons": {
"yes": "Install",
"no": "Skip",
"info": {
"type": "text",
"title": "About Restricted Codecs",
"text": "Install drivers, fonts and other essentials from the ubuntu-restricted-extras and ubuntu-restricted-addons repositories."
}
},
"final": [
{
"if": "codecs",
"type": "command",
"commands": ["apt install -y ubuntu-restricted-addons ubuntu-restricted-extras"]
}
]
},
"extra": {
"template": "preferences",
"icon": "dialog-warning-symbolic",
"title": "Extra Settings",
"description": "The following are optional settings, leave them as they are if you don't know what they do.",
"preferences": [
{
"id": "apport",
"title": "Apport",
"subtitle": "Apport is a crash reporting system that helps us improve the stability of the system."
}
],
"final": [
{
"if": "apport",
"type": "command",
"commands": [
"apt install -y apport",
"systemctl enable apport.service || true"
]
},
{
"if": "apport",
"condition": false,
"type": "command",
"commands": [
"apt remove -y apport",
"systemctl disable apport.service || true"
]
}
]
}
}
}