nichts/modules/options/system/programs.mod.nix
2025-07-16 22:15:41 +02:00

51 lines
1.5 KiB
Nix

{lib, ...}: let
inherit (lib.types) str enum;
inherit (lib.options) mkEnableOption mkOption;
in {
options.modules.system.programs = {
editors = {
helix.enable = mkEnableOption "Helix text editor";
kakoune.enable = mkEnableOption "Kakoune text editor";
};
discord.enable = mkEnableOption "Discord messenger";
spotify.enable = mkEnableOption "Spotify music client";
zathura.enable = mkEnableOption "Zathura pdf viewer";
nushell.enable = mkEnableOption "nushell";
terminals = {
foot.enable = mkEnableOption "Foot terminal emulator";
kitty.enable = mkEnableOption "Kitty terminal emulator";
};
git = {
signingKey = mkOption {
type = str;
default = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILPiRe9OH/VtWFWyy5QbAVcN7CLxr4zUtRCwmxD6aeN6";
description = "The default gpg key used for signing commits";
};
};
default = {
terminal = mkOption {
type = enum ["foot" "kitty"];
default = "foot";
};
fileManager = mkOption {
type = enum ["thunar" "dolphin" "nemo"];
default = "thunar";
};
browser = mkOption {
type = enum ["firefox" "librewolf" "chromium"];
default = "firefox";
};
editor = mkOption {
type = enum ["neovim" "helix" "emacs"];
default = "emacs";
};
launcher = mkOption {
type = enum ["anyrun" "rofi" "wofi"];
default = "anyrun";
};
};
};
}