diff --git a/home-modules/xun/develop/default.nix b/home-modules/xun/develop/default.nix index 328f65f..8c1fbbc 100644 --- a/home-modules/xun/develop/default.nix +++ b/home-modules/xun/develop/default.nix @@ -7,25 +7,30 @@ cfg = config.xun.develop; in { options.xun.develop = let - enableOption = name: default: lib.mkEnableOption name // {inherit default;}; + enableOption = default: + lib.mkOption { + inherit default; + type = lib.types.bool; + }; in { - enable = enableOption "develop" false; - git.enable = enableOption "git" true; - nix.enable = enableOption "nix" true; - tools.enable = enableOption "tools" true; - docs.enable = enableOption "man caches" false; - devenv.enable = enableOption "devenv" true; + enable = enableOption false; + git.enable = enableOption true; + nix.enable = enableOption true; + tools.enable = enableOption true; + docs.enable = enableOption false; + devenv.enable = enableOption true; lang = { - c.enable = enableOption "clangd" false; - csharp.enable = enableOption "csharp" false; - zig.enable = enableOption "zig" false; + c.enable = enableOption false; + csharp.enable = enableOption false; + shell.enable = enableOption false; + zig.enable = enableOption false; }; }; config = lib.mkIf cfg.enable ( lib.mkMerge [ (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 { home.packages = with pkgs; [tokei]; @@ -68,6 +73,12 @@ in { home.packages = with pkgs; [ csharpier omnisharp-roslyn + roslyn-ls + ]; + }) + (lib.mkIf cfg.lang.shell.enable { + home.packages = with pkgs; [ + shellcheck ]; }) (lib.mkIf cfg.lang.zig.enable { diff --git a/home/editors/emacs.nix b/home/editors/emacs.nix index dfff555..7b40994 100644 --- a/home/editors/emacs.nix +++ b/home/editors/emacs.nix @@ -1,7 +1,11 @@ {pkgs, ...}: { programs.emacs = { enable = true; - package = pkgs.emacs29-pgtk; # uses xwayland, use pgtk for native wayland or pkgs.emacs if using daemon - extraPackages = e: [e.vterm]; + package = pkgs.emacs29-pgtk; + extraPackages = e: [ + e.vterm + pkgs.texlive.combined.scheme-medium + pkgs.sqlite + ]; }; } diff --git a/home/profiles/kidney/default.nix b/home/profiles/kidney/default.nix index c1be9d4..c12a298 100644 --- a/home/profiles/kidney/default.nix +++ b/home/profiles/kidney/default.nix @@ -6,6 +6,7 @@ imports = [ self.homeManagerModules.xun inputs.small-nvim.homeManagerModules.small-nvim + ../../editors/emacs.nix # ../../terminal/shell/zsh.nix # ../../terminal/programs # ../../terminal/programs/lazygit.nix @@ -22,7 +23,12 @@ }; wakatime.enable = false; }; - develop.enable = true; + develop = { + enable = true; + lang = { + csharp.enable = true; + }; + }; desktop = { xdg.enable = true; }; diff --git a/hosts/default.nix b/hosts/default.nix index 396010e..f188567 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -166,6 +166,7 @@ in { flake.nixosConfigurations = let l = inputs.nixpkgs.lib; in + ## TODO: make use of nixpkgs.pkgs for per-system pkgs without colmena builtins.mapAttrs (_: v: l.nixosSystem { inherit specialArgs; diff --git a/hosts/kidney/default.nix b/hosts/kidney/default.nix index 05ba318..68ff4d4 100644 --- a/hosts/kidney/default.nix +++ b/hosts/kidney/default.nix @@ -2,6 +2,7 @@ imports = [ ./wsl.nix ./hardware.nix + ./fonts.nix ]; networking.hostName = "kidney"; diff --git a/hosts/kidney/fonts.nix b/hosts/kidney/fonts.nix new file mode 100644 index 0000000..e840d3d --- /dev/null +++ b/hosts/kidney/fonts.nix @@ -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"]; + }; + }; +} diff --git a/hosts/kidney/wsl.nix b/hosts/kidney/wsl.nix index 7bcfd3b..5cd251d 100644 --- a/hosts/kidney/wsl.nix +++ b/hosts/kidney/wsl.nix @@ -3,6 +3,9 @@ inputs.nixos-wsl.nixosModules.default ]; - wsl.enable = true; - wsl.defaultUser = "xun"; + wsl = { + enable = true; + defaultUser = "xun"; + startMenuLaunchers = true; + }; }