77 lines
2.0 KiB
Nix
77 lines
2.0 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}: let
|
|
# readScriptsRecursively = dir: let
|
|
# entries = builtins.readDir dir; # This gives an attrset of filenames -> { "type": "regular"|"directory", ...}
|
|
# names = builtins.attrNames entries;
|
|
# in
|
|
# # We convert all items to a list of name/value pairs; then flatten them
|
|
# lib.attrsets.listToAttrs (lib.concatMap (
|
|
# entry: let
|
|
# fullPath = "${dir}/${entry}";
|
|
# entryInfo = entries.${entry}; # e.g., {type="regular"|"directory",size=...}
|
|
# in
|
|
# if entryInfo.type == "directory"
|
|
# then
|
|
# # Recursively read sub-directory
|
|
# builtins.attrValues (readScriptsRecursively fullPath)
|
|
# else
|
|
# # For a file, produce an attribute set item
|
|
# [
|
|
# {
|
|
# name = entry;
|
|
# value = fullPath;
|
|
# }
|
|
# ]
|
|
# )
|
|
# names);
|
|
# scripts = readScriptsRecursively ./scripts;
|
|
# scriptDerivations =
|
|
# lib.attrsets.mapAttrs (
|
|
# scriptName: scriptPath:
|
|
# pkgs.writeShellApplication {
|
|
# name = scriptName;
|
|
# # Pick whatever runtime dependencies you need
|
|
# runtimeInputs = with pkgs; [
|
|
# # Example: netcat, bashInteractive, curl, etc.
|
|
# netcat
|
|
# ];
|
|
# # The text of the shell script is read directly from the file
|
|
# text = builtins.readFile scriptPath;
|
|
# }
|
|
# )
|
|
# scripts;
|
|
in {
|
|
# home.packages = builtins.attrValues scriptDerivations;
|
|
|
|
home.username = "synchronous";
|
|
home.homeDirectory = "/home/synchronous";
|
|
imports = [
|
|
./programs/programs.nix
|
|
./services/services.nix
|
|
./wallpapers/default.nix
|
|
./fonts/default.nix # need to manage fonts in two places becuase life sucks nix sucks
|
|
];
|
|
|
|
home.activation.copyScripts = lib.mkAfter ''
|
|
mkdir -p ~/.scripts
|
|
cp ${./nixos-rebuild.sh} ~/.scripts/
|
|
chmod -R u+w ~/.scripts/
|
|
'';
|
|
|
|
home.stateVersion = "24.11"; # Please read the comment before changing.
|
|
|
|
# home.packages = with pkgs; [xrandr procps polybar bspwm sxhkd polybar-pulseaudio-control bluez];
|
|
|
|
home.sessionVariables = {
|
|
EDITOR = "nvim";
|
|
HOME = "/home/synchronous";
|
|
XDG_CACHE_HOME = "$HOME/.cache";
|
|
};
|
|
|
|
programs.home-manager.enable = true;
|
|
}
|