GithubHelp home page GithubHelp logo

torxed / archinstall_gui Goto Github PK

View Code? Open in Web Editor NEW
26.0 3.0 1.0 5.45 MB

Guided Arch Linux graphical installer

License: GNU General Public License v3.0

Python 81.29% HTML 6.66% CSS 7.22% Shell 1.43% Makefile 0.65% Batchfile 0.78% JavaScript 1.98%
arch linux archinstall-gui iso installer graphical gui guided automated

archinstall_gui's Introduction

<--- This is Anton

Hobbyist, researcher and developer

Creator and maintainer of archinstall.
Some of my areas' of interest are:

  • Python mechanics
  • Building electric motorcycles
  • Teaching others
  • 3D / 2D game making (mainly using pyglet and blender)

Different social media accounts

hvornum.se hvornum | StackOverflow hvornum | LinkedIn hvornum | YouTube hvornum | Twitter

archinstall_gui's People

Contributors

torxed 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

Watchers

 avatar  avatar  avatar

Forkers

akeada-gmbh

archinstall_gui's Issues

Installer language support

Add support for multiple translations for the installer.
Perhaps a language button at the top right corner or something similar?

Install log doesn't auto-tail

When viewing the install-log, push updates to the client and auto-scroll to the bottom (later: don't auto-scroll if the user scrolls obviously). Perhaps add a notification symbol/style to the "install log" text when something new is in it?

Selecting individual mirrors causes mirrorlist issue

Instead of writing a filter string such as SE, users might select individual mirrors from the mirror-list below. This causes the backend to do a wget https://www.archlinux.org/mirrorlist/?country=&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on -O /root/mirrorlist and then move that to /etc/mirrorlist.

A quick navigation to https://www.archlinux.org/mirrorlist/?country=&protocol=https&ip_version=4&ip_version=6&use_mirror_status=on will result in a HTML page, not an actual mirror-list. which causes /etc/mirrorlist to become the source of the HTML page and not a final mirrorlist.

Investigate why and weed this out.

Set 'pending' status on queued actions

Certain elements can be configured before previous steps have been completed (language for instance). Having an indicator that the option is saved/queued but not yet performed would be nice for users i think.

Long running "waiting for dependency" steps should notify the user

Currently, users can skip a step manually by clicking around in the left hand menu.
required steps will ping pong back the user to the first required step by traversing through the dependency steps.

But optional steps doesn't really have any requirements.
But the chain of spawn() calls is in sequential order, meaning if a step is hard-skipped, the spawn() chain will fail. This is partially by design - but a step that hasn't been "chosen" or "skipped" via the panel, should notify the user about the current hold.

Example:

  1. Select a drive
  2. Skip encryption
  3. Skip mirrors (by using default)
  4. Manually skip Language by cliking on Profiles - not the save button in the language section
  5. Select a profile (for instance desktop.py) and wait for it to be queued.

This leaves Language unresolved forever, until the user goes back to language and presses skip or save. If all steps are in queued and doesn't release for ~5 seconds, the user should be notified of which step is hanging (in this case, Language) to make it more clear that user interaction is needed.

Support templates

Currently, templates are dummy entries.
Supporting them would greatly increase the usability of the project.

Secure the boot proceedure

https://wiki.archlinux.org/index.php/Dm-crypt/Specialties

This is IMO something the main line OS should take care of and enable more and more.
But as things go, this is usually up to individual users and that's when things usually go wrong on a lager scale. So just like with the disk encryption, force (/make it an option to) enable certain security enhancing features such as boot verification etc:

  • Include dm-integrity (or dm-verify).
  • Sign bootloaders if possible
  • Enable 2FA for signin

No warning for users who doesn't use UEFI

Since this installer currently only supports UEFI (due to lack of glue code for legacy bootloaders to work), users won't be able to launch the backend, but the front-end still launches without any error messages.

Add a error-message instead of crashing the whole backend.

Custom mirrors as an option

Add option to support locally synced mirrors that aren't in the official mirror list (I for instance keep a local mirror for speed purposes, to push 1GB+ speeds in test to avoid downtime) which I can't currently use unless i build yet a separate ISO hard coded to it.

Would be neat to have a custom_mirror field some where, future work would allow for more than one. But one mirror is probably plenty fine for starters.

The idea was born out of issue #1.

perhaps some extra switches to add to chromium

I do some kiosk stuff using chromium.
Perhaps some of these other switches might be helpful to add.

Thanks for working on this :)

chromium --no-sandbox --start-fullscreen --disable-infobars http://127.0.0.1

# fresh file space to ensure no unsafe shutdown warning if browser crashed...
rm -rf /tmp/kiosk || true ; mkdir /tmp/kiosk || true
# --test-type               # removes warnings about security
# --no-sandbox              # needed when running as root
# --disable-web-security    # allow local files and CORS
# --check-for-update-interval=10 # 10 seconds show update box fast for testing..(default is like ~7h)
# --simulate-critical-update     # shows update as an icon hidden from user when in fullscreen
chromium-browser --test-type --no-sandbox --disable-web-security --user-data-dir=/tmp/kiosk \
    --window-position=0,0 --start-fullscreen \
    --check-for-update-interval=3628800 --simulate-critical-update \
    --disable-session-crashed-bubble --disable-restore-session-state \
    --noerrdialogs --disable-infobars \
    --enable-fast-unload --enable-tcp-fast-open --dns-prefetch-disable \
    --enable-logging=stderr \
    --kiosk http://127.0.0.1/index.html

use reflector

They could use reflector to update the best mirrors

Multiple dependencies for worker

Currently, worker only supports one dependency in its argument.
Having multiple might be beneficial at the same time, using key-words for dependencies would be good. For instance 'formatting' would check if formatting is complete by string reference, rather than the actual worker handle.
This would improve cross-module/api dependencies.

No "on error" messages

Things can crash in the background and the user won't know about it.
Adding a notification message early in the catch logic would at least send something to the user and perhaps avoid "spinning progress of death".

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.