diff --git a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix index 3419eae6..54f76994 100644 --- a/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix +++ b/nix/configurations/hetzner_benchmark/nixos/sane-nix.nix @@ -1,9 +1,11 @@ # Protect my system from running out of storage or memory +let + totalStorage = 500; +in { - # 500GB Storage nix.settings = { - min-free = 50 * 1024 * 1024 * 1024; - max-free = 100 * 1024 * 1024 * 1024; + min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024; + max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024; }; systemd.services.nix-daemon.serviceConfig = { diff --git a/nix/configurations/vanadium.nix b/nix/configurations/vanadium.nix index 2f4bec34..99d9c96d 100644 --- a/nix/configurations/vanadium.nix +++ b/nix/configurations/vanadium.nix @@ -94,6 +94,7 @@ in ./vanadium/nixos/input.nix ./vanadium/nixos/misc.nix + ./vanadium/nixos/remote-builders.nix ./vanadium/nixos/display.nix ./vanadium/nixos/gui.nix diff --git a/nix/configurations/vanadium/home/programs.nix b/nix/configurations/vanadium/home/programs.nix index 32db4e26..74c8bed8 100644 --- a/nix/configurations/vanadium/home/programs.nix +++ b/nix/configurations/vanadium/home/programs.nix @@ -20,6 +20,7 @@ home.packages = [ pkgs.ghc # my favorite calculator + pkgs.lsr # fast ls with io_uring pkgs.nmap pkgs.stow pkgs.zip diff --git a/nix/configurations/vanadium/nixos/remote-builders.nix b/nix/configurations/vanadium/nixos/remote-builders.nix new file mode 100644 index 00000000..87a21592 --- /dev/null +++ b/nix/configurations/vanadium/nixos/remote-builders.nix @@ -0,0 +1,29 @@ +let + supportedFeatures = [ + "nixos-test" + "benchmark" + "big-parallel" + "kvm" + ]; +in +{pkgs, ...}: +{ + nix.buildMachines = [ + # NOTE: these hosts need to be put in the .ssh/config of root. + # https://wiki.nixos.org/wiki/Distributed_build#Recommended_setup:_multi-user_Nix_local_%E2%80%93%3E_multi-user_Nix_remote + { + hostName = "pancake"; + sshUser = "remotebuild"; + speedFactor = 2; + system = pkgs.stdenv.hostPlatform.system; + inherit supportedFeatures; + } + { + hostName = "hetzner_benchmark"; + sshUser = "remotebuild"; + speedFactor = 12; + system = pkgs.stdenv.hostPlatform.system; + inherit supportedFeatures; + } + ]; +} diff --git a/nix/configurations/vanadium/nixos/sane-nix.nix b/nix/configurations/vanadium/nixos/sane-nix.nix index 83c080d8..bb710e8e 100644 --- a/nix/configurations/vanadium/nixos/sane-nix.nix +++ b/nix/configurations/vanadium/nixos/sane-nix.nix @@ -1,8 +1,11 @@ # Protect my system from running out of storage or memory +let + totalStorage = 930; +in { nix.settings = { - min-free = 50 * 1024 * 1024 * 1024; - max-free = 100 * 1024 * 1024 * 1024; + min-free = builtins.ceil (totalStorage * 0.2) * 1024 * 1024 * 1024; + max-free = builtins.ceil (totalStorage * 0.3) * 1024 * 1024 * 1024; }; systemd.services.nix-daemon.serviceConfig = { diff --git a/nix/configurations/vanadium/overlay.nix b/nix/configurations/vanadium/overlay.nix index 169bf13b..a73ecd0c 100644 --- a/nix/configurations/vanadium/overlay.nix +++ b/nix/configurations/vanadium/overlay.nix @@ -16,6 +16,14 @@ infuse { ./patches/helix/W-as-write.patch ]; + btop.__output.patches.__append = [ + (final.fetchpatch { + name = "btrfs-io-graph"; + url = "https://patch-diff.githubusercontent.com/raw/aristocratos/btop/pull/1285.patch"; + hash = "sha256-za6B1EiOV1JqKMJwrNQo43RKChw+C4mmC8pcoxLLau4="; + }) + ]; + # TODO: # pinned branch of https://github.com/astrand/xclip/tree/xerror # use this until #43 gets resolved properly diff --git a/nix/homeModules/common/btop/btop.conf b/nix/homeModules/common/btop/btop.conf index 626f09c7..c1973464 100644 --- a/nix/homeModules/common/btop/btop.conf +++ b/nix/homeModules/common/btop/btop.conf @@ -184,8 +184,7 @@ disk_free_priv = False show_io_stat = True #* Toggles io mode for disks, showing big graphs for disk read/write speeds. -# This doesn't seem to have an effect when using btrfs. I'd rather see the disk usage. -io_mode = False +io_mode = True #* Set to True to show combined read/write io graphs in io mode. io_graph_combined = False diff --git a/nix/homeModules/common/fish/aliasesAbbrs.nix b/nix/homeModules/common/fish/aliasesAbbrs.nix index 863510f6..8affff1d 100644 --- a/nix/homeModules/common/fish/aliasesAbbrs.nix +++ b/nix/homeModules/common/fish/aliasesAbbrs.nix @@ -7,7 +7,7 @@ programs.fish = { shellAbbrs = lib.mkMerge [ (lib.mkIf pkgs.stdenv.isLinux { - "," = "nix-shell -p"; + "," = "nix-shell --command $SHELL -p"; }) ]; diff --git a/nix/homeModules/common/fish/functions/ls.fish b/nix/homeModules/common/fish/functions/ls.fish new file mode 100644 index 00000000..785ac319 --- /dev/null +++ b/nix/homeModules/common/fish/functions/ls.fish @@ -0,0 +1,7 @@ +function ls + if type -q lsr + command lsr $argv + else + command ls $argv + end +end diff --git a/nix/homeModules/common/fish/functions/nix.fish b/nix/homeModules/common/fish/functions/nix.fish new file mode 100644 index 00000000..488220e9 --- /dev/null +++ b/nix/homeModules/common/fish/functions/nix.fish @@ -0,0 +1,11 @@ +function nix + if [ $(count $argv) -lt 1 ] + command nix $argv + end + and if [ $argv[1] = "build" -o $argv[1] = "shell" ] && type -q nom + nom $argv + else + command nix $argv + end +end +