From 55052eb96016c6dc397e1ea14788c29718a85311 Mon Sep 17 00:00:00 2001 From: Patrick Neff Date: Sun, 10 Mar 2024 13:12:56 +0100 Subject: [PATCH] refactoring, add packages --- hosts/wsl-dev/configuration.nix | 15 ++++++++++ hosts/wsl-dev/home.nix | 8 +++++ modules/base/default.nix | 15 ++++++++++ modules/{ => base}/home-manager/default.nix | 0 modules/{ => base}/i18n/default.nix | 0 modules/{ => base}/network/default.nix | 4 ++- modules/{ => base}/nixos/default.nix | 0 modules/base/power-management/default.nix | 30 +++++++++++++++++++ modules/base/programs/default.nix | 26 ++++++++++++++++ modules/base/ssh/default.nix | 9 ++++++ modules/{ => base}/user/default.nix | 2 +- modules/default.nix | 6 +--- modules/desktop/default.nix | 0 modules/desktop/fonts/default.nix | 33 +++++++++++++++++++++ modules/desktop/sound/default.nix | 18 +++++++++++ modules/programs/default.nix | 13 -------- 16 files changed, 159 insertions(+), 20 deletions(-) create mode 100644 hosts/wsl-dev/configuration.nix create mode 100644 hosts/wsl-dev/home.nix create mode 100644 modules/base/default.nix rename modules/{ => base}/home-manager/default.nix (100%) rename modules/{ => base}/i18n/default.nix (100%) rename modules/{ => base}/network/default.nix (62%) rename modules/{ => base}/nixos/default.nix (100%) create mode 100644 modules/base/power-management/default.nix create mode 100644 modules/base/programs/default.nix create mode 100644 modules/base/ssh/default.nix rename modules/{ => base}/user/default.nix (92%) create mode 100644 modules/desktop/default.nix create mode 100644 modules/desktop/fonts/default.nix create mode 100644 modules/desktop/sound/default.nix delete mode 100644 modules/programs/default.nix diff --git a/hosts/wsl-dev/configuration.nix b/hosts/wsl-dev/configuration.nix new file mode 100644 index 0000000..2b21d4d --- /dev/null +++ b/hosts/wsl-dev/configuration.nix @@ -0,0 +1,15 @@ +{ vars, inputs, ... }: +let + inherit (vars) username; +in +{ + imports = [ + ../../modules + ../../modules/wsl + ../../modules/home-manager + ]; + + home-manager.users.${username} = ./home.nix; + + system.stateVersion = "23.11"; +} diff --git a/hosts/wsl-dev/home.nix b/hosts/wsl-dev/home.nix new file mode 100644 index 0000000..732acbf --- /dev/null +++ b/hosts/wsl-dev/home.nix @@ -0,0 +1,8 @@ +{ inputs, ... }: { + imports = [ + inputs.neovim-flake.homeModules.default + inputs.home-manager-flake.homeModules.base + inputs.home-manager-flake.homeModules.shell + inputs.home-manager-flake.homeModules.dev + ]; +} diff --git a/modules/base/default.nix b/modules/base/default.nix new file mode 100644 index 0000000..f95ba2d --- /dev/null +++ b/modules/base/default.nix @@ -0,0 +1,15 @@ +_: { + imports = [ + ./user + ./network + ./i18n + ./nixos + ./programs + ./ssh + ./power-management + ]; + + config = { + hardware.enableRedistributableFirmware = true; + }; +} diff --git a/modules/home-manager/default.nix b/modules/base/home-manager/default.nix similarity index 100% rename from modules/home-manager/default.nix rename to modules/base/home-manager/default.nix diff --git a/modules/i18n/default.nix b/modules/base/i18n/default.nix similarity index 100% rename from modules/i18n/default.nix rename to modules/base/i18n/default.nix diff --git a/modules/network/default.nix b/modules/base/network/default.nix similarity index 62% rename from modules/network/default.nix rename to modules/base/network/default.nix index 7e46f59..4e5d5e0 100644 --- a/modules/network/default.nix +++ b/modules/base/network/default.nix @@ -3,5 +3,7 @@ let inherit (vars) hostName; in { - networking.hostName = hostName; + networking = { + inherit hostName; + }; } diff --git a/modules/nixos/default.nix b/modules/base/nixos/default.nix similarity index 100% rename from modules/nixos/default.nix rename to modules/base/nixos/default.nix diff --git a/modules/base/power-management/default.nix b/modules/base/power-management/default.nix new file mode 100644 index 0000000..77b9c07 --- /dev/null +++ b/modules/base/power-management/default.nix @@ -0,0 +1,30 @@ +{ lib, config, ... }: { + options = { + services.power-management.enable = lib.mkEnableOption "power-management"; + }; + config = lib.mkIf config.services.power-management.enable { + services = { + power-profiles-daemon.enable = true; + upower.enable = true; + }; + + users.groups.power = { }; + + security.polkit = { + extraConfig = '' + polkit.addRule(function(action, subject) { + if (action.id == "org.freedesktop.systemd1.manage-units" || + action.id == "org.freedesktop.systemd1.manage-unit-files") { + if (action.lookup("unit") == "poweroff.target") { + if (subject.isInGroup("power")) { + return polkit.Result.YES; + } else { + return polkit.Result.AUTH_ADMIN; + } + } + } + }); + ''; + }; + }; +} diff --git a/modules/base/programs/default.nix b/modules/base/programs/default.nix new file mode 100644 index 0000000..a838aa8 --- /dev/null +++ b/modules/base/programs/default.nix @@ -0,0 +1,26 @@ +{ config, lib, pkgs, vars, ... }: +{ + environment = { + systemPackages = with pkgs; [ + vim + git + openssh + file + w3m + btop + iftop + iotop + ncdu + ]; + etc = { + "ncdu.conf".text = '' + --color dark + ''; + }; + }; + + programs = { + zsh.enable = true; + command-not-found.enable = false; + }; +} diff --git a/modules/base/ssh/default.nix b/modules/base/ssh/default.nix new file mode 100644 index 0000000..893ecf1 --- /dev/null +++ b/modules/base/ssh/default.nix @@ -0,0 +1,9 @@ +{ lib, config, ... }: lib.mkIf config.services.openssh.enable { + services.openssh = { + settings = { + PermitRootLogin = "prohibit-password"; + PasswordAuthentication = false; + }; + openFirewall = true; + }; +} diff --git a/modules/user/default.nix b/modules/base/user/default.nix similarity index 92% rename from modules/user/default.nix rename to modules/base/user/default.nix index ca7ba93..18b476f 100644 --- a/modules/user/default.nix +++ b/modules/base/user/default.nix @@ -4,7 +4,7 @@ let in { users = { - defaultUserShell = pkgs.zsh; + # defaultUserShell = pkgs.zsh; groups.odie = { }; users = { ${username} = { diff --git a/modules/default.nix b/modules/default.nix index b18be3f..0199860 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,9 +1,5 @@ _: { imports = [ - ./user - ./network - ./i18n - ./nixos - ./programs + ./base ]; } diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix new file mode 100644 index 0000000..e69de29 diff --git a/modules/desktop/fonts/default.nix b/modules/desktop/fonts/default.nix new file mode 100644 index 0000000..36993b1 --- /dev/null +++ b/modules/desktop/fonts/default.nix @@ -0,0 +1,33 @@ +{ pkgs, ... }: { + fonts = { + enableDefaultPackages = true; + packages = with pkgs; [ + roboto + roboto-slab + noto-fonts + noto-fonts-emoji + sarasa-gothic + (nerdfonts.override { fonts = [ "NerdFontsSymbolsOnly" ]; }) + ]; + fontconfig = { + antialias = true; + allowType1 = false; + allowBitmaps = false; + hinting = { + enable = true; + style = "slight"; + autohint = false; + }; + subpixel = { + rgba = "rgb"; + lcdfilter = "default"; + }; + defaultFonts = { + emoji = [ "Noto Color Emoji" ]; + serif = [ "Roboto Slab" "Noto Serif" "Sarasa Gothic CL" "Symbols Nerd Font" ]; + sansSerif = [ "Roboto" "Noto Sans" "Sarasa Gothic CL" "Symbols Nerd Font" ]; + monospace = [ "JetBrains Mono" "Sarasa Mono CL" "Symbols Nerd Font Mono" ]; + }; + }; + }; +} diff --git a/modules/desktop/sound/default.nix b/modules/desktop/sound/default.nix new file mode 100644 index 0000000..c9bbafc --- /dev/null +++ b/modules/desktop/sound/default.nix @@ -0,0 +1,18 @@ +{ pkgs, ... }: +{ + environment.systemPackages = with pkgs; [ + alsa-utils + ]; + + security.rtkit.enable = true; + + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + wireplumber.enable = true; + }; + + sound.enable = true; +} diff --git a/modules/programs/default.nix b/modules/programs/default.nix deleted file mode 100644 index d50255d..0000000 --- a/modules/programs/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ config, lib, pkgs, vars, ... }: -{ - environment.systemPackages = with pkgs; [ - vim - git - openssh - ]; - - programs = { - zsh.enable = true; - command-not-found.enable = false; - }; -}