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

166 lines
6.6 KiB
JSON

{
"log_file": "/etc/vanilla/first-setup.log",
"distro_name": "Vanilla OS",
"distro_logo": "io.github.vanilla-os.FirstSetup",
"pre_run": [
"sudo apt update",
"sudo apt install -f"
],
"post_run": [
"sudo apt update",
"sudo apt install -f"
],
"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 apx.\n\nGNOME Software will be disabled if you choose to enable the immutability feature later.",
"title": "No package manager selected",
"final": [
{
"if": "warp::immutability",
"type": "command",
"commands": [
"sudo apt remove -y gnome-software"
]
}
]
},
"preferences": [
{
"id": "flatpak",
"title": "Flatpak",
"subtitle": "Will also configure the Flathub repository.",
"default": true
},
{
"id": "snap",
"title": "Snap",
"subtitle": "Uses the Snapcraft repository. Default in Ubuntu."
},
{
"id": "appimage",
"title": "AppImage",
"subtitle": "Will install the necessary dependencies to run AppImages."
}
],
"final": [
{
"if": "flatpak",
"type": "command",
"commands": [
"sudo apt install -y flatpak gnome-software-plugin-flatpak",
"flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo",
"gsettings set org.gnome.software packaging-format-preference '[\"flatpak\", \"snap\", \"deb\"]'"
]
},
{
"if": "snap",
"type": "command",
"commands": [
"sudo apt install -y snapd",
"gsettings set org.gnome.software packaging-format-preference '[\"flatpak\", \"snap\", \"deb\"]'"
]
},
{
"if": "appimage",
"type": "command",
"commands": ["sudo apt install -y fuse2 libfuse2"]
}
]
},
"immutability": {
"template": "yes-no",
"icon": "security-medium-symbolic",
"title": "On-Demand Immutability",
"description": "Choose whether to protect your system from deterioration by making it immutable.",
"buttons": {
"yes": "Enable",
"no": "Skip",
"info": {
"type": "text",
"title": "What is On-Demand Immutability?",
"text": "Immutability makes it impossible to modify system files, preventing them from being compromised.\n\nImmutable On-Demand mode is a file attribute-based system that lets you turn OS immutability on and off on the fly, without having to reboot. You can use the command line tool 'almost' to change its operation, check its status, change the default mode and much more.\n\nThis system does not require the use of special file systems and is entirely managed by the Almost tool, developed by the Vanilla OS Team."
}
},
"final": [
{
"if": "immutability",
"type": "command",
"commands": [
"sudo apt install -y almost almost-extras",
"sudo almost enter rw"
]
}
]
},
"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": ["sudo ubuntu-drivers install --recommended"]
}
]
},
"extra": {
"template": "preferences",
"icon": "vanilla-puzzle-piece-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": [
"sudo apt install -y apport",
"systemctl enable apport.service || true"
]
},
{
"if": "apport",
"condition": false,
"type": "command",
"commands": [
"sudo apt remove -y apport",
"systemctl disable apport.service || true"
]
}
]
}
}
}