created program option entries for all packages that needs continual state

This commit is contained in:
Leyla Becker 2025-06-02 22:47:01 -05:00
parent 5484f9ba04
commit 9fe35e74ad
21 changed files with 374 additions and 63 deletions

View file

@ -12,41 +12,47 @@ in {
# See https://search.nixos.org/packages for all options # See https://search.nixos.org/packages for all options
home.packages = lib.lists.optionals userConfig.isDesktopUser ( home.packages = lib.lists.optionals userConfig.isDesktopUser (
with pkgs; [ with pkgs; [
firefox
bitwarden
discord
makemkv
signal-desktop-bin
ungoogled-chromium ungoogled-chromium
] ]
); );
# Packages that need to be installed with some extra configuration # Packages that need to be installed with some extra configuration
# See https://home-manager-options.extranix.com/ for all options # See https://home-manager-options.extranix.com/ for all options
programs = { programs = lib.mkMerge [
# Let Home Manager install and manage itself. {
home-manager.enable = true; # Let Home Manager install and manage itself.
home-manager.enable = true;
}
(lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) {
git = {
enable = true;
userName = "Eve";
userEmail = "evesnrobins@gmail.com";
extraConfig.init.defaultBranch = "main";
};
git = { openssh = {
enable = true; enable = true;
userName = "Eve"; hostKeys = [
userEmail = "evesnrobins@gmail.com"; {
extraConfig.init.defaultBranch = "main"; type = "ed25519";
}; path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
})
(lib.mkIf userConfig.isDesktopUser {
vscode = {
enable = true;
package = pkgs.vscodium;
};
vscode = { firefox.enable = true;
enable = true; bitwarden.enable = true;
package = pkgs.vscodium; discord.enable = true;
}; makemkv.enable = true;
signal-desktop-bin.enable = true;
openssh = { })
hostKeys = [ ];
{
type = "ed25519";
path = "${config.home.username}_${osConfig.networking.hostName}_ed25519";
}
];
};
};
}; };
} }

View file

@ -45,10 +45,6 @@ in {
++ ( ++ (
lib.lists.optionals hardware.directAccess.enable (with pkgs; [ lib.lists.optionals hardware.directAccess.enable (with pkgs; [
#foss platforms #foss platforms
# TODO: move signal to package with impermanence
signal-desktop-bin
# TODO: move bitwarden to package with impermanence
bitwarden
ungoogled-chromium ungoogled-chromium
libreoffice libreoffice
inkscape inkscape
@ -57,42 +53,25 @@ in {
freecad freecad
# cura # cura
# kicad-small # kicad-small
# TODO: move makemkv to package with configs set and impermanence
makemkv
onionshare onionshare
# rhythmbox # rhythmbox
# TODO: move obs to package with impermanence
(lib.mkIf hardware.graphicsAcceleration.enable obs-studio)
# wireshark # wireshark
# rpi-imager # rpi-imager
# fritzing # fritzing
mfoc mfoc
tor-browser tor-browser
anki
pdfarranger pdfarranger
calibre
qbittorrent
picard picard
# proprietary platforms # proprietary platforms
# TODO: move discord to package with impermanence
discord
# TODO: move obsidian to package with impermanence
obsidian
# TODO: move prostudiomasters to package with impermanence
prostudiomasters
(lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve) (lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve)
# development tools # development tools
# androidStudioPackages.canary # androidStudioPackages.canary
# TODO: move idea to package with impermanence and installed extensions
jetbrains.idea-community
qFlipper qFlipper
# system tools # system tools
# TODO: move protonvpn to package with impermanence and installed extensions
protonvpn-gui
openvpn openvpn
noisetorch noisetorch
@ -103,12 +82,35 @@ in {
]) ])
) )
); );
programs = { programs = lib.mkMerge [
# Let Home Manager install and manage itself. {
home-manager.enable = true; # Let Home Manager install and manage itself.
home-manager.enable = true;
bash.enable = true; bash.enable = true;
}; }
(lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) {
git.enable = true;
openssh.enable = true;
})
(lib.mkIf hardware.directAccess.enable {
anki.enable = true;
bitwarden.enable = true;
signal-desktop-bin.enable = true;
makemkv.enable = true;
obs-studio.enable = hardware.graphicsAcceleration.enable;
calibre.enable = true;
qbittorrent.enable = true;
discord.enable = true;
obsidian.enable = true;
prostudiomasters.enable = true;
jetbrains.idea-community.enable = true;
protonvpn-gui.enable = true;
})
(lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) {
vscode.enable = true;
firefox.enable = true;
})
];
}) })
]; ];
} }

View file

