configured flake for my home-manager config and two nixos configs

This commit is contained in:
Aria Nolan 2023-10-20 19:41:27 -04:00
parent dbe21030a6
commit f697fd90fe
4 changed files with 130 additions and 0 deletions

3
.gitattributes vendored Normal file
View file

@ -0,0 +1,3 @@
# secretfile filter=git-crypt diff=git-crypt
# *.key filter=git-crypt diff=git-crypt
secrets/** filter=git-crypt diff=git-crypt

63
flake.nix Normal file
View file

@ -0,0 +1,63 @@
{
description = "tacocat's nix configuration";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
helix = {
url = "github:helix-editor/helix/master";
inputs.nixpkgs.follows = "nixpkgs";
};
home-manager = {
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
};
# pass in the urls defined above
# the @ syntax stores the arguments in the inputs variable
outputs = inputs @ {
self,
nixpkgs,
home-manager,
}: let
system = "x86_64-linux";
pkgs = inputs.nixpkgs.legacyPackages.${system};
in {
# nixosConfigurations: define options for different systems
# desktop
nixosConfigurations."BICEP" = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/BICEP/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.users."tacocat" = ./users/tacocat/home.nix;
}
];
};
# laptop
nixosConfigurations."JWST" = nixpkgs.lib.nixosSystem {
inherit system;
modules = [
./hosts/JWST/configuration.nix
home-manager.nixosModules.home-manager
{
home-manager.useGlobalPkgs = true;
home-manager.users."tacocat" = ./users/tacocat/home.nix;
}
];
};
#homeConfigurations: define options for different users
homeConfigurations."tacocat" = inputs.home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
];
};
#outputs home-manager activation package for use on non-NixOS, i think?
packages.${system}."tacocat" = self.homeConfigurations."tacocat".activationPackage;
};
}

BIN
secrets/secret.txt Normal file

Binary file not shown.

64
users/tacocat/home.nix Normal file
View file

@ -0,0 +1,64 @@
{pkgs, ...}: {
home = {
username = "tacocat";
homeDirectory = "/home/tacocat";
stateVersion = "23.11";
sessionVariables = {
EDITOR = "hx";
BAT_THEME = "ansi";
DOTNET_ROOT = "$HOME/.dotnet";
};
sessionPath = [
"$HOME/.local/bin"
"$HOME/.dotnet"
];
shellAliases = {
ls = "eza";
la = "eza -la";
l = "eza -l";
cat = "bat";
please = "sudo !!";
gaa = "git add .";
gcm = "git commit -m";
gpom = "git push -u origin main";
};
packages = with pkgs; [
wineWowPackages.unstable
eza
bat
comic-mono
maple-mono
pandoc
jdk20
pdftk
];
};
fonts.fontconfig.enable = true;
# # You can also create simple shell scripts directly inside your
# # configuration. For example, this adds a command 'my-hello' to your
# # environment:
# (pkgs.writeShellScriptBin "my-hello" ''
# echo "Hello, ${config.home.username}!"
# '')
# ];
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
# home.file = {
# # Building this configuration will create a copy of 'dotfiles/screenrc' in
# # the Nix store. Activating the configuration will then make '~/.screenrc' a
# # symlink to the Nix store copy.
# ".screenrc".source = dotfiles/screenrc;
# # You can also set the file content immediately.
# ".gradle/gradle.properties".text = ''
# org.gradle.console=verbose
# org.gradle.daemon.idletimeout=3600000
# '';
# };
# Let Home Manager install and manage itself.
programs.home-manager.enable = true;
}