From 8e3f28bc31d46660489c899df28570e49a6df032 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Sun, 12 Jun 2022 00:07:40 +0200 Subject: [PATCH] Extract lots of host config to common config --- hosts/common.nix | 147 +++++++++++++++++++++++++++++++++- hosts/eisei/configuration.nix | 111 +------------------------ hosts/kasei/configuration.nix | 101 +---------------------- hosts/tsuki/configuration.nix | 58 +------------- 4 files changed, 148 insertions(+), 269 deletions(-) diff --git a/hosts/common.nix b/hosts/common.nix index f9f7c31..2e13012 100644 --- a/hosts/common.nix +++ b/hosts/common.nix @@ -15,12 +15,41 @@ in { keyMap = "us"; }; + networking = { + useDHCP = false; + nameservers = [ + "1.1.1.1" + "8.8.8.8" + ]; + }; + nix = { package = pkgs.nixFlakes; extraOptions = '' experimental-features = nix-command flakes - builders-use-substitutes = true + builders-use-substitutes = true ''; + + distributedBuilds = config.networking.hostname != "Tsuki"; + binaryCaches = [ + "https://cache.nixos.org/" + ]; + + buildMachines = [ + { + hostName = "Tsuki"; + system = "x86_64-linux"; + maxJobs = 1; + speedFactor = 3; + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-paralell" + "kvm" + ]; + mandatoryFeatures = []; + } + ]; }; environment = { @@ -29,6 +58,12 @@ in { VISUAL = "nvim"; }; + systemPackages = with pkgs; [ + wget + ] + lib.optionals (!machineVars.headless) [ + haskellPackages.xmobar + ]; + shells = with pkgs; [ bashInteractive zsh @@ -104,6 +139,16 @@ in { users.users.h7x4 = { isNormalUser = true; shell = pkgs.zsh; + extraGroups = [ + "wheel" + "networkmanager" + "docker" + "audio" + "video" + "disk" + "libvirtd" + "input" + ]; }; home-manager = { @@ -117,10 +162,106 @@ in { }; }; + services = { + tumbler.enable = !machineVars.headless; + gnome.gnome-keyring.enable = !machineVars.headless; + + openssh = { + # enable = true; + passwordAuthentication = false; + kbdInteractiveAuthentication = false; + permitRootLogin = "no"; + }; + + dbus = { + enable = !machineVars.headless; + packages = with pkgs; [ + gcr + dconf + ]; + }; + + xserver = { + enable = !machineVars.headless; + layout = "us"; + xkbOptions = "caps:escape"; + + libinput = { + enable = true; + touchpad.disableWhileTyping = true; + }; + + desktopManager = { + xterm.enable = false; + xfce.enable = true; + }; + + windowManager.xmonad = { + enable = true; + enableContribAndExtras = true; + }; + + # displayManager.startx.enable = true; + # displayManager.gdm.enable = true; + displayManager.lightdm.enable = true; + displayManager.defaultSession = "none+xmonad"; + }; + + }; + + programs = { + dconf.enable = !machineVars.headless; + git.enable = true; + light.enable = !machineVars.headless; + npm.enable = true; + tmux.enable = true; + + gnupg.agent = { + enable = true; + enableSSHSupport = true; + }; + + neovim = { + enable = true; + defaultEditor = true; + viAlias = true; + vimAlias = true; + configure = { + packages.myVimPackage = with pkgs.vimPlugins; { + start = [ + direnv-vim + vim-nix + vim-polyglot + ]; + + opt = [ + vim-monokai + ]; + }; + + customRC = '' + set number relativenumber + set undofile + set undodir=~/.cache/vim/undodir + + packadd! vim-monokai + colorscheme monokai + ''; + }; + }; + }; + + sound = { + enable = !machineVars.headless; + mediaKeys.enable = true; + }; + + hardware.pulseaudio.enable = !machineVars.headless; + security.sudo.extraConfig = '' Defaults lecture = always Defaults lecture_file = /etc/${config.environment.etc.sudoLecture.target} ''; - - system.stateVersion = "21.11"; + + system.stateVersion = "22.05"; } diff --git a/hosts/eisei/configuration.nix b/hosts/eisei/configuration.nix index 791da82..c3b3077 100644 --- a/hosts/eisei/configuration.nix +++ b/hosts/eisei/configuration.nix @@ -28,7 +28,6 @@ in { networking = { hostName = "Eisei"; networkmanager.enable = true; - useDHCP = false; interfaces = { eno1.useDHCP = true; @@ -59,128 +58,20 @@ in { services = { openssh.enable = true; - gnome.gnome-keyring.enable = true; printing.enable = true; - dbus = { - enable = true; - packages = with pkgs; [ - gcr - gnome3.dconf - ]; - }; cron = { enable = true; systemCronJobs = [ # "*/5 * * * * root date >> /tmp/cron.log" ]; }; - - xserver = { - enable = true; - layout = "us"; - xkbOptions = "caps:escape"; - - libinput = { - enable = true; - touchpad.disableWhileTyping = true; - }; - - windowManager.xmonad = { - enable = true; - enableContribAndExtras = true; - }; - }; }; - sound.enable = true; - hardware.pulseaudio.enable = true; - hardware.bluetooth.enable = true; - nix = { - distributedBuilds = true; - binaryCaches = [ - "https://cache.nixos.org/" - ]; - - buildMachines = [ - { - hostName = "Tsuki"; - system = "x86_64-linux"; - maxJobs = 1; - speedFactor = 3; - supportedFeatures = [ - "nixos-test" - "benchmark" - "big-paralell" - "kvm" - ]; - mandatoryFeatures = []; - } - ]; - - }; - - users.users.h7x4.extraGroups = [ - "wheel" - "networkmanager" - "docker" - "disk" - "audio" - "video" - "libvirtd" - "input" - ]; - - environment.systemPackages = with pkgs; [ - wget - haskellPackages.xmobar - ]; - - programs = { - dconf.enable = true; - git.enable = true; - light.enable = true; - npm.enable = true; - tmux.enable = true; - neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - configure = { - packages.myVimPackage = with pkgs.vimPlugins; { - start = [ - direnv-vim - vim-nix - vim-polyglot - ]; - - opt = [ - vim-monokai - ]; - }; - - customRC = '' - set number relativenumber - set undofile - set undodir=~/.cache/vim/undodir - - packadd! vim-monokai - colorscheme monokai - ''; - }; - }; - - gnupg.agent = { - enable = true; - enableSSHSupport = true; - }; - }; - virtualisation = { docker.enable = true; - libvirtd.enable = true; + # libvirtd.enable = true; }; } diff --git a/hosts/kasei/configuration.nix b/hosts/kasei/configuration.nix index 9e5fac7..2765c7b 100644 --- a/hosts/kasei/configuration.nix +++ b/hosts/kasei/configuration.nix @@ -29,14 +29,9 @@ networking = { hostName = "kasei"; networkmanager.enable = true; - useDHCP = false; interfaces.wlp5s0.useDHCP = true; interfaces.wlp2s0f0u4.useDHCP = true; - nameservers = [ - "1.1.1.1" - "8.8.8.8" - ]; - firewall.enable=true; + firewall.enable = true; }; i18n = { @@ -54,44 +49,10 @@ # }; }; - users.users.h7x4.extraGroups = [ - "wheel" - "networkmanager" - "docker" - "audio" - "video" - "disk" - "libvirtd" - "input" - ]; - - environment = { - shellAliases = { - fixscreen = "xrandr --output DP-4 --mode 1920x1080 --pos 0x0 -r 144 --output DVI-D-1 --primary --mode 1920x1080 --pos 1920x0 -r 60"; - }; - - systemPackages = with pkgs; [ - wget - haskellPackages.xmobar - ]; - }; services = { - openssh = { - enable = true; - passwordAuthentication = false; - challengeResponseAuthentication = false; - permitRootLogin = "no"; - }; - gnome.gnome-keyring.enable = true; + openssh.enable = true; printing.enable = true; - dbus = { - enable = true; - packages = with pkgs; [ - gcr - gnome3.dconf - ]; - }; cron = { enable = true; systemCronJobs = [ @@ -99,66 +60,8 @@ ]; }; - xserver = { - enable = true; - layout = "us"; - xkbOptions = "caps:escape"; - - displayManager.lightdm.enable = true; - - libinput = { - enable = true; - touchpad.disableWhileTyping = true; - }; - - windowManager.xmonad = { - enable = true; - enableContribAndExtras = true; - }; - }; - }; - - sound.enable = true; - hardware.pulseaudio.enable = true; - hardware.bluetooth.enable = true; - programs = { - dconf.enable = true; - git.enable = true; - light.enable = true; - npm.enable = true; - tmux.enable = true; - neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - configure = { - packages.myVimPackage = with pkgs.vimPlugins; { - start = [ - direnv-vim - vim-nix - vim-polyglot - ]; - - opt = [ - vim-monokai - ]; - }; - - customRC = '' - set number relativenumber - set undofile - set undodir=~/.cache/vim/undodir - - packadd! vim-monokai - colorscheme monokai - ''; - }; - }; - }; - virtualisation = { docker.enable = true; libvirtd.enable = true; diff --git a/hosts/tsuki/configuration.nix b/hosts/tsuki/configuration.nix index 3b45e99..47afb4c 100644 --- a/hosts/tsuki/configuration.nix +++ b/hosts/tsuki/configuration.nix @@ -49,22 +49,12 @@ networking = { hostName = "Tsuki"; networkmanager.enable = true; - useDHCP = false; interfaces.ens18.useDHCP = true; - nameservers = [ - "1.1.1.1" - "8.8.8.8" - ]; firewall.enable=true; }; services = { - openssh = { - enable = true; - passwordAuthentication = false; - challengeResponseAuthentication = false; - permitRootLogin = "no"; - }; + openssh.enable = true; printing.enable = true; cron = { enable = true; @@ -77,58 +67,12 @@ users.groups.media = {}; users.users = { - h7x4.extraGroups = [ - "wheel" - "networkmanager" - "docker" - "disk" - "libvirtd" - "input" - ]; media = { isSystemUser = true; group = "media"; }; }; - environment.systemPackages = with pkgs; [ - wget - ]; - - programs = { - git.enable = true; - npm.enable = true; - tmux.enable = true; - neovim = { - enable = true; - defaultEditor = true; - viAlias = true; - vimAlias = true; - configure = { - packages.myVimPackage = with pkgs.vimPlugins; { - start = [ - direnv-vim - vim-nix - vim-polyglot - ]; - - opt = [ - vim-monokai - ]; - }; - - customRC = '' - set number relativenumber - set undofile - set undodir=~/.cache/vim/undodir - - packadd! vim-monokai - colorscheme monokai - ''; - }; - }; - }; - virtualisation = { docker.enable = true; libvirtd.enable = true;