Ubuntu Desktop Installer

Overview

Ubuntu Desktop Installer

CI codecov

This project is a modern implementation of the Ubuntu Desktop installer, using subiquity as a backend and Flutter for the UI.

Checkout & Run

Grab the source:

git clone https://github.com/canonical/ubuntu-desktop-installer.git
cd ubuntu-desktop-installer
git submodule update --init --recursive

Install and configure Flutter:

snap install flutter --classic
flutter upgrade
flutter config --enable-linux-desktop

Install dependencies:

cd packages/subiquity_client
dart pub get
cd subiquity
make install_deps
cd ../../ubuntu_desktop_installer
flutter pub get

Run:

flutter run

Run Live Installer

In one terminal run:

cd /path/to/ubuntu-desktop-installer/packages/subiquity_client/subiquity
sudo python3 -m subiquity.cmd.server

In another terminal run:

cd /path/to/ubuntu-desktop-installer/packages/ubuntu_desktop_installer
LIVE_RUN=1 flutter run

Contributing

See our contributor guidelines.

License

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

Comments
  • Screen ? - Choose your look

    Screen ? - Choose your look

    opened by madsrh 42
  • Adjust welcome page design

    Adjust welcome page design

    • add the mascot_white.svg as the current ubuntu mascot logo
    • wrap the language selection in a row together with a primary color colored mascot image

    TODO:

    • [x] update readme with a new picture
    • [x] fix test
    • [x] loading page

    Closes #567

    opened by Feichtmeier 40
  • Unable to run in Ubuntu 21.10 on Lenovo Thinkpad T580, Intel i5

    Unable to run in Ubuntu 21.10 on Lenovo Thinkpad T580, Intel i5

    achak@aC-ubThnkpd:~/ubuntu-desktop-installer/packages/ubuntu_desktop_installer$ LIVE_RUN=1 flutter run
    "en": 159 untranslated message(s).
    "es": 159 untranslated message(s).
    "es_ES": 110 untranslated message(s).
    "fi": 159 untranslated message(s).
    "fi_FI": 156 untranslated message(s).
    "fr": 159 untranslated message(s).
    "fr_FR": 110 untranslated message(s).
    "it": 159 untranslated message(s).
    "it_IT": 144 untranslated message(s).
    "nl": 159 untranslated message(s).
    "nl_NL": 140 untranslated message(s).
    "oc": 159 untranslated message(s).
    "oc_FR": 17 untranslated message(s).
    "pt": 159 untranslated message(s).
    "pt_BR": 7 untranslated message(s).
    "ru": 159 untranslated message(s).
    "ru_RU": 140 untranslated message(s).
    To see a detailed report, use the untranslated-messages-file 
    option in the l10n.yaml file:
    untranslated-messages-file: desiredFileName.txt
    <other option>: <other selection> 
    
    
    This will generate a JSON format file containing all messages that 
    need to be translated.
    Launching lib/main.dart on Linux in debug mode...
    /snap/flutter/current/usr/bin/ld: warning: /usr/lib/gcc/x86_64-linux-gnu/11/../../../x86_64-linux-gnu/crt1.o: unsupported GNU_PROPERTY_TYPE (5) type: 0xc0008002
    Building Linux application...                                           
    libGL error: MESA-LOADER: failed to open swrast: /lib/x86_64-linux-gnu/libpthread.so.0: version `GLIBC_PRIVATE' not found (required by /snap/flutter/current/usr/lib/x86_64-linux-gnu/dri/../../../../lib/x86_64-linux-gnu/librt.so.1) (search paths /snap/flutter/current/usr/lib/x86_64-linux-gnu/dri, suffix _dri)
    libGL error: failed to load driver: swrast
    
    ** (ubuntu_desktop_installer:35748): WARNING **: 01:37:01.821: Failed to start Flutter renderer: Unable to create a GL context
    Error waiting for a debug connection: The log reader stopped unexpectedly.
    Error launching application on Linux.
    
    opened by BioHazard1282 23
  • Add

    Add "ChooseYourLookPage"

    • add two new assets from @waynecrosby for the theme previews
    • add AppTheme to main.dart and a new ChangeNotifierProvider for other Widgets to watch the theme change
    • add ChooseYourLookPage to the routes
    • add ChooseYourLookPage for the current design

    TODO:

    • [x] what's the next page to navigate to? @oSoMoN ? I left an "empty" function for the future - is this okay?
    • [x] build the page via localisation

    ok

    Closes #84 Closes #128

    Thanks @jpnurmi for the help <3

    opened by Feichtmeier 23
  • Added const before sizedbox

    Added const before sizedbox

    flutter skips rebuilding the const widgets. If we use const the widget only builds once. It doesn't rebuild when the build method reruns when you call setState.

    opened by Abhishek01039 20
  • Screen 11 - Allocate Disk Space

    Screen 11 - Allocate Disk Space

    The design for screen n°11, Allocate Disk Space

    space

    Design details https://people.canonical.com/~platform/desktop/installer/11.%20Allocate%20Disk%20Space/

    specification 
    opened by seb128 18
  • [WSL] Option for deferring language pack installation

    [WSL] Option for deferring language pack installation

    A considerable amount of time of the WSL setup workflow in spent running apt to download and install language packs and fonts to ensure a good language support. The amount of time depends on which language is selected.

    To make things worse, WSL 2 is known to have some internet speed limitation issue, such as what's described in https://github.com/microsoft/WSL/issues/4901 .

    In line with the suggestion in https://github.com/ubuntu/WSL/issues/174 I plan to let the user opt-out for that language pack installation feature, trading setup speed for better language support. In such case Subiquity will only mark those packages for later installation, requiring from the user to run sudo apt-get dselect-upgrade at some point, whenever she feels like it's more appropriate.

    To reflect that possibility in the UI, I propose changes to the Select your language page:

    Current

    image

    Proposal

    image image

    Notice that the checkbox subtitle changes from a disclaimer about the setup duration to an information about the command required to install the packages marked for later.

    opened by CarlosNihelton 16
  • Regression: translations not loaded on Welcome screen

    Regression: translations not loaded on Welcome screen

    This seems to be a fairly recent regression (although I only noticed it yesterday): when running the installer from a git checkout on a system where the default locale is fr_FR.UTF-8, the language selected by default on the Welcome screen is French (as expected), but UI elements aren't translated in French until I click again on the "French" entry in the list.

    screenshot

    opened by oSoMoN 16
  • Where are you?

    Where are you?

    The map in the original design is not accessible. Therefore, the initial version of the page comes without a map.

    https://user-images.githubusercontent.com/140617/148355112-da204953-3a4a-4a25-a0b2-6731648b8a63.mp4

    Close: #38

    opened by jpnurmi 15
  • i18n: use launchpad or weblate

    i18n: use launchpad or weblate

    Hello, I'd like to translate the brand new installer but I'm not confident with the way translations are handled. Would it be possible to use an interface like launchpad or a weblate instance?

    opened by ensag-dev 14
  • Prevents UI to translate itself for languages lacking font support in WSL

    Prevents UI to translate itself for languages lacking font support in WSL

    There are a couple of languges that require adding specific font packages to better support them for WSL. Unfortunately we didn't detect it earlier and the lack of such fonts is causing issues to users. Adding the required fonts will increase too much the image size, so the short term approach is to prevent the UI from translating itself into any of those languages. They will still show up in the "Select your language" page and selecting any of those will still be meaningfull for Subiquity, so they must be preserved.

    With the following changes we go from this (notice the first line and last two): image

    into this: image

    This closes https://github.com/ubuntu/WSL/issues/172

    opened by CarlosNihelton 13
  • Correct Btrfs filesystem description journaling on selection

    Correct Btrfs filesystem description journaling on selection

    Hello, When choosing manual partitioning you have a selection of filesystems to choose from, when selecting Btrfs it is incorrectly described as: "Btrfs journaling file system" [1], it is actually a COW filesystem and does not have journaling [2].

    1:
    installer

    2:

    btrfs is a modern copy on write (CoW) filesystem for Linux https://btrfs.wiki.kernel.org/index.php/Main_Page

    opened by emanuc 0
  • Update dependency handy_window to ^0.2.0

    Update dependency handy_window to ^0.2.0

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | handy_window | dependencies | minor | ^0.1.6 -> ^0.2.0 |


    Release Notes

    ubuntu-flutter-community/handy_window

    v0.2.0

    Compare Source

    • Add soft light border in dark theme (#​20).

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Manual partitioning table: add/edit on double click

    Manual partitioning table: add/edit on double click

    Let the user double-click partition entries to edit them, or "free space" entries to add new partitions, instead of forcing them to select entries first and then click the Add or Edit button below.

    NOTE: Due to how gesture negotiation works in Flutter, handling double-click adds a 300ms delay for single clicks. This makes single-click selection and interaction with the Format checkboxes feel somehow a bit laggy.

    Close: #1203

    opened by jpnurmi 0
  • ubuntu-desktop-installer and distrochooser?

    ubuntu-desktop-installer and distrochooser?

    Hi all.

    I want to help, but I want to know if this project is active. Is this project active?

    I would like to help with an idea, I am thinking of creating an ubuntu installer version with the distrochooser design

    image

    idea image

    opened by codehangen 0
  • Installer window disappears with llvmpipe segfault on daily canary

    Installer window disappears with llvmpipe segfault on daily canary

    Hello,

    I am playing with the daily canary installer in a VM. The ubuntu-desktop-installer version is 698 and I am starting the VM using the following command:

    kvm -cdrom lunar-desktop-canary-amd64.iso -m 4G -drive file=/tmp/foo.img,cache=unsafe -smp 2 -vga virtio
    

    Oftentimes, the installation window disappears when clicking on a button (it seems the issue is not related to a specific button or a specific page). There is no visible error on the screen or in /var/log/installer. The window just seems to close and I suspect the install process terminates too.

    The moment the window disappears coincides with a segfault in a llvmpipe process (which seems to be related to mesa) which I assume could be the root cause.

    [  109.464166] llvmpipe-1[2339]: segfault at 7f89076beffc ip 00007f89480018ea sp 00007f893fffe6a0 error 4
    [  109.464175] Code: fe d8 66 0f 70 c3 55 66 0f 7e dd 66 0f 7e c1 66 0f 70 c3 ee 48 63 ed 66 0f 7e c6 66 0f 70 c3 ff 48 63 c9 66 0f 7e c0 48 63 f6 <66> 0f 6e 1c 19 48 98 66 0f 6e 0c 1e 66 0f 6e 04 18 66 0f 62 c8 66
    

    Thanks, Olivier

    opened by ogayot 1
Owner
Canonical
Canonical
A tutorial for creating an Ubuntu Linux Flutter app, using the yaru theme

Building a Yaru app with Flutter Summary URL https://github.com/ubuntu/user_manager Category Environment Linux Status Feedback Link Author Frederik Fe

Ubuntu 22 Dec 21, 2022
Flutter basic desktop project. Desktop todo app.

Glory Todo Desktop Basic and Primitive Flutter Desktop Project! Goal My goal is to accept my inexperience without worrying about the plugin shortcomin

Özgür 52 Dec 3, 2022
gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required.

GUI_AUTOMATION gui automation based on pyautogui python as backend and flutter desktop as frontend, drag and drop tool, no coding required. Install py

Hassan Kanso 34 Oct 30, 2022
an internship log book desktop app

LogBook Desktop App an internship log book desktop app Table of contents LogBook Desktop App Table of contents Features Log Book Format Demo Screensho

Donald Chinhuru 53 Sep 17, 2022
Flutter UI Kits for mobile, tablet, desktop and web application

UIKits2 A complete UIs for mobile and tablet, which include 16 categories. Start SignUp & Login Walkthrough Loading Profiles Feed Article Activity Cre

Anuchit Chalothorn 25 Oct 8, 2022
Hybrid App build on flutter SDK able to run on Android, IOS, web, desktop

Codeforces Visualizer APP Ready to use Flutter Application. Uses codeforces API. Useful for codeforces programmers. ScreenShots Single User Page Compa

vikas yadav 13 Dec 31, 2022
Learn to build apps that work on Android, iOS, Web, and Desktop

Cross-Platform Development with Flutter Course Learn to build apps that work on Android, iOS, Web, and Desktop Go To Course Flutter is Google’s UI too

Mohamed Ibrahim 11 Oct 24, 2022
This plugin allows Flutter desktop apps to resizing and repositioning the window.

window_manager This plugin allows Flutter desktop apps to resizing and repositioning the window. window_manager Platform Support Quick Start Installat

LeanFlutter 346 Jan 3, 2023
A Flutter package that makes it easy to customize and work with your Flutter desktop app's system tray.

system_tray A Flutter package that that enables support for system tray menu for desktop flutter apps. on Windows, macOS and Linux. Features: - Modify

AnTler 140 Dec 30, 2022
This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut).

hotkey_manager This plugin allows Flutter desktop apps to defines system/inapp wide hotkey (i.e. shortcut). hotkey_manager Platform Support Quick Star

LeanFlutter 81 Dec 21, 2022
A Flutter package that makes it easy to customize and work with your Flutter desktop app window.

bitsdojo_window A Flutter package that makes it easy to customize and work with your Flutter desktop app window on Windows, macOS and Linux. Watch the

Bits Dojo 606 Dec 27, 2022
how to set up for run the application on desktop

e_learning_app A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started i

FlutterDevs 11 Nov 1, 2022
Manage desktop space easily with this simple Flutter app.

dspace A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you started if this i

null 0 Nov 12, 2021
GitHub Desktop tutorial repository

demo_bloc_infinitylist A new Flutter project. Getting Started This project is a starting point for a Flutter application. A few resources to get you s

Nguyễn Thành Tâm 0 Nov 4, 2021
A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Android, Web, Windows, Linux and macOS.

cross_connectivity A Flutter plugin for handling Connectivity and REAL Connection state in the mobile, web and desktop platforms. Supports iOS, Androi

MarchDev Toolkit 29 Nov 15, 2022
A documents-organizing desktop app built with flutter

Army Book Desktop App a documents-organizing desktop app Screenshots Change Log see change log Plugins Momentum (State management) Sembast (Database)

Đỗ Doãn Phước Hưng 2 Jan 10, 2022
A beautiful and cross platform NHentai Client, Support desktop and mobile phone

A beautiful and cross platform NHentai Client. Support desktop and mobile phone (Mac/Windows/Linux/Android/IOS).

null 324 Dec 29, 2022
Ubuntu Desktop Installer

Ubuntu Desktop Installer This project is a modern implementation of the Ubuntu Desktop installer, using subiquity as a backend and Flutter for the UI.

Canonical 388 Jan 7, 2023
Manage Subiquity for Ubuntu Desktop Installer

Manage Subiquity for Ubuntu Desktop Installer

J-P Nurmi 1 Mar 3, 2022
Ubuntu Yaru Style - Distinct look and feel of the Ubuntu Desktop

Ubuntu Yaru Style - Distinct look and feel of the Ubuntu Desktop Using Yaru To be able to use this package follow this steps: Installation Make you su

Ubuntu 226 Dec 28, 2022