massive refactor
This commit is contained in:
@@ -1,43 +1,31 @@
|
||||
{
|
||||
unfree = [
|
||||
"antigravity"
|
||||
"cursor"
|
||||
"discord"
|
||||
"spotify"
|
||||
"obsidian"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"zoom-us"
|
||||
"zoom"
|
||||
pkgs: rec {
|
||||
predicate = pkg: (
|
||||
builtins.elem (pkgs.lib.getName pkg) unfree.packages || builtins.all (
|
||||
license: license.free || builtins.elem license.shortName unfree.licenses
|
||||
) (if builtins.isList pkg.meta.license then pkg.meta.license else [ pkg.meta.license ])
|
||||
);
|
||||
unfree = {
|
||||
packages = [
|
||||
"antigravity"
|
||||
"cursor"
|
||||
"discord"
|
||||
"obsidian"
|
||||
"spotify"
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"vscode-extension-mhutchie-git-graph"
|
||||
"zoom"
|
||||
"zoom-us"
|
||||
|
||||
"nvidia-x11"
|
||||
"nvidia-settings"
|
||||
"nvidia-persistenced"
|
||||
"cudatoolkit"
|
||||
"cuda-merged"
|
||||
"cuda_cuobjdump"
|
||||
"cuda_gdb"
|
||||
"cuda_nvcc"
|
||||
"cuda_nvdisasm"
|
||||
"cuda_nvprune"
|
||||
"cuda_cccl"
|
||||
"cuda_cudart"
|
||||
"cuda_cupti"
|
||||
"cuda_cuxxfilt"
|
||||
"cuda_nvml_dev"
|
||||
"cuda_nvrtc"
|
||||
"cuda_nvtx"
|
||||
"cuda_profiler_api"
|
||||
"cuda_sanitizer_api"
|
||||
"libcublas"
|
||||
"libcufft"
|
||||
"libcurand"
|
||||
"libcusolver"
|
||||
"libnvjitlink"
|
||||
"libcusparse"
|
||||
"libnpp"
|
||||
|
||||
"vscode-extension-mhutchie-git-graph"
|
||||
];
|
||||
insecure = [ ];
|
||||
"nvidia-x11"
|
||||
"nvidia-settings"
|
||||
];
|
||||
licenses = [
|
||||
"CUDA EULA"
|
||||
"cuDNN EULA"
|
||||
"cuTENSOR EULA"
|
||||
"NVidia OptiX EULA"
|
||||
];
|
||||
};
|
||||
# insecure = [ ];
|
||||
}
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
{
|
||||
"base": {
|
||||
"foreground": "#eedce1",
|
||||
"background": "#11080a"
|
||||
},
|
||||
"to_alter": {
|
||||
"accent": "#bb768a",
|
||||
"secondary": "#b5ff32",
|
||||
"tertiary": "#918ea3",
|
||||
"special": "#76bba7",
|
||||
"weird": "#b7bb76"
|
||||
"NxXPS": {
|
||||
"base": {
|
||||
"foreground": "#fecccc",
|
||||
"background": "#190000"
|
||||
},
|
||||
"to_alter": {
|
||||
"accent": "#ff3232",
|
||||
"secondary": "#ff3232",
|
||||
"tertiary": "#ff3232",
|
||||
"special": "#31feff",
|
||||
"weird": "#baff31"
|
||||
}
|
||||
}
|
||||
}
|
||||
35
flake-modules/hyper.nix
Normal file
35
flake-modules/hyper.nix
Normal file
@@ -0,0 +1,35 @@
|
||||
let hyper-base = rec {
|
||||
host = "BaseHost";
|
||||
system = "x86_64-linux";
|
||||
user = "nx2";
|
||||
domain = "nx2.site";
|
||||
home = "/home/${user}";
|
||||
webroot = if isServer then "/var/lib/hugo/nx2site/public" else assert false "No webroot on non-servers"; "";
|
||||
main-pkgs-version = "25.11";
|
||||
isServer = false;
|
||||
isMobile = false;
|
||||
isNOD = false;
|
||||
nvidia = {
|
||||
enable = false;
|
||||
prime = false;
|
||||
};
|
||||
}; in host: if host == "NxNORTH" then hyper-base // { inherit host;
|
||||
nvidia.enable = true;
|
||||
} else if host == "NxXPS" then hyper-base // { inherit host;
|
||||
nvidia = {
|
||||
enable = true;
|
||||
prime = true;
|
||||
};
|
||||
isMobile = true;
|
||||
} else if host == "NxACE" then hyper-base // { inherit host;
|
||||
isServer = true;
|
||||
} else if host == "NxDCS" then hyper-base // { inherit host;
|
||||
isMobile = true;
|
||||
} else if host == "NxS23U" then hyper-base // { inherit host;
|
||||
isMobile = true;
|
||||
isNOD = true;
|
||||
main-pkgs-version = "24.05";
|
||||
system = "aarch64-linux";
|
||||
user = "nix-on-droid";
|
||||
home = "/data/data/com.termux.nix/files/home";
|
||||
} else assert false "unkown host"; {}
|
||||
@@ -1,4 +0,0 @@
|
||||
{
|
||||
enable = false;
|
||||
prime = false;
|
||||
}
|
||||
43
flake-modules/nxlib/ricelib.nix
Normal file
43
flake-modules/nxlib/ricelib.nix
Normal file
@@ -0,0 +1,43 @@
|
||||
lib: let
|
||||
# takes in "ff0044" (no hash!) and returns { r = "ff", g = "00", b = "44" }
|
||||
slice-hex = hex: with builtins; { r = substring 0 2 hex; g = substring 2 2 hex; b = substring 4 2 hex; };
|
||||
|
||||
# takes in "44" and returns 64
|
||||
drune-to-255 = drune: with builtins; (rune-to-num (substring 0 1 drune)) * 16 + (rune-to-num (substring 1 1 drune));
|
||||
num-to-drune = num: "${num-to-rune (num / 16)}${num-to-rune (num - ((num / 16) * 16))}";
|
||||
|
||||
# takes in "D" and returns 13
|
||||
# inspiration from https://github.com/bertof/nix-rice
|
||||
rune-to-num = rune: let
|
||||
dict = { "0" = 0; "1" = 1; "2" = 2; "3" = 3; "4" = 4; "5" = 5; "6" = 6; "7" = 7; "8" = 8; "9" = 9; "A" = 10; "B" = 11; "C" = 12; "D" = 13; "E" = 14; "F" = 15; };
|
||||
in assert(builtins.hasAttr (lib.strings.toUpper rune) dict); builtins.getAttr (lib.strings.toUpper rune) dict;
|
||||
|
||||
# takes in 15 and returns "F"
|
||||
num-to-rune = num: let
|
||||
num-string = builtins.toString num;
|
||||
dict = { "0" = "0"; "1" = "1"; "2" = "2"; "3" = "3"; "4" = "4"; "5" = "5"; "6" = "6"; "7" = "7"; "8" = "8"; "9" = "9"; "10" = "A"; "11" = "B"; "12" = "C"; "13" = "D"; "14" = "E"; "15" = "F"; };
|
||||
in assert(builtins.hasAttr num-string dict); builtins.getAttr num-string dict;
|
||||
|
||||
# Keeps num between 0 and 255
|
||||
# Make sure to pass in an int not a float
|
||||
cap-255 = num: (if (num>255) then 255 else if (num<0) then 0 else num);
|
||||
nohash = hex: with builtins; assert((stringLength hex) == 7); substring 1 6 hex;
|
||||
in {
|
||||
## USEFUL FUNCTIONS
|
||||
# takes in a string like "#ff0044" and returns "ff0044" symbol
|
||||
inherit nohash;
|
||||
|
||||
# This takes in something like "#ff0044" and returns "255,0,64"
|
||||
hex-to-rgb-comma-string = hex: with (slice-hex (nohash hex)); with builtins; assert(isString hex); "${toString (drune-to-255 r)},${toString (drune-to-255 g)},${toString (drune-to-255 b)}";
|
||||
|
||||
# This is useful if you have a float (like a transparency value) and want a drune representation of it
|
||||
# So 0.0 -> "00" and 1.0 -> "FF"
|
||||
float-to-drune = f: with builtins; assert(isFloat f); "${num-to-rune (floor((255*f) / 16))}${num-to-rune (floor(255*f) - (floor((255*f) / 16) * 16))}";
|
||||
|
||||
# Takes in hex and a float. 0.5 is +50% brightness and (-0.5) is -50% brightness.
|
||||
# So "#ff0044": 0.3 -> "#ff0055"
|
||||
alter-luminace-hex = hex: amount: let
|
||||
color-num = with (slice-hex (nohash hex)); { r = drune-to-255 r; g = drune-to-255 g; b = drune-to-255 b; };
|
||||
alter = num: (num-to-drune (cap-255 (builtins.floor ((125 * amount) + (num * (1+amount))) )));
|
||||
in with color-num; "#${alter r}${alter g}${alter b}";
|
||||
}
|
||||
29
flake-modules/pkgs.nix
Normal file
29
flake-modules/pkgs.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
inputs: simple-pkgs: hyper: let
|
||||
args = {
|
||||
system = hyper.system;
|
||||
config = {
|
||||
allowUnfreePredicate = (import ./allowed.nix simple-pkgs).predicate;
|
||||
cudaSupport = hyper.nvidia.enable;
|
||||
cudaForwardCompat = hyper.nvidia.enable;
|
||||
};
|
||||
};
|
||||
overlays = [(final: prev: {
|
||||
unstable = import inputs.nixpkgs-unstable args;
|
||||
latest = import inputs.nixpkgs-latest args;
|
||||
pkgs-version = hyper.main-pkgs-version;
|
||||
})] ++ (if hyper.isServer then [
|
||||
inputs.copyparty.overlays.default
|
||||
] else []);
|
||||
in if !hyper.isNOD then
|
||||
(import inputs.nixpkgs (args // { inherit overlays; }))
|
||||
else (
|
||||
(import inputs.nixpkgs (args // { inherit overlays; })) // # normal as base
|
||||
(import inputs.nixpkgs24 (args // { # overwrite with old versions
|
||||
overlays = [(final: prev: {
|
||||
pkgs-version = "24.05";
|
||||
})];
|
||||
}))
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
pkgs: rec {
|
||||
pkgs: hyper: rec {
|
||||
|
||||
lib = import ../nxlib/ricelib.nix pkgs.lib;
|
||||
lib = import ./nxlib/ricelib.nix pkgs.lib;
|
||||
|
||||
transparency = 0.8;
|
||||
rounding = 3;
|
||||
@@ -36,17 +36,12 @@ pkgs: rec {
|
||||
red = "#dd4444"; # "#dd1111" "#00aa00";
|
||||
yellow = "#dddd44"; # "#dddd11" "#ffff00";
|
||||
};
|
||||
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json)).to_alter;
|
||||
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json)).base;
|
||||
facolor = builtins.mapAttrs alter-set (builtins.fromJSON (builtins.readFile ./colors.json))."${hyper.host}".to_alter;
|
||||
fbcolor = (builtins.fromJSON (builtins.readFile ./colors.json))."${hyper.host}".base;
|
||||
fcolor = facolor // fbcolor;
|
||||
xcolor = with ccolor; with fcolor; {
|
||||
# background = "#000000";
|
||||
# foreground = "#dddddd";
|
||||
# accent = blue;
|
||||
# secondary = cyan;
|
||||
# tertiary = magenta;
|
||||
# special = yellow;
|
||||
# weird = green;
|
||||
subtle = { darker = "#111111"; dark = "#444444"; base = "#777777"; bright = "#999999"; brighter = "#cccccc"; };
|
||||
positive = alter "#00dd00";
|
||||
negative = alter "#dd0000";
|
||||
@@ -61,8 +56,6 @@ pkgs: rec {
|
||||
regular-path = "${package}/share/fonts/truetype/NerdFonts/JetBrainsMonoNerdFont-Regular.ttf";
|
||||
};
|
||||
base = {
|
||||
# name = "NewComputerModern08";
|
||||
# package = pkgs.newcomputermodern;
|
||||
name = "Atkinson Hyperlegible";
|
||||
package = pkgs.atkinson-hyperlegible-next;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user