tails-greeter is shipped in Tails 0.11 and later.
This started as an implementation of custom boot menu for GDM3 as part of GSoC2011 project.
How it should look like
- After GDM is started user is presented with language-chooser-widget and "Enable persistence?" checkbox. If the user enables persistence, they are asked their encryption passphrase(s).
- Choosing language and layout is immediately applied: if corresponding .po file is available then TailsGreeter is immediately translated.
- One can choose to either login directly, or to go to an options screen.
- In the options screen:
- admin-password-widget: typing password and confirming makes the user sudoer with the chosen password; if no password is entered, the user is not given any admin rights.
- After logon, desktop must be shown with proper locale and layout.
Requested options details
Developers are encouraged to provide input for various options to be asked via boot-menu.
- name: Language
- default value: English
- setup locale for the TailsGreeter so that the user can understand the other choices;
- generate the chosen locale;
- setup locale for the session to be started;
- maybe more: have a look at
config/binary_local-hooks/20-syslinux_i18nin Tails main Git repository to see what parameters it passes to live-config (locales, keyboard-layouts) then grep the relevant variable names (
LIVE_TIMEZONE) in live-config source to see what is currently done depending on the chosen language, and might thus need to be triggered by tails-greeter as well; while appealing, installing
locales-allis not an option: it avoids the need to compile locales at runtime, but it increases the ISO size by 130MB+, which seems overkill since compiling one given locale takes roughly 3s on a quite old laptop.
- locale generation: done with localedef (see design for details of the interface)
- keyboard: layout is applied with the help of corresponding GDM d-bus signals.
- console keyboard: live-config
014-console-setupscripts might be usable; need some envvars set.
- Note: live-config scripts we'll run ourselves must not run on boot before we run them: these scripts are not idempotent
- ui hint: Choose the language of your Tails session.
- responsible dev:
- dev's notes: This item should be really visible, probably on top of the TailsGreeter screen. More information can be found in localization at runtime.
- name: Administrator password
- default value: none
- effects: execute
$TAILS_USER_PASSWORDsaved into temporary file. See design for details.
- ui hint: (draft) enter here a password that will be asked to grant administrator rights. Leave this field blank to disable administrator rights.
- responsible dev:
- Related TODO item: better root access control