created program option entries for all packages that needs continual state
This commit is contained in:
parent
5484f9ba04
commit
9fe35e74ad
21 changed files with 374 additions and 63 deletions
|
@ -12,21 +12,18 @@ in {
|
|||
# See https://search.nixos.org/packages for all options
|
||||
home.packages = lib.lists.optionals userConfig.isDesktopUser (
|
||||
with pkgs; [
|
||||
firefox
|
||||
bitwarden
|
||||
discord
|
||||
makemkv
|
||||
signal-desktop-bin
|
||||
ungoogled-chromium
|
||||
]
|
||||
);
|
||||
|
||||
# Packages that need to be installed with some extra configuration
|
||||
# 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;
|
||||
|
||||
}
|
||||
(lib.mkIf (config.user.isDesktopUser || config.user.isTerminalUser) {
|
||||
git = {
|
||||
enable = true;
|
||||
userName = "Eve";
|
||||
|
@ -34,12 +31,8 @@ in {
|
|||
extraConfig.init.defaultBranch = "main";
|
||||
};
|
||||
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
};
|
||||
|
||||
openssh = {
|
||||
enable = true;
|
||||
hostKeys = [
|
||||
{
|
||||
type = "ed25519";
|
||||
|
@ -47,6 +40,19 @@ in {
|
|||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
(lib.mkIf userConfig.isDesktopUser {
|
||||
vscode = {
|
||||
enable = true;
|
||||
package = pkgs.vscodium;
|
||||
};
|
||||
|
||||
firefox.enable = true;
|
||||
bitwarden.enable = true;
|
||||
discord.enable = true;
|
||||
makemkv.enable = true;
|
||||
signal-desktop-bin.enable = true;
|
||||
})
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -45,10 +45,6 @@ in {
|
|||
++ (
|
||||
lib.lists.optionals hardware.directAccess.enable (with pkgs; [
|
||||
#foss platforms
|
||||
# TODO: move signal to package with impermanence
|
||||
signal-desktop-bin
|
||||
# TODO: move bitwarden to package with impermanence
|
||||
bitwarden
|
||||
ungoogled-chromium
|
||||
libreoffice
|
||||
inkscape
|
||||
|
@ -57,42 +53,25 @@ in {
|
|||
freecad
|
||||
# cura
|
||||
# kicad-small
|
||||
# TODO: move makemkv to package with configs set and impermanence
|
||||
makemkv
|
||||
onionshare
|
||||
# rhythmbox
|
||||
|
||||
# TODO: move obs to package with impermanence
|
||||
(lib.mkIf hardware.graphicsAcceleration.enable obs-studio)
|
||||
# wireshark
|
||||
# rpi-imager
|
||||
# fritzing
|
||||
mfoc
|
||||
tor-browser
|
||||
anki
|
||||
pdfarranger
|
||||
calibre
|
||||
qbittorrent
|
||||
picard
|
||||
|
||||
# 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)
|
||||
|
||||
# development tools
|
||||
# androidStudioPackages.canary
|
||||
# TODO: move idea to package with impermanence and installed extensions
|
||||
jetbrains.idea-community
|
||||
qFlipper
|
||||
|
||||
# system tools
|
||||
# TODO: move protonvpn to package with impermanence and installed extensions
|
||||
protonvpn-gui
|
||||
openvpn
|
||||
noisetorch
|
||||
|
||||
|
@ -103,12 +82,35 @@ in {
|
|||
])
|
||||
)
|
||||
);
|
||||
programs = {
|
||||
programs = lib.mkMerge [
|
||||
{
|
||||
# Let Home Manager install and manage itself.
|
||||
home-manager.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;
|
||||
})
|
||||
];
|
||||
})
|
||||
];
|
||||
}
|
||||
|
|
|
@ -2,12 +2,10 @@
|
|||
lib,
|
||||
pkgs,
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
config = {
|
||||
programs.firefox = {
|
||||
enable = config.user.isDesktopUser;
|
||||
profiles.leyla = {
|
||||
settings = {
|
||||
"browser.search.defaultenginename" = "Searx";
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
{config, ...}: {
|
||||
{...}: {
|
||||
config = {
|
||||
programs = {
|
||||
git = {
|
||||
enable = config.user.isDesktopUser || config.user.isTerminalUser;
|
||||
userName = "Leyla Becker";
|
||||
userEmail = "git@jan-leila.com";
|
||||
extraConfig.init.defaultBranch = "main";
|
||||
|
|
|
@ -6,7 +6,6 @@
|
|||
config = {
|
||||
programs = {
|
||||
openssh = {
|
||||
enable = config.user.isDesktopUser;
|
||||
authorizedKeys = [
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJHeItmt8TRW43uNcOC+eIurYC7Eunc0V3LGocQqLaYj leyla@horizon"
|
||||
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIILimFIW2exEH/Xo7LtXkqgE04qusvnPNpPWSCeNrFkP leyla@defiant"
|
||||
|
@ -20,6 +19,5 @@
|
|||
];
|
||||
};
|
||||
};
|
||||
# TODO: impermanence module, prob in home-manager-modules?
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,8 +26,6 @@ in {
|
|||
open-vsx = extensions.open-vsx;
|
||||
vscode-marketplace = extensions.vscode-marketplace;
|
||||
in {
|
||||
enable = true;
|
||||
|
||||
package = pkgs.vscodium;
|
||||
|
||||
mutableExtensionsDir = false;
|
||||
|
|
|
@ -6,5 +6,6 @@
|
|||
./i18n.nix
|
||||
./openssh.nix
|
||||
./continue.nix
|
||||
./programs
|
||||
];
|
||||
}
|
||||
|
|
24
modules/home-manager-modules/programs/anki.nix
Normal file
24
modules/home-manager-modules/programs/anki.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/bitwarden.nix
Normal file
24
modules/home-manager-modules/programs/bitwarden.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/calibre.nix
Normal file
24
modules/home-manager-modules/programs/calibre.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
17
modules/home-manager-modules/programs/default.nix
Normal file
17
modules/home-manager-modules/programs/default.nix
Normal 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
|
||||
];
|
||||
}
|
24
modules/home-manager-modules/programs/discord.nix
Normal file
24
modules/home-manager-modules/programs/discord.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
3
modules/home-manager-modules/programs/firefox.nix
Normal file
3
modules/home-manager-modules/programs/firefox.nix
Normal file
|
@ -0,0 +1,3 @@
|
|||
{...}: {
|
||||
# TODO: map firefox impermanence
|
||||
}
|
24
modules/home-manager-modules/programs/idea.nix
Normal file
24
modules/home-manager-modules/programs/idea.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
25
modules/home-manager-modules/programs/makemkv.nix
Normal file
25
modules/home-manager-modules/programs/makemkv.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/obs.nix
Normal file
24
modules/home-manager-modules/programs/obs.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/obsidian.nix
Normal file
24
modules/home-manager-modules/programs/obsidian.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/prostudiomasters.nix
Normal file
24
modules/home-manager-modules/programs/prostudiomasters.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/protonvpn.nix
Normal file
24
modules/home-manager-modules/programs/protonvpn.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/qbittorrent.nix
Normal file
24
modules/home-manager-modules/programs/qbittorrent.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
24
modules/home-manager-modules/programs/signal.nix
Normal file
24
modules/home-manager-modules/programs/signal.nix
Normal 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
|
||||
}
|
||||
)
|
||||
]);
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue