{ outputs, pkgs, pkgs-edge, lib, config, ... }: let cfg = config.sharedPackages; in { options = { sharedPackages.enable = lib.mkEnableOption "Whether or not to install shared packages and settings"; global.desktopPackages = lib.mkOption { type = lib.types.bool; default = false; description = "Whether or not to install shared desktop packages and settings."; }; global.serverPackages = lib.mkOption { type = lib.types.bool; default = false; description = "Whether or not to install shared server packages and settings."; }; }; config = lib.mkIf cfg.enable { imports = [] ++ lib.mkIf (cfg.desktopPackages == true) [ ./desktop-settings ] ++ lib.mkIf (cfg.serverPackages == true) [ ./server-settings ]; nixpkgs = { # You can add overlays here overlays = [ # Add overlays your own flake exports (from overlays and pkgs dir): outputs.overlays.additions outputs.overlays.modifications ]; }; environment.systemPackages = (with pkgs; [ # Custom tools rebuild rebuild-no-inhibit install-nix install-nix-no-inhibit update upgrade simple-completion-language-server # System tools age alejandra e2fsprogs # uutils-findutils git git-filter-repo pre-commit helix home-manager htop just killall oh-my-zsh rsync tre-command wget zsh tldr nmap knot-dns libressl nettools starship # System libraries ] ++ lib.mkIf (cfg.desktop == true) [ # Custom tools dvd dvt servo restart # System tools aha ttf-ms-win10 wineWow64Packages.stable bottles tpm2-abrmd jdk21_headless #bcachefs-tools clinfo direnv exfat exfatprogs gamemode git-filter-repo gnupg pciutils podman podman-compose python3Minimal sbctl tpm2-tools tpm2-tss virtualgl vulkan-tools # waydroid waypipe wayland-utils yubikey-personalization zsh # KDE/QT kdePackages.plasma-desktop kdePackages.plasma-wayland-protocols kdePackages.libplasma kdePackages.plasma-integration kdePackages.plasma-activities kdePackages.plasma-workspace kdePackages.discover kdePackages.filelight kdePackages.kcalc kdePackages.kdepim-addons kdePackages.kirigami kdePackages.kdeconnect-kde kdePackages.konsole # kdePackages.krunner-ssh # kdePackages.krunner-symbols kdePackages.packagekit-qt kdePackages.plasma-pa kdePackages.sddm-kcm kdePackages.dolphin-plugins kdePackages.qtstyleplugin-kvantum kdePackages.krdc kdePackages.krfb kdePackages.kate kdePackages.qrca libportal-qt5 libportal # User tools freetube noisetorch qjackctl wireplumber intiface-central #rustdesk ] ) ++ (with pkgs-edge; [ # list of latest packages from nixpkgs master # Can be used to install latest version of some packages ] ++ lib.mkIf (cfg.desktop == true) [ kdePackages.plasma-vault ] ); }; }