about summary refs log tree commit diff
path: root/modules
diff options
context:
space:
mode:
Diffstat (limited to 'modules')
-rw-r--r--modules/common/common/nix/default.nix1
-rw-r--r--modules/common/default.nix1
-rw-r--r--modules/common/emacs/default.nix5
-rw-r--r--modules/common/git.nix2
-rw-r--r--modules/common/openconnect.nix83
-rw-r--r--modules/nixos/beets.nix (renamed from modules/common/beets.nix)0
-rw-r--r--modules/nixos/default.nix3
-rw-r--r--modules/nixos/k3s.nix29
-rw-r--r--modules/nixos/murmur.nix28
-rw-r--r--modules/nixos/profiles/headful.nix22
10 files changed, 76 insertions, 98 deletions
diff --git a/modules/common/common/nix/default.nix b/modules/common/common/nix/default.nix
index 378cd36..9f80838 100644
--- a/modules/common/common/nix/default.nix
+++ b/modules/common/common/nix/default.nix
@@ -130,7 +130,6 @@ with lib; {
         tor-browser = tor-browser-bundle-bin;
       }))
     agenix.overlays.default
-    emacs-overlay.overlay
     nur.overlay
   ];
 
diff --git a/modules/common/default.nix b/modules/common/default.nix
index e6040cd..b722cae 100644
--- a/modules/common/default.nix
+++ b/modules/common/default.nix
@@ -3,7 +3,6 @@ _: {
     ./alacritty.nix
     ./aria2.nix
     ./bat.nix
-    ./beets.nix
     ./chromium.nix
     ./common
     ./curl.nix
diff --git a/modules/common/emacs/default.nix b/modules/common/emacs/default.nix
index 268d77d..2dbe53f 100644
--- a/modules/common/emacs/default.nix
+++ b/modules/common/emacs/default.nix
@@ -46,6 +46,7 @@ in {
                   asmfmt # :editor format
                   bash-language-server # :lang (sh +lsp)
                   clang-tools # :lang (cc +lsp) :editor format
+                  cmake # :term vterm
                   cmake-format # :lang cc :editor format
                   cmigemo # :lang japanese
                   css-language-server # :lang (web +lsp)
@@ -53,6 +54,7 @@ in {
                   dockerfile-language-server # :tools (docker +lsp)
                   editorconfig # :tools editorconfig
                   fd # doom!
+                  gcc # :tools magit :term vterm
                   gnuplot # :lang (org +gnuplot)
                   gnutls # doom!
                   go-language-server # :lang (go +lsp)
@@ -65,6 +67,7 @@ in {
                   html-tidy # :lang web
                   jre # :lang plantuml
                   json-language-server # :lang (json +lsp)
+                  libtool # :term vterm
                   nix-language-server # :lang (nix +lsp)
                   nixfmt # :lang nix :editor format
                   nodePackages.eslint # :lang (json +lsp)
@@ -73,6 +76,7 @@ in {
                   nodePackages.stylelint # :lang web
                   nodejs # :tools debugger
                   pandoc # :lang org markdown latex
+                  perl # term vterm
                   pinentry-emacs # doom!
                   pre-commit # :tools magit
                   ripgrep # doom!
@@ -175,7 +179,6 @@ in {
       programs.emacs = {
         enable = true;
         package = pkgs.emacs28; # Pin to avoid surprises.
-        extraPackages = p: with p; [vterm];
       };
     };
   };
diff --git a/modules/common/git.nix b/modules/common/git.nix
index c3ebafc..ce4e505 100644
--- a/modules/common/git.nix
+++ b/modules/common/git.nix
@@ -68,6 +68,8 @@ in {
               };
               init.defaultBranch = "master";
               status.submoduleSummary = true;
+              github.user = my.username;
+              gitlab.user = my.username;
             }
             // mapAttrs'
             (n: v: nameValuePair ''url "git@${v}:"'' {insteadOf = "${n}:";}) {
diff --git a/modules/common/openconnect.nix b/modules/common/openconnect.nix
deleted file mode 100644
index 936c9d1..0000000
--- a/modules/common/openconnect.nix
+++ /dev/null
@@ -1,83 +0,0 @@
-{
-  config,
-  lib,
-  pkgs,
-  ...
-}:
-with lib; let
-  cfg = config.nixfiles.modules.openconnect;
-in {
-  options.nixfiles.modules.openconnect.enable =
-    mkEnableOption "OpenConnect VPN";
-
-  config = mkIf cfg.enable {
-    assertions = [
-      {
-        assertion = config.networking.networkmanager.enable;
-        message = "NetworkManager is required";
-      }
-    ];
-
-    # Spent three days trying to make this work but still getting "No SSO
-    # handler" even on the HEAD version that 100% has SSO support baked in.
-    # It's all so tiresome[1]... aaand KDE is not supported[2].
-    #
-    # I fucking hate AnyConnect, truly an example of how shit is is non-free
-    # software. SAML also sucks balls. I also hate my company for using this
-    # shit, guess I have no other choice but to use the absolute dogshit laptop
-    # they gave me.
-    #
-    # [1]: https://gitlab.gnome.org/GNOME/NetworkManager-openconnect
-    # [1]: https://gitlab.com/openconnect/openconnect/-/issues/424
-    # [2]: https://groups.google.com/g/linux.debian.bugs.dist/c/lK8u-LMY7n4
-    # [2]: https://bugs.kde.org/show_bug.cgi?id=448153
-
-    networking.networkmanager.plugins = with pkgs; [
-      ((networkmanager-openconnect.override {
-          withGnome = false;
-          openconnect = openconnect.overrideAttrs (_: _: {
-            version = "unstable-2022-10-23";
-            src = fetchFromGitLab {
-              owner = "openconnect";
-              repo = "openconnect";
-              rev = "acdfc753f7885b2a539f99036ac41ba1b78cc7ae";
-              hash = "sha256-ub+Z4WFD77h5YMQTb+TLc7EyY2KjBWglF1QVTirCHJM=";
-            };
-          });
-        })
-        .overrideAttrs (_: super: {
-          version = "unstable-2022-09-10";
-          src = fetchFromGitLab {
-            domain = "gitlab.gnome.org";
-            owner = "GNOME";
-            repo = "NetworkManager-openconnect";
-            rev = "3c1590786518e9acca33c250660ad21cae565acd";
-            hash = "sha256-YTUN46QHsHkXPAhImPG/MMLMqjlSRknapVO8u43nnWk=";
-          };
-          buildInputs =
-            super.buildInputs
-            ++ [
-              (webkitgtk_4_1.override {
-                inherit (gnome) libsoup;
-              })
-            ];
-          nativeBuildInputs =
-            super.nativeBuildInputs
-            ++ [
-              autoreconfHook
-            ];
-          postPatch = ''
-            substituteInPlace configure.ac \
-              --replace "PKG_CHECK_MODULES(LIBSECRET, libsecret-1 >= 0.18)" ""
-          '';
-          preAutoreconf = ''
-            autoupdate
-          '';
-          preConfigure = ''
-            NOCONFIGURE=x ./autogen.sh
-            touch gtk4/nm-openconnect-dialog.ui
-          '';
-        }))
-    ];
-  };
-}
diff --git a/modules/common/beets.nix b/modules/nixos/beets.nix
index 83cbff1..83cbff1 100644
--- a/modules/common/beets.nix
+++ b/modules/nixos/beets.nix
diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix
index 850d93e..8ac9a29 100644
--- a/modules/nixos/default.nix
+++ b/modules/nixos/default.nix
@@ -3,6 +3,7 @@ _: {
     ./acme.nix
     ./alertmanager.nix
     ./android.nix
+    ./beets.nix
     ./bluetooth.nix
     ./common
     ./discord.nix
@@ -21,6 +22,7 @@ _: {
     ./grafana.nix
     ./hydra.nix
     ./ipfs.nix
+    ./k3s.nix
     ./kde.nix
     ./libvirtd.nix
     ./lidarr.nix
@@ -29,6 +31,7 @@ _: {
     ./matrix
     ./monitoring
     ./mpd.nix
+    ./murmur.nix
     ./nextcloud.nix
     ./nginx.nix
     ./node-exporter.nix
diff --git a/modules/nixos/k3s.nix b/modules/nixos/k3s.nix
new file mode 100644
index 0000000..dcbd052
--- /dev/null
+++ b/modules/nixos/k3s.nix
@@ -0,0 +1,29 @@
+{
+  config,
+  lib,
+  ...
+}:
+with lib; let
+  cfg = config.nixfiles.modules.k3s;
+in {
+  options.nixfiles.modules.k3s = {
+    enable = mkEnableOption "K3s";
+  };
+
+  config = mkIf cfg.enable {
+    ark.directories = [
+      "/etc/rancher/k3s"
+      "/var/lib/rancher/k3s"
+    ];
+
+    services.k3s = {
+      enable = true;
+      role = "server";
+    };
+
+    systemd.services.k3s.environment = {
+      K3S_KUBECONFIG_OUTPUT = "/etc/rancher/k3s/k3s.yaml";
+      K3S_KUBECONFIG_MODE = "600";
+    };
+  };
+}
diff --git a/modules/nixos/murmur.nix b/modules/nixos/murmur.nix
new file mode 100644
index 0000000..cbd90d4
--- /dev/null
+++ b/modules/nixos/murmur.nix
@@ -0,0 +1,28 @@
+{
+  config,
+  inputs,
+  lib,
+  ...
+}:
+with lib; let
+  cfg = config.nixfiles.modules.murmur;
+in {
+  options.nixfiles.modules.murmur.enable = mkEnableOption "Murmur";
+
+  config = mkIf cfg.enable {
+    secrets.murmur-environment = {
+      file = "${inputs.self}/secrets/murmur-environment";
+      owner = "murmur";
+      group = "murmur";
+    };
+
+    services.murmur = {
+      enable = true;
+      openFirewall = true;
+      logDays = -1;
+      registerName = mkDefault my.domain.shire;
+      password = "$MURMUR_PASSWORD";
+      environmentFile = config.secrets."murmur-environment".path;
+    };
+  };
+}
diff --git a/modules/nixos/profiles/headful.nix b/modules/nixos/profiles/headful.nix
index d0ca777..67bec29 100644
--- a/modules/nixos/profiles/headful.nix
+++ b/modules/nixos/profiles/headful.nix
@@ -22,6 +22,7 @@ in {
       home.packages = with pkgs; [
         calibre
         imv
+        mumble
         neochat
         tdesktop
         tor-browser
@@ -33,18 +34,15 @@ in {
     boot = {
       kernelPackages = mkDefault pkgs.linuxPackages_latest;
 
-      # There are (arguably) not a lot of reasons to keep mitigations enabled
-      # for on machine that is not web-facing. First of all, to completely
-      # mitigate any possible Spectre holes one would need to disable
-      # Hyperthreading altogether which will essentially put one's computer into
-      # the stone age by not being able to to effectively utilise multi-core its
-      # multicore capabilities. Secondly, by enabling mitigations, we introduce
-      # a plethora of performance overheads[1], which, albeit small, but still
-      # contribute to the overall speed of things. This is however still poses a
-      # security risk, which I am willing to take.
-      #
-      # [1]: https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11
-      kernelParams = ["mitigations=off"];
+      kernelParams = [
+        # https://wiki.archlinux.org/title/improving_performance#Watchdogs
+        "nowatchdog"
+        "kernel.nmi_watchdog=0"
+        # A security risk I'm willing to take for a reason[1].
+        #
+        # [1]: https://www.phoronix.com/scan.php?page=article&item=spectre-meltdown-2&num=11
+        "mitigations=off"
+      ];
 
       loader = {
         efi.canTouchEfiVariables = true;

Consider giving Nix/NixOS a try! <3