114 lines
3.8 KiB
Nix
114 lines
3.8 KiB
Nix
|
|
{
|
||
|
|
description = "Launchpad flake";
|
||
|
|
|
||
|
|
inputs = {
|
||
|
|
# Switched to unstable 10/13/24 Generation 109 and below stable
|
||
|
|
nixpkgs-unstable.url = "github:nixos/nixpkgs?ref=nixos-unstable";
|
||
|
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||
|
|
legacy.url = "github:NixOS/nixpkgs-channels";
|
||
|
|
|
||
|
|
# Home manager
|
||
|
|
home-manager.url = "github:nix-community/home-manager/release-24.05";
|
||
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
||
|
|
|
||
|
|
flake-utils.url = "github:numtide/flake-utils";
|
||
|
|
|
||
|
|
flake-compat = {
|
||
|
|
url = "github:edolstra/flake-compat";
|
||
|
|
flake = false;
|
||
|
|
};
|
||
|
|
|
||
|
|
base16.url = "github:SenchoPens/base16.nix";
|
||
|
|
nix-colors.url = "github:misterio77/nix-colors";
|
||
|
|
tt-schemes = {
|
||
|
|
url = "github:tinted-theming/schemes";
|
||
|
|
flake = false;
|
||
|
|
};
|
||
|
|
base16-vim = {
|
||
|
|
url = "github:tinted-theming/base16-vim";
|
||
|
|
flake = false;
|
||
|
|
};
|
||
|
|
|
||
|
|
# Zen Browser
|
||
|
|
# zen-browser.url = "github:MarceColl/zen-browser-flake";
|
||
|
|
zen-browser.url = "github:mastermines1/zen-browser-flake";
|
||
|
|
|
||
|
|
# hyprland.url = "git+https://github.com/hyprwm/Hyprland?submodules=1";
|
||
|
|
# hyprland.url = "github:hyprwm/Hyprland";
|
||
|
|
|
||
|
|
# GnuCobal.url="/home/wayne/Flakes/derivations/GnuCobal/";
|
||
|
|
|
||
|
|
# pentablet-flake.url = "/home/wayne/Flakes/derivations/xpen/"; # Replace with actual path or Git URL
|
||
|
|
|
||
|
|
# kmonad = {
|
||
|
|
# url = "git+https://github.com/kmonad/kmonad?submodules=1&dir=nix";
|
||
|
|
# inputs.nixpkgs.follows = "nixpkgs";
|
||
|
|
# };
|
||
|
|
};
|
||
|
|
|
||
|
|
outputs = { self, nixpkgs, legacy, home-manager, flake-utils, flake-compat, zen-browser, nix-colors, base16, ... } @ inputs:
|
||
|
|
let
|
||
|
|
inherit (self) outputs;
|
||
|
|
lib = nixpkgs.lib; # Import lib here explicitly from nixpkgs
|
||
|
|
systems = [
|
||
|
|
"aarch64-linux"
|
||
|
|
"i686-linux"
|
||
|
|
"x86_64-linux"
|
||
|
|
"aarch64-darwin"
|
||
|
|
"x86_64-darwin"
|
||
|
|
];
|
||
|
|
systemSettings = {
|
||
|
|
hostname = "launchpad";
|
||
|
|
profile = "Professional";
|
||
|
|
timezone = "America/Los_Angeles";
|
||
|
|
locale = "en_US.UTF-8";
|
||
|
|
gpuType = "nvidia";
|
||
|
|
version = "24.05";
|
||
|
|
};
|
||
|
|
userSettings = {
|
||
|
|
username = "wayne";
|
||
|
|
name = "wayne";
|
||
|
|
email = "...";
|
||
|
|
dotfilesDir = "~/.dotfiles";
|
||
|
|
term = "tmux";
|
||
|
|
font = "JetBrainsMono Nerd Font";
|
||
|
|
# fontPkg = pkgs.nerdfonts;
|
||
|
|
editor = "lvim"; # Default editor;
|
||
|
|
spawnEditor = if ((userSettings.editor == "vim") || (userSettings.editor == "nvim") || (userSettings.editor == "lvim") || (userSettings.editor == "nano"))
|
||
|
|
then "exec " + userSettings.term + " -e " + userSettings.editor
|
||
|
|
else userSettings.editor;
|
||
|
|
};
|
||
|
|
forAllSystems = nixpkgs.lib.genAttrs systems;
|
||
|
|
in {
|
||
|
|
packages = forAllSystems (system: nixpkgs.legacyPackages.${system});
|
||
|
|
formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra);
|
||
|
|
|
||
|
|
nixosConfigurations = {
|
||
|
|
launchpad = nixpkgs.lib.nixosSystem {
|
||
|
|
specialArgs = {inherit inputs outputs systemSettings userSettings lib ;};
|
||
|
|
modules = [
|
||
|
|
# kmonad.nixosModules.default
|
||
|
|
./nixos/configuration.nix
|
||
|
|
# pentablet-flake.nixosModules.pentablet
|
||
|
|
];
|
||
|
|
};
|
||
|
|
};
|
||
|
|
|
||
|
|
homeConfigurations = {
|
||
|
|
wayne = home-manager.lib.homeManagerConfiguration {
|
||
|
|
# pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||
|
|
pkgs = nixpkgs.legacyPackages.x86_64-linux; # Home-manager requires 'pkgs' instance
|
||
|
|
extraSpecialArgs = {inherit inputs outputs systemSettings userSettings zen-browser nix-colors ;};
|
||
|
|
modules = [
|
||
|
|
base16.nixosModule
|
||
|
|
# set system's scheme to nord by setting `config.scheme`
|
||
|
|
{ scheme = "${inputs.tt-schemes}/base16/nord.yaml"; }
|
||
|
|
# import `theming.nix`, we will write it in the next, final, step
|
||
|
|
# ./theming.nix
|
||
|
|
./home-manager/home.nix
|
||
|
|
];
|
||
|
|
};
|
||
|
|
};
|
||
|
|
};
|
||
|
|
}
|