diff options
Diffstat (limited to 'nixosConfigurations/eonwe')
-rw-r--r-- | nixosConfigurations/eonwe/default.nix | 312 |
1 files changed, 0 insertions, 312 deletions
diff --git a/nixosConfigurations/eonwe/default.nix b/nixosConfigurations/eonwe/default.nix deleted file mode 100644 index 1904cdb..0000000 --- a/nixosConfigurations/eonwe/default.nix +++ /dev/null @@ -1,312 +0,0 @@ -{ - config, - lib, - pkgs, - ... -}: -with lib; -{ - imports = attrValues (modulesIn ./.); - - nixfiles.modules = { - ark.enable = true; - - wireguard.client.enable = true; - - syncthing.enable = true; - - openssh.server.enable = true; - - android.enable = true; - beets.enable = true; - bluetooth.enable = true; - games = { - lutris.enable = true; - minecraft.client.enable = true; - steam.enable = true; - steam-run.quirks.blackIsleStudios = true; - }; - libvirtd.enable = true; - incus.enable = true; - mpd.enable = true; - qutebrowser.enable = true; - }; - - hm = { - home.packages = with pkgs; [ - anki - gzdoom - iaito - kdenlive - krita - obs-studio - openmw - openttd - qbittorrent - qolibri - qzdl - radeontop - vcmi - vesktop - vial - wacomtablet - xonotic - ]; - - programs = { - beets.settings.directory = mkForce "/mnt/udata/music"; - - mpv = { - profiles = - let - mapShaders = shaders: map (args: toString (pkgs.fetchurl args)) shaders; - cfl-prediction = mapShaders [ - { - url = "https://raw.githubusercontent.com/Artoriuz/glsl-chroma-from-luma-prediction/471c65dd3915d39e7ef69957ab63e006125fbb88/CfL_Prediction.glsl"; - sha256 = "sha256-Mgb1KqF1EPPzR3SCVr9S4XzVmZkYEEFIHSp59RZ9wq8="; - } - ]; - ravu-lite-ar-r4 = mapShaders [ - { - url = "https://raw.githubusercontent.com/bjin/mpv-prescalers/b3f0a59d68f33b7162051ea5970a5169558f0ea2/compute/ravu-lite-ar-r4.hook"; - sha256 = "sha256-gyBAv/Sf75CobVUugeTOhy54B9z8iIoJSJgnLopfMsY="; - } - ]; - ssimdownscaler = mapShaders [ - { - url = "https://gist.githubusercontent.com/igv/36508af3ffc84410fe39761d6969be10/raw/575d13567bbe3caa778310bd3b2a4c516c445039/SSimDownscaler.glsl"; - sha256 = "sha256-AEq2wv/Nxo9g6Y5e4I9aIin0plTcMqBG43FuOxbnR1w="; - } - ]; - in - { - # TODO Profile conditionals on width are not working. - "qhd-downscale" = { - dscale = "lanczos"; - linear-downscaling = false; - glsl-shaders-append = ssimdownscaler; - }; - - "qhd-upscale" = { - glsl-shaders-append = cfl-prediction ++ ravu-lite-ar-r4; - }; - }; - - config = { - profile = "gpu-hq"; - vo = "gpu-next"; - gpu-api = "vulkan"; - hwdec = "auto"; - - deband = true; - deband-iterations = 4; - deband-threshold = 35; - deband-range = 16; - deband-grain = 5; - - temporal-dither = true; - dither-depth = "auto"; - dither = "fruit"; - - interpolation = true; - video-sync = "display-resample"; - tscale = "oversample"; - - target-prim = "auto"; - target-trc = "auto"; - vf = "format=colorlevels=full:colormatrix=auto"; - video-output-levels = "full"; - - glsl-shaders-append = map (text: toString (pkgs.writeText "shader.hook" text)) [ - '' - //!HOOK LUMA - //!BIND HOOKED - #define STRENGTH 48.0 - float mod289(float x) { return x - floor(x / 289.0) * 289.0; } - float permute(float x) { return mod289((34.0*x + 1.0) * x); } - float rand(float x) { return fract(x / 41.0); } - vec4 hook() { - vec3 _m = vec3(HOOKED_pos, 1.0) + vec3(1.0); - float h = permute(permute(permute(_m.x)+_m.y)+_m.z); - vec4 noise; - noise.x = rand(h); - return HOOKED_tex(HOOKED_pos) + vec4(STRENGTH/8192.0) * (noise - 0.5); - } - '' - '' - //!HOOK CHROMA - //!BIND HOOKED - #define STRENGTH 48.0 - float mod289(float x) { return x - floor(x / 289.0) * 289.0; } - float permute(float x) { return mod289((34.0*x + 1.0) * x); } - float rand(float x) { return fract(x / 41.0); } - vec4 hook() { - vec3 _m = vec3(HOOKED_pos, 0.5) + vec3(1.0); - float h = permute(permute(permute(_m.x)+_m.y)+_m.z); - vec4 noise; - noise.x = rand(h); h = permute(h); - noise.y = rand(h); - return HOOKED_tex(HOOKED_pos) + vec4(STRENGTH/8192.0) * (noise - 0.5); - } - '' - ]; - }; - }; - }; - - services = { - mpd.musicDirectory = mkForce "/mnt/udata/music"; - - xsettingsd.settings."Xft/DPI" = "93"; - }; - }; - - services = { - smartd = { - enable = true; - notifications.mail = { - enable = true; - sender = "admin+smartd@${my.domain.shire}"; - recipient = "admin+smartd@${my.domain.shire}"; - }; - }; - - openssh.settings = { - KbdInteractiveAuthentication = mkForce true; - PasswordAuthentication = mkForce true; - }; - - udev.packages = with pkgs; [ vial ]; - - xserver.wacom.enable = true; - }; - - # Usually stuff that is going to be compiled on this machine is going to have - # parallelisation support enabled, so we will make sure that all cores are - # utilised and limit the job queue to one. - nix.settings = { - max-jobs = 1; - cores = 32; - }; - - # Required[1] for using ZFS kernel modules with "unsupported" kernels. - # - # [1]: https://github.com/NixOS/nixpkgs/pull/121113#issuecomment-830003344 - # [1]: https://github.com/NixOS/nixpkgs/pull/230498#issuecomment-1551328615 - nixpkgs.config.allowBroken = true; - - boot = { - kernelPackages = pkgs.linuxPackages_xanmod_latest; - - kernelParams = [ - # Silence benign MCE errors: - # ``` - # mce: [Hardware Error]: CPU 1: Machine Check: 0 Bank 29: ffffffffffffffff - # mce: [Hardware Error]: TSC 0 MISC ff1fffffffffffff SYND ffffffffffffffff IPID ffffffffffffffff - # mce: [Hardware Error]: PROCESSOR 2:a60f12 TIME 1669988017 SOCKET 0 APIC 2 microcode a601201 - # ``` - "mce=nobootlog" - # This disables[1] User Mode Instruction Protection (UMIP)[2]. This is - # required for some games to run via Wine. - # - # [1]: https://docs.kernel.org/x86/cpuinfo.html - # [2]: https://en.wikichip.org/wiki/x86/umip - "clearcpuid=514" - ]; - - # https://wiki.archlinux.org/title/improving_performance#Watchdogs - blacklistedKernelModules = [ "sp5100_tco" ]; - - # The boot drive is Samsung SSD 980 PRO 2TB. - initrd.kernelModules = [ "nvme" ]; - - # These pools were configured manually with a specific mountpoint. - zfs.extraPools = [ - "udata" - "vdata" - ]; - }; - - # Filesystem creation: - # ``` - # mkfs.vfat -F 32 -l nixos-boot /dev/nvmeXnYpZ - # - # zpool create - # -o ashift=12 - # -o autotrim=on - # -O acltype=posixacl - # -O xattr=sa - # -O compression=zstd - # -O mountpoint=none - # nixos - # /dev/nvmeXnYpZ - # - # zfs create - # nixos/root - # - # zfs create - # -o encryption=aes-256-gcm - # -o keyformat=passphrase - # -o mountpoint=legacy - # nixos/root/ark - # - # zfs create - # -o mountpoint=legacy - # nixos/root/nix - # ``` - # - # physical structure (backside): - # [ 1 ] [ 2 ] [ 3 ] - # 1: disk/by-id/ata-WDC_WD20SPZX-22UA7T0_WD-WXP2E3163YW6 - # 2: disk/by-id/ata-WDC_WD20SPZX-22UA7T0_WD-WXN2E312R5HP - # 3: disk/by-id/ata-WDC_WD20SPZX-22UA7T0_WD-WXP2E311E6P2 - # - # physical structure (mobo M.2): - # [ 1 ] - # [ 2 ] - # 1: disk/by-id/nvme-Samsung_SSD_980_PRO_2TB_S69ENF0R872526A - # 2: disk/by-id/nvme-Samsung_SSD_980_PRO_2TB_S69ENX0T807723X - fileSystems = { - "/" = { - device = "none"; - fsType = "tmpfs"; - options = [ - "size=8G" - "mode=755" - ]; - }; - - "/boot" = { - device = "/dev/disk/by-uuid/1363-02E6"; - fsType = "vfat"; - }; - - "/nix" = { - device = "nixos/root/nix"; - fsType = "zfs"; - options = [ "noatime" ]; - }; - - ${config.ark.path} = { - device = "nixos/root/ark"; - fsType = "zfs"; - neededForBoot = true; # Required by impermanence. - }; - - # Required[1] when using impermanence with agenix. Filesystem itself is - # defined as an `ark.directory` in `nixos/common/users.nix`. - # - # [1]: https://github.com/ryantm/agenix/issues/45#issuecomment-847852593 - # [1]: https://github.com/nix-community/impermanence/issues/22 - # [1]: https://github.com/NixOS/nixpkgs/pull/86967#pullrequestreview-667929259 - "/home/${my.username}" = { - depends = [ config.ark.path ]; - neededForBoot = true; - }; - }; - - # No swap space is declared here because the system already has 128Gb of RAM. - # I've only manage to hit around 100Gb mark when running large - # computations/compiling something big. Pretty sure that a hefty chunk of it - # was just cache and it wouldn't make me get to OOM situations. -} |