275 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			275 lines
		
	
	
	
		
			7.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  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
 | 
						|
    ./package-configs/firefox
 | 
						|
    ./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";
 | 
						|
      };
 | 
						|
      librewolf = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/home/lillian/.mozilla/firefox";
 | 
						|
        target = ".librewolf";
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    # 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
 | 
						|
      ruff
 | 
						|
      devtoolbox
 | 
						|
 | 
						|
      # 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
 | 
						|
      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;
 | 
						|
      settings = {
 | 
						|
        user = {
 | 
						|
          name = "Lillian-Violet";
 | 
						|
          email = "git@lillianviolet.dev";
 | 
						|
        };
 | 
						|
        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;
 | 
						|
  };
 | 
						|
}
 |