feasible config for the beginning

This commit is contained in:
MFlossmann 2024-03-27 23:45:23 +01:00
parent b4c2ba8174
commit 25d5980e6c
13 changed files with 563 additions and 203 deletions

View file

@ -0,0 +1,58 @@
{
pkgs,
lib,
...
}: {
boot.kernel.sysctl = {
"kernel.sysrq" = 502; # enables "REISUB"
};
services.xserver.xkb = lib.mkDefault {
layout = "de";
variant = "neo";
};
console.keyMap = lib.mkDefault "neo";
services.xserver.enable = true;
services.xserver.displayManager.sddm.enable = lib.mkDefault true;
services.desktopManager.plasma6.enable = lib.mkDefault true;
services.printing.enable = true;
# For touchscreen/pad support (supposedly)
services.xserver.libinput.enable = true;
# sound
sound.enable = true;
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
jack.enable = lib.mkDefault true;
# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
#media-session.enable = true;
};
fonts.packages = with pkgs; [
nerdfonts
(pkgs.nerdfonts.override {fonts = ["JetBrainsMono" "Iosevka" "FiraCode"];})
cm_unicode
corefonts
];
fonts.enableDefaultPackages = true;
fonts.fontconfig = {
defaultFonts = {
monospace = ["JetBrainsMono Nerd Font Mono"];
sansSerif = ["JetBrainsMono Nerd Font"];
serif = ["JetBrainsMono Nerd Font"];
};
};
}

View file

@ -0,0 +1,60 @@
{
lib,
config,
inputs,
outputs,
helperLib,
pkgs,
...
}: let
cfg = config.myNixOS;
in {
options.myNixOS.home-users = lib.mkOption {
type = lib.types.attrsOf ( lib.types.submodule {
options = {
userConfig = lib.mkOption {
example = "home.nix";
};
userSettings = lib.mkOption {
default = {};
example = "{}";
};
};
});
default = {};
};
config = {
programs.zsh.enable = true;
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
extraSpecialArgs = {
inherit inputs;
inherit helperLib;
outputs = inputs.self.outputs;
};
users =
builtins.mapAttrs (name: user: {...}: {
imports = [
(import user.userConfig)
outputs.homeManagerModules.default
];
})
(config.myNixOS.home-users);
};
users.users = builtins.mapAttrs (
name: user:
{
isNormalUser = true;
shell = pkgs.zsh;
extraGroups = ["libvirtd" "networkmanager"];
}
// user.userSettings
) (config.myNixOS.home-users);
};
}