@ -2,12 +2,10 @@
lib, lib,
pkgs, pkgs,
inputs, inputs,
config,
... ...
}: { }: {
config = { config = {
programs.firefox = { programs.firefox = {
enable = config.user.isDesktopUser;
profiles.leyla = { profiles.leyla = {
settings = { settings = {
"browser.search.defaultenginename" = "Searx"; "browser.search.defaultenginename" = "Searx";

View file

@ -1,8 +1,7 @@
{config, ...}: { {...}: {
config = { config = {
programs = { programs = {
git = { git = {
enable = config.user.isDesktopUser || config.user.isTerminalUser;
userName = "Leyla Becker"; userName = "Leyla Becker";
userEmail = "git@jan-leila.com"; userEmail = "git@jan-leila.com";
extraConfig.init.defaultBranch = "main"; extraConfig.init.defaultBranch = "main";

View file

@ -6,7 +6,6 @@
config = { config = {
programs = { programs = {
openssh = { openssh = {
enable = config.user.isDesktopUser;
authorizedKeys = [ authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
@ -20,6 +19,5 @@
]; ];
}; };
}; };
# TODO: impermanence module, prob in home-manager-modules?
}; };
} }

View file

@ -26,8 +26,6 @@ in {
open-vsx = extensions.open-vsx; open-vsx = extensions.open-vsx;
vscode-marketplace = extensions.vscode-marketplace; vscode-marketplace = extensions.vscode-marketplace;
in { in {
enable = true;
package = pkgs.vscodium; package = pkgs.vscodium;
mutableExtensionsDir = false; mutableExtensionsDir = false;

View file

@ -6,5 +6,6 @@
./i18n.nix ./i18n.nix
./openssh.nix ./openssh.nix
./continue.nix ./continue.nix
./programs
]; ];
} }

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.anki = {
enable = lib.mkEnableOption "enable anki";
};
config = lib.mkIf config.programs.anki.enable (lib.mkMerge [
{
home.packages = with pkgs; [
anki
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for anki
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.bitwarden = {
enable = lib.mkEnableOption "enable bitwarden";
};
config = lib.mkIf config.programs.bitwarden.enable (lib.mkMerge [
{
home.packages = with pkgs; [
bitwarden
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for bitwarden
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.calibre = {
enable = lib.mkEnableOption "enable calibre";
};
config = lib.mkIf config.programs.calibre.enable (lib.mkMerge [
{
home.packages = with pkgs; [
calibre
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for calibre
}
)
]);
}

View file

@ -0,0 +1,17 @@
{...}: {
imports = [
./firefox.nix
./signal.nix
./bitwarden.nix
./makemkv.nix
./obs.nix
./anki.nix
./qbittorrent.nix
./discord.nix
./obsidian.nix
./prostudiomasters.nix
./idea.nix
./protonvpn.nix
./calibre.nix
];
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.discord = {
enable = lib.mkEnableOption "enable discord";
};
config = lib.mkIf config.programs.discord.enable (lib.mkMerge [
{
home.packages = with pkgs; [
discord
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for discord
}
)
]);
}

View file

@ -0,0 +1,3 @@
{...}: {
# TODO: map firefox impermanence
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.jetbrains.idea-community = {
enable = lib.mkEnableOption "enable idea-community";
};
config = lib.mkIf config.programs.jetbrains.idea-community.enable (lib.mkMerge [
{
home.packages = with pkgs; [
jetbrains.idea-community
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for idea-community
}
)
]);
}

View file

@ -0,0 +1,25 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.makemkv = {
enable = lib.mkEnableOption "enable makemkv";
};
config = lib.mkIf config.programs.makemkv.enable (lib.mkMerge [
{
home.packages = with pkgs; [
makemkv
];
# TODO: write config file for makemkv
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for makemkv
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.obs-studio = {
# enable = lib.mkEnableOption "enable obs";
};
config = lib.mkIf config.programs.obs-studio.enable (lib.mkMerge [
{
home.packages = with pkgs; [
obs-studio
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for obs
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.obsidian = {
# enable = lib.mkEnableOption "enable obsidian";
};
config = lib.mkIf config.programs.obsidian.enable (lib.mkMerge [
{
home.packages = with pkgs; [
obsidian
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for obsidian
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.prostudiomasters = {
enable = lib.mkEnableOption "enable prostudiomasters";
};
config = lib.mkIf config.programs.prostudiomasters.enable (lib.mkMerge [
{
home.packages = with pkgs; [
prostudiomasters
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for prostudiomasters
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.protonvpn-gui = {
enable = lib.mkEnableOption "enable protonvpn";
};
config = lib.mkIf config.programs.protonvpn-gui.enable (lib.mkMerge [
{
home.packages = with pkgs; [
protonvpn-gui
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for protonvpn
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.qbittorrent = {
enable = lib.mkEnableOption "enable qbittorrent";
};
config = lib.mkIf config.programs.qbittorrent.enable (lib.mkMerge [
{
home.packages = with pkgs; [
qbittorrent
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for qbittorrent
}
)
]);
}

View file

@ -0,0 +1,24 @@
{
lib,
pkgs,
config,
osConfig,
...
}: {
options.programs.signal-desktop-bin = {
enable = lib.mkEnableOption "enable signal";
};
config = lib.mkIf config.programs.signal-desktop-bin.enable (lib.mkMerge [
{
home.packages = with pkgs; [
signal-desktop-bin
];
}
(
lib.mkIf osConfig.host.impermanence.enable {
# TODO: map impermanence for signal
}
)
]);
}