aboutsummaryrefslogtreecommitdiffstats
path: root/modules/common
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-17 13:39:56 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-17 13:39:56 +0200
commitde11e018dca18d11499debb8102ba6151cc21834 (patch)
tree22c06529d68394cd19ec7792f5e71c6f2a230b4a /modules/common
parentpkgs/default.nix: Migrate to the package arguments (diff)
downloadnixos-config-de11e018dca18d11499debb8102ba6151cc21834.zip
modules/nixos-shell: Init
A VM at your disposal. This is based on: https://github.com/Mic92/nixos-shell
Diffstat (limited to '')
-rw-r--r--modules/common/default.nix59
-rw-r--r--modules/common/nixos_shell_configuration.nix68
2 files changed, 123 insertions, 4 deletions
diff --git a/modules/common/default.nix b/modules/common/default.nix
index 690385b1..e4225e95 100644
--- a/modules/common/default.nix
+++ b/modules/common/default.nix
@@ -13,6 +13,15 @@
config,
pkgs,
lib,
+ # Needed for nixos-shell
+ libraries,
+ modules,
+ openPRsNixpkgs,
+ packageSets,
+ system,
+ self,
+ externalDependencies,
+ externalBinaries,
...
}: {
soispha = {
@@ -35,6 +44,48 @@
"/var/lib/systemd"
];
};
+
+ 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;
@@ -46,11 +97,11 @@
};
backup = {
storagebox = {
- enable = true;
+ enable = lib.mkDefault true;
user = "u459143-sub1";
};
local = {
- enable = true;
+ enable = lib.mkDefault true;
};
};
fwupd.enable = true;
@@ -78,7 +129,7 @@
water-reminder.enable = true;
systemDiff.enable = true;
unison = {
- enable = true;
+ enable = lib.mkDefault true;
foreign.userName = "soispha";
dataDir = "${config.home-manager.users.soispha.xdg.dataHome}/unison";
@@ -140,7 +191,7 @@
lf.enable = true;
gpg.enable = true;
river = {
- enable = true;
+ enable = lib.mkDefault true;
init = {
rules = [
{
diff --git a/modules/common/nixos_shell_configuration.nix b/modules/common/nixos_shell_configuration.nix
new file mode 100644
index 00000000..bbaa8477
--- /dev/null
+++ b/modules/common/nixos_shell_configuration.nix
@@ -0,0 +1,68 @@
+# 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;
+ enableGraphics = false;
+ cpuType = "vm";
+ };
+
+ disks.enable = false;
+ };
+
+ # We run without state
+ # system.stateVersion = null;
+}