Jafner.net/dotfiles/flake.nix
Joey Hafner c128e9cd12 Big Update:
- Add Stylix config with Catppuccin Mocha.
- Add password manager interface via wofi, rbw, rofi-rbw, wl-clipboard, and dotool.
- Add protonmail-desktop.
- Replace Firefox and Chromium flatpaks with native apps.
- Remove Vesktop flatpak; using only native app.
- Remove VLC flatpak; using only native app.
- Add terminal font config to VSCode userSettings.
- Move "protonup-ng" Proton updater from "protonmail.nix" to its proper "gaming.nix" file.
- Add "fonts.nix" nixos config.
- Move gaming packages from nixos configuration.nix to gaming.nix.
- Remove Plasma6's Discover app.
- Add system-level ydotool program. Not yet used.
- Add backupFileExtension config for home-manager to mitigate collisions.
2024-12-06 18:21:14 -08:00

140 lines
4.0 KiB
Nix

{
description = "Joey's Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
hyprland = {
url = "github:hyprwm/Hyprland";
inputs.nixpkgs.follows = "nixpkgs-unstable";
};
home-manager = {
url = "github:nix-community/home-manager/release-24.11";
inputs.nixpkgs.follows = "nixpkgs";
};
nixgl.url = "github:nix-community/nixGL";
nix-flatpak.url = "github:gmodena/nix-flatpak";
stylix = {
url = "github:danth/stylix";
inputs.nixpkgs.follows = "nixpkgs";
};
zen-browser.url = "github:MarceColl/zen-browser-flake";
sops-nix = {
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
deploy-rs.url = "github:serokell/deploy-rs";
};
outputs = inputs@{
nixpkgs,
nixpkgs-unstable,
home-manager,
nixgl,
...
}:
let
vars = {
user = {
username = "joey";
realname = "Joey Hafner";
email = "joey@jafner.net";
};
laptop = {
hostname = "joey-laptop";
theme = "gruvbox-warm";
};
desktop = {
hostname = "joey-desktop";
};
};
system = "x86_64-linux";
lib = nixpkgs.lib;
pkgs = import inputs.nixpkgs {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
pkgs-unstable = import nixpkgs-unstable {
inherit system;
overlays = [ nixgl.overlay ];
config = { allowUnfreePredicate = (_: true); };
};
in {
nixosConfigurations = {
desktop = lib.nixosSystem {
modules = [
./nixos/desktop/configuration.nix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
#inputs.stylix.nixosModules.stylix
{
home-manager = {
users.joey = import ./home-manager/desktop/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
}
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
laptop = lib.nixosSystem {
modules = [
./nixos/laptop/configuration.nix
inputs.hyprland.nixosModules.default
#inputs.stylix.nixosModules.stylix
inputs.nix-flatpak.nixosModules.nix-flatpak
inputs.home-manager.nixosModules.home-manager
{
home-manager = {
users.joey = import ./home-manager/laptop/home.nix;
sharedModules = [
inputs.nix-flatpak.homeManagerModules.nix-flatpak
inputs.stylix.homeManagerModules.stylix
];
extraSpecialArgs = { inherit pkgs pkgs-unstable inputs; inherit vars; };
};
}
];
inherit system;
specialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
};
homeConfigurations = {
laptop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/laptop/home.nix
inputs.stylix.homeManagerModules.stylix
inputs.plasma-manager.homeManagerModules.plasma-manager
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
desktop = home-manager.lib.homeManagerConfiguration {
modules = [
./home-manager/desktop/home.nix
inputs.nix-flatpak.homeManagerModules.nix-flatpak
];
inherit pkgs;
extraSpecialArgs = {
inherit pkgs pkgs-unstable inputs;
inherit vars;
};
};
};
};
}