aboutsummaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorJakub Fišer <jakub@ufiseru.cz>2020-05-27 14:33:55 +0200
committerRobert Helgesson <robert@rycee.net>2020-06-06 21:23:01 +0200
commit479274775f25be4000e41ee6584ea0865e77808b (patch)
tree443f68495d765309c200430b5d92f1eb91616925 /modules
parentba91ac59489f288e74c7b5b733d26c303dd3a774 (diff)
home-environment: add full locale options support
Allows setting every locale option independently. Also fixes `LC_` order to match the order of `locale` command output for better reference. PR #1278
Diffstat (limited to 'modules')
-rw-r--r--modules/home-environment.nix83
1 files changed, 77 insertions, 6 deletions
diff --git a/modules/home-environment.nix b/modules/home-environment.nix
index 2f2b77d2121..d868ee42312 100644
--- a/modules/home-environment.nix
+++ b/modules/home-environment.nix
@@ -16,11 +16,35 @@ let
'';
};
- address = mkOption {
+ ctype = mkOption {
default = null;
type = types.nullOr types.str;
description = ''
- The language to use for addresses.
+ Character classification category.
+ '';
+ };
+
+ numeric = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for numerical values.
+ '';
+ };
+
+ time = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for formatting times.
+ '';
+ };
+
+ collate = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for collation (alphabetical ordering).
'';
};
@@ -32,6 +56,14 @@ let
'';
};
+ messages = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for messages, application UI languages, etc.
+ '';
+ };
+
paper = mkOption {
default = null;
type = types.nullOr types.str;
@@ -40,13 +72,38 @@ let
'';
};
- time = mkOption {
+ name = mkOption {
default = null;
type = types.nullOr types.str;
description = ''
- The language to use for formatting times.
+ The language to use for personal names.
'';
};
+
+ address = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for addresses.
+ '';
+ };
+
+ telephone = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for telephone numbers.
+ '';
+ };
+
+ measurement = mkOption {
+ default = null;
+ type = types.nullOr types.str;
+ description = ''
+ The language to use for measurement values.
+ '';
+ };
+
};
};
@@ -354,13 +411,27 @@ in
in
(maybeSet "LANG" cfg.language.base)
//
- (maybeSet "LC_ADDRESS" cfg.language.address)
+ (maybeSet "LC_CTYPE" cfg.language.ctype)
+ //
+ (maybeSet "LC_NUMERIC" cfg.language.numeric)
+ //
+ (maybeSet "LC_TIME" cfg.language.time)
+ //
+ (maybeSet "LC_COLLATE" cfg.language.collate)
//
(maybeSet "LC_MONETARY" cfg.language.monetary)
//
+ (maybeSet "LC_MESSAGES" cfg.language.messages)
+ //
(maybeSet "LC_PAPER" cfg.language.paper)
//
- (maybeSet "LC_TIME" cfg.language.time);
+ (maybeSet "LC_NAME" cfg.language.name)
+ //
+ (maybeSet "LC_ADDRESS" cfg.language.address)
+ //
+ (maybeSet "LC_TELEPHONE" cfg.language.telephone)
+ //
+ (maybeSet "LC_MEASUREMENT" cfg.language.measurement);
home.packages = [
# Provide a file holding all session variables.