Page MenuHomeLubuntu

Calamares should let the user pick what applications they WANT to use
Open, NormalPublic

Description

So, by default, we ship a relatively sane amount of applications. But I frequently see people who advise people to "just uninstall all the defaults" or install using the minimal install, but in reality, if they could just flip a switch to install e.g. Firefox instead of Falkon and VLC instead of SMPlayer, we'd have happy users.

With Calamares, this is actually super easy to do. We just need someone who is good at UX design (@redwolf?) to design the screen, and I can implement it.

I really think this should supersede https://phab.lubuntu.me/T30 as well.

Event Timeline

tsimonq2 created this task.May 18 2018, 2:39 PM
tsimonq2 created this object in space S1 Public.
tsimonq2 triaged this task as Normal priority.

Perhaps on the same screen, an OEM option can be worked into this. I'll create a subtask for doing some work on OEM, because although we don't really need it for 18.10 quite yet, for 20.04 it should be available.

There is already such a module, which loads them from the internet. So you can keep the ISO small. Sidestory: There was also XFS implemented since couple of years. In order to prevent you from implementing all this stuff again, I recommend you the IRC channel: #calamares on Freenode.

@ShalokShalom We aren't as novice as you might make us out to be.

Yes, we oversimplified "XFS support" but in reality we just added a dep of xfsprogs to the package.

We also can't do "netboot" in the traditional sense, because we need to assume some people don't have internet access. We're likely going to have to fork it.

Both @wxl and I have been in #calamares on freenode for a few months now. ๐Ÿ™‚

wxl added a comment.Sep 3 2018, 1:04 PM

Actually @tsimonq2 I hadn't even noticed that module (they call it netinstall). It looks like if we set required: false (the default) and stick the netinstall data online somewhere, everything will just work. Those that have internet will load the netinstaller and those that don't, won't. We are already checking for internet in welcome, so everyone will get a warning if they're not connected.

I guess we can try it, but I still think there might be more to this than people are letting on.

wxl added a comment.EditedSep 3 2018, 1:13 PM

Well I'm guess @ShalokShalom can answer. We will have to generate lists of available options. For something like alternative applications that's going to have to mean creating scripts to remove the packages they are replacing.

KevinKofler has a lot of experience with this module. To what I know, does he use it very extensively.
Thanks for what you are doing here. :D

tsimonq2 removed tsimonq2 as the assignee of this task.Sep 19 2018, 10:12 AM
SBanya added a subscriber: SBanya.Sep 19 2018, 9:01 PM

Current research so far:

Notes for Calamares Module

Goal: find a way to make radio buttons accessible for the minimal install

This allows for a user to select a Lubuntu installation with or without a default web browser

Sections Looked So Far In Calamares Module:

src.modules.interactiveterminal:

This yielded no results since the .cpp files here only contain information to check if there is an instance of a console.

src.modules.welcome.WelcomePage.ui:

This .ui file contains what looks to be information regarding support, known issues, bugs, etc.

This might be the .ui file that the Lubuntu admin, "wxl", was looking for.

wxl added a comment.Sep 19 2018, 9:36 PM

To add some context to what @SBanya was saying apparently @tsimonq2 had a chat with some of the Calamares folks on IRC and their netinstall module isn't sufficient for our needs because it only offers checkboxes rather than radio buttons, so we're trying to essentially create our own module that would offer this feature. This way people could do something like:

โ—‰ Falkon
โ—‹ Firefox
โ—‹ Chromium
โ—‹ Qutebrowser

Rather than:

โ˜‘ Falkon
โ˜‘ Firefox
โ˜‘ Chromium
โ˜ Qutebrowser

Some might want that but most wouldn't.

More research into Calamares I did last Friday:

rc.modules.finished.FinishedPage.ui:

This looks like the finished window of the installer application.

Not sure if the radio button issue would apply here.

src.modules.keyboard.KeyboardPage.ui:

This is only the section of the installer prompting the user for keyboard information.

I was idle in the #Calamares module, and this is their response to this issue so far:

[09:55] <[ade]> er .. if you want to build your own UI for something, then PythonQt is probably the best way to go -- there is no module that specifically caters to a list (?) of radio buttons for package selections.
[09:56] <[ade]> I would *like* to have one, that's kind of general, that feeds intto the packages module (later on). Something that you can hand a config file, and it'll add a ViewStep with a suitable UI for choosing packages "beautifully".
[09:56] <[ade]> .. several open issues would be resolved by that.

I also opened up an issue within their GitHub page as well:

https://github.com/calamares/calamares/issues/1036

Response 1 From Calamares GitHub Question:

adriaandegroot commented 6 hours ago
This question uses "module" in a way that I don't really understand.

In Calamares, a module is a unit of code that provides a unit of functionality. The functionality can be a job (doing something during installation) or a view step (something the user interacts with). View steps also provide jobs, to do the thing that their UI was for.

There is no "module" that provides radio buttons. Having radio buttons isn't a useful thing in and of itself -- it's a means to an end. So you seem to want to provide a "preferences" module, which would allow the user to select some software to install (e.g. a preference for one browser, or another). That would be a view step module, with a UI, and then a job that does the actual installation.

Currently, the netinstall module provides a UI for doing something like what you want. I say "like" because it doesn't sound like it matches the UI you're thinking of. It works together with the packages module to do the actual work. The example files with the netinstall module can be used to see what it's capable of.

To do a view module yourself, you'll need to use Qt; either in C++ or via PythonQt. There are various examples available, in Calamares as well as the Calamares examples repository. Personally I'd suggest C++, since that keeps the dependency footprint of Calamares manageable. If you do a module yourself, do try to upstream it into the Calamares examples repository. If you do a module yourself, try to get a good visual design first that is extensible enough to be usable by others.

Response 2 From Calamares GitHub Question:

adriaandegroot commented 5 hours ago
Two additional thoughts:

a QML view step wouldn't be half bad (pro: easy to do UI; low dependencies. con: tying it together with Calamares proper will require new technologies)
a sufficiently-generic module might have a config file as below:

  1. Each entry corresponds to one choice. The UI displays *title*
  2. atop each group-box for that choice. Within the group-box,
  3. a radio button is shown for each item, with corresponding text
  4. and icon. If selected, the named package is added to the
  5. global packaging list (to be passed on to the packages module). #
  6. title: Web Browser
    • item: firefox package: firefox-extra-fluffy icon: /usr/loca/share/ff.png name: Firefox
    • item: falkon package: falkon icon: /usr/local/share/falkon.png name: Falkon
  7. title: Shell
    • item: bash
    • item: ksh93
    • item: tcsh
tsimonq2 edited projects, added Development Team; removed Meta.Oct 24 2018, 2:54 PM