[Bug 2035212] Re: [Feature request]: Command line option

Gunnar Hjalmarsson 2035212 at bugs.launchpad.net
Wed Sep 13 16:10:04 UTC 2023


The description looks right to me now.

The thing is that the regional formats value you set is *also*
represented by a line in a user file in the
/var/lib/AccountsService/users directory. There is quite some code which
tries to keep that line in sync with ~/.pam_environment, and by changing
those variables in ~/.pam_environment only they got out of sync. :/

If you want to use a script in connection with preparing a distro, one
way is to change it in both places.

Or probably better: Let the script edit only /etc/default/locale to your
liking and don't create ~/.pam_environment in advance.

A few years ago I figured out a terminal command to change the user's
regional format value the 'right' way:

https://askubuntu.com/a/754519

It's pretty long...

** Changed in: language-selector (Ubuntu)
   Importance: Undecided => Wishlist

** Changed in: language-selector (Ubuntu)
       Status: Incomplete => New

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to language-selector in Ubuntu.
https://bugs.launchpad.net/bugs/2035212

Title:
  [Feature request]: Command line option

Status in language-selector package in Ubuntu:
  New

Bug description:
  The settings for gnome-language-selector -> Regional Formats in the
  "Display numbers, dates and currency in the usual format for" list,
  are stored in ~/.pam_environment

  # How is it possible to make the DE reload the new values from ~/.pam_environment
  So it's possible to modify ~/.pam_environment with a script. But how do you update the system to use the changes? Not even reboot worked. This issue can manually be evaluated in order to make sure that the file content is correct:

  ############
  Step 1, identify how to load ~/.pam_environment to `locale`

  * Default Ubuntu MATE 23.04:

  ~/.pam_environment does not exist

  $ locale
  LANG=en_US.UTF-8
  LANGUAGE=en_US
  LC_CTYPE="en_US.UTF-8"
  LC_NUMERIC="en_US.UTF-8"
  LC_TIME="en_US.UTF-8"
  LC_COLLATE="en_US.UTF-8"
  LC_MONETARY="en_US.UTF-8"
  LC_MESSAGES="en_US.UTF-8"
  LC_PAPER="en_US.UTF-8"
  LC_NAME="en_US.UTF-8"
  LC_ADDRESS="en_US.UTF-8"
  LC_TELEPHONE="en_US.UTF-8"
  LC_MEASUREMENT="en_US.UTF-8"
  LC_IDENTIFICATION="en_US.UTF-8"
  LC_ALL=

  * Open gnome-language-selector, click on the "Regional Formats" tab, and click on the "Display numbers, dates and currency in the usual format for" list and select "English (Canada)"
  * Press on the Close button

  $ cat .pam_environment
  LC_NUMERIC	DEFAULT=en_CA.UTF-8
  LC_TIME	DEFAULT=en_CA.UTF-8
  LC_MONETARY	DEFAULT=en_CA.UTF-8
  LC_PAPER	DEFAULT=en_CA.UTF-8
  LC_NAME	DEFAULT=en_CA.UTF-8
  LC_ADDRESS	DEFAULT=en_CA.UTF-8
  LC_TELEPHONE	DEFAULT=en_CA.UTF-8
  LC_MEASUREMENT	DEFAULT=en_CA.UTF-8
  LC_IDENTIFICATION	DEFAULT=en_CA.UTF-8
  PAPERSIZE	DEFAULT=letter

  $ locale
  LANG=en_US.UTF-8
  LANGUAGE=en_US
  LC_CTYPE="en_US.UTF-8"
  LC_NUMERIC="en_US.UTF-8"
  LC_TIME="en_US.UTF-8"
  LC_COLLATE="en_US.UTF-8"
  LC_MONETARY="en_US.UTF-8"
  LC_MESSAGES="en_US.UTF-8"
  LC_PAPER="en_US.UTF-8"
  LC_NAME="en_US.UTF-8"
  LC_ADDRESS="en_US.UTF-8"
  LC_TELEPHONE="en_US.UTF-8"
  LC_MEASUREMENT="en_US.UTF-8"
  LC_IDENTIFICATION="en_US.UTF-8"
  LC_ALL=

  * Sign out, and sign in

  $ locale
  LANG=en_US.UTF-8
  LANGUAGE=en_US
  LC_CTYPE="en_US.UTF-8"
  LC_NUMERIC=en_CA.UTF-8
  LC_TIME=en_CA.UTF-8
  LC_COLLATE="en_US.UTF-8"
  LC_MONETARY=en_CA.UTF-8
  LC_MESSAGES="en_US.UTF-8"
  LC_PAPER=en_CA.UTF-8
  LC_NAME=en_CA.UTF-8
  LC_ADDRESS=en_CA.UTF-8
  LC_TELEPHONE=en_CA.UTF-8
  LC_MEASUREMENT=en_CA.UTF-8
  LC_IDENTIFICATION=en_CA.UTF-8
  LC_ALL=


  
  ############
  Step 2, demonstrate that ~/.pam_environment can be scripted

  Run this in terminal:

  sudo tee ~/.pam_environment > /dev/null << 'EOF'
  LC_NUMERIC	DEFAULT=en_DK.UTF-8
  LC_TIME	DEFAULT=en_DK.UTF-8
  LC_MONETARY	DEFAULT=en_DK.UTF-8
  LC_PAPER	DEFAULT=en_DK.UTF-8
  LC_NAME	DEFAULT=en_DK.UTF-8
  LC_ADDRESS	DEFAULT=en_DK.UTF-8
  LC_TELEPHONE	DEFAULT=en_DK.UTF-8
  LC_MEASUREMENT	DEFAULT=en_DK.UTF-8
  LC_IDENTIFICATION	DEFAULT=en_DK.UTF-8
  PAPERSIZE	DEFAULT=a4
  EOF

  * Sign out, and sign in to the desktop environment.
  * $ locale
  LANG=en_US.UTF-8
  LANGUAGE=en_US
  LC_CTYPE="en_US.UTF-8"
  LC_NUMERIC=en_DK.UTF-8
  LC_TIME=en_DK.UTF-8
  LC_COLLATE="en_US.UTF-8"
  LC_MONETARY=en_DK.UTF-8
  LC_MESSAGES="en_US.UTF-8"
  LC_PAPER=en_DK.UTF-8
  LC_NAME=en_DK.UTF-8
  LC_ADDRESS=en_DK.UTF-8
  LC_TELEPHONE=en_DK.UTF-8
  LC_MEASUREMENT=en_DK.UTF-8
  LC_IDENTIFICATION=en_DK.UTF-8
  LC_ALL=

  
  Issue:
  * Open gnome-language-selector, click on the "Regional Formats" tab, check the "Display numbers, dates and currency in the usual format for" list, it is not set to "English (Denmark)"

  # [Feature request]: Implement command line option
  Implemented command line options, for both user and system-wide settings, would be useful.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/language-selector/+bug/2035212/+subscriptions




More information about the foundations-bugs mailing list