Configuration for my various machines!
# This is your home-manager configuration file
# Use this to configure your home environment (it replaces ~/.config/nixpkgs/home.nix)
{
  inputs,
  lib,
  config,
  pkgs,
  username,
  ...
}: {
  # You can import other home-manager modules here
  imports = [
    # If you want to use home-manager modules from other flakes (such as nix-colors):
    # inputs.nix-colors.homeManagerModule

    # You can also split up your configuration and import pieces of it here:
    # ./nvim.nix
    inputs.plasma-manager.homeManagerModules.plasma-manager
  ];

  nixpkgs = {
    # You can add overlays here
    overlays = [
      # If you want to use overlays exported from other flakes:
      # neovim-nightly-overlay.overlays.default

      # Or define it inline, for example:
      # (final: prev: {
      #   hi = final.hello.overrideAttrs (oldAttrs: {
      #     patches = [ ./change-hello-to-hi.patch ];
      #   });
      # })
    ];
    # Configure your nixpkgs instance
    config = {
      # Disable if you don't want unfree packages
      allowUnfree = true;
      # Workaround for https://github.com/nix-community/home-manager/issues/2942
      allowUnfreePredicate = _: true;
      segger-jlink.acceptLicense = true;
    };
  };

  home = rec {
    username = "chris";
    homeDirectory = "/home/${username}";
  };

  # Add stuff for your user as you see fit:
  # programs.neovim.enable = true;
  home.packages = with pkgs; [ 
    element-desktop 
    remmina 
    thunderbird 
    firefox
    #kicad - does not support global libraries :(
    alacritty
    obsidian
    steam
    scrcpy
    pass
    okteta
    deja-dup
    p7zip
    bottles
    gnupg
    gpg-tui
    libreoffice
    htop
    inkscape

    kdePackages.kwallet
    kdePackages.kwalletmanager
    kdePackages.spectacle
    kdePackages.kdeconnect-kde
    kdePackages.okular
    kdePackages.skanpage
    kdePackages.kate
    kdePackages.filelight
    kdePackages.kcharselect
    kdePackages.powerdevil
    kdePackages.discover

    reaper
    supercollider
    pipewire
    qpwgraph
    calf

    python314
    ghc

    neovide
    zed-editor

    nrfutil
    nrfconnect
    nrf-command-line-tools
    nrfconnect-bluetooth-low-energy
    nrf-udev
  ];

  # Enable home-manager and git
  programs.home-manager.enable = true;
  programs.git.enable = true;

  programs.plasma = {
    enable = true;
    workspace = {
      clickItemTo = "select";
      lookAndFeel = "org.kde.breezedark.desktop";
      cursor.theme = "Bibata-Modern-Ice";
      iconTheme = "Papirus-Dark";
    };
  };

  # Nicely reload system units when changing configs
  systemd.user.startServices = "sd-switch";

  # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion
  home.stateVersion = "25.05";
}