# Debug Commands for Hyprshell

This document lists all available debug commands in Hyprshell CLI, along with sample usage for each command.

## Debug Commands

Debug commands are available when Hyprshell is built with the `debug_command` feature. These commands help with debugging various aspects of Hyprshell.

### List Icons

Lists all icons available in the current icon theme.

```bash
hyprshell debug list-icons
```

### List Desktop Files

Lists all desktop files found in the system.

```bash
hyprshell debug list-desktop-files
```

### Check Class

Searches for an icon associated with a specific window class. If no class is provided, all open windows will be searched.

```bash
# Check a specific class
hyprshell debug check-class "firefox"
```

```bash
# Check all open windows
hyprshell debug check-class
```

### Search

Simulates a search in the launcher and displays search insights. This helps debug the search functionality.

```bash
# Basic search
hyprshell debug search "terminal"
```

```bash
# Show all matches (not limited by config)
hyprshell debug search "terminal" --all
```

### Default Applications

Commands to manage default applications for different mime types.

#### Get Default App

Get the default application for a specific mime type.

```bash
hyprshell debug default-applications get "text/plain"
```

#### Add Default App

Add a default application for a specific mime type. If one already exists, the new one is placed before.

```bash
hyprshell debug default-applications add "text/plain" "org.gnome.gedit.desktop"
```

#### List Default Apps

List default applications for all mime types.

```bash
# List default apps for mime types used by Hyprshell (browser: x-scheme-handler/https, file manager: inode/director)
hyprshell debug default-applications list
```

```bash
# List default apps for all mime types
hyprshell debug default-applications list --all
```

#### Check Default Apps

Check if all entries in all mimetype files point to valid desktop files.

```bash
hyprshell debug default-applications check
```

## Data Commands

Data commands allow you to view and manage data stored by Hyprshell.

### Launch History

Shows the history of launched applications.

```bash
# Show launch history with default weeks setting from config
hyprshell data launch-history

# Show launch history for a specific number of weeks
hyprshell data launch-history 4
```

## Info Command

Show info about the current Hyprshell installation.

```bash
hyprshell debug info
```

## Global Options

These options can be used with any command:

- `-v, -vv`: Increase verbosity level (-v: debug, -vv: trace)
- `-q, --quiet`: Turn off all output
- `-c, --config-file <PATH>`: Specify a custom config file path
- `-s, --css-file <PATH>`: Specify a custom CSS file path
- `-d, --data-dir <PATH>`: Specify a custom data directory path

Example with global options:

```bash
hyprshell -v -c ~/custom-config.ron debug list-icons
```