basic coding config
This commit is contained in:
19
flake.lock
generated
19
flake.lock
generated
@ -36,10 +36,27 @@
|
|||||||
"type": "github"
|
"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": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"home-manager": "home-manager",
|
"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";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
|
||||||
|
nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-25.05";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = {
|
outputs =
|
||||||
|
{
|
||||||
self,
|
self,
|
||||||
home-manager,
|
home-manager,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
...
|
...
|
||||||
} @ inputs: let
|
}@inputs:
|
||||||
|
let
|
||||||
inherit (self) outputs;
|
inherit (self) outputs;
|
||||||
in {
|
in
|
||||||
|
{
|
||||||
overlays = import ./overlays { inherit inputs outputs; };
|
overlays = import ./overlays { inherit inputs outputs; };
|
||||||
|
|
||||||
homeConfigurations = {
|
homeConfigurations = {
|
||||||
"m3tam3re@m3-daedalus" = home-manager.lib.homeManagerConfiguration {
|
"m3tam3re@m3-daedalus" = home-manager.lib.homeManagerConfiguration {
|
||||||
pkgs = nixpkgs.legacyPackages."x86_64-linux";
|
pkgs = nixpkgs.legacyPackages."aarch64-linux";
|
||||||
extraSpecialArgs = {
|
extraSpecialArgs = {
|
||||||
inherit inputs outputs;
|
inherit inputs outputs;
|
||||||
systemConfig = { };
|
systemConfig = { };
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
outputs,
|
||||||
pkgs,
|
pkgs,
|
||||||
...
|
...
|
||||||
}: {
|
}:
|
||||||
|
{
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
overlays = [
|
overlays = [
|
||||||
|
outputs.overlays.stable-packages
|
||||||
];
|
];
|
||||||
config = {
|
config = {
|
||||||
allowUnfree = true;
|
allowUnfree = true;
|
||||||
@ -15,7 +18,10 @@
|
|||||||
nix = {
|
nix = {
|
||||||
package = lib.mkDefault pkgs.nix;
|
package = lib.mkDefault pkgs.nix;
|
||||||
settings = {
|
settings = {
|
||||||
experimental-features = ["nix-command" "flakes"];
|
experimental-features = [
|
||||||
|
"nix-command"
|
||||||
|
"flakes"
|
||||||
|
];
|
||||||
warn-dirty = false;
|
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 = [
|
imports = [
|
||||||
./cli
|
./cli
|
||||||
|
./coding
|
||||||
./base.nix
|
./base.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{inputs, ...}: {
|
{ inputs, ... }:
|
||||||
|
{
|
||||||
# This one brings our custom packages from the 'pkgs' directory
|
# This one brings our custom packages from the 'pkgs' directory
|
||||||
additions = final: prev: (import ../pkgs { pkgs = final; });
|
additions = final: prev: (import ../pkgs { pkgs = final; });
|
||||||
# This one contains whatever you want to overlay
|
# This one contains whatever you want to overlay
|
||||||
@ -25,10 +26,10 @@
|
|||||||
# });
|
# });
|
||||||
};
|
};
|
||||||
|
|
||||||
# stable-packages = final: _prev: {
|
stable-packages = final: _prev: {
|
||||||
# stable = import inputs.nixpkgs-stable {
|
stable = import inputs.nixpkgs-stable {
|
||||||
# system = final.system;
|
system = final.system;
|
||||||
# config.allowUnfree = true;
|
config.allowUnfree = true;
|
||||||
# };
|
};
|
||||||
# };
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,9 +1,31 @@
|
|||||||
{...}: {
|
{ pkgs, ... }:
|
||||||
|
{
|
||||||
features = {
|
features = {
|
||||||
cli = {
|
cli = {
|
||||||
shell.nushell.enable = true;
|
shell.nushell.enable = true;
|
||||||
shell.nitch.enable = true;
|
shell.nitch.enable = true;
|
||||||
tools.fzf.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