about summary refs log tree commit diff stats
path: root/hosts/by-name/apzu
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/by-name/apzu')
-rw-r--r--hosts/by-name/apzu/configuration.nix138
-rw-r--r--hosts/by-name/apzu/hardware.nix37
2 files changed, 175 insertions, 0 deletions
diff --git a/hosts/by-name/apzu/configuration.nix b/hosts/by-name/apzu/configuration.nix
new file mode 100644
index 00000000..69af3f2d
--- /dev/null
+++ b/hosts/by-name/apzu/configuration.nix
@@ -0,0 +1,138 @@
+# 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>.
+{
+  lib,
+  pkgs,
+  baseLib,
+  ...
+}: {
+  imports = [
+    ./hardware.nix
+  ];
+
+  soispha = {
+    bluetooth.enable = true;
+
+    laptop = {
+      backlight = "intel_backlight";
+      enable = true;
+    };
+
+    # TODO: Hard-code all the uids/gids <2025-05-13>
+    impermanence.directories = [
+      "/var/lib/nixos"
+      "/var/log"
+    ];
+
+    programs = {
+      yambar = {
+        laptop = true;
+        backlight = "intel_backlight";
+      };
+      river.init = {
+        mappings = {
+          layout = "dvorak-modified";
+          keymap =
+            {
+              # Focus change
+              "<Meta-T>" = {command = ["focus-view" "next"];};
+              "<Meta-N>" = {command = ["focus-view" "previous"];};
+              "<Meta+Ctrl-T>" = {command = ["focus-output" "next"];};
+              "<Meta+Ctrl-N>" = {command = ["focus-output" "previous"];};
+
+              # Standard programs
+              "<Meta-<ENTER>>" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];};
+              "<Meta+Shift-q>" = {command = ["exit"];};
+              "<Meta-L>" = {command = ["spawn" "${lib.getExe pkgs.lock}"];};
+
+              # Screenshot
+              "<PRINTSCREEN>" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];};
+
+              # Audio
+              "<MEDIA_RAISEVOLUME>" = {
+                command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%+"];
+                modes = ["normal" "locked"];
+              };
+              "<MEDIA_LOWERVOLUME>" = {
+                command = ["spawn" "${lib.getExe' pkgs.wireplumber "wpctl"} set-volume @DEFAULT_SINK@ 5%-"];
+                modes = ["normal" "locked"];
+              };
+              "<MEDIA_MUTEVOLUME>" = {
+                command = ["spawn" "${lib.getExe pkgs.mpc} toggle"];
+                modes = ["normal" "locked"];
+              };
+
+              # Launcher
+              "<Meta-R>" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window, drun, run' -show-icons"];};
+              "<Meta-<F1>>" = {command = ["spawn" "${lib.getExe pkgs.tskm} open select"];};
+              "<Meta-<F2>>" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];};
+              "<Meta-<F3>>" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];};
+              # "<Meta-<F4>>" = {command = ["spawn" "${lib.getExe pkgs.steam}"];};
+
+              # Client
+              "<Meta-f>" = {command = ["toggle-fullscreen"];};
+              "<Meta+Shift-c>" = {command = ["close"];};
+              "<Meta+Ctrl- >" = {command = ["toggle-float"];};
+              "<Meta+Ctrl-<ENTER>>" = {command = ["zoom"];};
+              "<Meta-o>" = {command = ["send-to-output" "next"];};
+              "<Meta+Shift-T>" = {command = ["swap" "next"];};
+              "<Meta+Shift-N>" = {command = ["swap" "previous"];};
+
+              # Toggle all tags
+              "<Meta-0>" = {command = ["set-focused-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];};
+              "<Meta+Shift-0>" = {command = ["set-view-tags" (builtins.toString ((baseLib.pow 2 32) - 1))];};
+
+              # Mouse
+              "<Meta-<MOUSE_LEFT>>" = {
+                command = ["move-view"];
+                map_mode = "MapMouse";
+              };
+              "<Meta-<MOUSE_RIGHT>>" = {
+                command = ["resize-view"];
+                map_mode = "MapMouse";
+              };
+            }
+            // (
+              builtins.foldl' (acc: elem: acc // elem) {} (
+                builtins.map (index: let
+                  num = builtins.toString index;
+                  index2tag = input: builtins.toString (baseLib.pow 2 (input - 1));
+                in {
+                  "<Meta-${num}>" = {command = ["set-focused-tags" (index2tag index)];};
+                  "<Meta+Shift-${num}>" = {command = ["set-view-tags" (index2tag index)];};
+                  "<Meta+Shift+Ctrl-${num}>" = {command = ["toggle-view-tags" (index2tag index)];};
+                }) (builtins.genList (i: i + 1) 9)
+              )
+            );
+        };
+        screenSetupCode = {};
+      };
+    };
+
+    locale.enable = true;
+    networking = {
+      enable = true;
+      hostName = "apzu";
+      mode = "NetworkManager";
+    };
+    services.unison.foreign.address = "tiamat.fritz.box";
+    nixpkgs = {
+      enable = true;
+      systemName = "x86_64-linux";
+    };
+    users = {
+      enable = true;
+      enableDeprecatedPlugdev = true;
+      hashedPassword = "$y$jFT$3qI9MYLDHPUdGKsVa8skV0$TOjX0SFHWuj52zd7/kmkNtG5EqQwYcqv0FKXWbLaro6";
+    };
+  };
+
+  system.stateVersion = "23.05";
+}
diff --git a/hosts/by-name/apzu/hardware.nix b/hosts/by-name/apzu/hardware.nix
new file mode 100644
index 00000000..8d481fa6
--- /dev/null
+++ b/hosts/by-name/apzu/hardware.nix
@@ -0,0 +1,37 @@
+# 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>.
+{modulesPath, ...}: {
+  imports = [
+    (modulesPath + "/installer/scan/not-detected.nix") # TODO: is this necessary?
+  ];
+
+  soispha = {
+    disks = {
+      enable = true;
+      disk = "/dev/disk/by-id/nvme-INTEL_SSDPEKNU512GZH_PHKA1481032A512A_1";
+      ssd = true;
+      swap = {
+        uuid = "c94cd20a-dd3c-436f-9841-6fe92e5c8719";
+        resumeOffset = "533760";
+      };
+    };
+
+    hardware = {
+      enable = true;
+      cpuType = "intel";
+    };
+  };
+
+  boot = {
+    kernelModules = ["kvm-intel" "rtw89"];
+
+    initrd.availableKernelModules = ["xhci_pci" "vmd" "nvme" "usb_storage" "sd_mod" "rtsx_pci_sdmmc"];
+  };
+}