{
  config,
  pkgs,
  ...
}: {
  nix.settings = {
    experimental-features = ["nix-command" "flakes"];
    trusted-users = ["root" "panotaka"];
    extra-substituters = [
      "https://nix-community.cachix.org"
      "https://devenv.cachix.org"
    ];
    extra-trusted-public-keys = [
      "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
      "devenv.cachix.org-1:w1cLUi8dv3hnoSPGAuibQv+f9TZLr6cv/Hm9XgU50cw="
    ];
  };

  # Locales
  i18n.supportedLocales = [
    "C.UTF-8/UTF-8"
    "en_CA.UTF-8/UTF-8"
    "en_US.UTF-8/UTF-8"
    "fr_CA.UTF-8/UTF-8"
  ];

  # Enable CUPS to print documents.
  services.printing.enable = true;

  hardware.enableAllFirmware = true;

  # Enable the OpenSSH daemon.
  services.openssh = {
    enable = true;
    settings = {
      X11Forwarding = true;
      PermitRootLogin = "no"; # disable root login
      PasswordAuthentication = false; # disable password login
    };
    openFirewall = true;
  };

  # Allow unfree packages
  nixpkgs.config.allowUnfree = true;

  # Add system packages
  environment.systemPackages = with pkgs; [
  ];

  services.flatpak.enable = true;

  services.fwupd.enable = true;

  # Ollama as a service
  services.ollama = {
    enable = true;
    environmentVariables = {
      OLLAMA_ORIGINS = "moz-extension://*";
    };
  };

  # Enable fish shell
  programs.fish.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  users.users.panotaka = {
    isNormalUser = true;
    description = "panotaka";
    extraGroups = ["networkmanager" "wheel" "libvirtd"];
    initialPassword = "panotaka";
    shell = pkgs.fish;
    openssh.authorizedKeys.keys = [
    ];
  };
}
