nix: options refactor

This commit is contained in:
Primrose 2024-05-26 12:33:17 +02:00
parent fa5bbfb199
commit f329c3af7c
Signed by: primrose
GPG key ID: 4E887A4CA9714ADA
6 changed files with 143 additions and 139 deletions

View file

@ -5,7 +5,9 @@
...
}:
{
home = lib.mkIf config.cmus.enable {
options.programs.cmus.enable = lib.mkOption { default = false; };
config.home = lib.mkIf config.programs.cmus.enable {
packages = [
pkgs.cmus
pkgs.cmusfm

View file

@ -9,6 +9,12 @@ let
inherit (pkgs) unstable myPkgs;
in
{
options.extra = {
utilities.enable = lib.mkOption { default = false; };
workflow.enable = lib.mkOption { default = false; };
university.enable = lib.mkOption { default = false; };
};
imports = [
./fish
./direnv
@ -27,66 +33,71 @@ in
./cmus
];
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "leana";
homeDirectory = lib.mkDefault "/home/leana";
stateVersion = "23.11";
config = {
programs.home-manager.enable = true;
home = {
username = lib.mkDefault "leana";
homeDirectory = lib.mkDefault "/home/leana";
stateVersion = "23.11";
};
programs = {
ripgrep.enable = true;
gpg.enable = true;
};
home.packages = lib.mkMerge [
[
# shell and script dependencies
pkgs.figlet
pkgs.gnused
pkgs.stow
pkgs.fd
pkgs.vivid
pkgs.rsync
# nix
unstable.nixfmt-rfc-style
# utils
pkgs.tree
pkgs.tldr
pkgs.parallel
pkgs.findutils # xargs and more
pkgs.du-dust
]
(lib.mkIf pkgs.stdenv.isDarwin [
# coreutils
pkgs.uutils-coreutils-noprefix
])
(lib.mkIf config.extra.utilities.enable [
pkgs.jq
pkgs.hyperfine
pkgs.watchexec
pkgs.onefetch
pkgs.ghostscript
pkgs.tokei
pkgs.gnumake
pkgs.just
pkgs.nurl
pkgs.tea
pkgs.agenix
])
(lib.mkIf config.extra.workflow.enable [
pkgs.act
pkgs.forgejo-actions-runner
])
(lib.mkIf config.extra.university.enable [
pkgs.rars
myPkgs.logisim-evolution
myPkgs.necrolib
myPkgs.why3
])
];
};
programs = {
ripgrep.enable = true;
gpg.enable = true;
};
home.packages = lib.mkMerge [
[
# shell and script dependencies
pkgs.figlet
pkgs.gnused
pkgs.stow
pkgs.fd
pkgs.vivid
pkgs.rsync
# nix
unstable.nixfmt-rfc-style
# utils
pkgs.tree
pkgs.tldr
pkgs.parallel
pkgs.findutils # xargs and more
pkgs.du-dust
]
(lib.mkIf pkgs.stdenv.isDarwin [
# coreutils
pkgs.uutils-coreutils-noprefix
])
(lib.mkIf config.extraUtils.enable [
pkgs.jq
pkgs.hyperfine
pkgs.watchexec
pkgs.tea
pkgs.tokei
pkgs.gnumake
pkgs.just
pkgs.sd
pkgs.ghostscript
pkgs.act
pkgs.forgejo-actions-runner
pkgs.nurl
pkgs.onefetch
pkgs.agenix
])
(lib.mkIf config.universityTools.enable [
pkgs.rars
myPkgs.logisim-evolution
myPkgs.necrolib
myPkgs.why3
])
];
}

View file

@ -1,4 +1,4 @@
{ config, ... }:
{ lib, ... }:
{
# git plugins
programs.git = {
@ -40,7 +40,7 @@
userName = "Léana ";
signing = {
key = "3659D5C87A4BC5D7699B37D84E887A4CA9714ADA";
signByDefault = config.git.signCommits;
signByDefault = lib.mkDefault false;
};
};

View file

@ -5,44 +5,48 @@
...
}:
{
programs.neovim = {
package = pkgs.neovim;
enable = true;
defaultEditor = true;
extraPackages = lib.mkMerge [
[
pkgs.lua-language-server
pkgs.stylua
pkgs.nodePackages.bash-language-server
pkgs.shellcheck
pkgs.shfmt
pkgs.nil
pkgs.yaml-language-server
]
(lib.mkIf config.extraLanguageServers.enable [
pkgs.nodePackages.vim-language-server
pkgs.nodePackages.pyright
pkgs.vscode-langservers-extracted # HTML/CSS/JSON/ESLint
pkgs.marksman
pkgs.taplo
pkgs.lemminx
])
];
};
options.extra.lang-servers.enable = lib.mkOption { default = false; };
home.file =
let
fr_utf-8_spl = builtins.fetchurl {
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
};
fr_utf-8_sug = builtins.fetchurl {
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
};
in
{
"${config.xdg.configHome}/nvim/spell/fr.utf-8.spl".source = fr_utf-8_spl;
"${config.xdg.configHome}/nvim/spell/fr.utf-8.sug".source = fr_utf-8_sug;
config = {
programs.neovim = {
package = pkgs.neovim;
enable = true;
defaultEditor = true;
extraPackages = lib.mkMerge [
[
pkgs.lua-language-server
pkgs.stylua
pkgs.nodePackages.bash-language-server
pkgs.shellcheck
pkgs.shfmt
pkgs.nil
pkgs.yaml-language-server
]
(lib.mkIf config.extra.lang-servers.enable [
pkgs.nodePackages.vim-language-server
pkgs.nodePackages.pyright
pkgs.vscode-langservers-extracted # HTML/CSS/JSON/ESLint
pkgs.marksman
pkgs.taplo
pkgs.lemminx
])
];
};
home.file =
let
fr_utf-8_spl = builtins.fetchurl {
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.spl";
sha256 = "abfb9702b98d887c175ace58f1ab39733dc08d03b674d914f56344ef86e63b61";
};
fr_utf-8_sug = builtins.fetchurl {
url = "http://ftp.vim.org/vim/runtime/spell/fr.utf-8.sug";
sha256 = "0294bc32b42c90bbb286a89e23ca3773b7ef50eff1ab523b1513d6a25c6b3f58";
};
in
{
"${config.xdg.configHome}/nvim/spell/fr.utf-8.spl".source = fr_utf-8_spl;
"${config.xdg.configHome}/nvim/spell/fr.utf-8.sug".source = fr_utf-8_sug;
};
};
}