Project

General

Profile

Feature #5501

Persistence preset: locale and accessibility options (language, keyboard, and formats) in Greeter

Added by Tails over 6 years ago. Updated 11 months ago.

Status:
Confirmed
Priority:
Normal
Assignee:
-
Category:
Persistence
Target version:
-
Start date:
12/31/2015
Due date:
% Done:

0%

Feature Branch:
Type of work:
Research
Blueprint:
Starter:
No
Affected tool:

Description

Summary

We want to allow users to choose, once for all, their preferred language and keyboard layout, in a way that their elected settings are saved in the Tails system cleartext partition.

User story

As a Norvegian-speaking Tails user:

  1. In the Tails USB Installer, I choose Norvegian language and keyboard layout.
  2. I boot Tails.
  3. tails-greeter is displayed to me in Norvegian, with a Norvegian keyboard layout.
  4. I may type my persistent volume passphrase using my preferred keyboard layout, without the need to tell Tails about it once again.
  5. I should be proposed to choose another language and keyboard layout in tails-greeter, still.

Implementation

liveusb-creator

We will move the language/keyboard layout decision to the Tails installation time of the user experience. It must be made clear to the user that the result of this decision is written in cleartext on the USB stick.

tails-greeter

Currently, tails-greeter has problems being started in any locale but C. Easiest way to workaround this problem is to unconditionally start tails-greeter with C locales, and once it gets information about the desired language, then it applies it to the GUI.


Subtasks

Feature #10821: Warning on language settings in cleartextConfirmedalant


Related issues

Related to Tails - Feature #8846: Persistent preset: background option Duplicate 02/03/2015
Related to Tails - Feature #12470: Document how to start the screen reader with keyboard shortcuts Resolved 04/22/2017
Related to Tails - Bug #12509: The Greeter should have initial keyboard focus on the default action. Resolved 05/05/2017
Related to Tails - Feature #12644: Allow remembering boot options Rejected 06/06/2017
Related to Tails - Feature #9004: Greeter revamp: Rework the "remember" options for language settings Rejected 03/03/2015
Related to Tails - Feature #14544: Spend software developer time on smallish UX improvements In Progress 08/31/2018
Related to Tails - Feature #5722: Default to Mac keyboard layout on Mac hardware Confirmed
Related to Tails - Bug #17136: Persistence preset: Greeter settings New
Duplicated by Tails - Bug #7920: KEYBOARD LAYOUT SAVED IN PERSISTENT Duplicate 09/20/2014
Duplicated by Tails - Bug #10388: persistence vol doesn't remember added keyboard layout Duplicate 10/18/2015
Duplicated by Tails - Feature #12216: Persistent settings for Tails Greeter Duplicate 02/08/2017
Duplicated by Tails - Feature #12467: Persistent keyboard layout Duplicate 04/21/2017

History

#1 Updated by aboules almost 6 years ago

good idea, my nordish friend. But thought too short.
A user friendly product rather allowed the user to change kb layout (screen resolution, ...) 'just in time' and saved that to persistence.

#2 Updated by aboules almost 6 years ago

@liveusb-creator
Besides that it is ridiculous to implicate a security risk for a Norwegian who has norwegian kb layout on his stick:
If you supported a /etc/rc2.d script to run /home/amnesia/Persistent/startup/startup.root (using sudo*) and /home/amnesia/Persistent/startup/startup.user
anything was encrypted.

  • needs a /etc/sudoers.d/zzz_startup

#3 Updated by intrigeri almost 6 years ago

Besides that it is ridiculous to implicate a security risk for a Norwegian who has
norwegian kb layout on his stick:
If you supported a /etc/rc2.d script to run
/home/amnesia/Persistent/startup/startup.root (using sudo*) and
/home/amnesia/Persistent/startup/startup.user
anything was encrypted.

First, Redmine is not the preferred place to discuss development of
new features with other Tails developers. The
mailing-list is.

Second, the general idea of running scripts at login time was
mentioned a few times on IRC recently (no idea if this was the same
person insisting, or something else). I've replied several times that
1. this idea has important security implications, and requires quite
some thought, starting with: who has write access to
/home/amnesia/Persistent/startup/startup.root? 2. it would be good
if someone sent a good design + security discussion to
about it. Else, likely nothing will happen.

#4 Updated by aboules almost 6 years ago

jesus! intrigeri!

