{ imports = [ ./disko.nix ./hardware-configuration.nix ]; custom = { hostname = "mynix"; width = 3440; height = 1440; }; boot.kernelParams = [ # https://gitlab.freedesktop.org/drm/amd/-/issues/2516#note_2119750 #// "gpu_sched.sched_policy=0" # Attempt to fix stutter ]; # _._ _,-'""`-._ # (,-.`._,'( |\`-/| # `-.-' \ )-`( , o o) # `- \`_`"'- #// services.logind.powerKey = "ignore"; # Disable power button # Mount external drives on boot fileSystems = { "/mnt/gayme" = { device = "/dev/disk/by-label/gayme"; options = [ "noatime" "nofail" "users" "exec" "x-gvfs-show" ]; }; "/mnt/gaymer" = { device = "/dev/disk/by-label/gaymer"; options = [ "noatime" "nofail" "users" "exec" "x-gvfs-show" ]; }; }; # Set mount directory permissions #?? TYPE PATH MODE USER GROUP AGE ARGUMENT systemd.tmpfiles.rules = [ "z /mnt/gayme 0755 myned users" "z /mnt/gaymer 0755 myned users" ]; # Work around performance issues with AMD power scaling # https://wiki.archlinux.org/title/AMDGPU#Screen_artifacts_and_frequency_problem # https://wiki.archlinux.org/title/AMDGPU#Power_profiles #!! cardX must match the correct gpu #?? lspci #?? ls -l /dev/dri/by-path/*-card #?? grep '*' /sys/class/drm/card*/device/pp_power_profile_mode services.udev.extraRules = '' KERNEL=="renderD128", SUBSYSTEM=="drm", DRIVERS=="amdgpu", ATTR{device/power_dpm_force_performance_level}="manual", ATTR{device/pp_power_profile_mode}="1" ''; # https://github.com/Zygo/bees # Deduplicate entire filesystem #?? Optimal for ~1TB total disk space # https://github.com/Zygo/bees/blob/master/docs/config.md#hash-table-sizing # services.beesd.filesystems.root = { # spec = "/"; # verbosity = "err"; # extraOptions = [ "--loadavg-target" "5" ]; # Reduce threads on ~5% total processor load # }; # Periodically upload current wallpaper to remote server # systemd.user = { # services."wallpaper" = { # path = with pkgs; [ # openssh # rsync # tailscale # variety # ]; # #!! Hostname dependent # script = '' # rsync --chown caddy:caddy "$(variety --current)" root@myarm:/srv/static/wallpaper.png # ''; # }; # timers."wallpaper" = { # wantedBy = [ "timers.target" ]; # timerConfig = { # OnBootSec = "1m"; # OnUnitActiveSec = "1m"; # }; # }; # }; }