alejandra fmt and some cleanup

try-kitty
htran 2023-06-18 02:51:33 -07:00
parent e62e724c4d
commit 024e8530d0
13 changed files with 358 additions and 403 deletions

View File

@ -48,9 +48,9 @@
}, },
"crane": { "crane": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_4", "flake-compat": "flake-compat_3",
"flake-utils": "flake-utils_3", "flake-utils": "flake-utils_3",
"nixpkgs": "nixpkgs_3", "nixpkgs": "nixpkgs_2",
"rust-overlay": "rust-overlay" "rust-overlay": "rust-overlay"
}, },
"locked": { "locked": {
@ -69,7 +69,7 @@
}, },
"crane_2": { "crane_2": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_6", "flake-compat": "flake-compat_5",
"flake-utils": "flake-utils_7", "flake-utils": "flake-utils_7",
"nixpkgs": [ "nixpkgs": [
"nix-boost", "nix-boost",
@ -95,7 +95,7 @@
}, },
"crane_3": { "crane_3": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_7", "flake-compat": "flake-compat_6",
"flake-utils": "flake-utils_9", "flake-utils": "flake-utils_9",
"nixpkgs": [ "nixpkgs": [
"std", "std",
@ -118,26 +118,6 @@
"type": "github" "type": "github"
} }
}, },
"deploy-rs": {
"inputs": {
"flake-compat": "flake-compat",
"nixpkgs": "nixpkgs",
"utils": "utils"
},
"locked": {
"lastModified": 1686747123,
"narHash": "sha256-XUQK9kwHpTeilHoad7L4LjMCCyY13Oq383CoFADecRE=",
"owner": "serokell",
"repo": "deploy-rs",
"rev": "724463b5a94daa810abfc64a4f87faef4e00f984",
"type": "github"
},
"original": {
"owner": "serokell",
"repo": "deploy-rs",
"type": "github"
}
},
"devshell": { "devshell": {
"inputs": { "inputs": {
"nixpkgs": [ "nixpkgs": [
@ -250,7 +230,7 @@
}, },
"fenix": { "fenix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_9", "nixpkgs": "nixpkgs_8",
"rust-analyzer-src": "rust-analyzer-src" "rust-analyzer-src": "rust-analyzer-src"
}, },
"locked": { "locked": {
@ -269,7 +249,7 @@
}, },
"fenix_2": { "fenix_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_13", "nixpkgs": "nixpkgs_12",
"rust-analyzer-src": "rust-analyzer-src_2" "rust-analyzer-src": "rust-analyzer-src_2"
}, },
"locked": { "locked": {
@ -289,11 +269,11 @@
"flake-compat": { "flake-compat": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1668681692, "lastModified": 1673956053,
"narHash": "sha256-Ht91NGdewz8IQLtWZ9LCeNXMSXHUss+9COoqu6JLmXU=", "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra", "owner": "edolstra",
"repo": "flake-compat", "repo": "flake-compat",
"rev": "009399224d5e398d03b22badca40a37ac85412a1", "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -382,22 +362,6 @@
"type": "github" "type": "github"
} }
}, },
"flake-compat_7": {
"flake": false,
"locked": {
"lastModified": 1673956053,
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
"owner": "edolstra",
"repo": "flake-compat",
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
"type": "github"
},
"original": {
"owner": "edolstra",
"repo": "flake-compat",
"type": "github"
}
},
"flake-parts": { "flake-parts": {
"inputs": { "inputs": {
"nixpkgs-lib": [ "nixpkgs-lib": [
@ -645,8 +609,8 @@
}, },
"gomod2nix": { "gomod2nix": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_4", "nixpkgs": "nixpkgs_3",
"utils": "utils_2" "utils": "utils"
}, },
"locked": { "locked": {
"lastModified": 1677459247, "lastModified": 1677459247,
@ -680,7 +644,7 @@
}, },
"haumea": { "haumea": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_7" "nixpkgs": "nixpkgs_6"
}, },
"locked": { "locked": {
"lastModified": 1685133229, "lastModified": 1685133229,
@ -699,7 +663,7 @@
}, },
"haumea_2": { "haumea_2": {
"inputs": { "inputs": {
"nixpkgs": "nixpkgs_11" "nixpkgs": "nixpkgs_10"
}, },
"locked": { "locked": {
"lastModified": 1685133229, "lastModified": 1685133229,
@ -721,7 +685,7 @@
"flake-parts": "flake-parts_3", "flake-parts": "flake-parts_3",
"haskell-flake": "haskell-flake", "haskell-flake": "haskell-flake",
"nix-darwin": "nix-darwin", "nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs_2", "nixpkgs": "nixpkgs",
"pre-commit-hooks-nix": "pre-commit-hooks-nix" "pre-commit-hooks-nix": "pre-commit-hooks-nix"
}, },
"locked": { "locked": {
@ -919,7 +883,7 @@
}, },
"neovim-nightly-overlay": { "neovim-nightly-overlay": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_2", "flake-compat": "flake-compat",
"flake-parts": "flake-parts", "flake-parts": "flake-parts",
"hercules-ci-effects": "hercules-ci-effects", "hercules-ci-effects": "hercules-ci-effects",
"neovim-flake": "neovim-flake", "neovim-flake": "neovim-flake",
@ -946,10 +910,10 @@
"inputs": { "inputs": {
"cargo-leptos": "cargo-leptos", "cargo-leptos": "cargo-leptos",
"crane": "crane", "crane": "crane",
"flake-compat": "flake-compat_5", "flake-compat": "flake-compat_4",
"gnmic": "gnmic", "gnmic": "gnmic",
"gomod2nix": "gomod2nix", "gomod2nix": "gomod2nix",
"nixpkgs": "nixpkgs_5", "nixpkgs": "nixpkgs_4",
"poetry2nix": "poetry2nix", "poetry2nix": "poetry2nix",
"rust-overlay": "rust-overlay_2", "rust-overlay": "rust-overlay_2",
"std": "std" "std": "std"
@ -1075,27 +1039,27 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1671417167, "lastModified": 1678293141,
"narHash": "sha256-JkHam6WQOwZN1t2C2sbp1TqMv3TVRjzrdoejqfefwrM=", "narHash": "sha256-lLlQHaR0y+q6nd6kfpydPTGHhl1rS9nU9OQmztzKOYs=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "bb31220cca6d044baa6dc2715b07497a2a7c4bc7", "rev": "c90c4025bb6e0c4eaf438128a3b2640314b1c58d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixpkgs-unstable", "ref": "nixos-unstable",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
}, },
"nixpkgs-latest": { "nixpkgs-latest": {
"locked": { "locked": {
"lastModified": 1687069865, "lastModified": 1687079694,
"narHash": "sha256-+JcVIxijVccnSnbGl8INEKkRo3GzHZ7iBm4EZ2MC1O8=", "narHash": "sha256-x3YujFqPUWj9TvuFEZthr++xzzOmMYPaoSDSuzqUDnc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "5630d719e9e90f66f9eaa4a2d00b303dbee9f4c3", "rev": "30c0a2f73819cc71ff5ff270f6ae4aaafaf954ea",
"type": "github" "type": "github"
}, },
"original": { "original": {
@ -1139,22 +1103,6 @@
} }
}, },
"nixpkgs_10": { "nixpkgs_10": {
"locked": {
"lastModified": 1686960236,
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "04af42f3b31dba0ef742d254456dc4c14eedac86",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1681001314, "lastModified": 1681001314,
"narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=",
@ -1169,7 +1117,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_12": { "nixpkgs_11": {
"locked": { "locked": {
"lastModified": 1675940568, "lastModified": 1675940568,
"narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=",
@ -1185,7 +1133,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_13": { "nixpkgs_12": {
"locked": { "locked": {
"lastModified": 1677063315, "lastModified": 1677063315,
"narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=",
@ -1202,22 +1150,6 @@
} }
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": {
"lastModified": 1678293141,
"narHash": "sha256-lLlQHaR0y+q6nd6kfpydPTGHhl1rS9nU9OQmztzKOYs=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "c90c4025bb6e0c4eaf438128a3b2640314b1c58d",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1685714850, "lastModified": 1685714850,
"narHash": "sha256-OcvbIJq4CGwwFr9m7M/SQcDPZ64hhR4t77oZgEeh7ZY=", "narHash": "sha256-OcvbIJq4CGwwFr9m7M/SQcDPZ64hhR4t77oZgEeh7ZY=",
@ -1233,7 +1165,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_4": { "nixpkgs_3": {
"locked": { "locked": {
"lastModified": 1658285632, "lastModified": 1658285632,
"narHash": "sha256-zRS5S/hoeDGUbO+L95wXG9vJNwsSYcl93XiD0HQBXLk=", "narHash": "sha256-zRS5S/hoeDGUbO+L95wXG9vJNwsSYcl93XiD0HQBXLk=",
@ -1249,7 +1181,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_5": { "nixpkgs_4": {
"locked": { "locked": {
"lastModified": 1686960236, "lastModified": 1686960236,
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=", "narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=",
@ -1265,7 +1197,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_6": { "nixpkgs_5": {
"locked": { "locked": {
"lastModified": 1681358109, "lastModified": 1681358109,
"narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=", "narHash": "sha256-eKyxW4OohHQx9Urxi7TQlFBTDWII+F+x2hklDOQPB50=",
@ -1281,7 +1213,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_7": { "nixpkgs_6": {
"locked": { "locked": {
"lastModified": 1681001314, "lastModified": 1681001314,
"narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=", "narHash": "sha256-5sDnCLdrKZqxLPK4KA8+f4A3YKO/u6ElpMILvX0g72c=",
@ -1296,7 +1228,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_8": { "nixpkgs_7": {
"locked": { "locked": {
"lastModified": 1675940568, "lastModified": 1675940568,
"narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=", "narHash": "sha256-epG6pOT9V0kS+FUqd7R6/CWkgnZx2DMT5Veqo+y6G3c=",
@ -1312,7 +1244,7 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_9": { "nixpkgs_8": {
"locked": { "locked": {
"lastModified": 1677063315, "lastModified": 1677063315,
"narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=", "narHash": "sha256-qiB4ajTeAOVnVSAwCNEEkoybrAlA+cpeiBxLobHndE8=",
@ -1328,6 +1260,22 @@
"type": "github" "type": "github"
} }
}, },
"nixpkgs_9": {
"locked": {
"lastModified": 1686960236,
"narHash": "sha256-AYCC9rXNLpUWzD9hm+askOfpliLEC9kwAo7ITJc4HIw=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "04af42f3b31dba0ef742d254456dc4c14eedac86",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"nosys": { "nosys": {
"locked": { "locked": {
"lastModified": 1668010795, "lastModified": 1668010795,
@ -1591,7 +1539,7 @@
}, },
"pre-commit-hooks-nix": { "pre-commit-hooks-nix": {
"inputs": { "inputs": {
"flake-compat": "flake-compat_3", "flake-compat": "flake-compat_2",
"flake-utils": "flake-utils", "flake-utils": "flake-utils",
"gitignore": "gitignore", "gitignore": "gitignore",
"nixpkgs": [ "nixpkgs": [
@ -1618,13 +1566,12 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"deploy-rs": "deploy-rs",
"home-manager": "home-manager", "home-manager": "home-manager",
"kpcli-py": "kpcli-py", "kpcli-py": "kpcli-py",
"neovim-nightly-overlay": "neovim-nightly-overlay", "neovim-nightly-overlay": "neovim-nightly-overlay",
"nix-boost": "nix-boost", "nix-boost": "nix-boost",
"nix-index-database": "nix-index-database", "nix-index-database": "nix-index-database",
"nixpkgs": "nixpkgs_10", "nixpkgs": "nixpkgs_9",
"nixpkgs-latest": "nixpkgs-latest", "nixpkgs-latest": "nixpkgs-latest",
"std": "std_2" "std": "std_2"
} }
@ -1693,7 +1640,7 @@
"rust-overlay_2": { "rust-overlay_2": {
"inputs": { "inputs": {
"flake-utils": "flake-utils_5", "flake-utils": "flake-utils_5",
"nixpkgs": "nixpkgs_6" "nixpkgs": "nixpkgs_5"
}, },
"locked": { "locked": {
"lastModified": 1687055571, "lastModified": 1687055571,
@ -1794,7 +1741,7 @@
], ],
"n2c": "n2c", "n2c": "n2c",
"nixago": "nixago", "nixago": "nixago",
"nixpkgs": "nixpkgs_8", "nixpkgs": "nixpkgs_7",
"paisano": "paisano", "paisano": "paisano",
"paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor", "paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor",
"paisano-tui": "paisano-tui", "paisano-tui": "paisano-tui",
@ -1836,7 +1783,7 @@
], ],
"n2c": "n2c_2", "n2c": "n2c_2",
"nixago": "nixago_2", "nixago": "nixago_2",
"nixpkgs": "nixpkgs_12", "nixpkgs": "nixpkgs_11",
"paisano": "paisano_2", "paisano": "paisano_2",
"paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor_2", "paisano-mdbook-preprocessor": "paisano-mdbook-preprocessor_2",
"paisano-tui": "paisano-tui_2", "paisano-tui": "paisano-tui_2",
@ -1932,21 +1879,6 @@
} }
}, },
"utils": { "utils": {
"locked": {
"lastModified": 1667395993,
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"utils_2": {
"locked": { "locked": {
"lastModified": 1653893745, "lastModified": 1653893745,
"narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=", "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",

View File

@ -8,7 +8,7 @@
inputs = { inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
nixpkgs-latest.url = "github:nixos/nixpkgs"; nixpkgs-latest.url = "github:nixos/nixpkgs";
deploy-rs.url = "github:serokell/deploy-rs"; # deploy-rs.url = "github:serokell/deploy-rs";
std.url = "github:divnix/std"; std.url = "github:divnix/std";
home-manager = { home-manager = {
url = "github:nix-community/home-manager"; url = "github:nix-community/home-manager";
@ -33,7 +33,11 @@
}; };
}; };
outputs = {self, std, ...} @ inputs: outputs = {
self,
std,
...
} @ inputs:
std.growOn std.growOn
{ {
# boilerplate # boilerplate
@ -50,7 +54,7 @@
(devshells "userShells") (devshells "userShells")
(functions "home-profiles") (functions "home-profiles")
(functions "home-modules") (functions "home-modules")
(anything "home-configs") (anything "home-configs")
(installables "packages") (installables "packages")
(anything "lib") (anything "lib")
]; ];

View File

@ -1,4 +1,5 @@
# TODO: vim-plug and Mason supports laziness. Probably worth it to explore incremental dependencies based on the project TODO: just install these things, then symlink to mason's bin directory # TODO: vim-plug and Mason supports laziness. Probably worth it to explore incremental dependencies based on the project
# TODO: just install these things, then symlink to mason's bin directory
# #
# One thing to consider, though, /nix/store of `nix-shell` or `nix-develop` # One thing to consider, though, /nix/store of `nix-shell` or `nix-develop`
# might be different from `home-manager`'s (~/.nix_profile/bin/jq) # might be different from `home-manager`'s (~/.nix_profile/bin/jq)
@ -15,14 +16,6 @@
# see: :/--suffix.*PATH # see: :/--suffix.*PATH
# there should be mentions of additional packages # there should be mentions of additional packages
my_neovim = pkgs.neovim-unwrapped; my_neovim = pkgs.neovim-unwrapped;
rust_pkgs =
pkgs.rust-bin.selectLatestNightlyWith
(
toolchain:
toolchain.default.override {
extensions = ["rust-src" "rust-analyzer" "rust-docs" "rustfmt" "clippy" "miri"];
}
);
nvim_pkgs = nvim_pkgs =
[ [
# pkgs.gccStdenv # pkgs.gccStdenv

View File

@ -70,7 +70,7 @@ in {
settings = let settings = let
native = builtins.fromTOML (builtins.readFile "${proj_root.config.path}/starship/starship.toml"); native = builtins.fromTOML (builtins.readFile "${proj_root.config.path}/starship/starship.toml");
patch-nix = pkgs.lib.recursiveUpdate native { patch-nix = pkgs.lib.recursiveUpdate native {
# WARNING: home-manager fails on here for some reason. Likely not at the # WARNING: home-manager fails on here for some reason. Likely not at the
# validation phase (type-checking), but at evaluation phaase (stringify) # validation phase (type-checking), but at evaluation phaase (stringify)
# c.commands = [ # c.commands = [
# ["nix" "run" "nixpkgs#clang" "--" "--version"] # ["nix" "run" "nixpkgs#clang" "--" "--version"]

View File

@ -20,5 +20,4 @@ in {
}); });
}); });
}; };
} }

View File

@ -8,18 +8,23 @@
pkgs = inputs.nixpkgs; pkgs = inputs.nixpkgs;
# hm is derivation that is compatible with homeConfigurations # hm is derivation that is compatible with homeConfigurations
home-config = {supported_systems, hm, tested_systems ? []}: home-config = {
hm // { supported_systems,
_supported_systems = supported_systems; hm,
_tested_systems = tested_systems; tested_systems ? [],
}; }:
hm
// {
_supported_systems = supported_systems;
_tested_systems = tested_systems;
};
base-modules = [ base-modules = [
home-profiles.alacritty home-profiles.alacritty
# home-profiles.git # home-profiles.git
home-profiles.ssh home-profiles.ssh
home-profiles.shells home-profiles.shells
({config.programs.home-manager.enable = true;}) {config.programs.home-manager.enable = true;}
home-profiles.nix-index home-profiles.nix-index
home-profiles.neovim home-profiles.neovim
]; ];
@ -29,19 +34,21 @@ in {
tested_systems = ["aarch64-darwin"]; tested_systems = ["aarch64-darwin"];
hm = home-manager.lib.homeManagerConfiguration { hm = home-manager.lib.homeManagerConfiguration {
inherit pkgs; inherit pkgs;
modules = base-modules ++ [ modules =
home-profiles.nerd_font_module base-modules
home-profiles.git-htran ++ [
home-profiles.dev-packages home-profiles.nerd_font_module
home-profiles.zk home-profiles.git-htran
home-modules.darwin-spotlight home-profiles.dev-packages
home-profiles.zk
home-modules.darwin-spotlight
({ {
home.username = "htran"; home.username = "htran";
home.homeDirectory = "/Users/htran"; home.homeDirectory = "/Users/htran";
home.stateVersion = "23.11"; home.stateVersion = "23.11";
}) }
]; ];
}; };
}; };
} }

View File

@ -1,221 +1,238 @@
# This is an interface for home-profiles and should not contain opinionated # This is an interface for home-profiles and should not contain opinionated
# configurations. It should provide alternative configurations, aggregates # configurations. It should provide alternative configurations, aggregates
# or new configurations # or new configurations
_imports@{ inputs, cell }: _imports @ {
let inputs,
cell,
}: let
namespace = "repo"; namespace = "repo";
imports = _imports // { inherit namespace; }; imports = _imports // {inherit namespace;};
in in {
{ git = {
git = { config, lib, ... }: config,
let lib,
cfg = config."${namespace}".git; ...
baseAliases = { }: let
a = "add"; cfg = config."${namespace}".git;
c = "commit"; baseAliases = {
ca = "commit --amend"; a = "add";
cm = "commit -m"; c = "commit";
lol = "log --graph --decorate --pretty=oneline --abbrev-commit"; ca = "commit --amend";
lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all"; cm = "commit -m";
sts = "status"; lol = "log --graph --decorate --pretty=oneline --abbrev-commit";
co = "checkout"; lola = "log --graph --decorate --pretty=oneline --abbrev-commit --all";
b = "branch"; sts = "status";
co = "checkout";
b = "branch";
};
default-user = "Pegasust";
default-email = "pegasucksgg@gmail.com";
in {
options."${namespace}".git = {
aliases = lib.mkOption {
type = lib.types.attrs;
default = {};
example = baseAliases;
description = ''
Additional git aliases. This settings comes with base configuration.
Redeclaring the base config will override the values.
''; # TODO: Add baseAliases as string here (builtins.toString doesn't work)
}; };
default-user = "Pegasust"; name = lib.mkOption {
default-email = "pegasucksgg@gmail.com"; type = lib.types.str;
in default = default-user;
{ description = "Git username that appears on commits";
options."${namespace}".git = { example = default-user;
aliases = lib.mkOption {
type = lib.types.attrs;
default = { };
example = baseAliases;
description = ''
Additional git aliases. This settings comes with base configuration.
Redeclaring the base config will override the values.
''; # TODO: Add baseAliases as string here (builtins.toString doesn't work)
};
name = lib.mkOption {
type = lib.types.str;
default = default-user;
description = "Git username that appears on commits";
example = default-user;
};
email = lib.mkOption {
type = lib.types.str;
default = default-email;
example = default-email;
description = "Git email that appears on commits";
};
ignores = lib.mkOption {
type = lib.types.listOf lib.types.str;
default = [
".vscode" # vscode settings
".direnv" # .envrc cached outputs
".DS_Store" # MacOS users, amrite
];
description = ''
.gitignore patterns that are applied in every "${namespace}"sitory.
This is useful for IDE-specific settings.
'';
example = [ ".direnv" "node_modules" ];
};
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enables git
'';
example = false;
};
credentialCacheTimeoutSeconds = lib.mkOption {
type = lib.types.int;
default = 3000;
description = "Credential cache (in-memory store) for Git in seconds.";
example = 3000;
};
}; };
# TODO : anyway to override configuration? email = lib.mkOption {
# idk wtf I was thinking about. there is no context in this question type = lib.types.str;
config.programs.git = { default = default-email;
inherit (cfg) enable ignores; example = default-email;
userName = cfg.name; description = "Git email that appears on commits";
userEmail = cfg.email; };
aliases = baseAliases // cfg.aliases; ignores = lib.mkOption {
extraConfig = { type = lib.types.listOf lib.types.str;
# TODO: in the case of darwin, git always open up the built-in keychain. default = [
# possibly something we can't really control since we don't have access to `nix-darwin` ".vscode" # vscode settings
credential.helper = "cache --timeout=${builtins.toString cfg.credentialCacheTimeoutSeconds}"; ".direnv" # .envrc cached outputs
}; ".DS_Store" # MacOS users, amrite
lfs.enable = true; ];
description = ''
.gitignore patterns that are applied in every "${namespace}"sitory.
This is useful for IDE-specific settings.
'';
example = [".direnv" "node_modules"];
};
enable = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Enables git
'';
example = false;
};
credentialCacheTimeoutSeconds = lib.mkOption {
type = lib.types.int;
default = 3000;
description = "Credential cache (in-memory store) for Git in seconds.";
example = 3000;
}; };
}; };
# TODO : anyway to override configuration?
# idk wtf I was thinking about. there is no context in this question
config.programs.git = {
inherit (cfg) enable ignores;
userName = cfg.name;
userEmail = cfg.email;
aliases = baseAliases // cfg.aliases;
extraConfig = {
# TODO: in the case of darwin, git always open up the built-in keychain.
# possibly something we can't really control since we don't have access to `nix-darwin`
credential.helper = "cache --timeout=${builtins.toString cfg.credentialCacheTimeoutSeconds}";
};
lfs.enable = true;
};
};
alacritty = { config, lib, ... }: alacritty = {
let config,
inherit (inputs.cells.repo.lib) fromYAML; lib,
cfg = config."${namespace}".alacritty; ...
in }: let
{ inherit (inputs.cells.repo.lib) fromYAML;
options."${namespace}".alacritty = { cfg = config."${namespace}".alacritty;
font.family = lib.mkOption { in {
type = lib.types.nullOr lib.types.singleLineStr; options."${namespace}".alacritty = {
default = null; font.family = lib.mkOption {
description = '' type = lib.types.nullOr lib.types.singleLineStr;
The font family for Alacritty default = null;
''; description = ''
example = "DroidSansMono NF"; The font family for Alacritty
}; '';
font.size = lib.mkOption { example = "DroidSansMono NF";
type = lib.types.nullOr lib.types.number;
default = 11.0;
description = ''
The default font size for Alacritty. This is probably measured in px.
'';
example = 7.0;
};
enable = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
Enables alacritty
'';
example = true;
};
config-path = lib.mkOption {
type = lib.types.path;
description = "Path to alacritty yaml";
default = null;
example = "./config/alacritty.yaml";
};
}; };
config.programs.alacritty = { font.size = lib.mkOption {
enable = cfg.enable; type = lib.types.nullOr lib.types.number;
settings = default = 11.0;
let description = ''
actualConfig = The default font size for Alacritty. This is probably measured in px.
if cfg.config-path != null then fromYAML (builtins.readFile cfg.config-path) else { }; '';
in example = 7.0;
lib.recursiveUpdate actualConfig { };
font.normal.family = lib.mkIf (cfg.font.family != null) cfg.font.family; enable = lib.mkOption {
font.size = lib.mkIf (cfg.font.size != null) cfg.font.size; type = lib.types.bool;
}; default = false;
description = ''
Enables alacritty
'';
example = true;
};
config-path = lib.mkOption {
type = lib.types.path;
description = "Path to alacritty yaml";
default = null;
example = "./config/alacritty.yaml";
}; };
}; };
config.programs.alacritty = {
enable = cfg.enable;
settings = let
actualConfig =
if cfg.config-path != null
then fromYAML (builtins.readFile cfg.config-path)
else {};
in
lib.recursiveUpdate actualConfig {
font.normal.family = lib.mkIf (cfg.font.family != null) cfg.font.family;
font.size = lib.mkIf (cfg.font.size != null) cfg.font.size;
};
};
};
# TODO: chromium is not really supported on darwin # TODO: chromium is not really supported on darwin
private_chromium = { config, pkgs, lib, ... }: private_chromium = {
let config,
cfg = config."${namespace}".private_chromium; pkgs,
in lib,
{ ...
options."${namespace}".private_chromium = { }: let
enable = lib.mkOption { cfg = config."${namespace}".private_chromium;
type = lib.types.bool; in {
default = true; options."${namespace}".private_chromium = {
example = false; enable = lib.mkOption {
description = '' type = lib.types.bool;
Enable extremely lightweight chromium with vimium plugin default = true;
''; example = false;
}; description = ''
}; Enable extremely lightweight chromium with vimium plugin
config = lib.mkIf (cfg.enable) { '';
# home.packages = [pkgs.ungoogled-chromium];
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
extensions =
let
# TODO: how about a chrome extension registry?
mkChromiumExtForVersion = browserVersion: { id, sha256, extVersion, ... }:
{
inherit id;
crxPath = builtins.fetchurl {
url = "https://clients2.google.com/service/update2/crx" +
"?response=redirect" +
"&acceptformat=crx2,crx3" +
"&prodversion=${browserVersion}" +
"&x=id%3D${id}%26installsource%3Dondemand%26uc";
name = "${id}.crx";
inherit sha256;
};
version = extVersion;
};
mkChromiumExt = mkChromiumExtForVersion (lib.versions.major pkgs.ungoogled-chromium.version);
in
[
# vimium
(mkChromiumExt {
id = "dbepggeogbaibhgnhhndojpepiihcmeb";
sha256 = "00qhbs41gx71q026xaflgwzzridfw1sx3i9yah45cyawv8q7ziic";
extVersion = "1.67.4";
})
];
};
}; };
}; };
config = lib.mkIf (cfg.enable) {
# home.packages = [pkgs.ungoogled-chromium];
programs.chromium = {
enable = true;
package = pkgs.ungoogled-chromium;
extensions = let
# TODO: how about a chrome extension registry?
mkChromiumExtForVersion = browserVersion: {
id,
sha256,
extVersion,
...
}: {
inherit id;
crxPath = builtins.fetchurl {
url =
"https://clients2.google.com/service/update2/crx"
+ "?response=redirect"
+ "&acceptformat=crx2,crx3"
+ "&prodversion=${browserVersion}"
+ "&x=id%3D${id}%26installsource%3Dondemand%26uc";
name = "${id}.crx";
inherit sha256;
};
version = extVersion;
};
mkChromiumExt = mkChromiumExtForVersion (lib.versions.major pkgs.ungoogled-chromium.version);
in [
# vimium
(mkChromiumExt {
id = "dbepggeogbaibhgnhhndojpepiihcmeb";
sha256 = "00qhbs41gx71q026xaflgwzzridfw1sx3i9yah45cyawv8q7ziic";
extVersion = "1.67.4";
})
];
};
};
};
darwin-spotlight = { lib, pkgs, config, ... }: { darwin-spotlight = {
lib,
pkgs,
config,
...
}: {
# This patch exists since Darwin's search bar requires solid apps and not # This patch exists since Darwin's search bar requires solid apps and not
# symlinked # symlinked
# TODO: QA # TODO: QA
# - [x] works for base case # - [x] works for base case
# - [x] works for repeated case # - [x] works for repeated case
# - [ ] works after base case, then removed # - [ ] works after base case, then removed
# - [ ] works for repeated case, then removed # - [ ] works for repeated case, then removed
# Copy GUI apps to "~/Applications/Home Manager Apps" # Copy GUI apps to "~/Applications/Home Manager Apps"
# Based on this comment: https://github.com/nix-community/home-manager/issues/1341#issuecomment-778820334 # Based on this comment: https://github.com/nix-community/home-manager/issues/1341#issuecomment-778820334
home.activation.patch-spotlight = home.activation.patch-spotlight =
if pkgs.stdenv.isDarwin then if pkgs.stdenv.isDarwin
let then let
apps = pkgs.buildEnv { apps = pkgs.buildEnv {
name = "home-manager-applications"; name = "home-manager-applications";
paths = config.home.packages; paths = config.home.packages;
pathsToLink = "/Applications"; pathsToLink = "/Applications";
}; };
in in
lib.hm.dag.entryAfter [ "linkGeneration" ] '' lib.hm.dag.entryAfter ["linkGeneration"] ''
# Install MacOS applications to the user environment. # Install MacOS applications to the user environment.
HM_APPS="$HOME/Applications/Home Manager Apps" HM_APPS="$HOME/Applications/Home Manager Apps"
# Reset current state # Reset current state
@ -229,22 +246,19 @@ in
$DRY_RUN_CMD cp --archive -H --dereference ${apps}/Applications/* "$HM_APPS" $DRY_RUN_CMD cp --archive -H --dereference ${apps}/Applications/* "$HM_APPS"
$DRY_RUN_CMD chmod +w -R "$HM_APPS" $DRY_RUN_CMD chmod +w -R "$HM_APPS"
'' ''
else else "";
"";
# We need this in case upstream home-manager changes the behavior of linking # We need this in case upstream home-manager changes the behavior of linking
# applications # applications
home.activation.remove-patch-spotlight = home.activation.remove-patch-spotlight =
if pkgs.stdenv.isDarwin then if pkgs.stdenv.isDarwin
lib.hm.dag.entryBefore [ "checkLinkTargets" ] '' then
lib.hm.dag.entryBefore ["checkLinkTargets"] ''
HM_APPS="$HOME/Applications/Home Manager Apps" HM_APPS="$HOME/Applications/Home Manager Apps"
# Reset current state # Reset current state
if [ -e "$HM_APPS" ]; then if [ -e "$HM_APPS" ]; then
$DRY_RUN_CMD mv "$HM_APPS" "$HM_APPS.$(date +%Y%m%d%H%M%S)" $DRY_RUN_CMD mv "$HM_APPS" "$HM_APPS.$(date +%Y%m%d%H%M%S)"
fi fi
'' ''
else else "";
"";
}; };
} }

View File

@ -163,7 +163,9 @@ in {
}; };
}; };
dev-packages = let pkgs = inputs.nixpkgs; in { dev-packages = let
pkgs = inputs.nixpkgs;
in {
programs.jq.enable = true; programs.jq.enable = true;
home.packages = [ home.packages = [
pkgs.htop pkgs.htop

View File

@ -28,7 +28,7 @@
pkgs.zk # Zettelkasten (limited support) pkgs.zk # Zettelkasten (limited support)
pkgs.fd # Required by a Telescope plugin (?) pkgs.fd # Required by a Telescope plugin (?)
pkgs.stdenv.cc.cc.lib pkgs.stdenv.cc.cc.lib
pkgs.nil # oxalica's better nix language server pkgs.nil # oxalica's better nix language server
inputs.nix-boost.packages."${system}".rust4cargo inputs.nix-boost.packages."${system}".rust4cargo
pkgs.nickel pkgs.nickel
pkgs.nls pkgs.nls

View File

@ -69,7 +69,7 @@ in {
settings = let settings = let
native = builtins.fromTOML (builtins.readFile "${inputs.self}/native_configs/starship/starship.toml"); native = builtins.fromTOML (builtins.readFile "${inputs.self}/native_configs/starship/starship.toml");
patch-nix = pkgs.lib.recursiveUpdate native { patch-nix = pkgs.lib.recursiveUpdate native {
# WARNING: home-manager fails on here for some reason. Likely not at the # WARNING: home-manager fails on here for some reason. Likely not at the
# validation phase (type-checking), but at evaluation phaase (stringify) # validation phase (type-checking), but at evaluation phaase (stringify)
# I'm thinking when `settings` are evaluated, it has some sort of # I'm thinking when `settings` are evaluated, it has some sort of
# recursive processing before it gets turned into a toml # recursive processing before it gets turned into a toml

View File

@ -1,16 +1,20 @@
{ inputs, cell }: {
let inputs,
cell,
}: let
namespace = "repo"; # ignore: unused namespace = "repo"; # ignore: unused
yamlToJsonDrv = pkgs: yamlContent: outputPath: (pkgs.runCommand yamlToJsonDrv = pkgs: yamlContent: outputPath: (pkgs.runCommand
outputPath outputPath
{ inherit yamlContent; nativeBuildInputs = [ pkgs.yq ]; } {
inherit yamlContent;
nativeBuildInputs = [pkgs.yq];
}
# run yq which outputs '.' (no filter) on file at yamlPath # run yq which outputs '.' (no filter) on file at yamlPath
# note that $out is passed onto the bash/sh script for execution # note that $out is passed onto the bash/sh script for execution
'' ''
echo "$yamlContent" | yq >$out echo "$yamlContent" | yq >$out
''); '');
in in {
{
fromYAML = yamlContent: builtins.fromJSON (builtins.readFile (yamlToJsonDrv inputs.nixpkgs yamlContent "fromYaml.json")); fromYAML = yamlContent: builtins.fromJSON (builtins.readFile (yamlToJsonDrv inputs.nixpkgs yamlContent "fromYaml.json"));
} }

View File

@ -1 +0,0 @@

View File

@ -15,46 +15,47 @@
flake-utils, flake-utils,
nixpkgs, nixpkgs,
}: }:
with flake-utils; lib.eachSystem lib.defaultSystems (sys: let with flake-utils;
overlays = [turbo.overlay]; lib.eachSystem lib.defaultSystems (sys: let
# pkgs is our tweaked nixpkgs overlays = [turbo.overlay];
pkgs = import nixpkgs { # pkgs is our tweaked nixpkgs
system = sys; pkgs = import nixpkgs {
overlays = overlays; system = sys;
}; overlays = overlays;
shellMsg = '' };
echo "Hello from nix ${sys}" shellMsg = ''
echo "Local development may use our remote planetscale database (pscale login && pnpm dev:infra; pnpm dev)" echo "Hello from nix ${sys}"
echo "Or from the specified docker-compose.yml (pnpm dev:local_infra && pnpm dev)" echo "Local development may use our remote planetscale database (pscale login && pnpm dev:infra; pnpm dev)"
echo "See more on CONTRIBUTING.md" echo "Or from the specified docker-compose.yml (pnpm dev:local_infra && pnpm dev)"
''; echo "See more on CONTRIBUTING.md"
in { '';
devShell = pkgs.mkShell { in {
nativeBuildInputs = [pkgs.bashInteractive]; devShell = pkgs.mkShell {
buildInputs = [ nativeBuildInputs = [pkgs.bashInteractive];
pkgs.nodejs-18_x buildInputs = [
pkgs.nodePackages.pnpm pkgs.nodejs-18_x
pkgs.nodePackages.prisma pkgs.nodePackages.pnpm
pkgs.prisma-engines pkgs.nodePackages.prisma
pkgs.turbo pkgs.prisma-engines
# pkgs.turbo-tooling pkgs.turbo
pkgs.jq # pkgs.turbo-tooling
pkgs.pscale pkgs.jq
pkgs.act # Github workflow pkgs.pscale
]; pkgs.act # Github workflow
shellHook = ];
# https://github.com/prisma/prisma/issues/3026#issuecomment-927258138 shellHook =
# nix-direnv is required (impure build?) https://github.com/nix-community/nix-direnv # https://github.com/prisma/prisma/issues/3026#issuecomment-927258138
'' # nix-direnv is required (impure build?) https://github.com/nix-community/nix-direnv
export PRISMA_MIGRATION_ENGINE_BINARY="${pkgs.prisma-engines}/bin/migration-engine" ''
export PRISMA_QUERY_ENGINE_BINARY="${pkgs.prisma-engines}/bin/query-engine" export PRISMA_MIGRATION_ENGINE_BINARY="${pkgs.prisma-engines}/bin/migration-engine"
export PRISMA_QUERY_ENGINE_LIBRARY="${pkgs.prisma-engines}/lib/libquery_engine.node" export PRISMA_QUERY_ENGINE_BINARY="${pkgs.prisma-engines}/bin/query-engine"
export PRISMA_INTROSPECTION_ENGINE_BINARY="${pkgs.prisma-engines}/bin/introspection-engine" export PRISMA_QUERY_ENGINE_LIBRARY="${pkgs.prisma-engines}/lib/libquery_engine.node"
export PRISMA_FMT_BINARY="${pkgs.prisma-engines}/bin/prisma-fmt" export PRISMA_INTROSPECTION_ENGINE_BINARY="${pkgs.prisma-engines}/bin/introspection-engine"
export TURBO_BINARY_PATH="${pkgs.turbo}/bin/turbo" export PRISMA_FMT_BINARY="${pkgs.prisma-engines}/bin/prisma-fmt"
pnpm install export TURBO_BINARY_PATH="${pkgs.turbo}/bin/turbo"
'' pnpm install
+ shellMsg; ''
}; + shellMsg;
}); };
});
} }