about summary refs log tree commit diff stats
path: root/modules/common
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--modules/common/abstract-nord.png.license9
-rw-r--r--modules/common/default.nix109
-rw-r--r--modules/common/hooks/default.nix9
-rwxr-xr-xmodules/common/hooks/scripts/sync-git-repo.sh10
-rw-r--r--modules/common/nixos_shell_configuration.nix66
-rw-r--r--modules/common/projects.json1
-rw-r--r--modules/common/projects.json.license9
7 files changed, 203 insertions, 10 deletions
diff --git a/modules/common/abstract-nord.png.license b/modules/common/abstract-nord.png.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/common/abstract-nord.png.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
diff --git a/modules/common/default.nix b/modules/common/default.nix
index 1c00c710..aadb22bd 100644
--- a/modules/common/default.nix
+++ b/modules/common/default.nix
@@ -1,12 +1,31 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 # This file contains common configuration applied to every host.
 # It should only `enable` options defined in the `modules/by-name` directory.
 {
   config,
   pkgs,
   lib,
+  # Needed for nixos-shell
+  libraries,
+  modules,
+  openPRsNixpkgs,
+  packageSets,
+  system,
+  self,
+  externalDependencies,
+  externalBinaries,
   ...
 }: {
   soispha = {
+    age.enable = true;
     boot.enable = true;
     cleanup.enable = true;
     documentation.enable = true;
@@ -16,17 +35,60 @@
       enableEmoji = true;
     };
 
+    hardware = {
+      enable = lib.mkDefault true;
+    };
     home-manager.enable = true;
     impermanence = {
       enable = true;
 
       directories = [
         "/etc/nixos"
-        "/var/log"
         "/var/lib/systemd"
-        "/var/lib/nixos"
       ];
     };
+
+    nixos-shell = {
+      enable = lib.mkDefault true;
+      configuration = {
+        specialArgs = {
+          inherit
+            libraries
+            modules
+            ;
+        };
+        value = lib.mkMerge [
+          {
+            _module.args = {
+              inherit
+                # extra package sources
+                openPRsNixpkgs
+                packageSets
+                # extra information
+                system
+                # nix registry
+                self
+                externalDependencies
+                # bins
+                # TODO: Integrate these into `pkgs/by-name` <2024-05-22>
+                externalBinaries
+                ;
+            };
+          }
+
+          {
+            require = [
+              ./nixos_shell_configuration.nix
+
+              ../../modules
+              ../../modules/common
+            ];
+          }
+        ];
+      };
+      mounts = {};
+    };
+
     polkit.enable = true;
     power.enable = true;
     xdg.enable = true;
@@ -36,7 +98,17 @@
         enable = true;
         user = "soispha";
       };
+      backup = {
+        storagebox = {
+          enable = lib.mkDefault true;
+          user = "u459143-sub1";
+        };
+        local = {
+          enable = lib.mkDefault true;
+        };
+      };
       fwupd.enable = true;
