# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).

# NixOS-WSL specific options are documented on the NixOS-WSL repository:
# https://github.com/nix-community/NixOS-WSL

args@{ config, lib, pkgs, helpers, ... }:

let 
  username = "nixos";
in {
  imports =
  helpers.getModules "/default.nix" (import ./modules.nix) ++ [
    # include NixOS-WSL modules
    <nixos-wsl/modules>
  ];

  home-manager.users.${username} = {
    imports = helpers.getModules "/home.nix" (import ./modules.nix) ++ [
      ../../common/home.nix
      ./home.nix
    ];

    config.custom.username = username;
  };

  users.users.${username} = {
    shell = pkgs.fish;
  };

  wsl = {
    enable = true;
    defaultUser  = username;
  };
  nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";

  users.users.${username} = {
    shell = pkgs.fish;
  };

  services.xserver = {
    layout = "us";
    xkb.options = "caps:swapescape,altwin:swap_alt_win";
  };

  services.xserver.enable = true;
  services.xserver.displayManager.startx.enable = true;

  services.xrdp = {
    enable = true;
    defaultWindowManager = "/home/nixos/.xsession";
  #   defaultWindowManager = "startx";
    # defaultWindowManager = "startplasma-x11";
    openFirewall = true;
    port = 3390;
    extraConfDirCommands = ''
    sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' $out/xrdp.ini
    '';
  };
  

  environment.systemPackages = [
    pkgs.vscodium
    pkgs.git
    pkgs.wget
    pkgs.micro
    pkgs.neofetch
  ];

  fonts.packages = [
    pkgs.ubuntu_font_family
  ];

  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It's perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  system.stateVersion = "23.11"; # Did you read the comment?
}