This repository has been archived on 2024-07-03. You can view files and clone it, but cannot push or open issues or pull requests.
home-manager/flake.nix
Evie Litherland-Smith c6a8a7c34e Fix correct username not being set
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.
2024-06-24 09:15:17 +01:00

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;};
};
};
};
}