+      mako.enable = true;
       mpd = {
         enable = true;
         directories = let
@@ -58,10 +130,9 @@
       scanning.enable = true;
       snapper.enable = true;
       water-reminder.enable = true;
-      steam.enable = false;
       systemDiff.enable = true;
       unison = {
-        enable = true;
+        enable = lib.mkDefault true;
 
         foreign.userName = "soispha";
         dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison";
@@ -74,14 +145,20 @@
               config.home-manager.users.soispha.home.file);
         in
           [
-            # already synchronized by the taskserver
+            # TODO(@bpeetz): Move these to their respective modules <2025-05-09>
+            # Already synchronized by TaskChampion sync server
             "~/.local/share/task"
+            # Already synchronized by atuin sync server
+            "~/.local/share/atuin"
+            # Already synchronized by mbsync
+            "~/.local/share/maildir"
 
             # Should not be synchronized
             "~/.local/share/unison"
 
-            # Is just to big to be synchronized (# TODO: Work around that <2024-08-31> )
+            # These are just to big to be synchronized (# TODO: Work around that <2024-08-31> )
             "~/media/music"
+            "~/.local/share/Steam"
           ]
           ++ homeManagerSymlinks;
 
@@ -101,19 +178,26 @@
     };
 
     programs = {
+      i3bar-river.enable = true;
+      i3status-rust.enable = true;
+
       nvim = {
         enable = true;
         shell = pkgs.zsh;
       };
-      atuin.enable = true;
+      atuin = {
+        enable = true;
+        enableAge = lib.mkDefault true;
+      };
       cargo.enable = true;
       direnv.enable = true;
       git.enable = true;
       imv.enable = true;
       less.enable = true;
       lf.enable = true;
+      gpg.enable = true;
       river = {
-        enable = true;
+        enable = lib.mkDefault true;
         init = {
           rules = [
             {
@@ -175,8 +259,8 @@
             pointer-12951-6505-ZSA_Technology_Labs_Moonlander_Mark_I = [["pointer-accel" "0"] ["accel-profile" "none"]];
           };
           backgroundStart = [
+            # TODO(@bpeetz): Move these to systemd units/their own modules <2025-05-18>
             pkgs.gammastep
-            pkgs.yambar
 
             pkgs.mako
             ["${lib.getExe pkgs.swaybg}" "--image" "${./abstract-nord.png}"]
@@ -187,17 +271,22 @@
       };
       firefox.enable = true;
       mpv.enable = true;
+      steam.enable = true;
+      ssh.enable = true;
       swaylock.enable = true;
       timewarrior.enable = true;
       taskwarrior = {
         enable = true;
+        enableAge = lib.mkDefault true;
+
         hooks = import ./hooks {inherit pkgs lib config;};
       };
       tskm = {
         enable = true;
         projects = builtins.fromJSON (builtins.readFile ./projects.json);
       };
-      yambar.enable = true;
+      nix-index.enable = true;
+      yambar.enable = false;
       yt.enable = true;
       zathura.enable = true;
       zsh.enable = true;
diff --git a/modules/common/hooks/default.nix b/modules/common/hooks/default.nix
index e2d12807..5b694039 100644
--- a/modules/common/hooks/default.nix
+++ b/modules/common/hooks/default.nix
@@ -1,3 +1,12 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
 {
   pkgs,
   lib,
diff --git a/modules/common/hooks/scripts/sync-git-repo.sh b/modules/common/hooks/scripts/sync-git-repo.sh
index ad7368f3..fe0d0085 100755
--- a/modules/common/hooks/scripts/sync-git-repo.sh
+++ b/modules/common/hooks/scripts/sync-git-repo.sh
@@ -1,5 +1,15 @@
 #!/usr/bin/env sh
 
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+
 task_data="$(task _get rc.data.location)"
 [ "$task_data" ] || die "Taskwarrior should have a location set"
 
diff --git a/modules/common/nixos_shell_configuration.nix b/modules/common/nixos_shell_configuration.nix
new file mode 100644
index 00000000..1bec0145
--- /dev/null
+++ b/modules/common/nixos_shell_configuration.nix
@@ -0,0 +1,66 @@
+# nixos-config - My current NixOS configuration
+#
+# Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+# SPDX-License-Identifier: GPL-3.0-or-later
+#
+# This file is part of my nixos-config.
+#
+# You should have received a copy of the License along with this program.
+# If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.
+{...}: {
+  soispha = {
+    networking = {
+      enable = true;
+      hostName = "lahmu";
+      mode = "systemd-networkd";
+    };
+
+    nixos-shell.enable = false;
+
+    nixpkgs = {
+      enable = true;
+      systemName = "x86_64-linux";
+    };
+
+    services = {
+      unison.enable = false;
+      backup = {
+        storagebox.enable = false;
+        local.enable = false;
+      };
+    };
+
+    programs = {
+      river.enable = false;
+
+      # We don't have access to the age secrets.
+      atuin.enableAge = false;
+      taskwarrior.enableAge = false;
+    };
+
+    locale = {
+      enable = true;
+      keyMap = "us";
+    };
+
+    users = {
+      enable = true;
+      enableDeprecatedPlugdev = true;
+
+      # Make logging in impossible.
+      # (This also removes root a obvious access-point from the virtual machine)
+      hashedPassword = "";
+    };
+  };
+
+  soispha = {
+    hardware = {
+      enable = false;
+    };
+
+    disks.enable = false;
+  };
+
+  # We run without state
+  # system.stateVersion = null;
+}
diff --git a/modules/common/projects.json b/modules/common/projects.json
index 48a10f03..36a2ae45 100644
--- a/modules/common/projects.json
+++ b/modules/common/projects.json
@@ -36,6 +36,7 @@
       "bank": {},
       "google": {},
       "health": {},
+      "job": {},
       "sweden": {}
     }
   },
diff --git a/modules/common/projects.json.license b/modules/common/projects.json.license
new file mode 100644
index 00000000..eae6a84c
--- /dev/null
+++ b/modules/common/projects.json.license
@@ -0,0 +1,9 @@
+nixos-config - My current NixOS configuration
+
+Copyright (C) 2025 Benedikt Peetz <benedikt.peetz@b-peetz.de>
+SPDX-License-Identifier: GPL-3.0-or-later
+
+This file is part of my nixos-config.
+
+You should have received a copy of the License along with this program.
+If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>.