116 lines
2.7 KiB
Nix
116 lines
2.7 KiB
Nix
{
|
|
lib,
|
|
pkgs,
|
|
config,
|
|
osConfig,
|
|
...
|
|
}: let
|
|
hardware = osConfig.host.hardware;
|
|
in {
|
|
imports = [
|
|
./vscode
|
|
./firefox.nix
|
|
./direnv.nix
|
|
./openssh.nix
|
|
./git.nix
|
|
];
|
|
|
|
config = lib.mkMerge [
|
|
(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;
|
|
};
|
|
|
|
home.packages = (
|
|
(with pkgs; [
|
|
# helvetica font
|
|
aileron
|
|
|
|
gnomeExtensions.dash-to-dock
|
|
|
|
# development tools
|
|
dbeaver-bin
|
|
bruno
|
|
proxmark3
|
|
])
|
|
++ (
|
|
lib.lists.optionals hardware.directAccess.enable (with pkgs; [
|
|
#foss platforms
|
|
ungoogled-chromium
|
|
libreoffice
|
|
inkscape
|
|
gimp
|
|
krita
|
|
freecad
|
|
# cura
|
|
# kicad-small
|
|
onionshare
|
|
# rhythmbox
|
|
|
|
# wireshark
|
|
# rpi-imager
|
|
# fritzing
|
|
mfoc
|
|
tor-browser
|
|
pdfarranger
|
|
picard
|
|
|
|
# proprietary platforms
|
|
(lib.mkIf hardware.graphicsAcceleration.enable davinci-resolve)
|
|
|
|
# development tools
|
|
# androidStudioPackages.canary
|
|
qFlipper
|
|
|
|
# system tools
|
|
openvpn
|
|
noisetorch
|
|
|
|
# hardware management tools
|
|
(lib.mkIf hardware.piperMouse.enable piper)
|
|
(lib.mkIf hardware.openRGB.enable openrgb)
|
|
(lib.mkIf hardware.viaKeyboard.enable via)
|
|
])
|
|
)
|
|
);
|
|
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 config.user.isDesktopUser {
|
|
bitwarden.enable = true;
|
|
obs-studio.enable = hardware.graphicsAcceleration.enable;
|
|
qbittorrent.enable = true;
|
|
prostudiomasters.enable = true;
|
|
protonvpn-gui.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;
|
|
})
|
|
];
|
|
})
|
|
];
|
|
}
|