public/Get-DefaultApplication.ps1

function Get-DefaultApplication {
    <#
    .SYNOPSIS
        Gets default applications from mimeapps.list.
    .DESCRIPTION
        Reads MIME defaults from mimeapps.list when available and falls back to desktop entry metadata on KDE systems when no mimeapps file exists.
    .PARAMETER Category
        Category to query. Valid values are browser, audio, video, image, text, or all.
    .PARAMETER MimeType
        Optional MIME type wildcard filter, for example "audio/*".
    .PARAMETER Path
        Optional path to a mimeapps.list file. Defaults to ~/.config/mimeapps.list.
    .EXAMPLE
        Get-DefaultApplication -Category browser
        Returns default browser mappings.
    .EXAMPLE
        Get-DefaultApplication -MimeType "audio/*"
        Returns audio MIME defaults.
    .LINK
        https://github.com/Skatterbrainz/linuxtools/blob/master/docs/Get-DefaultApplication.md
    #>

    [CmdletBinding()]
    param(
        [parameter()][ValidateSet('browser','audio','video','image','text','all')][string]$Category = 'all',
        [parameter()][string]$MimeType,
        [parameter()][string]$Path = "$env:HOME/.config/mimeapps.list"
    )
    try {
        ReadDefaultApplications -Category $Category -MimeType $MimeType -Path $Path
    } catch {
        Write-Error $($_.Exception.Message -join(';'))
    }
}