aboutsummaryrefslogtreecommitdiffstats
path: root/modules/by-name/lo
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-10-18 17:07:46 +0200
commitc52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c (patch)
treee8b947710b467b32740598ff574982097836f66c /modules/by-name/lo
parentchore(pkgs/yt): 1.2.1 -> 1.3.0 (diff)
downloadnixos-config-c52c7f314ccadcc2fcd91e28c8fd1b88f6d5ce0c.zip
refactor(modules): Move all system modules to `by-name`
From now on all modules should be added to the new `by-name` directory. This should help remove the (superficial and utterly useless) distinction between `home-manager` and `NixOS` modules.
Diffstat (limited to 'modules/by-name/lo')
-rw-r--r--modules/by-name/lo/locale/keymaps/dvorak_modified.xkb15
-rw-r--r--modules/by-name/lo/locale/keymaps/us_modified.xkb9
-rw-r--r--modules/by-name/lo/locale/module.nix57
3 files changed, 81 insertions, 0 deletions
diff --git a/modules/by-name/lo/locale/keymaps/dvorak_modified.xkb b/modules/by-name/lo/locale/keymaps/dvorak_modified.xkb
new file mode 100644
index 00000000..63f5d4fb
--- /dev/null
+++ b/modules/by-name/lo/locale/keymaps/dvorak_modified.xkb
@@ -0,0 +1,15 @@
+partial alphanumeric_keys
+xkb_symbols "dvorak-modified" {
+ name[Group1]= "Dvorak English with additional keys";
+
+ key <AC02> {[ o, O, odiaeresis, Odiaeresis]};
+ key <AC04> {[ u, U, udiaeresis, Udiaeresis]};
+ key <AC01> {type[Group1]="EIGHT_LEVEL",
+ [ a, A, adiaeresis, Adiaeresis, aring, Aring]};
+
+
+ include "us(dvorak)"
+ include "level3(caps_switch)"
+ include "level5(ralt_switch)"
+};
+// vim: ft=xkb
diff --git a/modules/by-name/lo/locale/keymaps/us_modified.xkb b/modules/by-name/lo/locale/keymaps/us_modified.xkb
new file mode 100644
index 00000000..6299a5e9
--- /dev/null
+++ b/modules/by-name/lo/locale/keymaps/us_modified.xkb
@@ -0,0 +1,9 @@
+partial alphanumeric_keys
+xkb_symbols "us-modified" {
+ name[Group1]= "US English with caps lock key as compose key";
+
+
+ include "us(basic)"
+ include "compose(caps)"
+};
+// vim: ft=xkb
diff --git a/modules/by-name/lo/locale/module.nix b/modules/by-name/lo/locale/module.nix
new file mode 100644
index 00000000..10569216
--- /dev/null
+++ b/modules/by-name/lo/locale/module.nix
@@ -0,0 +1,57 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.soispha.locale;
+in {
+ options.soispha.locale = {
+ enable = lib.mkEnableOption "locale setup";
+
+ keyMap = lib.mkOption {
+ type = lib.types.str;
+ example = "us";
+ default = "dvorak";
+ description = "The console key map language to use";
+ };
+
+ timeZone = lib.mkOption {
+ type = lib.types.str;
+ default = "Europe/Berlin";
+ description = "The time zone to use";
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ time = {
+ inherit (cfg) timeZone;
+ };
+
+ i18n = {
+ defaultLocale = "en_CA.UTF-8";
+ extraLocaleSettings = {
+ LANGUAGE = "en_CA:en_US:en";
+ LC_TIME = "en_DK.UTF-8";
+ LC_COLLATE = "C.UTF-8";
+ };
+ };
+
+ # Layout
+ console = {
+ inherit (cfg) keyMap;
+ };
+
+ services.xserver.xkb.extraLayouts = {
+ "us-modified" = {
+ description = "standard us with caps as compose key.";
+ languages = ["eng" "swe" "deu"];
+ symbolsFile = ./keymaps/us_modified.xkb;
+ };
+ "dvorak-modified" = {
+ description = "standard dvorak english with german and swedish extra chars.";
+ languages = ["eng" "swe" "deu"];
+ symbolsFile = ./keymaps/dvorak_modified.xkb;
+ };
+ };
+ };
+}