Configuration is more flexible

Add new host must be easier
This commit is contained in:
Yorick Barbanneau 2023-09-02 15:51:02 +02:00
parent 431c99a58e
commit 51fdbb4a87
16 changed files with 91 additions and 79 deletions

60
nixos/default.nix Normal file
View file

@ -0,0 +1,60 @@
{ config, pkgs, lib, stateVersion, hostname, ... }:
{
imports =
[ # Include the results of the hardware scan.
../hosts/${hostname}/hardware-configuration.nix
./includes/hardware/bootloader.nix
./includes/system/locales.nix
./includes/system/flakes.nix
./includes/system/user.nix
./includes/system/udisks2.nix
./includes/system/lvm.nix
./includes/system/doas.nix
./includes/system/neovim.nix
./includes/desktop/swaylock.nix
./includes/desktop/pipewire.nix
./includes/desktop/xdg-portal.nix
./includes/gaming/steam.nix
];
nixpkgs.config.allowUnfree = true;
boot.kernelPackages = pkgs.linuxPackages_latest;
networking.hostName = hostname;
console = {
earlySetup = true;
font = "${pkgs.terminus_font}/share/consolefonts/ter-132n.psf.gz";
packages = with pkgs; [terminus_font];
# keyMap = "us";
useXkbConfig = true; # use xkbOptions in tty.
};
environment.systemPackages = with pkgs; [
git
zsh
];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.ephase = {
home.stateVersion = stateVersion;
programs.home-manager.enable = true;
imports = [
../modules/home/desktop
../modules/home/webcord.nix
../modules/home/cli
../modules/home/firefox
../modules/home/foot.nix
../modules/home/lutris.nix
../modules/home/zathura.nix
];
};
};
system.stateVersion = "23.05";
}

View file

@ -0,0 +1,9 @@
_: {
security.rtkit.enable = true;
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
}

View file

@ -0,0 +1,3 @@
_: {
security.pam.services.swaylock = {};
}

View file

@ -0,0 +1,9 @@
{ config, pkgs, ...}:
{
xdg.portal = {
enable = true;
wlr.enable = true;
# gtk portal needed to make gtk apps happy
extraPortals = [ pkgs.xdg-desktop-portal-gtk ];
};
}

View file

@ -0,0 +1,7 @@
{ pkgs, ... }:
{
programs.steam = {
enable = true;
gamescopeSession.enable = true;
};
}

View file

@ -0,0 +1,6 @@
_: {
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.systemd-boot.configurationLimit = 10;
boot.loader.efi.canTouchEfiVariables = true;
}

View file

@ -0,0 +1,5 @@
{ config, ...}:
{
security.doas.enable = true;
security.sudo.enable = false;
}

View file

@ -0,0 +1,10 @@
{ pkgs, ... }:
{
nix = {
package = pkgs.nixUnstable;
extraOptions = ''
experimental-features = nix-command flakes
'';
};
}

View file

@ -0,0 +1,6 @@
{ config, ... }:
{
time.timeZone = "Europe/Paris";
# English locale with YYY/MM/DD date format
i18n.defaultLocale = "en_DK.UTF-8";
}

View file

@ -0,0 +1,10 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [
lvm2_dmeventd
];
services.lvm.enable = true;
services.lvm.dmeventd.enable = true;
services.lvm.boot.thin.enable = true;
}

View file

@ -0,0 +1,13 @@
{ config, pkgs, ...}:
{
environment.systemPackages = with pkgs; [
neovim
];
programs.neovim = {
enable = true;
defaultEditor = true;
viAlias = true;
vimAlias = true;
};
}

View file

@ -0,0 +1,3 @@
_: {
services.udisks2.enable = true;
}

View file

@ -0,0 +1,25 @@
{ config, pkgs, ... }:
{
# Services
services.pcscd.enable = true;
# Programs
programs.ssh.startAgent = true;
programs.zsh.enable = true;
# Needed for home-manager systemd service
programs.dconf.enable = true;
# Configs
fonts.fontconfig.enable = true;
users.users.ephase = {
shell = pkgs.zsh;
isNormalUser = true;
extraGroups = [ "video" "wheel" ];
home = "/home/ephase";
packages = with pkgs; [
remmina
gcc
];
};
}