you (or s/o in #tails) pointed me here.
You do not need to care about r/w permissions (or anything else) of ppl not using your bleeding tails bc it is too inconvenient!
Make that bleeding Tails usable to users!

#5 Updated by BitingBird over 5 years ago

  • Subject changed from allow choosing language at installation time to Allow choosing language at installation time
  • Description updated (diff)
  • Starter set to No

#6 Updated by sajolida over 5 years ago

  • Category set to Installation

#7 Updated by BitingBird about 5 years ago

  • Duplicated by Bug #7920: KEYBOARD LAYOUT SAVED IN PERSISTENT added

#8 Updated by BitingBird almost 5 years ago

  • Category changed from Installation to Persistence
  • Affected tool set to Installer

#9 Updated by BitingBird almost 5 years ago

#10 Updated by BitingBird over 4 years ago

Do we still want to do that? If we persist the language in clear, do we need to do so at install, or can it wait until the first boot?

#11 Updated by intrigeri over 4 years ago

Do we still want to do that?

I think so.

If we persist the language in clear, do we need to do so at install, or can it wait until the first boot?

On first boot, the system partition is read-only (see the "a" in "Tails" :)

It might be that the Greeter revamp process leads us to revisit that, at least in theory, but I'm not aware of anyone working on technical solutions to this problem => in the meantime, I'm considering that doing this at installation time is still the most realistic way to go.

#12 Updated by sajolida over 4 years ago

On first boot, the system partition is read-only (see the "a" in "Tails" :)

It might be that the Greeter revamp process leads us to revisit that, at least in theory, but I'm not aware of anyone working on technical solutions to this problem => in the meantime, I'm considering that doing this at installation time is still the most realistic way to go.

Despite the "a", I'm not sure to understand what you mean. The mockups
for the new Greeter have included an option to remember the language
settings from there for at least 6 months (probably more than 1 year)
and I know that you've seen them.

For example https://tails.boum.org/blueprint/greeter_revamp_UI/#index2h2

  • If it is realistic to have this in the Greeter, then I think it would
    be a better suited place.
  • If it is not realistic to have this in the Greeter, then this should
    be clearly notified to the people working on the new design and they
    will stop waisting their time trying to design an interface to do that...

#13 Updated by intrigeri over 4 years ago

We're not putting the same meaning behind "realistic" here, which I believe has lead to some misunderstanding.

I believe that having that option in the Greeter is realistic... it just needs someone to do it. I'm aware someone is committed to implement the new Greeter design, but I have no idea if this commitment includes solving the (potentially hard) technical "the system partition is read-only" problem. Besides, the person who'll be working on the GTK implementation aspects isn't very experienced in this other field. Hence my reluctance to assume "oh yeah, no problem, it'll be done".

#14 Updated by sajolida over 4 years ago

Fully understood, now indeed.

#15 Updated by emmapeel over 4 years ago

  • Related to Feature #8846: Persistent preset: background option added

#16 Updated by BitingBird over 4 years ago

  • Priority changed from Elevated to Normal

downgrading priority: this will not be for the next year.

#17 Updated by sajolida about 4 years ago

  • Subject changed from Allow choosing language at installation time to Allow choosing language and keyboard at installation time or in Tails Greeter

Renaming to reflect the conflict between installation vs Greeter and be able to really duplicate #7920 and #10388.

#18 Updated by sajolida about 4 years ago

To add some more to the discussion, doing this at installation time would leave open the UX problem of changing this setting. Let's say you're using Tails to use public computers while travelling but they present different keyboard layout.

#19 Updated by sajolida about 4 years ago

  • Duplicated by Bug #10388: persistence vol doesn't remember added keyboard layout added

#20 Updated by intrigeri about 4 years ago

To add some more to the discussion, doing this at installation time would leave open the UX problem of changing this setting. Let's say you're using Tails to use public computers while travelling but they present different keyboard layout.

The proposed user story seems to take this into account already: "I should be proposed to choose another language and keyboard layout in tails-greeter, still". Which might invalidate "the conflict between installation vs Greeter" you've seen, and the follow-up Redmine changes. I'll let you check the ticket description again and judge.

#21 Updated by sajolida about 4 years ago

There are two different things in the description of the ticket, one is "once for all" which I understand is proposed to happen in Tails Installer. And the second that you pointed out is "choose another language and keyboard layout in tails-greeter" which implies that this is not made persistent (also linked to the technical limitation that you pointed out in #5501#note-13. I have a problem with this and I think that people should be able to change or erase whatever they made persistent "once and for all".

It make sense to let them do this always from the same place (more consistent for them, probably less work for us). In my opinion, this would ideally be in Tails Greeter, but could as well be Tails Installer if we don't do that in Tails Greeter for whatever reason.

Still, we didn't put this in our roadmap for 2016-2017 (maybe that's a mistake) but this should anyway be discussed again more in depth, both the UX and the implementation, when we have people availble to tackle this.

#22 Updated by intrigeri about 4 years ago

Thanks for clarifying! I think we agree on mostly everything. I could not forbid myself to think about it, so I'll sum up the pros/cons I've found, in the hope it saves us time when we come back to it later. I think we'll have to choose between:

a) Go straight to a Greeter-only approach, that works for picking the default, saving it, and choosing one-time exceptions

