Existe-t-il un moyen de partager un fichier par AirDrop via Terminal sur Mountain Lion ? Comment ?
Réponses
Trop de publicités?Je n'ai pas (encore) trouvé le moyen de envoyer fichiers via Airdrop en utilisant le terminal, mais vous pouvez configurer votre ordinateur pour recevoir via Airdrop en utilisant le shell script suivant :
#!/usr/bin/osascript
tell application "Finder"
activate
tell application "System Events" to keystroke "R" using {command down, shift down}
end tell
Il existe désormais une version open-source d'AirDrop, connue sous le nom de OpenDrop qui fonctionnera sur MacOS et Linux - il permet d'envoyer et de recevoir des fichiers sur la ligne de commande avec d'autres appareils compatibles AirDrop/OpenDrop (par ex. OpenDrop peut fonctionner sur un Raspberry Pi ). Pour envoyer un message, vous devez d'abord découvrir les appareils disponibles, par ex.
opendrop find
Le récepteur choisi est sélectionné (par index
, ID
o name
) et un fichier est envoyé :
opendrop -r id -f /path/to/some/file
La réception des fichiers est plus simple - les fichiers seront téléchargés dans le répertoire courant :
opendrop receive
Il existe un outil sur Github appelé partage de terminal qui prétend offrir cette fonctionnalité :
terminal-share -service airdrop -image path/to/image.jpg
Mais je ne vois pas bien comment on peut spécifier une destination
Vous pouvez le faire en utilisant Cuillère à marteau . Ce n'est pas complètement automatique puisque vous devez encore sélectionner votre téléphone.
opendrop ne fonctionne pas sur l'iPhone malheureusement.
J'ai écrit un article de blog à ce sujet
Ajoutez les éléments suivants à votre init.lua
local hex_to_char = function(x)
return string.char(tonumber(x, 16))
end
local unescape = function(url)
return url:gsub("%%(%x%x)", hex_to_char)
end
hs.urlevent.bind("airdrop", function(eventName, params)
local file = unescape(params["f"])
print(file)
local url = hs.sharing.fileURL(file)
local ad = hs.sharing.builtinSharingServices.sendViaAirDrop
local s = hs.sharing.newShare(ad)
s:shareItems({url})
end)
Ceci construira un point final à l'URL personnalisée de hammerspoon qui peut recevoir des noms de fichiers en entrée.
Ensuite, vous pouvez créer un script comme ceci
#! /usr/bin/bash
rawurlencode() {
local string="${1}"
local strlen=${#string}
local encoded=""
local pos c o
for (( pos=0 ; pos<strlen ; pos++ )); do
c=${string:$pos:1}
case "$c" in
[-_.~a-zA-Z0-9] ) o="${c}" ;;
* ) printf -v o '%%%02x' "'$c"
esac
encoded+="${o}"
done
REPLY="${encoded}"
}
rawurlencode "$@"
/usr/bin/open -g "hammerspoon://airdrop?f=${REPLY}"
Cela permettra de coder l'URL et de l'envoyer à l'adresse suivante airdrop
URL personnalisée que nous avons enregistrée avec hammerspoon.
Sauvegardez-le quelque part comme airdrop
dans votre $PATH
, chmod +x
(rendre exécutable), et ensuite vous pouvez airdrop <myfile>
- Réponses précédentes
- Plus de réponses