180 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			180 lines
		
	
	
	
		
			3.5 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{ lib, system, inputs, pkgs, config, ... }: {
 | 
						|
  imports = [ ./modules/greetd ];
 | 
						|
 | 
						|
  system.extraDependencies = with pkgs; [ ungoogled-chromium ];
 | 
						|
 | 
						|
  environment.systemPackages = with pkgs; [ nix-output-monitor ];
 | 
						|
  environment.sessionVariables.FLAKE = "/home/admin/nixnew";
 | 
						|
 | 
						|
  programs.steam = {
 | 
						|
    enable = true;
 | 
						|
    protontricks.enable = true;
 | 
						|
    extraCompatPackages = [
 | 
						|
      pkgs.proton-ge-bin
 | 
						|
    ];
 | 
						|
  };
 | 
						|
 | 
						|
  fonts = {
 | 
						|
    enableDefaultPackages = false;
 | 
						|
 | 
						|
    packages = (with inputs.stable.legacyPackages.${system}; [
 | 
						|
      dejavu_fonts
 | 
						|
      noto-fonts
 | 
						|
      noto-fonts-cjk-sans
 | 
						|
      nerd-fonts.jetbrains-mono
 | 
						|
    ]) ++ (with pkgs; [
 | 
						|
      material-symbols
 | 
						|
      font-awesome
 | 
						|
      corefonts
 | 
						|
      vistafonts
 | 
						|
    ]);
 | 
						|
 | 
						|
    fontconfig = {
 | 
						|
      defaultFonts = {
 | 
						|
        serif = [ "DejaVu Serif" ];
 | 
						|
        sansSerif = [ "DejaVu Sans" ];
 | 
						|
        monospace = [ "JetBrainsMono Nerd Font" ];
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  programs.ssh = {
 | 
						|
    enableAskPassword = true;
 | 
						|
    askPassword = lib.getExe pkgs.lxqt.lxqt-openssh-askpass;
 | 
						|
    startAgent = true;
 | 
						|
  };
 | 
						|
 | 
						|
  systemd = {
 | 
						|
    # kde polkit agent
 | 
						|
    user.services.polkit-agent = {
 | 
						|
      wants = [ "graphical-session.target" ];
 | 
						|
      after = [ "graphical-session.target" ];
 | 
						|
 | 
						|
      serviceConfig = {
 | 
						|
        Type = "simple";
 | 
						|
        ExecStart = "${pkgs.kdePackages.polkit-kde-agent-1}/libexec/polkit-kde-authentication-agent-1";
 | 
						|
        Restart = "on-failure";
 | 
						|
        RestartSec = 1;
 | 
						|
        TimeoutStopSec = 10;
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  environment.variables = {
 | 
						|
    XCURSOR_SIZE = "24";
 | 
						|
  };
 | 
						|
 | 
						|
  programs = {
 | 
						|
    gnupg.agent = {
 | 
						|
      enable = true;
 | 
						|
      pinentryPackage = pkgs.pinentry-qt;
 | 
						|
    };
 | 
						|
    kdeconnect = {
 | 
						|
      package = pkgs.kdePackages.kdeconnect-kde;
 | 
						|
      enable = true;
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  services = {
 | 
						|
    syncthing = {
 | 
						|
      enable = true;
 | 
						|
      user = config.main-user;
 | 
						|
      dataDir = "/home/${config.main-user}/.syncthing";
 | 
						|
      configDir = "/home/${config.main-user}/.config/syncthing";
 | 
						|
    };
 | 
						|
  };
 | 
						|
 | 
						|
  networking.firewall = {
 | 
						|
    allowedTCPPorts = [
 | 
						|
      # syncthing TCP
 | 
						|
      22000
 | 
						|
    ];
 | 
						|
    allowedUDPPorts = [
 | 
						|
      # syncthing QUIC
 | 
						|
      22000
 | 
						|
      # syncthing discovery
 | 
						|
      21027
 | 
						|
    ];
 | 
						|
  };
 | 
						|
 | 
						|
  home-manager.users.${config.main-user} = homeInputs: let
 | 
						|
    homeConfig = homeInputs.config;
 | 
						|
  in {
 | 
						|
    imports = [
 | 
						|
      ./modules/quickshell
 | 
						|
      ./modules/fcitx5
 | 
						|
      ./modules/wofi
 | 
						|
      ./modules/dolphin
 | 
						|
      ./modules/firefox
 | 
						|
      ./modules/element.nix
 | 
						|
      ./modules/keepassxc
 | 
						|
      ./dev-support.nix
 | 
						|
    ];
 | 
						|
 | 
						|
    home.packages = with pkgs; [
 | 
						|
      kwrite
 | 
						|
      gimp
 | 
						|
      vlc
 | 
						|
      mpv
 | 
						|
      qimgv
 | 
						|
      kdePackages.filelight kdePackages.kirigami kdePackages.kquickcharts # deps
 | 
						|
      curl
 | 
						|
      cantata
 | 
						|
      logseq
 | 
						|
      lxqt.pavucontrol-qt
 | 
						|
      helvum
 | 
						|
      htop
 | 
						|
      btop
 | 
						|
      speedcrunch
 | 
						|
      libreoffice-qt6
 | 
						|
      ripgrep
 | 
						|
      fd
 | 
						|
      qbittorrent
 | 
						|
      anki-bin
 | 
						|
      kid3
 | 
						|
      freetube
 | 
						|
      jujutsu
 | 
						|
 | 
						|
      tws
 | 
						|
 | 
						|
      distrobox
 | 
						|
      xdg-utils
 | 
						|
      light
 | 
						|
 | 
						|
      unrar # used by ark
 | 
						|
      libnotify # test with it a lot
 | 
						|
 | 
						|
      kdePackages.merkuro
 | 
						|
      kdePackages.akonadi
 | 
						|
    ];
 | 
						|
 | 
						|
    programs = {
 | 
						|
      alacritty = import ./config/alacritty.nix;
 | 
						|
    };
 | 
						|
 | 
						|
    programs = {
 | 
						|
      direnv = {
 | 
						|
        enable = true;
 | 
						|
        nix-direnv.enable = true;
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
    services = {
 | 
						|
      mpd = {
 | 
						|
        enable = true;
 | 
						|
        musicDirectory = "/pool/music";
 | 
						|
        network.startWhenNeeded = true;
 | 
						|
 | 
						|
        extraConfig = ''
 | 
						|
          audio_output {
 | 
						|
            type "pipewire"
 | 
						|
            name "Pipewire"
 | 
						|
          }
 | 
						|
 | 
						|
          replaygain "track"
 | 
						|
          replaygain_limit "no"
 | 
						|
        '';
 | 
						|
      };
 | 
						|
    };
 | 
						|
  };
 | 
						|
}
 |