Evie Litherland-Smith
c6a8a7c34e
Rather than set username in flake.nix, set a default value in default.nix (since it's always called), and set appropriate values in personal.nix (pixelifytica) and work.nix (elitherl), since the two files are mutually exclusive and only one or the other will be imported.
146 lines
4.4 KiB
Nix
146 lines
4.4 KiB
Nix
{
|
|
description = "Evie's home-manager configurations";
|
|
|
|
nixConfig = {
|
|
extra-substituters = ["https://nix.xenia.me.uk"];
|
|
extra-trusted-public-keys = ["nix.xenia.me.uk:tlgwOaG5KMLjQUk2YaErS8mAG69ZCr3PaHXZYi+Y5eI="];
|
|
};
|
|
|
|
inputs = {
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
|
home-manager = {
|
|
url = "github:nix-community/home-manager/release-24.05";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
plasma-manager = {
|
|
url = "github:pjones/plasma-manager";
|
|
inputs = {
|
|
nixpkgs.follows = "nixpkgs";
|
|
home-manager.follows = "home-manager";
|
|
};
|
|
};
|
|
iosevka-custom.url = "git+https://git.xenia.me.uk/pixelifytica/iosevka.git";
|
|
base16.url = "github:SenchoPens/base16.nix";
|
|
tt-schemes = {
|
|
url = "github:tinted-theming/schemes";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = {
|
|
self,
|
|
nixpkgs,
|
|
home-manager,
|
|
plasma-manager,
|
|
iosevka-custom,
|
|
base16,
|
|
tt-schemes,
|
|
...
|
|
}: let
|
|
defaultExtraSpecialArgs = {
|
|
hostname,
|
|
system,
|
|
}: rec {
|
|
inherit hostname;
|
|
inherit (plasma-manager.packages.${system}) rc2nix;
|
|
accentColourName = "base0D";
|
|
altAccentColourName = "base0C";
|
|
iosevkaCustom = {
|
|
packages = iosevka-custom.outputs.packages.${system};
|
|
names = iosevka-custom.outputs.names;
|
|
};
|
|
fonts = with iosevkaCustom; rec {
|
|
sizes = {
|
|
applications = 12;
|
|
desktop = 10;
|
|
popups = 14;
|
|
terminal = 12;
|
|
};
|
|
serif = sansSerif;
|
|
sansSerif = {
|
|
name = names.iosevka-custom-aile;
|
|
package = packages.iosevka-custom-aile;
|
|
};
|
|
monospace = {
|
|
name = names.iosevka-custom-nerdfont;
|
|
package = packages.iosevka-custom-nerdfont;
|
|
};
|
|
};
|
|
};
|
|
defaultModules = [
|
|
plasma-manager.homeManagerModules.plasma-manager
|
|
base16.homeManagerModule
|
|
{scheme = "${tt-schemes}/base16/one-light.yaml";}
|
|
./default.nix
|
|
];
|
|
in {
|
|
packages.x86_64-linux = {inherit (home-manager.packages.x86_64-linux) default;};
|
|
apps.x86_64-linux.default = {
|
|
program = "${self.packages.x86_64-linux.default}/bin/home-manager";
|
|
type = "app";
|
|
};
|
|
devShells.x86_64-linux.default = let
|
|
pkgs = import nixpkgs {system = "x86_64-linux";};
|
|
in
|
|
pkgs.mkShellNoCC {
|
|
packages = with pkgs; [nil pre-commit];
|
|
shellHook = "pre-commit install --install-hooks";
|
|
};
|
|
homeConfigurations = {
|
|
# Server
|
|
"pixelifytica@Legion" = let
|
|
hostname = "Legion";
|
|
system = "x86_64-linux";
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import nixpkgs {inherit system;};
|
|
modules = defaultModules;
|
|
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
};
|
|
# Personal
|
|
"pixelifytica@Northstar" = let
|
|
hostname = "Northstar";
|
|
system = "x86_64-linux";
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import nixpkgs {inherit system;};
|
|
modules =
|
|
defaultModules
|
|
++ [
|
|
./personal.nix
|
|
{programs.plasma.configFile.kcminputrc."Libinput/1739/52759/SYNA32AA:00 06CB:CE17 Touchpad".NaturalScroll = true;}
|
|
];
|
|
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
};
|
|
"pixelifytica@Vanguard" = let
|
|
hostname = "Vanguard";
|
|
system = "x86_64-linux";
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import nixpkgs {inherit system;};
|
|
modules = defaultModules ++ [./personal.nix];
|
|
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
};
|
|
# Work
|
|
"elitherl@Tone" = let
|
|
hostname = "Tone";
|
|
system = "x86_64-linux";
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import nixpkgs {inherit system;};
|
|
modules = defaultModules ++ [./work.nix];
|
|
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
};
|
|
"elitherl@Scorch" = let
|
|
hostname = "Scorch";
|
|
system = "x86_64-linux";
|
|
in
|
|
home-manager.lib.homeManagerConfiguration {
|
|
pkgs = import nixpkgs {inherit system;};
|
|
modules = defaultModules ++ [./work.nix];
|
|
extraSpecialArgs = defaultExtraSpecialArgs {inherit hostname system;};
|
|
};
|
|
};
|
|
};
|
|
}
|