Giter Club home page Giter Club logo

installer's Introduction

Installer

Translation status

Note: this is the installer for elementary OS 6 and newer. For the elementary OS 5.1 and older installer, see Ubiquity.

Screenshot

An installer for open-source operating systems. See the wiki for goals, design spec, user flow, and details about each step.

Building, Testing, and Installation

You'll need the following dependencies:

  • meson
  • desktop-file-utils
  • gettext
  • gparted
  • libgnomekbd-dev
  • libgranite-dev >= 0.5
  • libgtk-3-dev
  • libgee-0.8-dev
  • libhandy-1-dev
  • libjson-glib-dev
  • libpwquality-dev
  • libxml2-dev
  • libxml2-utils
  • distinst
  • valac

Run meson build to configure the build environment. Change to the build directory and run ninja test to build and run automated tests.

meson build --prefix=/usr
cd build
ninja test

To install, use ninja install, then execute with io.elementary.installer. Note that listing drives and actually installing requires root.

sudo ninja install
io.elementary.installer

You can also use --test mode for development to disable destructive behaviors like installing, restarting, and shutting down:

io.elementary.installer --test

For debug messages, set the G_MESSAGES_DEBUG environment variable, e.g. to all:

G_MESSAGES_DEBUG=all io.elementary.installer

installer's People

Contributors

bagjunggyu avatar cassidyjames avatar codygarver avatar colindemian avatar comradekingu avatar danirabbit avatar davidmhewitt avatar ddieter avatar dennis1248 avatar elementarybot avatar fabiozaramella avatar guanox avatar hugok79 avatar ihorhordiichuk avatar jackpot51 avatar jendamarek avatar josprachi avatar lenemter avatar marcin-serwin avatar mmstick avatar naaando avatar nathanbnm avatar nunothomas avatar queeup avatar ryonakano avatar strebski avatar tomiohl avatar weblate avatar welaq avatar yarons avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

installer's Issues

Add back buttons

We should add back buttons to the panes to go to the previous pane. Since we are not going to re-show the issue detection screens, we know the order of the panes and can just hardcode it in each pane.

Back buttons should go to the left of the cancel button.

Disk View design

We want to use this view to:

  1. List available drives,
  2. Inform the user this will erase data from the drive, and
  3. Require an affirmative action from the user to select the drive before they can proceed.

Even if the device only has one drive, we want to make have the user select it so they're explicitly telling us to erase that drive.

Sketch

The "Erase and Install" button must be disabled until a drive is selected, and no drive should be selected by default.

Offer to Re-install, not upgrade a current version

At the moment the installer is offering to upgrade my Loki installation when it should be offering to re-install it. The copy we have in the doc is:

Reinstall
Reinstall a fresh copy of elementary OS without losing any of your data or settings.

The icon for this I think has been lost to time. So we could create a new system-os-reinstall or use something existing unsure.

Testing the installer

I am interested in contributing to the installer. However, I do not want to actually run it on my computer, fearing that I might break it. What is the recommended way to test/develop the installer?

Installer should not change the hostname of an existing linux system on the machine

What happened:
I am planning to install elementary (for my wife) on a separate partition alongside my existing Arch/Antergos install.

I booted from the usb-key, selected "Install" and aborted the installer after selecting the "download updates during install" stage. (Forgot to backup something :-) )

After rebooting to antergos I found that the installer had changed the hostname on the arch root partition to "elementary".

Expected behaviour:
The installer should never touch the root partition of an existing linux (or other os) on the machine if I did not choose to delete it completely (exception: update grub).

The installer should not touch anything on the harddisk drive until all settings are made and I answer the last "are you sure?" question.

Question:
Can I install elementary on a seperate partition at all or do I have to expect it messes up my existing install?

Put the most popular languages at the top of the list

We should sort like the top 5 languages at the top of the language chooser. It would save time for the majority of our users. Maybe throw them up there in order of popularity then a separator then everything else in alphabetical order.

Option to install drivers

Right now installing graphics drivers is a pain, especially due to configuration changes. It would be nice if the installer could detected the GPU and give an option to install proprietary drivers out of the box. Expanding on this, it would be nice if we could install other drivers like networking on install.

