basic coding config
This commit is contained in:
19
flake.lock
generated
19
flake.lock
generated
@ -36,10 +36,27 @@
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-stable": {
|
||||
"locked": {
|
||||
"lastModified": 1755704039,
|
||||
"narHash": "sha256-gKlP0LbyJ3qX0KObfIWcp5nbuHSb5EHwIvU6UcNBg2A=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "9cb344e96d5b6918e94e1bca2d9f3ea1e9615545",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-25.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-stable": "nixpkgs-stable"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
12
flake.nix
12
flake.nix
@ -16,21 +16,25 @@
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||
};
|
||||
|
||||
outputs = {
|
||||
outputs =
|
||||
{
|
||||
self,
|
||||
home-manager,
|
||||
nixpkgs,
|
||||
...
|
||||
} @ inputs: let
|
||||
}@inputs:
|
||||
let
|
||||
inherit (self) outputs;
|
||||
in {
|
||||
in
|
||||
{
|
||||
overlays = import ./overlays { inherit inputs outputs; };
|
||||
|
||||
homeConfigurations = {
|
||||
"m3tam3re@m3-daedalus" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
||||
pkgs = nixpkgs.legacyPackages."aarch64-linux";
|
||||
extraSpecialArgs = {
|
||||
inherit inputs outputs;
|
||||
systemConfig = { };
|
||||
|
@ -1,10 +1,13 @@
|
||||
{
|
||||
lib,
|
||||
outputs,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
}:
|
||||
{
|
||||
nixpkgs = {
|
||||
overlays = [
|
||||
outputs.overlays.stable-packages
|
||||
];
|
||||
config = {
|
||||
allowUnfree = true;
|
||||
@ -15,7 +18,10 @@
|
||||
nix = {
|
||||
package = lib.mkDefault pkgs.nix;
|
||||
settings = {
|
||||
experimental-features = ["nix-command" "flakes"];
|
||||
experimental-features = [
|
||||
"nix-command"
|
||||
"flakes"
|
||||
];
|
||||
warn-dirty = false;
|
||||
};
|
||||
};
|
||||
|
93
modules/coding/default.nix
Normal file
93
modules/coding/default.nix
Normal file
@ -0,0 +1,93 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
let
|
||||
goCfg = config.features.coding.go;
|
||||
nixCfg = config.features.coding.nix;
|
||||
pythonCfg = config.features.coding.python;
|
||||
in
|
||||
{
|
||||
options.features.coding = {
|
||||
go = {
|
||||
enable = mkEnableOption "enable Go development environment";
|
||||
packageSet = mkOption {
|
||||
type = types.str;
|
||||
default = "default";
|
||||
description = "Which nixpkgs variant to use for Golang";
|
||||
};
|
||||
additionalPackages = mkOption {
|
||||
type = types.listOf types.str;
|
||||
example = [
|
||||
delve
|
||||
go-outline
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
python = {
|
||||
enable = mkEnableOption "enable Python development environment";
|
||||
additionalPackages = mkOption {
|
||||
type = types.listOf types.str;
|
||||
example = [
|
||||
"requests"
|
||||
"pandas"
|
||||
];
|
||||
};
|
||||
};
|
||||
nix = {
|
||||
enable = mkEnableOption "enable Nix development environment";
|
||||
};
|
||||
};
|
||||
|
||||
config =
|
||||
let
|
||||
selectPkgs = packageSet: if packageSet == "default" then pkgs else pkgs.${packageSet};
|
||||
in
|
||||
mkMerge [
|
||||
(mkIf goCfg.enable (
|
||||
let
|
||||
goPkgs = selectPkgs goCfg.packageSet;
|
||||
in
|
||||
{
|
||||
home.packages =
|
||||
with goPkgs;
|
||||
[
|
||||
go
|
||||
gopls
|
||||
]
|
||||
++ (map (name: goPkgs.${name}) goCfg.additionalPackages);
|
||||
}
|
||||
))
|
||||
(mkIf pythonCfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
(python3.withPackages (
|
||||
ps:
|
||||
with ps;
|
||||
[
|
||||
uv
|
||||
pip
|
||||
pipx
|
||||
virtualenv
|
||||
]
|
||||
++ (map (name: ps.${name}) pythonCfg.additionalPackages)
|
||||
))
|
||||
pyrefly
|
||||
black
|
||||
];
|
||||
})
|
||||
(mkIf nixCfg.enable {
|
||||
home.packages = with pkgs; [
|
||||
alejandra
|
||||
nil
|
||||
nixd
|
||||
statix
|
||||
deadnix
|
||||
nix-tree
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
{...}: {
|
||||
imports = [
|
||||
./cli
|
||||
./coding
|
||||
./base.nix
|
||||
];
|
||||
}
|
||||
|
@ -1,4 +1,5 @@
|
||||
{inputs, ...}: {
|
||||
{ inputs, ... }:
|
||||
{
|
||||
# This one brings our custom packages from the 'pkgs' directory
|
||||
additions = final: prev: (import ../pkgs { pkgs = final; });
|
||||
# This one contains whatever you want to overlay
|
||||
@ -25,10 +26,10 @@
|
||||
# });
|
||||
};
|
||||
|
||||
# stable-packages = final: _prev: {
|
||||
# stable = import inputs.nixpkgs-stable {
|
||||
# system = final.system;
|
||||
# config.allowUnfree = true;
|
||||
# };
|
||||
# };
|
||||
stable-packages = final: _prev: {
|
||||
stable = import inputs.nixpkgs-stable {
|
||||
system = final.system;
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -1,9 +1,31 @@
|
||||
{...}: {
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
features = {
|
||||
cli = {
|
||||
shell.nushell.enable = true;
|
||||
shell.nitch.enable = true;
|
||||
tools.fzf.enable = true;
|
||||
};
|
||||
coding = {
|
||||
nix = {
|
||||
enable = true;
|
||||
};
|
||||
go = {
|
||||
enable = true;
|
||||
packageSet = "stable";
|
||||
additionalPackages = [
|
||||
"gotools"
|
||||
"gotests"
|
||||
"go-outline"
|
||||
];
|
||||
};
|
||||
python = {
|
||||
enable = true;
|
||||
additionalPackages = [
|
||||
"requests"
|
||||
"pandas"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user