90 lines
2.5 KiB
Nix
90 lines
2.5 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
hardware = osConfig.host.hardware;
|
|
in {
|
|
imports = [
|
|
./vscode
|
|
./firefox.nix
|
|
./direnv.nix
|
|
./openssh.nix
|
|
./git.nix
|
|
./makemkv.nix
|
|
];
|
|
|
|
config = lib.mkMerge [
|
|
{
|
|
programs = lib.mkMerge [
|
|
{
|
|
# Let Home Manager install and manage itself.
|
|
home-manager.enable = true;
|
|
}
|
|
(lib.mkIf (config.user.isTerminalUser || config.user.isDesktopUser) {
|
|
bash.enable = true;
|
|
git.enable = true;
|
|
openssh.enable = true;
|
|
})
|
|
(lib.mkIf config.user.isDesktopUser {
|
|
bitwarden.enable = true;
|
|
obs-studio.enable = hardware.graphicsAcceleration.enable;
|
|
qbittorrent.enable = true;
|
|
prostudiomasters.enable = true;
|
|
protonvpn-gui.enable = true;
|
|
dbeaver-bin.enable = true;
|
|
bruno.enable = true;
|
|
piper.enable = hardware.piperMouse.enable;
|
|
proxmark3.enable = true;
|
|
openrgb.enable = hardware.openRGB.enable;
|
|
via.enable = hardware.viaKeyboard.enable;
|
|
claude-code.enable = osConfig.host.ai.enable;
|
|
davinci-resolve.enable = hardware.graphicsAcceleration.enable;
|
|
mfoc.enable = true;
|
|
})
|
|
(lib.mkIf (hardware.directAccess.enable && config.user.isDesktopUser) {
|
|
anki.enable = true;
|
|
makemkv.enable = true;
|
|
discord.enable = true;
|
|
signal-desktop-bin.enable = true;
|
|
calibre.enable = true;
|
|
obsidian.enable = true;
|
|
jetbrains.idea-community.enable = true;
|
|
vscode.enable = true;
|
|
firefox.enable = true;
|
|
steam.enable = true;
|
|
krita.enable = true;
|
|
ungoogled-chromium.enable = true;
|
|
libreoffice.enable = true;
|
|
inkscape.enable = true;
|
|
gimp.enable = true;
|
|
freecad.enable = true;
|
|
onionshare.enable = true;
|
|
pdfarranger.enable = true;
|
|
picard.enable = true;
|
|
qflipper.enable = true;
|
|
openvpn.enable = true;
|
|
noisetorch.enable = true;
|
|
tor-browser.enable = true;
|
|
gdx-liftoff.enable = true;
|
|
})
|
|
];
|
|
}
|
|
(lib.mkIf config.user.isTerminalUser {
|
|
home.packages = with pkgs; [
|
|
# command line tools
|
|
sox
|
|
yt-dlp
|
|
ffmpeg
|
|
imagemagick
|
|
];
|
|
})
|
|
(lib.mkIf config.user.isDesktopUser {
|
|
nixpkgs.config = {
|
|
allowUnfree = true;
|
|
};
|
|
})
|
|
];
|
|
}
|