Feature #5496


Added by Tails 2013-07-18 07:41:54 . Updated 2013-07-19 01:54:01 .

Target version:
Start date:
Due date:
% Done:


Feature Branch:
Type of work:

Affected tool:
Deliverable for:


tails-greeter is shipped in Tails 0.11 and later. Remaining action items and bugs are split into individual pages in todo and bugs.


This started as an implementation of custom boot menu for GDM3 as part of GSoC2011 project.

This page is the entry point to design description and relevant useful information.

The project status updates and timeline pages were actively used during GSoC.


How it should look like

  1. 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).
  2. Choosing language and layout is immediately applied: if corresponding .po file is available then TailsGreeter is immediately translated.
  3. One can choose to either login directly, or to go to an options screen.
  4. 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.
  5. 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.


  1. name: Language
  2. default value: English
  3. effects:
    #* 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_i18n in Tails main Git repository to see what parameters it passes to live-config (locales, keyboard-layouts) then grep the relevant variable names (KEYBOARD_LAYOUT, LIVE_LOCALES, 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-all is 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 015-keyboard-configuration, 117-xserver-xorg and 014-console-setup scripts 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
  4. ui hint: Choose the language of your Tails session.
  5. responsible dev:
  6. 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.

Administrator password

  1. name: Administrator password
  2. default value: none
  3. effects: execute set-user-password-and-locale with $TAILS_USER_PASSWORD saved into temporary file. See design for details.
  4. ui hint: (draft) enter here a password that will be asked to grant administrator rights. Leave this field blank to disable administrator rights.
  5. responsible dev:
  6. Related TODO item: better root access control



#1 Updated by intrigeri 2013-07-19 01:54:01

  • Type of work set to Code

Type of work: Code