[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