{ pkgs, config, ... }: { # 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 ./package-configs/freetube ./package-configs/vesktop ]; 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 = {}; # }); # }) ]; config = { permittedInsecurePackages = ["cinny-4.2.3" "cinny-unwrapped-4.2.3" "cinny-4.2.2" "cinny-unwrapped-4.2.2"]; # Configure your nixpkgs instance # Disable if you don't want unfree packages allowUnfree = true; }; }; systemd.user = { # services."nextcloud-autosync@" = { # Unit = { # Description = "Auto sync Nextcloud"; # After = "network-online.target"; # PartOf = ["nextcloud-autosyncs.target"]; # }; # Service = { # Type = "simple"; # ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /%i /home/lillian/%i https://nextcloud.gladtherescake.eu"; # TimeoutStopSec = "180"; # KillMode = "process"; # KillSignal = "SIGINT"; # }; # Install.WantedBy = ["multi-user.target"]; # }; # targets.nextcloud-autosyncs = { # Unit = { # Description = "workers"; # Requires = ["nextcloud-autosync@Music" "nextcloud-autosync@Pictures" "nextcloud-autosync@Scripts" "nextcloud-autosync@Videos" "nextcloud-autosync@Documents"]; # PartOf = "nextcloud-autosyncs.target"; # }; # Install.WantedBy = ["multi-user.target"]; # }; # timers.nextcloud-autosyncs = { # Unit.Description = "Automatic sync files with Nextcloud when booted up after 5 minutes then rerun every 60 minutes"; # Timer.OnBootSec = "5min"; # Timer.OnUnitActiveSec = "60min"; # Install.WantedBy = ["multi-user.target" "timers.target"]; # }; # Nicely reload system units when changing configs startServices = "sd-switch"; }; home = { username = "lillian"; homeDirectory = "/home/lillian"; file = { Music = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Music"; target = "Music"; }; Pictures = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures"; target = "Pictures"; }; Screenshots = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Pictures/Screenshots"; target = "Screenshots"; }; Scripts = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Scripts"; target = "Scripts"; }; Videos = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Videos"; target = "Videos"; }; Documents = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/Nextcloud/Documents"; target = "Documents"; }; floorp = { source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox"; target = ".floorp"; }; }; # Add stuff for your user as you see fit: # programs.neovim.enable = true; # home.packages = with pkgs; [ steam ]; packages = with pkgs; [ # Coding: direnv git git-credential-manager git-credential-manager ruff kate # Chat applications: signal-desktop vesktop # cinny-desktop # Gaming: prismlauncher steam gamescope # Multimedia: vlc fcast-receiver fcast-client # 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 # charliermarsh.ruff # eamodio.gitlens # github.vscode-pull-request-github # jnoortheen.nix-ide # kamadorueda.alejandra # mkhl.direnv # ms-toolsai.jupyter # ms-pyright.pyright # oderwat.indent-rainbow # rust-lang.rust-analyzer # yzhang.markdown-all-in-one # ]; # }; obs-studio.enable = true; obs-studio.plugins = with pkgs.obs-studio-plugins; [ wlrobs obs-backgroundremoval obs-pipewire-audio-capture ]; # Enable home-manager and git home-manager.enable = true; git = { enable = true; userEmail = "git@lillianviolet.dev"; userName = "Lillian-Violet"; extraConfig = { init = { defaultBranch = "main"; }; }; ignores = [ "*.direnv" "*.vscode" ".envrc" "venv" "venv" ]; signing.format = "ssh"; }; gpg.enable = true; 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; }; }; services = { kdeconnect.package = pkgs.kdePackages.kdeconnect-kde; kdeconnect.enable = true; }; }