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
|
||||
with:
|
||||
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
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
system = "x86_64-linux";
|
||||
modules = [
|
||||
home-manager.nixosModules.home-manager
|
||||
./machines/common.nix
|
||||
./machines/common
|
||||
./machines/futomaki
|
||||
|
||||
({config, ...}: {
|
||||
|
@ -77,7 +77,7 @@
|
|||
system = "x86_64-linux";
|
||||
modules = [
|
||||
home-manager.nixosModules.home-manager
|
||||
./machines/common.nix
|
||||
./machines/common
|
||||
./machines/bento
|
||||
|
||||
({config, ...}: {
|
||||
|
@ -103,7 +103,7 @@
|
|||
|
||||
modules = [
|
||||
home-manager.darwinModules.home-manager
|
||||
./machines/common.nix
|
||||
./machines/common
|
||||
./machines/sashimi
|
||||
|
||||
({config, ...}: {
|
||||
|
|
|
@ -5,21 +5,14 @@
|
|||
}: let
|
||||
mainUser = "w";
|
||||
in {
|
||||
imports = [./hardware.nix ../traefik.nix ../network.nix];
|
||||
imports = [
|
||||
./hardware.nix
|
||||
../common/linux
|
||||
];
|
||||
|
||||
boot = {
|
||||
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"];
|
||||
initrd.systemd.enable = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
|
@ -35,83 +28,10 @@ in {
|
|||
time.timeZone = "Europe/Vienna";
|
||||
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 = {
|
||||
# mounting
|
||||
gvfs.enable = true;
|
||||
udisks2.enable = true;
|
||||
devmon.enable = true;
|
||||
|
||||
# thunbnails
|
||||
tumbler.enable = true;
|
||||
|
||||
# desktop
|
||||
blueman.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
mullvad-vpn.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
openssh.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;
|
||||
|
|
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
|
||||
users = lib.mkIf isLinux {
|
||||
users = {
|
||||
users.traefik.extraGroups = ["docker"];
|
||||
};
|
||||
|
||||
services = lib.mkIf isLinux {
|
||||
services = {
|
||||
traefik = {
|
||||
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
|
||||
mainUser = "winston";
|
||||
in {
|
||||
imports = [./hardware.nix ../traefik.nix ../network.nix];
|
||||
imports = [
|
||||
./hardware.nix
|
||||
../common/linux
|
||||
];
|
||||
|
||||
boot = {
|
||||
kernelPackages = pkgs.linuxPackages_latest;
|
||||
loader.efi.canTouchEfiVariables = true;
|
||||
loader.systemd-boot.enable = true;
|
||||
|
||||
# for nvidia & minimalism
|
||||
# for nvidia
|
||||
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"];
|
||||
initrd.systemd.enable = true;
|
||||
};
|
||||
|
||||
hardware = {
|
||||
|
@ -38,81 +30,10 @@ in {
|
|||
time.timeZone = "Europe/Vienna";
|
||||
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 = {
|
||||
# mounting
|
||||
gvfs.enable = true;
|
||||
udisks2.enable = true;
|
||||
devmon.enable = true;
|
||||
|
||||
# thunbnails
|
||||
tumbler.enable = true;
|
||||
|
||||
# desktop
|
||||
blueman.enable = true;
|
||||
gnome.gnome-keyring.enable = true;
|
||||
pipewire = {
|
||||
enable = true;
|
||||
pulse.enable = true;
|
||||
};
|
||||
|
||||
openssh.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;
|
||||
|
|
Loading…
Reference in a new issue