{ 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 # TODO: move signal to package with impermanence signal-desktop-bin # TODO: move bitwarden to package with impermanence bitwarden ungoogled-chromium libreoffice inkscape gimp krita 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 # hardware management tools (lib.mkIf hardware.piperMouse.enable piper) (lib.mkIf hardware.openRGB.enable openrgb) (lib.mkIf hardware.viaKeyboard.enable via) ]) ) ); programs = { # Let Home Manager install and manage itself. home-manager.enable = true; bash.enable = true; }; }) ]; }