Skip to content

er-vin/ubuntu-desktop-provision

 
 

Repository files navigation

Ubuntu Desktop Provision

CI codecov screenshots

Bugs

Please report any bugs related to Ubuntu Desktop Provision on Launchpad. We use the GitHub issue tracker only for issues related to the development of Ubuntu Desktop Provision itself.

Configuration

The full configuration guide can be read here.

But the basics are that the UI can be configured using a YAML file that is read from here: /usr/share/desktop-provision/whitelabel.yaml

The configuration file has the following structure:

# (Optional) Drives overall behaviour for specific provisioners.
#
# Options:
# - standard (default): the common provision flow for Ubuntu Desktop and Flavours
# - oem: enables the eula page and disables the user creation page during bootstrap
# - core-desktop: disables exiting the installer at the end (because there is no
#   live session), and only allows to reboot
mode: standard | oem | core-desktop

# (Optional) When set, the light and dark theme is inherited from ubuntu-flutter-plugins and the distro name is set.
#
# Options:
# - budgie
# - cinnamon
# - edubuntu
# - kubuntu
# - kylin
# - lubuntu
# - mate
# - studio
# - unity
# - xubuntu
flavour: <name>

# (Optional) Sets the window's title (e.g. the text in alt|super + tab)
app-name: <string>

# (Optional) Overrides the theme's accent colors (remember the quotes)
theme:
  light:
    accent-color: <color-hex-code> # i.e. "#ff0011"
    elevated-button-color: <color-hex-code>
    elevated-button-text-color: <color-hex-code>
  dark:
    accent-color: <color-hex-code> # i.e. "#ff0011"
    elevated-button-color: <color-hex-code>
    elevated-button-text-color: <color-hex-code>

# (Optional) Override a page's image asset.
# Images expected in /usr/share/desktop-provision/images/<image-name>
#
# Bootstrap pages:
# - locale: Select the interface language
# - accessibility: Allow user to configure GNOME accessibility options
# - rst: Identifies if the computer has Intel Rapid Storage Technology (rst) active
# - keyboard: Set keyboard layout
# - network: Connect to a network
# - refresh: Expose installer's auto-update mechanism
# - source-selection: Choose installation source, i.e. which applications that should be installed
# - codecs-and-drivers: Choose if proprietary codecs and drivers should be installed
# - not-enough-disk-space: Notifies if there is insufficient disk space
# - secure-boot: Handles secure boot
# - storage: Select target disk and partition
# - identity: Create the first-user account (only displaed if mode = default)
# - confirm: A summary of the installation and confirmation button to start the install
#
# Init pages (for oem only)
# - identity: Create the first-user account 
# - ubuntu-pro: Enable Ubuntu Pro
# - privacy: Enable location services
# - timezone: Set the timezone
# - telemetry: Enable sending telemetry
pages:
  <page-name>:
    image: <image-name>

Repository Structure

Frontend

The UI is written in Flutter and consists of multiple Dart/Flutter packages contained in packages/. The most important ones are:

  • ubuntu_bootstrap - Flutter UI that drives subiquity in the 'device bootstrap' stage. This is the core of the ubuntu-desktop-bootstrap snap built from the bootstrap-snap branch and replaces the ubuntu-desktop-installer.
  • ubuntu_init - Flutter UI that drives provd in the 'first boot initialization' stage. This is the core of the ubuntu-desktop-init snap built from the init-snap branch and serves as a replacement for gnome-initial-setup.
  • ubuntu_provision - Flutter package that contains shared code and pages used by both ubuntu_bootstrap and ubuntu_init.
  • ubuntu_wizard - Flutter package that provides the common wizard-style UI framework.
  • subiquity_client and provd_client - Dart packages that provide a client library for the different backends.

Backend

TODO

Translations

TODO

Contributing

See our contributor guidelines.

License

The Ubuntu Desktop Provision is licensed under the GNU General Public License version 3.

About

Ubuntu Desktop Provision

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Dart 96.3%
  • Go 2.6%
  • Python 0.4%
  • CMake 0.3%
  • Shell 0.2%
  • C++ 0.2%