From 176d9bb96e8923b84bb0bdc731ef707514c0d53e Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Fri, 16 May 2025 16:45:40 +0200 Subject: hosts: Move to a `by-name` schema --- hosts/by-name/tiamat/configuration.nix | 157 +++++++++++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 hosts/by-name/tiamat/configuration.nix (limited to 'hosts/by-name/tiamat/configuration.nix') 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 +# 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 . +{ + 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: ""; + 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 + "" = { + command = [ + "set-view-tags" + "${builtins.toString + ((libraries.base.pow 2 32) - 1)}" + ]; + }; + + # Mouse + ">" = { + command = ["move-view"]; + map_mode = "MapMouse"; + }; + ">" = { + 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)];}; + "" = {command = ["set-view-tags" (index2tag index)];}; + # "" = {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"; +} -- cgit 1.4.1