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

183 lines
7.7 KiB
JSON

{
"log_file": "/etc/vanilla/first-setup.log",
"distro_name": "Vanilla OS",
"distro_logo": "io.github.vanilla-os.FirstSetup",
"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"]
}
]
},
"subsystem": {
"template": "yes-no",
"icon": "vanilla-container-terminal-symbolic",
"title": "Sub System",
"description": "Access a minimal mutable Ubuntu installation integrated with Vanilla OS.",
"buttons": {
"yes": "Enable",
"no": "Skip",
"info": {
"type": "text",
"title": "What is Sub System?",
"text": "The Sub-System is a container that allows you to install deb packages without altering the system. It is useful for installing software without having to enter the read-write mode.\n\nYou don't need to enter the container to install packages, just use the apx command (wrapper around the apt inside the container) to install new programs and automatically make them available in your Vanilla OS installation.\n\nThis features uses distrobox as backend."
}
},
"final": [
{
"if": "subsystem",
"type": "command",
"commands": [
"sudo apt install -y apx",
"curl -s https://raw.githubusercontent.com/89luca89/distrobox/main/install | sudo sh"
]
}
]
},
"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",
"sudo almost enter rw"
]
}
]
},
"nvidia": {
"template": "yes-no",
"display-conditions": [
"lspci | grep -i '.* vga .* 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"
]
}
]
}
}
}