diff --git a/machines/common/configuration.nix b/machines/common/configuration.nix new file mode 100644 index 0000000..a5b270a --- /dev/null +++ b/machines/common/configuration.nix @@ -0,0 +1,79 @@ +{ + inputs, + outputs, + lib, + config, + pkgs, + ... +}: { + imports = [ + ../../pkgs/zsh.nix + ]; + + nixpkgs = { + overlays = [ + outputs.overlays.additions + outputs.overlays.modifications + outputs.overlays.unstable-packages + ]; + config = { + allowUnfree = true; + }; + }; + + nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); + + nix.nixPath = ["/etc/nix/path"]; + environment.etc = + lib.mapAttrs' + (name: value: { + name = "nix/path/${name}"; + value.source = value.flake; + }) + config.nix.registry; + + nix.settings = { + experimental-features = "nix-command flakes"; + auto-optimise-store = true; + }; + + time.timeZone = "Europe/Amsterdam"; + + services.tailscale.enable = true; + + services.mullvad-vpn.enable = true; + services.mullvad-vpn.package = pkgs.mullvad-vpn; + networking.nameservers = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; + services.resolved = { + enable = true; + dnssec = "true"; + domains = [ "~." ]; + fallbackDns = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; + }; + + users.users = { + horseman = { + initialPassword = "1234"; + isNormalUser = true; + openssh.authorizedKeys.keys = [ + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDIyYdfDp/ciSN6CWXPFF+RI17owPGWamKTO9vBEF4vronq/0JwtTRieMFest4JzI3sgO8mJqJ1E1efrTdsr0RtSVQNdGMtFAm/frHRh0WYi3gaJ26od0bxAcJpIZag8uASOnH+BSzmioxBd+RNGQbJVEplKlkf6SX7BgaXMsMCc7yuv7MLtgOe5pjW4w8sZucv8M7Z3SSDVfxHVZ0cAJbAHPPsOj8DjxnV6stSJNeRAqjuUS9dyUb1ZLyEFJQe/J+S53QWvUffmW1grExSKN4pIkU9L6dj72sM4CtSGOW9L4o97N8jAXrWGxK6x0dhm9S+7G8paUXXN13CiWiCtavKYRRS3nAUrXrP0XF2yw504IRkdXx3ZcbSdzcMQ9QZse9v3spBedTdgjlsE0ZpIhUeSegvkeK2JeR49ZFhXg+A7fxZHlkLUfI1mRV9FoaV92G/YcywTxZmLMQ2Ko1YYXU0ejsUq+1NqbtTfgRdcmXObMkM9cHEuc8V/2vm/k0wE5mhJsI6ImtYSj13jVJPT4sxmYXgjMLjLpY2YieoywOgJhCfO4UdjsyOhlYuyoB+rAseyQC3Vwft5jUsRYpJ9zMvlSnRWZGxP1DsF575wCygAJxMG5l5qeE9c1EpiDl6l0lHhrZ23IL7cz7Wx0RHK4z141zqpc6JHqfOn7aZn4FdIw= horseman@luna" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCrgH3kBWwxoFms9ggilPmiKX9X0/AlWjGN7a+k3ddwfK0LvH9T8ueil1Zjw16P0XNMmy076bUBJJ89aVILXgYx+ngKmnIg32lqo5bafEpub1c3wtjGcwXtJnUXMwcqdIjkR2sfzuQPLXlob/Q+GsShm4TBEtzVTdpbCj768LyTtFx4vHZByyGtam0Ibb/6GVE1V2IcA/R+iQlCAqSjFxvSq1ll+wxsEUaT7b0ru1WhUXz0ITWoRkA8p0UjTl/uoXYcsPsqGR7dXgW7hNF087TOf+FsmiL+I6pbbB8+at5yq8I6l1lCwfLaMz2M5lHkn5jZiBuUDOXWpbbk1214iWrymAbpbVmNU68QVEcQkJTnfbRQ/56Nvq80emFgke6p4vcVnR9iVbaZDnOkMVH6HEs0Qc/rC38p9aISAdJvI49GWaz8fs1OgVi7mj9xA0QREc6/oalJ1F3BehPUk8v4uqww3u+I2AdWPp/6HO9zVU2mTrO30a8IbjOqFqMqdV+nYFxNbHIIIZ9acv95FGqIBCG0U9d8XVVFQ+kVWxkXxPk0uynzAsrXyiH3gzxHwy7stCxybZkTpQPjf+vSt4Tz3PRxnyq1OWTUzWmBVe0MCdZX5h/oQp6kI1Ys/t+UrP1G9NEIwGg+/zlpmGiV8Pm10b6gEXgv09BQPFGPsBbl4NRpQQ= horseman@solis" + "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCmYI+jn1B69r4GUEeVE1/q+HSNcLzT+qG0nEpIjyO3VCsocLIJqT6cJtPKTh/j9RPySvz1lo2ZFemCeKBfsdHy95JoYqbAcoJ9jacH3X8LixIiGin6ew/h6QJONU1UAuxcEDoEyeHfmNBRdgaahNTWtgvFd1YhB4WQwN9THZ/axGdnWLi/y0y98aqERw98fGOhAzxqZyeGkWK5ByRiiGmfrmU7IsX916z5s9OPFYeIGvI3UPKL5awpQMrD/+VhtQjAy8guWbBKbN+7cVU/JQjhaPAeVC18iON++Ux6pGq1/yA+IFDb/fFofXD70vRYemg7zSVbf2ceBg8iSR2OdcZVPfhIKq7mx62TcYVY7aDlz7fFedl7tVhxRd5Ze7T/kbRQtbqL++3UQaZwnx6HoXGMvdIbKV/KHcmqjQQClzWZyk8oI+VbkF/nfTgShW/X0UQYzBSdsCb4XywzfnLRH4Ops/v7ZOc2zBApl7j1Oj+nW7dJ5/P6FgMw553tNXnEVXqGvdvalmDl/hjR3UVedm18ZKwu+6+1mcHsDGKCi5C79zVksr9IbFNICosA23xfrnKQYmncBzobbY4N39SToI9ulcukOJj26ooAG3RhHqSyOkcM3nTUbHwKb/19J+NAm2iT9ipNGurwwPO4VcJY36237es7MEkmQHfD1ZOo6biafw= horseman@terra" + ]; + extraGroups = [ + "wheel" + "networkmanager" + ]; + }; + }; + + services.openssh = { + enable = true; + settings = { + PermitRootLogin = "no"; + PasswordAuthentication = false; + }; + }; + + system.stateVersion = "23.11"; +} diff --git a/machines/luna/configuration.nix b/machines/luna/configuration.nix index 08b104c..838dbd7 100644 --- a/machines/luna/configuration.nix +++ b/machines/luna/configuration.nix @@ -10,7 +10,7 @@ inputs.home-manager.nixosModules.home-manager ./hardware-configuration.nix ../../pkgs/firefox.nix - ../../pkgs/zsh.nix + ../common/configuration.nix ]; home-manager = { @@ -20,69 +20,33 @@ }; }; - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - }; - }; - - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); - - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' - (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; - - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - }; - networking.hostName = "luna"; - time.timeZone = "Europe/Amsterdam"; services.xserver.enable = true; services.desktopManager.plasma6.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.displayManager.sddm.autoNumlock = true; boot.loader.systemd-boot.enable = true; + boot.kernelModules = [ "snd-seq" "snd-rawmidi" ]; + hardware.pulseaudio.enable = true; - services.tailscale.enable = true; - services.acpid.enable = true; - networking.networkmanager.enable = true; - users.users = { - horseman = { - initialPassword = "1234"; - isNormalUser = true; - openssh.authorizedKeys.keys = []; - extraGroups = [ - "wheel" - "networkmanager" - ]; + services.jack = { + jackd.enable = true; + # support ALSA only programs via ALSA JACK PCM plugin + alsa.enable = false; + # support ALSA only programs via loopback device (supports programs like Steam) + loopback = { + enable = true; + # buffering parameters for dmix device to work with ALSA only semi-professional sound programs + #dmixConfig = '' + # period_size 2048 + #''; }; }; - services.openssh = { - enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - }; - - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion - system.stateVersion = "23.11"; + users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; } diff --git a/machines/solis/configuration.nix b/machines/solis/configuration.nix index cc93934..9436000 100644 --- a/machines/solis/configuration.nix +++ b/machines/solis/configuration.nix @@ -9,10 +9,9 @@ imports = [ inputs.home-manager.nixosModules.home-manager ./hardware-configuration.nix - ../../pkgs/zsh.nix + ../common/configuration.nix ]; - home-manager = { extraSpecialArgs = { inherit inputs outputs; }; users = { @@ -20,64 +19,11 @@ }; }; - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - }; - }; - - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); - - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' - (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; - - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - }; - networking.hostName = "solis"; - time.timeZone = "Europe/Amsterdam"; boot.loader.grub.enable = true; boot.loader.grub.device = "/dev/sda"; boot.loader.grub.useOSProber = true; - environment.shells = with pkgs; [ zsh ]; - virtualisation.docker.enable = true; - services.tailscale.enable = true; - - users.users = { - horseman = { - initialPassword = "1234"; - isNormalUser = true; - openssh.authorizedKeys.keys = [ - # TODO: Add your SSH public key(s) here, if you plan on using SSH to connect - ]; - extraGroups = ["wheel"]; - }; - }; - - services.openssh = { - enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - }; - - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion - system.stateVersion = "23.11"; } diff --git a/machines/terra/configuration.nix b/machines/terra/configuration.nix index 544e260..2a9201f 100644 --- a/machines/terra/configuration.nix +++ b/machines/terra/configuration.nix @@ -11,7 +11,7 @@ ./hardware-configuration.nix ./refind.nix ../../pkgs/firefox.nix - ../../pkgs/zsh.nix + ../common/configuration.nix ]; # NVIDIA Drivers @@ -39,79 +39,30 @@ }; }; - nixpkgs = { - overlays = [ - outputs.overlays.additions - outputs.overlays.modifications - outputs.overlays.unstable-packages - ]; - config = { - allowUnfree = true; - }; - }; - - nix.registry = (lib.mapAttrs (_: flake: {inherit flake;})) ((lib.filterAttrs (_: lib.isType "flake")) inputs); - - nix.nixPath = ["/etc/nix/path"]; - environment.etc = - lib.mapAttrs' - (name: value: { - name = "nix/path/${name}"; - value.source = value.flake; - }) - config.nix.registry; - - nix.settings = { - experimental-features = "nix-command flakes"; - auto-optimise-store = true; - }; - networking.hostName = "terra"; - time.timeZone = "Europe/Amsterdam"; services.xserver.enable = true; services.desktopManager.plasma6.enable = true; services.xserver.displayManager.sddm.enable = true; services.xserver.displayManager.sddm.autoNumlock = true; - boot.loader.systemd-boot.enable = true; + boot.loader.systemd-boot.enable = true; - services.tailscale.enable = true; virtualisation.docker.enable = true; - hardware.pulseaudio.enable = true; - environment.shells = with pkgs; [ zsh ]; - - services.mullvad-vpn.enable = true; - services.mullvad-vpn.package = pkgs.mullvad-vpn; - networking.nameservers = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - services.resolved = { - enable = true; - dnssec = "true"; - domains = [ "~." ]; - fallbackDns = [ "1.1.1.1#one.one.one.one" "1.0.0.1#one.one.one.one" ]; - }; - - users.users = { - horseman = { - initialPassword = "1234"; - isNormalUser = true; - openssh.authorizedKeys.keys = []; - extraGroups = [ - "wheel" - "networkmanager" - ]; + services.jack = { + jackd.enable = true; + # support ALSA only programs via ALSA JACK PCM plugin + alsa.enable = false; + # support ALSA only programs via loopback device (supports programs like Steam) + loopback = { + enable = true; + # buffering parameters for dmix device to work with ALSA only semi-professional sound programs + #dmixConfig = '' + # period_size 2048 + #''; }; }; - services.openssh = { - enable = true; - settings = { - PermitRootLogin = "no"; - PasswordAuthentication = false; - }; - }; - - # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion - system.stateVersion = "23.11"; + users.extraUsers.horseman.extraGroups = [ "jackaudio" ]; }