refactor: use common base for NixOS config (#1)

This commit is contained in:
winston 2023-03-02 17:14:11 +01:00 committed by GitHub
parent 1ebef6815c
commit 4dff2dd12a
Failed to generate hash of commit
11 changed files with 111 additions and 181 deletions

View file

@ -14,5 +14,5 @@ jobs:
- uses: cachix/install-nix-action@v19 - uses: cachix/install-nix-action@v19
with: with:
github_access_token: ${{ secrets.GITHUB_TOKEN }} github_access_token: ${{ secrets.GITHUB_TOKEN }}
- run: nix flake check - run: nix flake check --show-trace
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json # yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json

View file

@ -54,7 +54,7 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./machines/common.nix ./machines/common
./machines/futomaki ./machines/futomaki
({config, ...}: { ({config, ...}: {
@ -77,7 +77,7 @@
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [
home-manager.nixosModules.home-manager home-manager.nixosModules.home-manager
./machines/common.nix ./machines/common
./machines/bento ./machines/bento
({config, ...}: { ({config, ...}: {
@ -103,7 +103,7 @@
modules = [ modules = [
home-manager.darwinModules.home-manager home-manager.darwinModules.home-manager
./machines/common.nix ./machines/common
./machines/sashimi ./machines/sashimi
({config, ...}: { ({config, ...}: {

View file

@ -5,21 +5,14 @@
}: let }: let
mainUser = "w"; mainUser = "w";
in { in {
imports = [./hardware.nix ../traefik.nix ../network.nix]; imports = [
./hardware.nix
../common/linux
];
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.enable = true;
# plymouth
plymouth = {
enable = true;
theme = "catppuccin-mocha";
themePackages = [pkgs.nur.repos.nekowinston.plymouth-theme-catppuccin];
};
kernelParams = ["quiet" "splash"]; kernelParams = ["quiet" "splash"];
initrd.systemd.enable = true;
}; };
hardware = { hardware = {
@ -35,83 +28,10 @@ in {
time.timeZone = "Europe/Vienna"; time.timeZone = "Europe/Vienna";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
environment.systemPackages = with pkgs; [
# file management
p7zip
unzip
zip
gnome.file-roller
# thumbnails
webp-pixbuf-loader
ffmpegthumbnailer
];
programs = {
dconf.enable = true;
nix-ld.enable = true;
noisetorch.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
};
security = {
polkit.enable = true;
rtkit.enable = true;
};
systemd = {
packages = [pkgs.polkit_gnome];
user.services.polkit-gnome-authentication-agent-1 = {
unitConfig = {
Description = "polkit-gnome-authentication-agent-1";
Wants = ["graphical-session.target"];
WantedBy = ["graphical-session.target"];
After = ["graphical-session.target"];
};
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
services = { services = {
# mounting
gvfs.enable = true;
udisks2.enable = true;
devmon.enable = true;
# thunbnails
tumbler.enable = true;
# desktop
blueman.enable = true; blueman.enable = true;
gnome.gnome-keyring.enable = true;
mullvad-vpn.enable = true;
pipewire = {
enable = true;
pulse.enable = true;
};
openssh.enable = true; openssh.enable = true;
pcscd.enable = true; pcscd.enable = true;
xserver = {
enable = true;
desktopManager.xterm.enable = false;
displayManager.gdm.enable = true;
displayManager.gdm.wayland = false;
libinput.enable = true;
windowManager.i3.enable = true;
xkbOptions = "caps:ctrl_modifier";
};
}; };
virtualisation.docker.enable = true; virtualisation.docker.enable = true;

View file

@ -0,0 +1,13 @@
{pkgs, ...}: {
boot = {
loader.efi.canTouchEfiVariables = true;
loader.systemd-boot.enable = true;
initrd.systemd.enable = true;
plymouth = {
enable = true;
theme = "catppuccin-mocha";
themePackages = [pkgs.nur.repos.nekowinston.plymouth-theme-catppuccin];
};
};
}

View file

@ -0,0 +1,8 @@
{...}: {
imports = [
./boot.nix
./network.nix
./sound.nix
./xsession.nix
];
}

View file

@ -0,0 +1,11 @@
{
security = {
rtkit.enable = true;
};
services = {
pipewire = {
enable = true;
pulse.enable = true;
};
};
}

View file

@ -1,17 +1,10 @@
# this is half baked, so it's not enabled yet
{ {
lib,
pkgs,
...
}: let
inherit (pkgs.stdenv.hostPlatform) isLinux;
in {
# add the traefik user to the docker group for socket access # add the traefik user to the docker group for socket access
users = lib.mkIf isLinux { users = {
users.traefik.extraGroups = ["docker"]; users.traefik.extraGroups = ["docker"];
}; };
services = lib.mkIf isLinux { services = {
traefik = { traefik = {
enable = true; enable = true;

View file

@ -0,0 +1,64 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [
# file management
p7zip
unzip
zip
gnome.file-roller
# thumbnails
webp-pixbuf-loader
ffmpegthumbnailer
];
programs = {
dconf.enable = true;
noisetorch.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
};
services = {
# mounting
gvfs.enable = true;
udisks2.enable = true;
devmon.enable = true;
# thumbnails
tumbler.enable = true;
gnome.gnome-keyring.enable = true;
xserver = {
enable = true;
desktopManager.xterm.enable = false;
displayManager.gdm.enable = true;
libinput.enable = true;
windowManager.i3.enable = true;
xkbOptions = "caps:ctrl_modifier";
};
};
security.polkit.enable = true;
systemd = {
packages = [pkgs.polkit_gnome];
user.services.polkit-gnome-authentication-agent-1 = {
unitConfig = {
Description = "polkit-gnome-authentication-agent-1";
Wants = ["graphical-session.target"];
WantedBy = ["graphical-session.target"];
After = ["graphical-session.target"];
};
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
}

View file

@ -5,24 +5,16 @@
}: let }: let
mainUser = "winston"; mainUser = "winston";
in { in {
imports = [./hardware.nix ../traefik.nix ../network.nix]; imports = [
./hardware.nix
../common/linux
];
boot = { boot = {
kernelPackages = pkgs.linuxPackages_latest; kernelPackages = pkgs.linuxPackages_latest;
loader.efi.canTouchEfiVariables = true; # for nvidia
loader.systemd-boot.enable = true;
# for nvidia & minimalism
loader.systemd-boot.consoleMode = "0"; loader.systemd-boot.consoleMode = "0";
# plymouth
plymouth = {
enable = true;
theme = "catppuccin-mocha";
themePackages = [pkgs.nur.repos.nekowinston.plymouth-theme-catppuccin];
};
kernelParams = ["quiet" "splash" "vt.global_cursor_default=0"]; kernelParams = ["quiet" "splash" "vt.global_cursor_default=0"];
initrd.systemd.enable = true;
}; };
hardware = { hardware = {
@ -38,81 +30,10 @@ in {
time.timeZone = "Europe/Vienna"; time.timeZone = "Europe/Vienna";
i18n.defaultLocale = "en_US.UTF-8"; i18n.defaultLocale = "en_US.UTF-8";
environment.systemPackages = with pkgs; [
# file management
p7zip
unzip
zip
gnome.file-roller
# thumbnails
webp-pixbuf-loader
ffmpegthumbnailer
];
programs = {
dconf.enable = true;
nix-ld.enable = true;
noisetorch.enable = true;
thunar = {
enable = true;
plugins = with pkgs.xfce; [
thunar-archive-plugin
thunar-volman
];
};
};
security = {
polkit.enable = true;
rtkit.enable = true;
};
systemd = {
packages = [pkgs.polkit_gnome];
user.services.polkit-gnome-authentication-agent-1 = {
unitConfig = {
Description = "polkit-gnome-authentication-agent-1";
Wants = ["graphical-session.target"];
WantedBy = ["graphical-session.target"];
After = ["graphical-session.target"];
};
serviceConfig = {
Type = "simple";
ExecStart = "${pkgs.polkit_gnome}/libexec/polkit-gnome-authentication-agent-1";
Restart = "on-failure";
RestartSec = 1;
TimeoutStopSec = 10;
};
};
};
services = { services = {
# mounting
gvfs.enable = true;
udisks2.enable = true;
devmon.enable = true;
# thunbnails
tumbler.enable = true;
# desktop
blueman.enable = true; blueman.enable = true;
gnome.gnome-keyring.enable = true;
pipewire = {
enable = true;
pulse.enable = true;
};
openssh.enable = true; openssh.enable = true;
pcscd.enable = true; pcscd.enable = true;
xserver = {
enable = true;
desktopManager.xterm.enable = false;
displayManager.gdm.enable = true;
libinput.enable = true;
windowManager.i3.enable = true;
xkbOptions = "caps:ctrl_modifier";
};
}; };
virtualisation.docker.enable = true; virtualisation.docker.enable = true;