{ lib, pkgs, baseLib, qmk_firmware, system, ... }: { imports = [ ./hardware.nix ]; soispha = { bluetooth = {enable = true;}; networking = { enable = true; hostName = "tiamat"; mode = "systemd-networkd"; }; nixpkgs = { enable = true; systemName = "x86_64-linux"; }; services = { backup = { backupDiskUuid = "c06ce163-2955-4388-b212-dfec4448fcf4"; enable = true; }; 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.neorg} dmenu"];}; "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 ((baseLib.pow 2 32) - 1)}"];}; # Support Unicode input "Z" = {command = ["spawn" "${lib.getExe qmk_firmware.packages.${system}.qmk_unicode_type} 106 65377"];}; }) // ({ # TODO: add toggle-focus mapping # Toggle all tags "" = {command = ["set-view-tags" "${builtins.toString ((baseLib.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 (baseLib.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"; }