more modular system

This commit is contained in:
Jakub Kropáček 2024-10-06 11:00:01 +02:00
parent 483cba05df
commit 5e528945f5
7 changed files with 86 additions and 38 deletions

View file

@ -45,23 +45,6 @@
LC_TIME = "cs_CZ.UTF-8";
};
# Enable the X11 windowing system.
services.xserver = {
enable = true;
# Enable the GNOME Desktop Environment.
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
services.gnome.gnome-browser-connector.enable = true;
environment.gnome.excludePackages = with pkgs; [
epiphany
geary
seahorse
totem
];
# Configure keymap in X11
services.xserver.xkb = {
layout = "cz";
@ -77,25 +60,6 @@
drivers = [ pkgs.samsung-unified-linux-driver ];
};
# Enable sound with pipewire.
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
# If you want to use JACK applications, uncomment this
#jack.enable = 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;
};
# Enable touchpad support (enabled default in most desktopManager).
# services.xserver.libinput.enable = true;
# Define a user account. Don't forget to set a password with passwd.
users.users.krop = {
isNormalUser = true;
@ -121,7 +85,6 @@
environment.systemPackages = with pkgs; [
alacritty
alacritty-theme
gnome-tweaks
nixd
nil
fzf

View file

@ -25,6 +25,9 @@
# My own modules configuration
krop = {
audio = {
enable = true;
};
ide = {
enable = true;
install-pycharm = true;
@ -41,6 +44,9 @@
docker = {
enable = true;
};
de.gnome = {
enable = true;
};
};
systemd.services.configure-mic-leds = rec {

View file

@ -2,5 +2,6 @@
{
imports = [
./dev
./system
];
}

View file

@ -0,0 +1,27 @@
{
config,
lib,
...
}:
let
cfg = config.krop.audio;
in {
options.krop.audio = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Enable audio";
};
};
config = lib.mkIf cfg.enable {
hardware.pulseaudio.enable = false;
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
};
}

View file

@ -0,0 +1,6 @@
{ ... }:
{
imports = [
./gnome.nix
];
}

View file

@ -0,0 +1,39 @@
{
config,
pkgs,
lib,
...
}:
let
cfg = config.krop.de.gnome;
in
{
options.krop.de.gnome = {
enable = lib.mkOption {
type = lib.types.bool;
default = false;
example = true;
description = "Enable gnome";
};
};
config = lib.mkIf cfg.enable {
services.xserver = {
enable = true;
displayManager.gdm.enable = true;
desktopManager.gnome.enable = true;
};
services.gnome.gnome-browser-connector.enable = true;
environment.gnome.excludePackages = with pkgs; [
epiphany
geary
seahorse
totem
];
environment.systemPackages = with pkgs; [
gnome-tweaks
];
};
}

View file

@ -1 +1,7 @@
{ ... }: { }
{ ... }:
{
imports = [
./de
./audio.nix
];
}