I realize this overlaps with AppCenter and the drivers section. But this would help a lot with the out of box experience.

Don't add "use" to language

In the spec, there's a comment that I think is correct. Adding "Use" doesn't really add any value. It just makes the list harder to scan and adds something else to translate.

When Cancelled, installer says it segfaulted

what's on the tin. The installer claims it had a segfault

(gdb) run
Starting program: /home/daniel/Projects/pantheon-installer/build/pantheon-installer
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[INFO 17:23:02.607996] Application.vala:155: Installer version: (null)
[INFO 17:23:02.608039] Application.vala:157: Kernel version: 4.4.0-45-generic
[New Thread 0x7fffe88aa700 (LWP 26739)]
[New Thread 0x7fffe3fff700 (LWP 26740)]
[New Thread 0x7fffe0c66700 (LWP 26742)]

Thread 1 "pantheon-instal" received signal SIGSEGV, Segmentation fault.
0x000000000040dd75 in installer_language_view_row_selected ()
(gdb)

Keyboard Layout selection

We need to be able to choose a keyboard layout for the live session and to set the default for the installed system. This should come right after the language screen.

Add close button

Since this will be in a live session, you should be able to close the installer. When it should be un-closable, we should make the close button insensitive.

Update grub at the end of the installation

A lot of times, when you install alongside different OS, the grub won't be updated, and you will be straight booted into elementary OS without a grub display. The installer should do that automatically, so users don't need to execute any "update-grub" commands on their system.

Update the OS icons

  • Remove Mint because it doesn't get used
  • Use Sam's macOS logo instead of the Apple Logo
  • Make sure these all use the correct canvas size that we intend to display them at
  • Consider flattening Tux to fit in

Start with a simple welcome page

The first screen is currently the language selection. It might be nice to have a welcome page first with a simple blue elementary logo, the text "elementary OS", a short welcome text and a single "Begin Installation" button.

Might I suggest the short welcome text be the following line from your website?

"A fast and open replacement for Windows and macOS"

Even though the user might previously select from a boot menu options like "try elementary OS" and "install elementary OS" (she has alread indicated to start the installer) - it would still be nice to have this start page.

"Installing" view

Show the distributor logo, a progress bar, and a dim-label with a terminal icon to reveal terminal output up over the logo.

The logo should have a uniquely-targetable style class, plus something like .percent-75 where 75 is the percent of the installation progress. This could be useful to distributors as a hook for CSS animations to brand the experience without resorting to a video or webview.

Consider Using Calamares

I stumbled across Calamares, a installer framework, I had a look at the code, and it seems to me elementary OS could be integrated into the code to make a installer.

I tried to look at the ubiquity code to see what could be put into the Calamares modules but ubiquity is a mess :L

https://github.com/calamares/calamares

Error view

I know @jackpot51's code is ๐Ÿ‘Œ but in case something goes wrong and the installation can't proceed, we should have an error view designed. Probably just similar to the success view.

Language View: Geolocate for language selection

We should try and use GeoClue to bubble the relevant languages to the top; we don't need an Internet connection if GeoClue can use other signals to determine a "precise enough" location. And we can't connect to the Internet first anyway since language selection must be first.

Name stack children consistently

We should name our views in the stack more consistently; with underscores and matching the views. I.e. success_view, progress_view, etc.

Installation Success view

We should show a title ("Installed elementary OS"), large green check icon, copy that says something along the lines of "Your device will restart in 30 seconds to set up a new user.", then then a suggested action of "Restart" and a secondary action of "Shut Down".

img_20170829_135251

Move to window instead of dialog

Not supposed to have a parent-less dialog. Instead we should make it a window with flat, rounded, and default-decoration style classes.

Automatically Add Color Profiles During Mac Installs

During a dual-boot installation on a MacBook, it would be insanely awesome if the installer could detect the existence of a Macintosh partition, and then from there automatically add the .icc color profiles from 'Macintosh HD > Library > ColorSync > Profiles > Displays'

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.