This commit is contained in:
xunuwu 2024-10-22 11:51:40 +02:00
parent e77d8b492d
commit 7f7d9af446
No known key found for this signature in database
7 changed files with 75 additions and 16 deletions

View file

@ -7,25 +7,30 @@
cfg = config.xun.develop; cfg = config.xun.develop;
in { in {
options.xun.develop = let options.xun.develop = let
enableOption = name: default: lib.mkEnableOption name // {inherit default;}; enableOption = default:
lib.mkOption {
inherit default;
type = lib.types.bool;
};
in { in {
enable = enableOption "develop" false; enable = enableOption false;
git.enable = enableOption "git" true; git.enable = enableOption true;
nix.enable = enableOption "nix" true; nix.enable = enableOption true;
tools.enable = enableOption "tools" true; tools.enable = enableOption true;
docs.enable = enableOption "man caches" false; docs.enable = enableOption false;
devenv.enable = enableOption "devenv" true; devenv.enable = enableOption true;
lang = { lang = {
c.enable = enableOption "clangd" false; c.enable = enableOption false;
csharp.enable = enableOption "csharp" false; csharp.enable = enableOption false;
zig.enable = enableOption "zig" false; shell.enable = enableOption false;
zig.enable = enableOption false;
}; };
}; };
config = lib.mkIf cfg.enable ( config = lib.mkIf cfg.enable (
lib.mkMerge [ lib.mkMerge [
(lib.mkIf cfg.nix.enable { (lib.mkIf cfg.nix.enable {
home.packages = with pkgs; [nil nixd alejandra]; home.packages = with pkgs; [nil nixd alejandra nixfmt-rfc-style];
}) })
(lib.mkIf cfg.tools.enable { (lib.mkIf cfg.tools.enable {
home.packages = with pkgs; [tokei]; home.packages = with pkgs; [tokei];
@ -68,6 +73,12 @@ in {
home.packages = with pkgs; [ home.packages = with pkgs; [
csharpier csharpier
omnisharp-roslyn omnisharp-roslyn
roslyn-ls
];
})
(lib.mkIf cfg.lang.shell.enable {
home.packages = with pkgs; [
shellcheck
]; ];
}) })
(lib.mkIf cfg.lang.zig.enable { (lib.mkIf cfg.lang.zig.enable {

View file

@ -1,7 +1,11 @@
{pkgs, ...}: { {pkgs, ...}: {
programs.emacs = { programs.emacs = {
enable = true; enable = true;
package = pkgs.emacs29-pgtk; # uses xwayland, use pgtk for native wayland or pkgs.emacs if using daemon package = pkgs.emacs29-pgtk;
extraPackages = e: [e.vterm]; extraPackages = e: [
e.vterm
pkgs.texlive.combined.scheme-medium
pkgs.sqlite
];
}; };
} }

View file

@ -6,6 +6,7 @@
imports = [ imports = [
self.homeManagerModules.xun self.homeManagerModules.xun
inputs.small-nvim.homeManagerModules.small-nvim inputs.small-nvim.homeManagerModules.small-nvim
../../editors/emacs.nix
# ../../terminal/shell/zsh.nix # ../../terminal/shell/zsh.nix
# ../../terminal/programs # ../../terminal/programs
# ../../terminal/programs/lazygit.nix # ../../terminal/programs/lazygit.nix
@ -22,7 +23,12 @@
}; };
wakatime.enable = false; wakatime.enable = false;
}; };
develop.enable = true; develop = {
enable = true;
lang = {
csharp.enable = true;
};
};
desktop = { desktop = {
xdg.enable = true; xdg.enable = true;
}; };

View file

@ -166,6 +166,7 @@ in {
flake.nixosConfigurations = let flake.nixosConfigurations = let
l = inputs.nixpkgs.lib; l = inputs.nixpkgs.lib;
in in
## TODO: make use of nixpkgs.pkgs for per-system pkgs without colmena
builtins.mapAttrs (_: v: builtins.mapAttrs (_: v:
l.nixosSystem { l.nixosSystem {
inherit specialArgs; inherit specialArgs;

View file

@ -2,6 +2,7 @@
imports = [ imports = [
./wsl.nix ./wsl.nix
./hardware.nix ./hardware.nix
./fonts.nix
]; ];
networking.hostName = "kidney"; networking.hostName = "kidney";

33
hosts/kidney/fonts.nix Normal file
View file

@ -0,0 +1,33 @@
{pkgs, ...}: {
fonts = {
packages = with pkgs; [
font-awesome
iosevka
emacs-all-the-icons-fonts
(stdenv.mkDerivation {
# font piracy? i would never
pname = "Cartograph-CF";
version = "0.1";
src = pkgs.fetchFromGitHub {
owner = "xiyaowong";
repo = "Cartograph-CF";
rev = "619de85c103dbd5c150e1d5df039357f8ac2ed52";
hash = "sha256-NVqHxLQZnHb0lMjODkaDwSoglGPkUVJHL1xTmASoER4=";
};
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts
cp -r $src $out/share/fonts
runHook postInstall
'';
})
];
enableDefaultPackages = false;
fontconfig.defaultFonts = {
monospace = ["Iosevka"];
};
};
}

View file

@ -3,6 +3,9 @@
inputs.nixos-wsl.nixosModules.default inputs.nixos-wsl.nixosModules.default
]; ];
wsl.enable = true; wsl = {
wsl.defaultUser = "xun"; enable = true;
defaultUser = "xun";
startMenuLaunchers = true;
};
} }