{ inputs, outputs, lib, config, pkgs, ... }: { # You can import other home-manager modules here imports = [ # If you want to use modules your own flake exports (from modules/home-manager): # outputs.homeManagerModules.example # Or modules exported from other flakes (such as nix-colors): # inputs.nix-colors.homeManagerModules.default # You can also split up your configuration and import pieces of it here: # ./nvim.nix ./package-configs/plasma-desktop.nix ./package-configs/firefox.nix ./package-configs/konsole ./package-configs/foot ]; nixpkgs = { # You can add overlays here overlays = [ # You can also add 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 ]; # }); # }) (final: prev: { catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: { accent = "mauve"; boldKeywords = true; italicComments = true; italicKeywords = true; extraBordersEnabled = false; workbenchMode = "default"; bracketMode = "rainbow"; colorOverrides = {}; customUIColors = {}; }); }) (final: prev: { catppuccin-vsc = final.catppuccin-vsc.overrideAttrs (oldAttrs: { accent = "mauve"; boldKeywords = true; italicComments = true; italicKeywords = true; extraBordersEnabled = false; workbenchMode = "default"; bracketMode = "rainbow"; colorOverrides = {}; customUIColors = {}; }); }) ]; # Configure your nixpkgs instance config = { # Disable if you don't want unfree packages allowUnfree = true; }; }; home = { username = "lillian"; homeDirectory = "/home/lillian"; }; # Add stuff for your user as you see fit: # programs.neovim.enable = true; # home.packages = with pkgs; [ steam ]; home.packages = with pkgs; [ # Coding: direnv git git-credential-manager git-credential-manager ruff kate # Chat applications: signal-desktop webcord-vencord # Gaming: prismlauncher steam # Multimedia: freetube vlc # Office applications: onlyoffice-bin gimp thunderbird # System tools: rage flameshot fzf nextcloud-client nitrokey-app protonvpn-gui virtualbox #watchmate qbittorrent # Theming: catppuccin-cursors (catppuccin-kde.override { flavour = ["macchiato"]; accents = ["mauve"]; }) catppuccin-sddm-corners # Theming: catppuccin-cursors (catppuccin-kde.override { flavour = ["macchiato"]; accents = ["mauve"]; }) catppuccin-sddm-corners # Web browsing: firefoxpwa firefoxpwa ungoogled-chromium ]; programs.vscode = { enable = true; package = pkgs.vscodium; extensions = with pkgs.vscode-extensions; [ catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc-icons catppuccin.catppuccin-vsc catppuccin.catppuccin-vsc-icons charliermarsh.ruff eamodio.gitlens github.vscode-pull-request-github jnoortheen.nix-ide kamadorueda.alejandra mkhl.direnv ms-toolsai.jupyter ms-pyright.pyright ms-python.black-formatter oderwat.indent-rainbow rust-lang.rust-analyzer yzhang.markdown-all-in-one ]; }; programs.obs-studio = { enable = true; plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-backgroundremoval obs-pipewire-audio-capture ]; }; # Enable home-manager and git programs.home-manager.enable = true; programs.git = { enable = true; userEmail = "git@lillianviolet.dev"; userName = "Lillian-Violet"; extraConfig = { init = { defaultBranch = "main"; }; }; ignores = [ "*.direnv" "*.vscode" ".envrc" "venv" "venv" ]; }; programs.gpg.enable = true; programs.gpg.settings = { default-key = "0d43 5407 034c 2ad9 2d42 799d 280e 061d ff60 0f0d"; default-recipient-self = true; auto-key-locate = "local,wkd,keyserver"; keyserver = "hkps://keys.openpgp.org"; auto-key-retrieve = true; auto-key-import = true; keyserver-options = "honor-keyserver-url"; no-autostart = true; }; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; }