From 043361807e45ad65286feb9995783c031aebe0c4 Mon Sep 17 00:00:00 2001 From: Himadri Bhattacharjee <107522312+lavafroth@users.noreply.github.com> Date: Sat, 3 Jan 2026 08:19:35 +0530 Subject: [PATCH] feat: split sticky keys and locale settings into modules --- hosts/default/configuration.nix | 56 +++------------------------------ hosts/default/locale.nix | 17 ++++++++++ hosts/default/sticky-keys.nix | 35 +++++++++++++++++++++ 3 files changed, 57 insertions(+), 51 deletions(-) create mode 100644 hosts/default/locale.nix create mode 100644 hosts/default/sticky-keys.nix diff --git a/hosts/default/configuration.nix b/hosts/default/configuration.nix index c9a62ff..6c1c01b 100644 --- a/hosts/default/configuration.nix +++ b/hosts/default/configuration.nix @@ -11,6 +11,8 @@ ./phone-as-webcam.nix ./virtualization.nix ./desktops/kde.nix + ./sticky-keys.nix + ./locale.nix inputs.home-manager.nixosModules.home-manager inputs.nix-index-database.nixosModules.nix-index inputs.stylix.nixosModules.stylix @@ -43,26 +45,9 @@ hostName = "cafe"; networkmanager.enable = true; }; - - # Set your time zone. - time.timeZone = "Asia/Kolkata"; + hardware.bluetooth.enable = true; powerManagement.powertop.enable = true; - - # Select internationalisation properties. - i18n.defaultLocale = "en_US.UTF-8"; - i18n.extraLocaleSettings = { - LC_ADDRESS = "en_US.UTF-8"; - LC_IDENTIFICATION = "en_US.UTF-8"; - LC_MEASUREMENT = "en_US.UTF-8"; - LC_MONETARY = "en_US.UTF-8"; - LC_NAME = "en_US.UTF-8"; - LC_NUMERIC = "en_US.UTF-8"; - LC_PAPER = "en_US.UTF-8"; - LC_TELEPHONE = "en_US.UTF-8"; - LC_TIME = "en_US.UTF-8"; - }; - xdg.portal.enable = true; hardware.uinput.enable = true; services = { @@ -81,11 +66,9 @@ pulse.enable = true; }; + # X11 xserver = { - # Enable the X11 windowing system. enable = true; - - # Configure keymap in X11 xkb.layout = "us"; xkb.variant = ""; @@ -162,36 +145,6 @@ # Make sure opengl is enabled hardware.graphics.enable = true; - hardware.bluetooth.enable = true; - services.keyd = { - enable = true; - keyboards.sticky_keys.settings = { - main = { - - control = "oneshot(control)"; - meta = "oneshot(meta)"; - shift = "oneshot(shift)"; - leftalt = "oneshot(alt)"; - }; - - control = { - control = "toggle(control)"; - }; - - meta = { - meta = "toggle(meta)"; - }; - - shift = { - shift = "toggle(shift)"; - }; - - alt = { - leftalt = "toggle(alt)"; - }; - - }; - }; console = { earlySetup = true; @@ -205,6 +158,7 @@ noto-fonts-cjk-sans nerd-fonts.terminess-ttf ]; + networking.firewall.enable = true; system.stateVersion = "24.05"; } diff --git a/hosts/default/locale.nix b/hosts/default/locale.nix new file mode 100644 index 0000000..2eafb79 --- /dev/null +++ b/hosts/default/locale.nix @@ -0,0 +1,17 @@ +{ + i18n.defaultLocale = "en_US.UTF-8"; + i18n.extraLocaleSettings = { + LC_ADDRESS = "en_US.UTF-8"; + LC_IDENTIFICATION = "en_US.UTF-8"; + LC_MEASUREMENT = "en_US.UTF-8"; + LC_MONETARY = "en_US.UTF-8"; + LC_NAME = "en_US.UTF-8"; + LC_NUMERIC = "en_US.UTF-8"; + LC_PAPER = "en_US.UTF-8"; + LC_TELEPHONE = "en_US.UTF-8"; + LC_TIME = "en_US.UTF-8"; + }; + + time.timeZone = "Asia/Kolkata"; + +} diff --git a/hosts/default/sticky-keys.nix b/hosts/default/sticky-keys.nix new file mode 100644 index 0000000..1ce5b0f --- /dev/null +++ b/hosts/default/sticky-keys.nix @@ -0,0 +1,35 @@ +{ + services.keyd = { + enable = true; + keyboards.sticky_keys.settings = { + global.layer_indicator = true; + main = { + control = "oneshot(control)"; + meta = "oneshot(meta)"; + shift = "oneshot(shift)"; + leftalt = "oneshot(alt)"; + }; + + control = { + control = "toggle(control)"; + capslock = "clear()"; + }; + + meta = { + meta = "toggle(meta)"; + capslock = "clear()"; + }; + + shift = { + shift = "toggle(shift)"; + capslock = "clear()"; + }; + + alt = { + leftalt = "toggle(alt)"; + capslock = "clear()"; + }; + + }; + }; +}