{ lib, options, ... }:

{
  options = with lib; {
    cmds = {
      shell = mkOption { type = types.str; default = "zsh"; };
      fetch = mkOption { type = types.str; default = "hyfetch"; };
      editor = mkOption { type = types.str; default = "nvim"; };

      wm = mkOption { type = types.str; default = "sway"; };

      terminal = mkOption { type = types.str; default = "alacritty"; };
      menu = mkOption { type = types.str; default = "rofi -show drun -show-icons"; };

      lock = mkOption { type = types.str; default = "locksway"; };
      notifications = {
        volume = mkOption { type = types.str; default = "volume-notify"; };
        brightness = mkOption { type = types.str; default = "brightness-notify"; };
      };
    };

    is-wayland = mkOption { type = types.bool; default = true; };
    
    theme = {
      theme = mkOption { type = types.str; default = "catppuccin-mocha"; };
      icon-theme = mkOption { type = types.str; default = "Papirus-Dark"; };
      font = mkOption { type = types.str; default = "Cascadia Code 11"; };
      wallpaper = mkOption { type = types.str; default = ""; };
    };
  };
}