summaryrefslogtreecommitdiff
path: root/modules/nixos/common
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/common')
-rw-r--r--modules/nixos/common/ark.nix64
-rw-r--r--modules/nixos/common/console.nix10
-rw-r--r--modules/nixos/common/default.nix21
-rw-r--r--modules/nixos/common/documentation.nix31
-rw-r--r--modules/nixos/common/home-manager.nix4
-rw-r--r--modules/nixos/common/kernel.nix40
-rw-r--r--modules/nixos/common/locale.nix41
-rw-r--r--modules/nixos/common/networking.nix130
-rw-r--r--modules/nixos/common/nix.nix35
-rw-r--r--modules/nixos/common/secrets.nix4
-rw-r--r--modules/nixos/common/security.nix31
-rw-r--r--modules/nixos/common/services.nix10
-rw-r--r--modules/nixos/common/shell.nix1
-rw-r--r--modules/nixos/common/stylix.nix46
-rw-r--r--modules/nixos/common/systemd.nix43
-rw-r--r--modules/nixos/common/tmp.nix18
-rw-r--r--modules/nixos/common/users.nix30
-rw-r--r--modules/nixos/common/xdg.nix41
18 files changed, 0 insertions, 600 deletions
diff --git a/modules/nixos/common/ark.nix b/modules/nixos/common/ark.nix
deleted file mode 100644
index 6c7148f..0000000
--- a/modules/nixos/common/ark.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{
- config,
- inputs,
- lib,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.ark;
-in
-{
- imports = [
- (mkAliasOptionModule [ "ark" ] [
- "nixfiles"
- "modules"
- "ark"
- ])
- inputs.impermanence.nixosModules.impermanence
- ];
-
- options.nixfiles.modules.ark =
- let
- mkListOfAnythingOption = mkOption {
- type = with types; listOf anything; # Assumed to be matching with the upstream type.
- default = [ ];
- };
- in
- {
- enable = mkEnableOption "persistent storage support via impermanence";
-
- path = mkOption {
- type = types.str;
- default = "/ark";
- };
-
- directories = mkListOfAnythingOption;
- files = mkListOfAnythingOption;
- # hm = {
- # directories = mkListOfAnythingOption;
- # files = mkListOfAnythingOption;
- # };
- };
-
- config = mkIf cfg.enable {
- environment.persistence.${cfg.path} = {
- hideMounts = true;
- enableDebugging = false;
- inherit (cfg) directories files;
- };
-
- # NOTE We can't reliably[1] use this, so for the time being, this will stay
- # commented out. Probably forever.
- #
- # [1]: https://github.com/nix-community/impermanence/issues/18
- #
- # hm = {
- # imports = [inputs.impermanence.nixosModules.home-manager.impermanence];
- # home.persistence."${cfg.path}/${config.my.home}" = {
- # allowOther = false;
- # inherit (cfg.hm) directories files;
- # };
- # };
- };
-}
diff --git a/modules/nixos/common/console.nix b/modules/nixos/common/console.nix
deleted file mode 100644
index 330310c..0000000
--- a/modules/nixos/common/console.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-{ config, pkgs, ... }:
-{
- stylix.targets.console.enable = false;
-
- console = {
- earlySetup = true;
- font = "${pkgs.terminus_font}/share/consolefonts/ter-v16b.psf.gz";
- useXkbConfig = config.services.xserver.enable;
- };
-}
diff --git a/modules/nixos/common/default.nix b/modules/nixos/common/default.nix
deleted file mode 100644
index 4c192c9..0000000
--- a/modules/nixos/common/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-_: {
- imports = [
- ./ark.nix
- ./console.nix
- ./documentation.nix
- ./home-manager.nix
- ./kernel.nix
- ./locale.nix
- ./networking.nix
- ./nix.nix
- ./secrets.nix
- ./security.nix
- ./services.nix
- ./shell.nix
- ./stylix.nix
- ./systemd.nix
- ./tmp.nix
- ./users.nix
- ./xdg.nix
- ];
-}
diff --git a/modules/nixos/common/documentation.nix b/modules/nixos/common/documentation.nix
deleted file mode 100644
index f7d1585..0000000
--- a/modules/nixos/common/documentation.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{
- config,
- lib,
- pkgs,
- this,
- ...
-}:
-with lib;
-{
- config = mkIf this.isHeadful {
- documentation = {
- dev.enable = true;
- nixos.enable = true;
-
- man.man-db.manualPages =
- (pkgs.buildEnv {
- name = "man-paths";
- paths = with config; environment.systemPackages ++ hm.home.packages;
- pathsToLink = [ "/share/man" ];
- extraOutputsToInstall = [ "man" ];
- ignoreCollisions = true;
- }).overrideAttrs
- (_: _: { __contentAddressed = true; });
- };
-
- environment.sessionVariables = {
- MANOPT = "--no-hyphenation";
- MANPAGER = "${getExe pkgs.less} -+F";
- };
- };
-}
diff --git a/modules/nixos/common/home-manager.nix b/modules/nixos/common/home-manager.nix
deleted file mode 100644
index c553a65..0000000
--- a/modules/nixos/common/home-manager.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ inputs, ... }:
-{
- imports = [ inputs.home-manager.nixosModule ];
-}
diff --git a/modules/nixos/common/kernel.nix b/modules/nixos/common/kernel.nix
deleted file mode 100644
index 5c45b5d..0000000
--- a/modules/nixos/common/kernel.nix
+++ /dev/null
@@ -1,40 +0,0 @@
-{ lib, ... }:
-with lib;
-{
- boot = {
- # I don't use it even on laptops. It's also /required/ to disable it for
- # ZFS[1].
- # [1]: https://github.com/openzfs/zfs/issues/260
- # [1]: https://github.com/openzfs/zfs/issues/12842
- kernelParams = [ "hibernate=no" ];
-
- kernel.sysctl = {
- "fs.file-max" = pow 2 17;
- "fs.inotify.max_user_watches" = pow 2 19;
- "fs.suid_dumpable" = 0;
- "kernel.core_uses_pid" = 1;
- "kernel.exec-shield" = 1;
- "kernel.kptr_restrict" = 1;
- "kernel.maps_protect" = 1;
- "kernel.msgmax" = pow 2 16;
- "kernel.msgmnb" = pow 2 16;
- "kernel.pid_max" = pow 2 16;
- "kernel.randomize_va_space" = 2;
- "kernel.shmall" = pow 2 28;
- "kernel.shmmax" = pow 2 28;
- "kernel.sysrq" = 0;
- "vm.dirty_background_bytes" = pow 2 22;
- "vm.dirty_background_ratio" = 5;
- "vm.dirty_bytes" = pow 2 22;
- "vm.dirty_ratio" = 30;
- "vm.min_free_kbytes" = pow 2 16;
- "vm.mmap_min_addr" = pow 2 12;
- "vm.overcommit_memory" = mkDefault 0;
- "vm.overcommit_ratio" = mkDefault 50;
- "vm.vfs_cache_pressure" = 50;
- };
- };
-
- # https://docs.kernel.org/admin-guide/mm/ksm.html
- hardware.ksm.enable = true;
-}
diff --git a/modules/nixos/common/locale.nix b/modules/nixos/common/locale.nix
deleted file mode 100644
index 8b91a5a..0000000
--- a/modules/nixos/common/locale.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}:
-with lib;
-{
- i18n = {
- defaultLocale = mkDefault "en_GB.UTF-8";
- supportedLocales = [
- "C.UTF-8/UTF-8"
- "en_GB.UTF-8/UTF-8"
- "en_US.UTF-8/UTF-8"
- "ja_JP.UTF-8/UTF-8"
- "ru_RU.UTF-8/UTF-8"
- ];
-
- inputMethod = {
- enabled = null; # FIXME Breaks on Wayland.
- fcitx5 = {
- addons = with pkgs; [
- fcitx5-configtool
- fcitx5-mozc
- ];
- waylandFrontend = config.nixfiles.modules.wayland.enable;
- };
- };
- };
-
- services.xserver.xkb = {
- layout = "us,ru";
- variant = ",phonetic";
- options = concatStringsSep "," [
- "caps:escape"
- "compose:menu"
- "grp:win_space_toggle"
- "terminate:ctrl_alt_bksp"
- ];
- };
-}
diff --git a/modules/nixos/common/networking.nix b/modules/nixos/common/networking.nix
deleted file mode 100644
index ecadf6e..0000000
--- a/modules/nixos/common/networking.nix
+++ /dev/null
@@ -1,130 +0,0 @@
-{
- config,
- lib,
- pkgs,
- this,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.common.networking;
-in
-{
- options.nixfiles.modules.common.networking.onlyDefault = mkEnableOption "custom networking settings";
-
- config = mkIf (!cfg.onlyDefault) {
- ark.directories =
- with config.networking;
- optional networkmanager.enable "/etc/NetworkManager/system-connections"
- ++ optional wireless.iwd.enable "/var/lib/iwd";
-
- # TODO Switch to systemd-networkd.
- networking = mkMerge [
- {
- domain = my.domain.shire;
-
- hostName = this.hostname;
- hostId = substring 0 8 (builtins.hashString "md5" this.hostname);
-
- # Remove default hostname mappings. This is required at least by the
- # current implementation of the monitoring module.
- hosts = {
- "127.0.0.2" = mkForce [ ];
- "::1" = mkForce [ ];
- };
-
- nameservers = mkDefault dns.const.quad9.default;
- resolvconf.enable = true;
-
- useDHCP = false;
-
- nftables.enable = true;
-
- firewall = {
- enable = true;
-
- rejectPackets = false;
-
- allowPing = true;
- pingLimit = "1/minute burst 5 packets";
-
- logRefusedConnections = false;
- logRefusedPackets = false;
- logRefusedUnicastsOnly = false;
- logReversePathDrops = false;
- };
- }
- (
- let
- interface = "eth0"; # This assumes `usePredictableInterfaceNames` is false.
- in
- mkIf (hasAttr "ipv4" this && hasAttr "ipv6" this) {
- usePredictableInterfaceNames = false; # NOTE This can break something!
- interfaces.${interface} = {
- ipv4.addresses =
- with this.ipv4;
- optional (isString address && isInt prefixLength) { inherit address prefixLength; };
-
- ipv6.addresses =
- with this.ipv6;
- optional (isString address && isInt prefixLength) { inherit address prefixLength; };
- };
- defaultGateway =
- with this.ipv4;
- mkIf (isString gatewayAddress) {
- inherit interface;
- address = gatewayAddress;
- };
- defaultGateway6 =
- with this.ipv6;
- mkIf (isString gatewayAddress) {
- inherit interface;
- address = gatewayAddress;
- };
- }
- )
- (mkIf this.isHeadful {
- interfaces = {
- eth0.useDHCP = mkDefault true;
- wlan0.useDHCP = mkDefault true;
- };
-
- networkmanager = {
- enable = mkDefault true;
- wifi.backend = "iwd";
- };
-
- wireless = {
- enable = false;
- iwd.enable = mkDefault true;
- userControlled.enable = true;
- allowAuxiliaryImperativeNetworks = true;
- };
- })
- ];
-
- environment = {
- shellAliases = listToAttrs (
- map ({ name, value }: nameValuePair name "${pkgs.iproute2}/bin/${value}") [
- {
- name = "bridge";
- value = "bridge -color=always";
- }
- {
- name = "ip";
- value = "ip -color=always";
- }
- {
- name = "tc";
- value = "tc -color=always";
- }
- ]
- );
-
- systemPackages = with pkgs; [
- ethtool
- nethogs
- ];
- };
- };
-}
diff --git a/modules/nixos/common/nix.nix b/modules/nixos/common/nix.nix
deleted file mode 100644
index 146575d..0000000
--- a/modules/nixos/common/nix.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{
- config,
- inputs,
- lib,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.common.nix;
-in
-{
- options.nixfiles.modules.common.nix.allowedUnfreePackages = mkOption {
- description = "A list of allowed unfree packages.";
- type = with types; listOf str;
- default = [ ];
- };
-
- config = {
- nix = {
- daemonCPUSchedPolicy = "idle";
- daemonIOSchedClass = "idle";
- daemonIOSchedPriority = 7;
- };
-
- nixpkgs.config.allowUnfreePredicate = p: elem (getName p) cfg.allowedUnfreePackages;
-
- system.stateVersion = with builtins; head (split "\n" (readFile "${inputs.nixpkgs}/.version"));
-
- environment = {
- sessionVariables.NIX_SHELL_PRESERVE_PROMPT = "1";
- localBinInPath = true;
- defaultPackages = [ ];
- };
- };
-}
diff --git a/modules/nixos/common/secrets.nix b/modules/nixos/common/secrets.nix
deleted file mode 100644
index 31787ac..0000000
--- a/modules/nixos/common/secrets.nix
+++ /dev/null
@@ -1,4 +0,0 @@
-{ inputs, ... }:
-{
- imports = [ inputs.agenix.nixosModules.default ];
-}
diff --git a/modules/nixos/common/security.nix b/modules/nixos/common/security.nix
deleted file mode 100644
index c635cdc..0000000
--- a/modules/nixos/common/security.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-_: {
- security = {
- sudo = {
- enable = true;
- execWheelOnly = true;
- wheelNeedsPassword = false;
- extraConfig = ''
- Defaults lecture=never
- '';
- };
-
- polkit = {
- enable = true;
- extraConfig = ''
- /*
- * Allow members of the wheel group to execute any actions
- * without password authentication, similar to "sudo NOPASSWD:".
- *
- * https://wiki.archlinux.org/title/Polkit#Bypass_password_prompt
- */
- polkit.addRule(function(action, subject) {
- if (subject.isInGroup('wheel'))
- return polkit.Result.YES;
- });
- '';
- };
-
- # Pretty much used only for PipeWire.
- rtkit.enable = true;
- };
-}
diff --git a/modules/nixos/common/services.nix b/modules/nixos/common/services.nix
deleted file mode 100644
index 12e4bf7..0000000
--- a/modules/nixos/common/services.nix
+++ /dev/null
@@ -1,10 +0,0 @@
-_: {
- services = {
- # https://github.com/Irqbalance/irqbalance/issues/54#issuecomment-319245584
- # https://unix.stackexchange.com/questions/710603/should-the-irqbalance-daemon-be-used-on-a-modern-desktop-x86-system
- irqbalance.enable = true;
-
- # This is upposed to be better?
- dbus.implementation = "broker";
- };
-}
diff --git a/modules/nixos/common/shell.nix b/modules/nixos/common/shell.nix
deleted file mode 100644
index a1a7f08..0000000
--- a/modules/nixos/common/shell.nix
+++ /dev/null
@@ -1 +0,0 @@
-_: { programs.command-not-found.enable = false; }
diff --git a/modules/nixos/common/stylix.nix b/modules/nixos/common/stylix.nix
deleted file mode 100644
index 58b4f29..0000000
--- a/modules/nixos/common/stylix.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{
- config,
- inputs,
- lib,
- pkgs,
- ...
-}:
-with lib;
-{
- imports = [ inputs.stylix.nixosModules.stylix ];
-
- stylix.cursor = {
- name = "phinger-cursors-light";
- package = pkgs.phinger-cursors;
- size = 32;
- };
-
- fonts = {
- packages = mkAfter config.nixfiles.modules.common.stylix.fonts.extraPackages;
-
- fontconfig.defaultFonts = with config.stylix.fonts; {
- serif = mkForce [
- serif.name
- "Sarasa Gothic"
- "Source Han Serif"
- "Noto Serif"
- ];
- sansSerif = mkForce [
- sansSerif.name
- "Sarasa Gothic"
- "Source Han Sans"
- "Noto Sans"
- ];
- monospace = mkForce [
- monospace.name
- "Sarasa Mono"
- "Source Han Mono"
- "Noto Sans Mono"
- ];
- emoji = mkForce [
- "Twitter Color Emoji"
- "Noto Color Emoji"
- ];
- };
- };
-}
diff --git a/modules/nixos/common/systemd.nix b/modules/nixos/common/systemd.nix
deleted file mode 100644
index b393d9f..0000000
--- a/modules/nixos/common/systemd.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ config, pkgs, ... }:
-{
- ark = {
- files = [ "/etc/machine-id" ];
- directories = [ "/var/lib/systemd/coredump" ];
- };
-
- my.extraGroups = [ "systemd-journal" ];
-
- hm.systemd.user.startServices = "sd-switch";
-
- boot.initrd.systemd = {
- enable = true;
- network = {
- inherit (config.systemd.network) enable;
- wait-online.enable = false;
- };
- };
-
- services.journald.extraConfig = ''
- SystemMaxUse=5G
- '';
-
- systemd =
- let
- extraConfig = ''
- DefaultTimeoutStartSec=30s
- DefaultTimeoutStopSec=15s
- '';
- in
- {
- inherit extraConfig;
- user = {
- inherit extraConfig;
- };
- };
-
- environment.sessionVariables = {
- SYSTEMD_PAGERSECURE = "1";
- SYSTEMD_PAGER = "${pkgs.less}/bin/less";
- SYSTEMD_LESS = "FRSXMK";
- };
-}
diff --git a/modules/nixos/common/tmp.nix b/modules/nixos/common/tmp.nix
deleted file mode 100644
index d56e2b6..0000000
--- a/modules/nixos/common/tmp.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-_: {
- systemd.mounts = [
- {
- type = "tmpfs";
- what = "tmpfs";
- where = "/tmp";
- mountConfig.Options = [
- "huge=within_size"
- "mode=1777"
- "noatime"
- "nodev"
- "nosuid"
- "rw"
- "size=25%"
- ];
- }
- ];
-}
diff --git a/modules/nixos/common/users.nix b/modules/nixos/common/users.nix
deleted file mode 100644
index a92a38e..0000000
--- a/modules/nixos/common/users.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{
- lib,
- localUsername ? lib.my.username,
- ...
-}:
-with lib;
-let
- home = "/home/${localUsername}";
-in
-{
- ark.directories = [ home ];
-
- users = {
- mutableUsers = false;
-
- users = {
- root.hashedPassword = "@HASHED_PASSWORD@";
-
- ${localUsername} = {
- isNormalUser = true;
- uid = 1000;
- description = my.fullname;
- inherit home;
- inherit (my) hashedPassword;
- openssh.authorizedKeys.keys = [ my.ssh.key ];
- extraGroups = [ "wheel" ];
- };
- };
- };
-}
diff --git a/modules/nixos/common/xdg.nix b/modules/nixos/common/xdg.nix
deleted file mode 100644
index 1fe167e..0000000
--- a/modules/nixos/common/xdg.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{
- config,
- lib,
- this,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.common.xdg;
-in
-{
- options.nixfiles.modules.common.xdg.defaultApplications = mkOption {
- description = "Default applications.";
- type = with types; attrsOf (listOf str);
- default = { };
- };
-
- config = {
- xdg.portal = mkIf this.isHeadful { enable = true; };
-
- hm.xdg = mkMerge [
- (with cfg; {
- enable = true;
-
- inherit cacheHome;
- inherit configHome;
- inherit dataHome;
- inherit stateHome;
- inherit userDirs;
- })
- (mkIf this.isHeadful {
- mimeApps = {
- enable = true;
- defaultApplications = mkMerge (
- mapAttrsToList (n: v: genAttrs v (_: [ "${n}.desktop" ])) cfg.defaultApplications
- );
- };
- })
- ];
- };
-}