#compdef kdeconnect-cli

_kdeconnect_device-ids() {
  compadd $(kdeconnect-cli --list-available --id-only)
}

_arguments \
  '(-l --list-devices -a --list-available)'{-l,--list-devices}'[list all devices]' \
  '(-l --list-devices -a --list-available)'{-a,--list-available}'[list available (paired and reachable) devices]' \
  '--id-only[make --list-devices or --list-available print only the devices id, to ease scripting]' \
  '--refresh[search for devices in the network and re-establish connections]' \
  '(--pair --unpair)--pair[request pairing with the specified device]' \
  '--ring[find the device by ringing it]' \
  '(--pair --unpair)--unpair[stop pairing to the specified device]' \
  '(--ping --ping-msg)--ping[send a ping to the device]' \
  '(--ping --ping-msg)--ping-msg[send a ping to the device with the specified message]:message' \
  '--share[share a file to the device]:file:_files' \
  '--list-notifications[display the notifications on the device]' \
  '--lock[lock the specified device]' \
  '--send-sms[send an SMS. Requires --destination]:message' \
  '--destination[specify phone number to send the SMS to]:phone number' \
  '(-d --device -n --name)'{-d,--device}'[specify device ID]:id:_kdeconnect_device-ids' \
  '(-d --device -n --name)'{-n,--name}'[specify device name]:name' \
  '--encryption-info[get encryption info about the device]' \
  '--list-commands[list remote commands and their ids]' \
  '--execute-command[execute a remote command]:command id' \
  '(-k --send-keys)'{-k,--send-keys}'[send keys to the specified device]' \
  "--my-id[display this device's id and exit]" \
  '(-)'{-h,--help}'[display usage information]' \
  '(-)'{-v,--version}'[display version information]' \
  '(-)--author[show author information and exit]' \
  '(-)--license[show license information and exit]' \
  '--desktopfile[specify base file name of the desktop entry for this application]:file'
