186 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			186 lines
		
	
	
	
		
			4.3 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ config,
 | 
						|
  nixosConfig,
 | 
						|
  pkgs,
 | 
						|
  lib,
 | 
						|
  inputs,
 | 
						|
  home-manager,
 | 
						|
  ... }:
 | 
						|
let
 | 
						|
  handheldPkgs = lib.attrVals [
 | 
						|
    "fluffychat"
 | 
						|
  ] pkgs;
 | 
						|
  pcPkgs = lib.attrVals [
 | 
						|
    "activitywatch"
 | 
						|
    "anki"
 | 
						|
    "awatcher"
 | 
						|
    "dunst"
 | 
						|
    "foliate"
 | 
						|
    "foot"
 | 
						|
    "grim"
 | 
						|
    "hunspell"
 | 
						|
    "hyprpaper"
 | 
						|
    "hyprpicker"
 | 
						|
    "isync"
 | 
						|
    "kitty"
 | 
						|
    "libreoffice"
 | 
						|
    "librewolf"
 | 
						|
    "lynx"
 | 
						|
    "mpv"
 | 
						|
    "msmtp"
 | 
						|
    "neomutt"
 | 
						|
    "networkmanagerapplet"
 | 
						|
    "nheko"
 | 
						|
    "notmuch"
 | 
						|
    "osu-lazer"
 | 
						|
    "pass"
 | 
						|
    "pavucontrol"
 | 
						|
    "playerctl"
 | 
						|
    "prismlauncher"
 | 
						|
    "pstree"
 | 
						|
    "qbittorrent"
 | 
						|
    "qt6ct"
 | 
						|
    "slurp"
 | 
						|
    "swayidle"
 | 
						|
    "swaylock-effects"
 | 
						|
    "tofi"
 | 
						|
    "wofi"
 | 
						|
  ] pkgs ++ [ pkgs.hunspellDicts.en_US pkgs.kdePackages.okular ];
 | 
						|
in
 | 
						|
{
 | 
						|
  options = {
 | 
						|
  };
 | 
						|
 | 
						|
  config = {
 | 
						|
    home.packages = with pkgs; [
 | 
						|
      cider
 | 
						|
      ngspice
 | 
						|
      kicad
 | 
						|
      #steamvr?
 | 
						|
      procps
 | 
						|
      usbutils
 | 
						|
      yt-dlp
 | 
						|
      (python3.withPackages (lib.attrVals [ "matplotlib" "pyflakes" "python-lsp-server" "sympy"]))
 | 
						|
    ]
 | 
						|
    ++ (lib.optionals (nixosConfig.stitchyconf.form == "handheld") handheldPkgs)
 | 
						|
    ++ (lib.optionals (nixosConfig.stitchyconf.form == "pc") pcPkgs);
 | 
						|
 | 
						|
    dconf.settings = {
 | 
						|
      "org/virt-manager/virt-manager/connections" = {
 | 
						|
        autoconnect = ["qemu:///system"];
 | 
						|
        uris = ["qemu:///system"];
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    # To-Do Later
 | 
						|
    home.sessionVariables = {
 | 
						|
      FOO = "BAR";
 | 
						|
    };
 | 
						|
 | 
						|
    gtk.enable = true;
 | 
						|
    dconf.settings = {
 | 
						|
      "org/gnome/desktop/interface" = {
 | 
						|
        color-scheme = "prefer-dark";
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    home.file = {
 | 
						|
      ".zshrc".source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/zshrc";
 | 
						|
    };
 | 
						|
 | 
						|
    xdg.configFile = {
 | 
						|
      "dunst" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/dunst";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "eww" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/eww";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "foot" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/foot";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "hypr" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/hypr";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "mutt" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/mutt";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "mutt_oauth2.py" = {
 | 
						|
        source = "${pkgs.neomutt}/share/neomutt/oauth2/mutt_oauth2.py";
 | 
						|
      };
 | 
						|
      "swaylock" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/swaylock";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
      "vis" = {
 | 
						|
        source = config.lib.file.mkOutOfStoreSymlink "/etc/nixos/config/vis";
 | 
						|
        recursive = true;
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    systemd.user.services = {
 | 
						|
      mailsync = {
 | 
						|
        Unit = {
 | 
						|
          Description = "Syncs email";
 | 
						|
          After = [ "network-online.target" ];
 | 
						|
        };
 | 
						|
        Service = {
 | 
						|
          Type = "oneshot";
 | 
						|
          ExecStart = "${pkgs.mutt-wizard}/bin/mailsync";
 | 
						|
          Environment =  [
 | 
						|
            "DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus"
 | 
						|
            "DISPLAY=:0"
 | 
						|
            "MBSYNCRC=/home/stitchynyan/.config/mbsync/config"
 | 
						|
            "PATH=$PATH:${lib.makeBinPath (lib.attrVals [ "busybox" "cyrus-sasl-xoauth2" "gnupg" "isync" "libnotify" "notmuch" "pass" "perl" "python3" ] pkgs)}"
 | 
						|
            "SASL_PATH=/run/current-system/sw/lib/sasl2"
 | 
						|
            "WAYLAND_DISPLAY=wayland-1"
 | 
						|
          ];
 | 
						|
        };
 | 
						|
        Install.WantedBy = [ "default.target" ];
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    programs.gpg = {
 | 
						|
      homedir = "${config.xdg.dataHome}/gnupg";
 | 
						|
    };
 | 
						|
 | 
						|
    services = {
 | 
						|
      gpg-agent = {
 | 
						|
        enable = true;
 | 
						|
        enableScDaemon = false;
 | 
						|
        enableSshSupport = true;
 | 
						|
        defaultCacheTtl = 34560000;
 | 
						|
        maxCacheTtl = 34560000;
 | 
						|
        extraConfig = ''
 | 
						|
          allow-preset-passphrase
 | 
						|
          pinentry-program /run/current-system/sw/bin/pinentry
 | 
						|
        '';
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    systemd.user.timers = {
 | 
						|
      mailsync = {
 | 
						|
        Unit.Description = "Syncs email";
 | 
						|
        Timer = {
 | 
						|
          OnBootSec = "1min";
 | 
						|
          OnUnitActiveSec = "10min";
 | 
						|
        };
 | 
						|
        Install.WantedBy = [ "timers.target" ];
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    home.pointerCursor = {
 | 
						|
      name = "phinger-cursors-dark";
 | 
						|
      package = pkgs.phinger-cursors;
 | 
						|
      gtk.enable = true;
 | 
						|
      size = 24;
 | 
						|
    };
 | 
						|
 | 
						|
    # Read the Docs before change
 | 
						|
    home.stateVersion = "23.05";
 | 
						|
    home.homeDirectory = "/home/stitchynyan";
 | 
						|
  };
 | 
						|
}
 |