hosts/satori: random stuff
Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
		@@ -2,8 +2,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  boot = {
 | 
					  boot = {
 | 
				
			||||||
    zfs.forceImportAll = false;
 | 
					 | 
				
			||||||
    supportedFilesystems = [ "zfs" ];
 | 
					    supportedFilesystems = [ "zfs" ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    kernelPackages = pkgs.unstable.linuxPackages_latest;
 | 
					    kernelPackages = pkgs.unstable.linuxPackages_latest;
 | 
				
			||||||
    initrd = {
 | 
					    initrd = {
 | 
				
			||||||
      availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "vfio-pci" ];
 | 
					      availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" "vfio-pci" ];
 | 
				
			||||||
@@ -18,7 +18,7 @@
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
    kernelParams = [ "intel_pstate=active" "intel_iommu=on" ];
 | 
					    kernelParams = [ "intel_pstate=active" "intel_iommu=on" ];
 | 
				
			||||||
    kernelModules = [ "kvm-intel" "snd-seq" "snd-rawmidi" "joydev" ];
 | 
					    kernelModules = [ "kvm-intel" "snd-seq" "snd-rawmidi" "joydev" ];
 | 
				
			||||||
    extraModulePackages = with config.boot.kernelPackages; [ nvidia_x11 v4l2loopback ];
 | 
					    extraModulePackages = with config.boot.kernelPackages; [ nvidia_x11_vulkan_beta v4l2loopback ];
 | 
				
			||||||
    loader = {
 | 
					    loader = {
 | 
				
			||||||
      efi = {
 | 
					      efi = {
 | 
				
			||||||
        canTouchEfiVariables = true;
 | 
					        canTouchEfiVariables = true;
 | 
				
			||||||
@@ -35,5 +35,6 @@
 | 
				
			|||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    binfmt.emulatedSystems = [ "aarch64-linux" ];
 | 
					    binfmt.emulatedSystems = [ "aarch64-linux" ];
 | 
				
			||||||
 | 
					    zfs.extraPools = [ "stuff" ];
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,8 @@
 | 
				
			|||||||
      ./networking.nix
 | 
					      ./networking.nix
 | 
				
			||||||
      ./boot.nix
 | 
					      ./boot.nix
 | 
				
			||||||
      ./services.nix
 | 
					      ./services.nix
 | 
				
			||||||
 | 
					      ./graphics.nix
 | 
				
			||||||
 | 
					      ./xorg.nix
 | 
				
			||||||
      ./nix.nix
 | 
					      ./nix.nix
 | 
				
			||||||
    ];
 | 
					    ];
 | 
				
			||||||
  system.stateVersion = "21.05";
 | 
					  system.stateVersion = "21.05";
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,32 +15,33 @@ in
 | 
				
			|||||||
  hardware = {
 | 
					  hardware = {
 | 
				
			||||||
    /*opengl =
 | 
					    /*opengl =
 | 
				
			||||||
      let
 | 
					      let
 | 
				
			||||||
        fn = oa: with lib; {
 | 
					      fn = oa: with lib; {
 | 
				
			||||||
          nativeBuildInputs = oa.nativeBuildInputs ++ singleton pkgs.glslang;
 | 
					      nativeBuildInputs = oa.nativeBuildInputs ++ singleton pkgs.glslang;
 | 
				
			||||||
          mesonFlags = oa.mesonFlags ++ singleton "-Dvulkan-layers=device-select,overlay";
 | 
					      mesonFlags = oa.mesonFlags ++ singleton "-Dvulkan-layers=device-select,overlay";
 | 
				
			||||||
          patches = oa.patches ++ singleton ./mesa-vulkan-layer-nvidia.patch;
 | 
					      patches = oa.patches ++ singleton ./mesa-vulkan-layer-nvidia.patch;
 | 
				
			||||||
          postInstall = oa.postInstall + ''
 | 
					      postInstall = oa.postInstall + ''
 | 
				
			||||||
            mv $out/lib/libVkLayer* $drivers/lib
 | 
					      mv $out/lib/libVkLayer* $drivers/lib
 | 
				
			||||||
            layer=VkLayer_MESA_device_select
 | 
					      layer=VkLayer_MESA_device_select
 | 
				
			||||||
            substituteInPlace $drivers/share/vulkan/implicit_layer.d/''${layer}.json \
 | 
					      substituteInPlace $drivers/share/vulkan/implicit_layer.d/''${layer}.json \
 | 
				
			||||||
            --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
					      --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
				
			||||||
            layer=VkLayer_MESA_overlay
 | 
					      layer=VkLayer_MESA_overlay
 | 
				
			||||||
            substituteInPlace $drivers/share/vulkan/explicit_layer.d/''${layer}.json \
 | 
					      substituteInPlace $drivers/share/vulkan/explicit_layer.d/''${layer}.json \
 | 
				
			||||||
            --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
					      --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
				
			||||||
          '';
 | 
					      '';
 | 
				
			||||||
        };
 | 
					      };
 | 
				
			||||||
      in
 | 
					      in
 | 
				
			||||||
      with pkgs; {
 | 
					      with pkgs; {
 | 
				
			||||||
        driSupport32Bit = true;
 | 
					      driSupport32Bit = true;
 | 
				
			||||||
        enable = true;
 | 
					      enable = true;
 | 
				
			||||||
        package = (mesa.overrideAttrs fn).drivers;
 | 
					      package = (mesa.overrideAttrs fn).drivers;
 | 
				
			||||||
        package32 = (pkgsi686Linux.mesa.overrideAttrs fn).drivers;
 | 
					      package32 = (pkgsi686Linux.mesa.overrideAttrs fn).drivers;
 | 
				
			||||||
      };*/
 | 
					      };*/
 | 
				
			||||||
    opengl = {
 | 
					    opengl = {
 | 
				
			||||||
      driSupport32Bit = true;
 | 
					      driSupport32Bit = true;
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    nvidia = {
 | 
					    nvidia = {
 | 
				
			||||||
 | 
					      package = config.boot.kernelPackages.nvidia_x11_vulkan_beta;
 | 
				
			||||||
      prime = {
 | 
					      prime = {
 | 
				
			||||||
        #      sync.enable = true;
 | 
					        #      sync.enable = true;
 | 
				
			||||||
        offload = { enable = true; };
 | 
					        offload = { enable = true; };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -7,44 +7,44 @@
 | 
				
			|||||||
    ];
 | 
					    ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/" =
 | 
					  fileSystems."/" =
 | 
				
			||||||
    { device = "/dev/disk/by-uuid/4c02ddf5-d00e-4d84-856f-c327ae44d047";
 | 
					    {
 | 
				
			||||||
 | 
					      device = "/dev/disk/by-uuid/4c02ddf5-d00e-4d84-856f-c327ae44d047";
 | 
				
			||||||
      fsType = "btrfs";
 | 
					      fsType = "btrfs";
 | 
				
			||||||
      options = [ "compress-force=zstd:3" ];
 | 
					      options = [ "compress-force=zstd:3" ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/boot/efi" =
 | 
					  fileSystems."/boot/efi" =
 | 
				
			||||||
    { device = "/dev/disk/by-uuid/2424-5639";
 | 
					    {
 | 
				
			||||||
 | 
					      device = "/dev/disk/by-uuid/2424-5639";
 | 
				
			||||||
      fsType = "vfat";
 | 
					      fsType = "vfat";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/mnt/ntfs" =
 | 
					  fileSystems."/mnt/ntfs" =
 | 
				
			||||||
    { device = "/dev/disk/by-uuid/A4CC66B6CC668282";
 | 
					    {
 | 
				
			||||||
 | 
					      device = "/dev/disk/by-uuid/A4CC66B6CC668282";
 | 
				
			||||||
      fsType = "ntfs";
 | 
					      fsType = "ntfs";
 | 
				
			||||||
      options = [ "uid=natto" "gid=users" "umask=0022" "rw" ];
 | 
					      options = [ "uid=natto" "gid=users" "umask=0022" "rw" ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/mnt/real" =
 | 
					  fileSystems."/mnt/real" =
 | 
				
			||||||
    { device = "/dev/disk/by-uuid/6372bc0c-0917-469d-a845-2ce65513e306";
 | 
					    {
 | 
				
			||||||
 | 
					      device = "/dev/disk/by-uuid/6372bc0c-0917-469d-a845-2ce65513e306";
 | 
				
			||||||
      fsType = "ext4";
 | 
					      fsType = "ext4";
 | 
				
			||||||
      options = [ "rw" ];
 | 
					      options = [ "rw" ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  fileSystems."/mnt/stuff" =
 | 
					 | 
				
			||||||
    { device = "stuff";
 | 
					 | 
				
			||||||
      fsType = "zfs";
 | 
					 | 
				
			||||||
      neededForBoot = false;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  zramSwap = {
 | 
					  zramSwap = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    algorithm = "lz4";
 | 
					    algorithm = "lz4";
 | 
				
			||||||
    memoryPercent = 30;
 | 
					    memoryPercent = 30;
 | 
				
			||||||
    priority = -1;
 | 
					    priority = -1;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  powerManagement = {
 | 
					  powerManagement = {
 | 
				
			||||||
    enable = true;
 | 
					    enable = true;
 | 
				
			||||||
    cpuFreqGovernor = "schedutil";
 | 
					    cpuFreqGovernor = "schedutil";
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  hardware = {
 | 
					  hardware = {
 | 
				
			||||||
    bluetooth.enable = true;
 | 
					    bluetooth.enable = true;
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,32 +2,24 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  networking = {
 | 
					  networking = {
 | 
				
			||||||
    hostName = "Satori";
 | 
					    hostName = "satori";
 | 
				
			||||||
    hostId = "beca3df0";
 | 
					    hostId = "beca3df0";
 | 
				
			||||||
    wireless.enable = true;
 | 
					    wireless.enable = true;
 | 
				
			||||||
    wireless.interfaces = [ "wlp0s20f3" ];
 | 
					    wireless.interfaces = [ "wlp0s20f3" ];
 | 
				
			||||||
    firewall = {
 | 
					    firewall = {
 | 
				
			||||||
      allowedTCPPorts = [ 22 18172 6600 8001 ];
 | 
					      allowedTCPPorts = [ 22 18172 6600 8001 ];
 | 
				
			||||||
      allowedUDPPorts = [ 22 17840 18172 ];
 | 
					      allowedUDPPorts = [ 22 17840 18172 ];
 | 
				
			||||||
 | 
					      trustedInterfaces = [ "docker0" ];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    defaultGateway = {
 | 
					    defaultGateway = "192.168.1.1";
 | 
				
			||||||
      address = "192.168.0.1";
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    interfaces = {
 | 
					    interfaces = {
 | 
				
			||||||
      enp7s0 = {
 | 
					      enp7s0 = {
 | 
				
			||||||
        useDHCP = true;
 | 
					        useDHCP = true;
 | 
				
			||||||
        ipv4.addresses = [{
 | 
					        ipv4.addresses = [{
 | 
				
			||||||
          prefixLength = 24;
 | 
					          prefixLength = 24;
 | 
				
			||||||
          address = "192.168.0.109";
 | 
					          address = "192.168.1.109";
 | 
				
			||||||
        }];
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      wlp0s20f3 = {
 | 
					 | 
				
			||||||
        useDHCP = true;
 | 
					 | 
				
			||||||
        ipv4.addresses = [{
 | 
					 | 
				
			||||||
          prefixLength = 24;
 | 
					 | 
				
			||||||
          address = "192.168.0.109";
 | 
					 | 
				
			||||||
        }];
 | 
					        }];
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,8 +28,8 @@
 | 
				
			|||||||
    rnix-lsp
 | 
					    rnix-lsp
 | 
				
			||||||
    vulkan-tools
 | 
					    vulkan-tools
 | 
				
			||||||
    vulkan-headers
 | 
					    vulkan-headers
 | 
				
			||||||
   msr-tools
 | 
					    msr-tools
 | 
				
			||||||
   steam  
 | 
					    steam
 | 
				
			||||||
    igrep
 | 
					    igrep
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -50,29 +50,6 @@
 | 
				
			|||||||
    };
 | 
					    };
 | 
				
			||||||
    zsh = {
 | 
					    zsh = {
 | 
				
			||||||
      enable = true;
 | 
					      enable = true;
 | 
				
			||||||
      promptInit = ''
 | 
					 | 
				
			||||||
        RPROMPT='%B%F{cyan}%n%f@%F{red}%m%b'
 | 
					 | 
				
			||||||
        function preexec() {
 | 
					 | 
				
			||||||
          timer=$(date +%s%3N)
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        function precmd() {
 | 
					 | 
				
			||||||
        if [ $timer ]; then
 | 
					 | 
				
			||||||
          now=$(date +%s%3N)
 | 
					 | 
				
			||||||
          elapsed=$(($now-$timer))
 | 
					 | 
				
			||||||
          unset timer
 | 
					 | 
				
			||||||
          unit="ms"
 | 
					 | 
				
			||||||
          if [ $elapsed -gt 1000 ]; then
 | 
					 | 
				
			||||||
            elapsed=$(echo "scale=1; $elapsed/1000" | ${pkgs.bc}/bin/bc -l)
 | 
					 | 
				
			||||||
            unit="s"
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
          if (( $(echo "$elapsed > 60" | ${pkgs.bc}/bin/bc -l) )) then
 | 
					 | 
				
			||||||
            elapsed=$(echo "scale=2; $elapsed/60" | ${pkgs.bc}/bin/bc -l)
 | 
					 | 
				
			||||||
            unit="m"
 | 
					 | 
				
			||||||
          fi
 | 
					 | 
				
			||||||
          RPROMPT='%B%F{cyan}%n%f@%F{red}%m %F{yellow}~%f %F{magenta}$elapsed $unit%f%b '
 | 
					 | 
				
			||||||
        fi
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
      histSize = 30000;
 | 
					      histSize = 30000;
 | 
				
			||||||
      enableCompletion = true;
 | 
					      enableCompletion = true;
 | 
				
			||||||
      enableBashCompletion = true;
 | 
					      enableBashCompletion = true;
 | 
				
			||||||
@@ -82,8 +59,8 @@
 | 
				
			|||||||
        highlightStyle = "fg=yellow,bold";
 | 
					        highlightStyle = "fg=yellow,bold";
 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
      ohMyZsh = {
 | 
					      ohMyZsh = {
 | 
				
			||||||
 | 
					        plugins = [ "git" ];
 | 
				
			||||||
        enable = true;
 | 
					        enable = true;
 | 
				
			||||||
        theme = "awesomepanda";
 | 
					 | 
				
			||||||
      };
 | 
					      };
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
    dconf.enable = true;
 | 
					    dconf.enable = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,6 +19,7 @@
 | 
				
			|||||||
    shellAliases = rec {
 | 
					    shellAliases = rec {
 | 
				
			||||||
      ec = "emacsclient";
 | 
					      ec = "emacsclient";
 | 
				
			||||||
      ecc = ec + " -c";
 | 
					      ecc = ec + " -c";
 | 
				
			||||||
 | 
					      ecnw = ec + " -nw";
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
  security = {
 | 
					  security = {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,64 +0,0 @@
 | 
				
			|||||||
default partial alphanumeric_keys modifier_keys
 | 
					 | 
				
			||||||
xkb_symbols "basic" {
 | 
					 | 
				
			||||||
    name[Group1] = "English (US Colemak-DH)";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    key <TLDE> { [        grave,   asciitilde,      dead_tilde,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AE01> { [            1,       exclam,      exclamdown,      onesuperior ] };
 | 
					 | 
				
			||||||
    key <AE02> { [            2,           at,       masculine,      twosuperior ] };
 | 
					 | 
				
			||||||
    key <AE03> { [            3,   numbersign,     ordfeminine,    threesuperior ] };
 | 
					 | 
				
			||||||
    key <AE04> { [            4,       dollar,            cent,         sterling ] };
 | 
					 | 
				
			||||||
    key <AE05> { [            5,      percent,        EuroSign,              yen ] };
 | 
					 | 
				
			||||||
    key <AE06> { [            6,  asciicircum,         hstroke,          Hstroke ] };
 | 
					 | 
				
			||||||
    key <AE07> { [            7,    ampersand,             eth,              ETH ] };
 | 
					 | 
				
			||||||
    key <AE08> { [            8,     asterisk,           thorn,            THORN ] };
 | 
					 | 
				
			||||||
    key <AE09> { [            9,    parenleft,  leftsinglequotemark,  leftdoublequotemark ] };
 | 
					 | 
				
			||||||
    key <AE10> { [            0,   parenright, rightsinglequotemark,  rightdoublequotemark ] };
 | 
					 | 
				
			||||||
    key <AE11> { [        minus,   underscore,          endash,           emdash ] };
 | 
					 | 
				
			||||||
    key <AE12> { [        equal,         plus,        multiply,         division ] };
 | 
					 | 
				
			||||||
    key <AD01> { [            q,            Q,      adiaeresis,       Adiaeresis ] };
 | 
					 | 
				
			||||||
    key <AD02> { [            w,            W,           aring,            Aring ] };
 | 
					 | 
				
			||||||
    key <AD03> { [            f,            F,          atilde,           Atilde ] };
 | 
					 | 
				
			||||||
    key <AD04> { [            p,            P,          oslash,         Ooblique ] };
 | 
					 | 
				
			||||||
    key <AD05> { [            b,            B,      dead_breve,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AD06> { [            j,            J,         dstroke,          Dstroke ] };
 | 
					 | 
				
			||||||
    key <AD07> { [            l,            L,         lstroke,          Lstroke ] };
 | 
					 | 
				
			||||||
    key <AD08> { [            u,            U,          uacute,           Uacute ] };
 | 
					 | 
				
			||||||
    key <AD09> { [            y,            Y,      udiaeresis,       Udiaeresis ] };
 | 
					 | 
				
			||||||
    key <AD10> { [    semicolon,        colon,      odiaeresis,       Odiaeresis ] };
 | 
					 | 
				
			||||||
    key <AD11> { [  bracketleft,    braceleft,   guillemotleft,        0x1002039 ] };
 | 
					 | 
				
			||||||
    key <AD12> { [ bracketright,   braceright,  guillemotright,        0x100203a ] };
 | 
					 | 
				
			||||||
    key <BKSL> { [    backslash,          bar,      asciitilde,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AC01> { [            a,            A,          aacute,           Aacute ] };
 | 
					 | 
				
			||||||
    key <AC02> { [            r,            R,      dead_grave,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AC03> { [            s,            S,          ssharp,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AC04> { [            t,            T,      dead_acute, dead_doubleacute ] };
 | 
					 | 
				
			||||||
    key <AC05> { [            g,            G,     dead_ogonek,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AC06> { [            m,            M,     dead_macron,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AC07> { [            n,            N,          ntilde,           Ntilde ] };
 | 
					 | 
				
			||||||
    key <AC08> { [            e,            E,          eacute,           Eacute ] };
 | 
					 | 
				
			||||||
    key <AC09> { [            i,            I,          iacute,           Iacute ] };
 | 
					 | 
				
			||||||
    key <AC10> { [            o,            O,          oacute,           Oacute ] };
 | 
					 | 
				
			||||||
    key <AC11> { [   apostrophe,     quotedbl,          otilde,           Otilde ] };
 | 
					 | 
				
			||||||
    key <AB01> { [            z,            Z,              ae,               AE ] };
 | 
					 | 
				
			||||||
    key <AB02> { [            x,            X, dead_circumflex,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB03> { [            c,            C,        ccedilla,         Ccedilla ] };
 | 
					 | 
				
			||||||
    key <AB04> { [            d,            D,  dead_diaeresis,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB05> { [            v,            V,              oe,               OE ] };
 | 
					 | 
				
			||||||
    key <AB06> { [            k,            K,  dead_abovering,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB07> { [            h,            H,      dead_caron,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB08> { [        comma,         less,    dead_cedilla,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB09> { [       period,      greater,   dead_abovedot,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <AB10> { [        slash,     question,    questiondown,       asciitilde ] };
 | 
					 | 
				
			||||||
    key <CAPS> { [    Caps_Lock,    Caps_Lock,       Caps_Lock,        Caps_Lock ] };
 | 
					 | 
				
			||||||
    key <LSGT> { [        minus,   underscore,          endash,           emdash ] };
 | 
					 | 
				
			||||||
    key <SPCE> { [        space,        space,           space,     nobreakspace ] };
 | 
					 | 
				
			||||||
    include "level3(ralt_switch)"
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
    
 | 
					 | 
				
			||||||
partial alphanumeric_keys
 | 
					 | 
				
			||||||
xkb_symbols "ganda-dh" {
 | 
					 | 
				
			||||||
    include "us-colemak(basic)"
 | 
					 | 
				
			||||||
    name[Group1] = "English (US Ganda-DH)";
 | 
					 | 
				
			||||||
    key <CAPS> { [    BackSpace,    BackSpace,       BackSpace,        BackSpace ] };
 | 
					 | 
				
			||||||
    include "level3(ralt_switch)"
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
@@ -1,61 +0,0 @@
 | 
				
			|||||||
{ config, pkgs, lib, ... }:
 | 
					 | 
				
			||||||
let
 | 
					 | 
				
			||||||
  nvidia-offload = pkgs.writeShellScriptBin "nvi" ''
 | 
					 | 
				
			||||||
    export __NV_PRIME_RENDER_OFFLOAD=1
 | 
					 | 
				
			||||||
    export __NV_PRIME_RENDER_OFFLOAD_PROVIDER=NVIDIA-G0
 | 
					 | 
				
			||||||
    export __GLX_VENDOR_LIBRARY_NAME=nvidia
 | 
					 | 
				
			||||||
    export __VK_LAYER_NV_optimus=NVIDIA_only
 | 
					 | 
				
			||||||
    exec "$@"
 | 
					 | 
				
			||||||
  '';
 | 
					 | 
				
			||||||
in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  environment.systemPackages = with pkgs; [
 | 
					 | 
				
			||||||
    nvidia-offload
 | 
					 | 
				
			||||||
  ];
 | 
					 | 
				
			||||||
  hardware = {
 | 
					 | 
				
			||||||
    /*   opengl =
 | 
					 | 
				
			||||||
      let
 | 
					 | 
				
			||||||
      fn = oa: with lib; {
 | 
					 | 
				
			||||||
      nativeBuildInputs = oa.nativeBuildInputs ++ singleton pkgs.glslang;
 | 
					 | 
				
			||||||
      mesonFlags = oa.mesonFlags ++ singleton "-Dvulkan-layers=device-select,overlay";
 | 
					 | 
				
			||||||
      patches = oa.patches ++ singleton ./mesa-vulkan-layer-nvidia.patch;
 | 
					 | 
				
			||||||
      postInstall = oa.postInstall + ''
 | 
					 | 
				
			||||||
      mv $out/lib/libVkLayer* $drivers/lib
 | 
					 | 
				
			||||||
      layer=VkLayer_MESA_device_select
 | 
					 | 
				
			||||||
      substituteInPlace $drivers/share/vulkan/implicit_layer.d/''${layer}.json \
 | 
					 | 
				
			||||||
      --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
					 | 
				
			||||||
      layer=VkLayer_MESA_overlay
 | 
					 | 
				
			||||||
      substituteInPlace $drivers/share/vulkan/explicit_layer.d/''${layer}.json \
 | 
					 | 
				
			||||||
      --replace "lib''${layer}" "$drivers/lib/lib''${layer}"
 | 
					 | 
				
			||||||
      '';
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      in
 | 
					 | 
				
			||||||
      with pkgs; {
 | 
					 | 
				
			||||||
      driSupport32Bit = true;
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      package = (mesa.overrideAttrs fn).drivers;
 | 
					 | 
				
			||||||
      package32 = (pkgsi686Linux.mesa.overrideAttrs fn).drivers;
 | 
					 | 
				
			||||||
      };*/
 | 
					 | 
				
			||||||
    opengl = {
 | 
					 | 
				
			||||||
      driSupport32Bit = true;
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
    nvidia = {
 | 
					 | 
				
			||||||
      prime = {
 | 
					 | 
				
			||||||
        #      sync.enable = true;
 | 
					 | 
				
			||||||
        offload = { enable = true; };
 | 
					 | 
				
			||||||
        intelBusId = "PCI:0:2:0";
 | 
					 | 
				
			||||||
        nvidiaBusId = "PCI:1:0:0";
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      modesetting = { enable = true; };
 | 
					 | 
				
			||||||
      powerManagement = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
        finegrained = true;
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
  services.xserver = {
 | 
					 | 
				
			||||||
    videoDrivers = [ "nvidia" ];
 | 
					 | 
				
			||||||
    dpi = 96;
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,45 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
{ config, lib, ... }:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
#let
 | 
					 | 
				
			||||||
#  compiledLayout = pkgs.runCommand "keyboard-layout" {} ''
 | 
					 | 
				
			||||||
#    ${pkgs.xorg.xkbcomp}/bin/xkbcomp ${./colemak-dh.xkb} $out
 | 
					 | 
				
			||||||
#  '';
 | 
					 | 
				
			||||||
#in
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
  console.useXkbConfig = true;
 | 
					 | 
				
			||||||
  services = {
 | 
					 | 
				
			||||||
    xserver = {
 | 
					 | 
				
			||||||
      enable = true;
 | 
					 | 
				
			||||||
      libinput= {
 | 
					 | 
				
			||||||
        enable = true;
 | 
					 | 
				
			||||||
        mouse = {
 | 
					 | 
				
			||||||
          accelSpeed = "0";
 | 
					 | 
				
			||||||
 #         accelProfile = "flat";
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
        touchpad = {
 | 
					 | 
				
			||||||
          middleEmulation = false;
 | 
					 | 
				
			||||||
          clickMethod = "buttonareas";
 | 
					 | 
				
			||||||
          tapping = true;
 | 
					 | 
				
			||||||
          naturalScrolling =true;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      displayManager = {
 | 
					 | 
				
			||||||
        startx = {
 | 
					 | 
				
			||||||
          enable = true; 
 | 
					 | 
				
			||||||
        }; 
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      extraLayouts = {
 | 
					 | 
				
			||||||
        us-colemak = {
 | 
					 | 
				
			||||||
          description = "Colemak with MOD-dh";
 | 
					 | 
				
			||||||
          languages = [ "eng" ];
 | 
					 | 
				
			||||||
          symbolsFile = ./colemak-dh;
 | 
					 | 
				
			||||||
        };
 | 
					 | 
				
			||||||
      };
 | 
					 | 
				
			||||||
      layout = "us-colemak";
 | 
					 | 
				
			||||||
      xkbVariant = "basic";
 | 
					 | 
				
			||||||
      autoRepeatDelay = 320;
 | 
					 | 
				
			||||||
      autoRepeatInterval = 30;
 | 
					 | 
				
			||||||
    };
 | 
					 | 
				
			||||||
  };
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user