{ description = "My highly sophisticated and complicated flake"; outputs = { nixpkgs, nixpkgs-stable, ... } @ inputs: let userSettings = rec { username = "shinya"; # konsta or shinya (else defaulting to shinya or none) hostname = "kogami"; # kogami or ginoza shell = "zsh"; # bash, zsh terminal = "kitty"; # kitty, alacritty, gnome-terminal browser = "librewolf"; # firefox, librewolf, qutebrowser, zen editor = "neovim"; # neovim, vscode # List all themes: $ nix build nixpkgs#base16-schemes && ls result/share/themes theme = "catppuccin-mocha"; # catppuccin-mocha, lain-blue, one-dark, purple-dawn background = if userSettings.theme == "catppuccin-mocha" then "aurora_borealis.png" else if "evangelion-blood" == userSettings.theme then "evangelion.jpg" else if "lain-blue" == userSettings.theme then "lain.png" else if "purple-dawn" == userSettings.theme then "purpledawn.png" else "aurora_borealis.png"; resolution = { width = 1920; height = 1080; }; configuration_path = "/home/${username}/.dotfiles"; # Does nothing for now plasma = false; gnome = false; hyprland = true; }; system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; overlays = [ inputs.hyprpanel.overlay ]; config = { allowUnfree = true; }; }; pkgs-stable = import nixpkgs-stable { inherit system; config = { allowUnfree = true; }; }; in { # NixOS Configurations nixosConfigurations = { kogami = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs system pkgs pkgs-stable userSettings; }; modules = [ ./kogami/configuration.nix inputs.stylix.nixosModules.stylix inputs.nix-ld.nixosModules.nix-ld inputs.sops-nix.nixosModules.sops inputs.auto-cpufreq.nixosModules.default {nixpkgs.overlays = [inputs.hyprpanel.overlay];} ]; }; ginoza = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs system pkgs pkgs-stable userSettings; }; modules = [ ./ginoza/configuration.nix inputs.stylix.nixosModules.stylix inputs.sops-nix.nixosModules.sops ]; }; }; # Phone Configurations nixOnDroidConfigurations = { tsunemori = inputs.nix-on-droid.lib.nixOnDroidConfiguration { pkgs = import inputs.nixpkgs-droid {system = "aarch64-linux";}; modules = [ ./tsunemori/configuration.nix ]; extraSpecialArgs = { inherit inputs userSettings; }; }; }; homeConfigurations = { masaoka = inputs.home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [./masaoka/home.nix]; extraSpecialArgs = { inherit inputs userSettings pkgs pkgs-stable; }; }; }; }; inputs = { nixpkgs.url = "github:nixos/nixpkgs/c5cc311133c2e87cbf776df8b5297022c3c42e08"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.11"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; spicetify-nix = { url = "github:Gerg-L/spicetify-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-ld = { url = "github:Mic92/nix-ld"; inputs.nixpkgs.follows = "nixpkgs"; }; firefox-addons = { url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; auto-cpufreq = { url = "github:AdnanHodzic/auto-cpufreq"; inputs.nixpkgs.follows = "nixpkgs"; }; nixcord = { url = "github:kaylorben/nixcord"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; shinya-nvf = { url = "git+https://git.foglar.tech/foglar/neovim-config"; inputs.nixpkgs.follows = "nixpkgs"; }; # Nix Flake Install Script install-script = { url = "git+https://git.foglar.tech/foglar/psychonix-install"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprpanel = { url = "github:Jas-SinghFSU/HyprPanel"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-mineral = { url = "github:cynicsketch/nix-mineral"; # Refers to the main branch and is updated to the latest commit when you use "nix flake update" # url = "github:cynicsketch/nix-mineral/v0.1.6-alpha" # Refers to a specific tag and follows that tag until you change it # url = "github:cynicsketch/nix-mineral/cfaf4cf15c7e6dc7f882c471056b57ea9ea0ee61" # Refers to a specific commit and follows that until you change it flake = false; }; #nix-secrets = { # url = "git+ssh://git@git.foglar.tech:foglar/nix-secrets.git"; # inputs.nixpkgs.follows = "nixpkgs"; # flake = false; #}; # Nix on Droid Configuration nixpkgs-droid.url = "github:NixOS/nixpkgs/nixos-24.05"; nix-on-droid = { url = "github:nix-community/nix-on-droid/release-24.05"; inputs.nixpkgs.follows = "nixpkgs-droid"; inputs.home-manager.follows = "home-manager-droid"; }; home-manager-droid = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs-droid"; }; }; }