refactor: use common base for NixOS config (#1)
This commit is contained in:
parent
1ebef6815c
commit
4dff2dd12a
11 changed files with 111 additions and 181 deletions
2
.github/workflows/check.yml
vendored
2
.github/workflows/check.yml
vendored
|
@ -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
|
||||||
|
|
|
@ -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, ...}: {
|
||||||
|
|
|
@ -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;
|
||||||
|
|
13
machines/common/linux/boot.nix
Normal file
13
machines/common/linux/boot.nix
Normal 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];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
8
machines/common/linux/default.nix
Normal file
8
machines/common/linux/default.nix
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{...}: {
|
||||||
|
imports = [
|
||||||
|
./boot.nix
|
||||||
|
./network.nix
|
||||||
|
./sound.nix
|
||||||
|
./xsession.nix
|
||||||
|
];
|
||||||
|
}
|
11
machines/common/linux/sound.nix
Normal file
11
machines/common/linux/sound.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
security = {
|
||||||
|
rtkit.enable = true;
|
||||||
|
};
|
||||||
|
services = {
|
||||||
|
pipewire = {
|
||||||
|
enable = true;
|
||||||
|
pulse.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
|
|
64
machines/common/linux/xsession.nix
Normal file
64
machines/common/linux/xsession.nix
Normal 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;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue