aboutsummaryrefslogtreecommitdiffstats
path: root/hosts/by-name
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-16 16:45:40 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-16 16:45:40 +0200
commit176d9bb96e8923b84bb0bdc731ef707514c0d53e (patch)
treecab831d04c6c919d41c11fe6abfe67de34c90699 /hosts/by-name
parentmodules: Import external modules in the module that actually need them (diff)
downloadnixos-config-176d9bb96e8923b84bb0bdc731ef707514c0d53e.zip
hosts: Move to a `by-name` schema
Diffstat (limited to 'hosts/by-name')
-rw-r--r--hosts/by-name/apzu/configuration.nix138
-rw-r--r--hosts/by-name/apzu/hardware.nix37
-rw-r--r--hosts/by-name/tiamat/configuration.nix157
-rw-r--r--hosts/by-name/tiamat/hardware.nix45
4 files changed, 377 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"];
+ };
+}
diff --git a/hosts/by-name/tiamat/configuration.nix b/hosts/by-name/tiamat/configuration.nix
new file mode 100644
index 00000000..3e7349ce
--- /dev/null
+++ b/hosts/by-name/tiamat/configuration.nix
@@ -0,0 +1,157 @@
+# 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,
+ system,
+ libraries,
+ externalBinaries,
+ ...
+}: {
+ imports = [
+ ./hardware.nix
+ ];
+
+ soispha = {
+ bluetooth = {enable = true;};
+ networking = {
+ enable = true;
+ hostName = "tiamat";
+ mode = "systemd-networkd";
+ };
+ nixpkgs = {
+ enable = true;
+ systemName = "x86_64-linux";
+ };
+
+ # TODO: Hard-code all the uids/gids <2025-05-13>
+ impermanence.directories = [
+ "/var/lib/nixos"
+ "/var/log"
+ ];
+
+ services = {
+ unison.foreign.address = "apzu.fritz.box";
+ };
+ programs = {
+ river = {
+ unicodeInput.enable = true;
+ init = {
+ mappings = {
+ layout = "us";
+ keymap = let
+ map = key: "<Alt+Ctrl+Meta+Shift-${key}>";
+ in
+ (lib.mapAttrs' (name: value: lib.nameValuePair (map name) value) {
+ # Movement
+ "A" = {command = ["exit"];};
+ "B" = {command = ["close"];};
+
+ "C" = {command = ["focus-view" "previous"];};
+ "D" = {command = ["focus-view" "next"];};
+
+ "E" = {command = ["swap" "previous"];};
+ "F" = {command = ["swap" "next"];};
+
+ "G" = {command = ["zoom"];};
+
+ "H" = {command = ["toggle-fullscreen"];};
+ "I" = {command = ["toggle-float"];};
+
+ "J" = {command = ["send-to-output" "next"];};
+
+ "K" = {command = ["spawn" "${lib.getExe pkgs.alacritty}"];};
+ "L" = {command = ["spawn" "${lib.getExe pkgs.screenshot_persistent}"];};
+
+ # Audio
+ # "M" = {command = ["spawn" "video-pause toggle"]; modes = ["normal" "locked"]; };
+ "N" = {
+ command = ["spawn" "${lib.getExe pkgs.mpc} toggle"];
+ modes = ["normal" "locked"];
+ };
+
+ # Launcher
+ "O" = {command = ["spawn" "${lib.getExe pkgs.rofi} -show combi -modes combi -combi-modes 'window,drun,run' -show-icons"];};
+ "P" = {command = ["spawn" "${lib.getExe pkgs.tskm} open select"];};
+ "Q" = {command = ["spawn" "${lib.getExe pkgs.keepassxc}"];};
+ # "R" = {command = ["spawn" "nheko"];};
+ "S" = {command = ["spawn" "${lib.getExe pkgs.signal-desktop}"];};
+ "T" = {command = ["spawn" "${lib.getExe pkgs.lock}"];};
+
+ "U" = {command = ["focus-output" "next"];};
+ "V" = {command = ["focus-previous-tags"];};
+ "W" = {command = ["send-to-previous-tags"];};
+ # "X" = {command = ["spawn" "bemenu-run"];};
+ # "Y" = {command = ["spawn" "bemenu-run"];};
+
+ # Toggle all tags
+ "0" = {command = ["set-focused-tags" "${builtins.toString ((libraries.base.pow 2 32) - 1)}"];};
+
+ # Support Unicode input
+ "Z" = {command = ["spawn" "${lib.getExe externalBinaries.qmk_firmware.packages.${system}.qmk_unicode_type} 106 65377"];};
+ })
+ // ({
+ # TODO: add toggle-focus mapping
+
+ # Toggle all tags
+ "<Alt+Ctrl+Shift-0>" = {
+ command = [
+ "set-view-tags"
+ "${builtins.toString
+ ((libraries.base.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 (libraries.base.pow 2 (input - 1));
+ in {
+ "${map num}" = {command = ["set-focused-tags" (index2tag index)];};
+ "<Alt+Ctrl+Shift-${num}>" = {command = ["set-view-tags" (index2tag index)];};
+ # "<Super+Shift+Ctrl-${num}>" = {command = ["toggle-view-tags" (index2tag index)];};
+ }) (builtins.genList (i: i + 1) 9)
+ )
+ ));
+ };
+ screenSetupCode = {
+ "DP-2" = {pos = "2560,0";};
+ "DP-1" = {
+ scale = "1.5";
+ pos = "0,0";
+ };
+ };
+ };
+ };
+ };
+ locale = {
+ enable = true;
+ keyMap = "us";
+ };
+ users = {
+ enable = true;
+ enableDeprecatedPlugdev = true;
+ hashedPassword = "$y$jFT$qi3wS9njrMl2y55b3NOBI0$j40Qt6AAkMSfZ82KPhqMaUaPztWtPps1wOqaXaF/L.6";
+ };
+ };
+
+ system.stateVersion = "23.05";
+}
diff --git a/hosts/by-name/tiamat/hardware.nix b/hosts/by-name/tiamat/hardware.nix
new file mode 100644
index 00000000..2b18a662
--- /dev/null
+++ b/hosts/by-name/tiamat/hardware.nix
@@ -0,0 +1,45 @@
+# 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 = {
+ hardware = {
+ enable = true;
+ cpuType = "amd";
+ moonlander = {
+ enableFlashing = true;
+ };
+ };
+
+ disks = {
+ enable = true;
+ disk = "/dev/disk/by-id/nvme-CT1000P5SSD8_21032C857568";
+ ssd = true;
+ swap = {
+ uuid = "057b5041-6fee-4739-84a9-ade8f0f51519";
+ resumeOffset = "533760";
+ };
+ };
+ };
+
+ boot = {
+ kernelModules = ["kvm-amd"];
+
+ kernelParams = [
+ # Avoid loosing the Bluetooth controller to a sleep, from which it never wakes again
+ "btusb.enable_autosuspend=n"
+ ];
+
+ initrd.availableKernelModules = ["nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod"];
+ };
+}