b) Do the first iteration that's in the ticket description, and later do (a).

In favour of (b):

  • it would be a tremendous improvement for many users, compared to the current situation;
  • it's a lot cheaper and thus much more likely to happen soon: as opposed to (a), it's a simple matter of Python + GTK programming, that could be suitable for new or occasional contributors, so perhaps it can be done without adding tons of process and overhead around; and it's such a tiny incremental change compared to what we have now that it doesn't need (IMO) to block on our lack of UX people, if a coder among us feels like doing it as useful procrastination task one of these days (in practice it's copying the language/region/formats UI from the Greeter into the Installer, and having the Greeter default to the settings saved by the Installer);
  • most of the work needed by (b) is needed for (a) anyway, so even if we want (a) some day, having done (b) first will be a good start;
  • with (b), the worst case situation caused by the "once for all" aspect (i.e. "I picked the wrong language at install time so I have to pick the one I want every time I start Tails") is essentially the same UX that all non-English speakers have to go through right now; in that sense it can be argued that it's not a regression.

In favour of (a):

  • it can be argued that yes, it's a UX regression that with (b) one can choose something once for all but not easily modify it in a persistent manner later on (I can feel that it's different than "defaulting to English without having had any choice", but have a hard time phrasing why);
  • if we really want to go through the full UX design + evaluation etc. process even for (b), then doing the entire change once for all is cheaper;
  • a (small) part of the work needed for (b) is wasted once we do (a), so better make up our mind and do (a) directly rather than going for an incremental approach;
  • doing (b) removes some of the pressure to do (a) so we'll never do it.

I'll stop it here, before I spend more time on it than it would take me to just implement (b) ;)

#23 Updated by sajolida about 4 years ago

I'm fine with both. I don't think that (b) needs a serious UX process. It's a tiny and temporary improvement and we can document a workaround to modify these setting later on.

I'll also check with Alan what's he's view on (a).

#24 Updated by elouann almost 3 years ago

  • Duplicated by Feature #12216: Persistent settings for Tails Greeter added

#25 Updated by sajolida over 2 years ago

  • Subject changed from Allow choosing language and keyboard at installation time or in Tails Greeter to Allow remembering locale options (language, keyboard, and formats) in Greeter

We should allow these settings to be changed whenever the user needs it, so I think that we need that as a "Remember" checkbox. Adding this possibility to Tails Installer would only duplicates this feature but cannot replace it. So let's have it first (and maybe only) in the Greeter. Renaming the ticket accordingly.

#26 Updated by sajolida over 2 years ago

  • Related to Feature #12470: Document how to start the screen reader with keyboard shortcuts added

#27 Updated by sajolida over 2 years ago

  • Subject changed from Allow remembering locale options (language, keyboard, and formats) in Greeter to Allow remembering locale and accessibility options (language, keyboard, and formats) in Greeter

Broadening the scope of this after #12470.

#28 Updated by sajolida over 2 years ago

  • Related to Bug #12509: The Greeter should have initial keyboard focus on the default action. added

#29 Updated by intrigeri over 2 years ago

#30 Updated by elouann over 2 years ago

#31 Updated by elouann over 2 years ago

#32 Updated by u almost 2 years ago

#33 Updated by u almost 2 years ago

#34 Updated by u over 1 year ago

  • Related to Feature #9004: Greeter revamp: Rework the "remember" options for language settings added

#35 Updated by u over 1 year ago

  • Subject changed from Allow remembering locale and accessibility options (language, keyboard, and formats) in Greeter to Persistence preset: locale and accessibility options (language, keyboard, and formats) in Greeter

#36 Updated by intrigeri 11 months ago

  • Affected tool deleted (Installer)

With #15292, Tails Installer won't be a good place to implement this.

#37 Updated by sajolida 11 months ago

  • Related to Feature #14544: Spend software developer time on smallish UX improvements added

#38 Updated by intrigeri 11 months ago

  • Type of work changed from Code to Research

Next steps: check if we can store this in the system partition (mount it RW and then back to RO? I did not manage to do that for Tails Upgrader) or in GPT flags (#8862).

#39 Updated by intrigeri 11 months ago

  • Related to Feature #5722: Default to Mac keyboard layout on Mac hardware added

#40 Updated by sajolida about 2 months ago

  • Related to Bug #17136: Persistence preset: Greeter settings added

Also available in: Atom PDF