Switcheroo, passa tastiera e mouse tra Mac diversi velocemente

Le aziende che fornisco i Macbook come portatile da lavoro fanno un grande favore sia a se stesse che ai lavoratori che li ricevono per la loro produttività, anni di utilizzo mi hanno fatto apprezzare appieno i vantaggi di Mac OS rispetto all’enorme quantità di manutenzione richiestami dalle workstation Windows che diventavano di fatto un secondo lavoro a parte.

Tuttavia anche trattandosi di macchine piuttosto costose, non è una buona idea mescolare lavoro e privato sullo stesso dispositivo, da una parte c’è la questione sicurezza aziendale per cui si potrebbe potenzialmente mettere a rischio le intranet e quant’altro, dall’altro non ci si può veramente aspettare di avere privacy su un dispositivo che non possediamo del tutto, giusto?

Per questo motivo ho, come molti altri, infine preso un Mac per uso personale cosi da beneficiare della manutenzione-zero.

Lavorando da casa tuttavia, si può voler trarre vantaggio dall’esperienza superiore che si può avere usando delle periferiche esterne come monitor, mouse e tastiera, e volendo mantenere la scrivania quanto più ordinata possibile preferisco usare le versioni bluetooth, ed è qui che la faccenda con due Mac diventa meno “ideale”.

Ogni volta che vuoi passare tastiera e mouse da un Mac all’altro, dovrai andare manualmente nel menu bluetooth del Mac a cui sono attualmente connessi, disaccoppiare entrambi manualmente, andare sull’altro Mac nel menu bluetooth per ricercare i dispositivi e collegarli entrambi dall’altra parte, un operazione che richiede almeno 8 click.

 

E se invece si potesse fare tutto in appena due (2) click?

Vi presento: Switcheroo

Prima di tutto, la base di questo script è opera di Ophir Stern pubblicata su apple.stackexchange, alla quale ho aggiunto la logica e le variabili per verificare in quale cartella si trova il tool necessario, poiché il path può cambiare anche usando lo stesso metodo di installazione, e dato che vogliamo eseguirlo su due periferiche, l’ho reso una funzione che riceve come parametro l’indirizzo del dispositivo per velocizzare il setup, rimpiazzando automaticamente i separatori degli indirizzi – (trattini) con : (due punti) necessari per blueutil.

Installa con  brew o altro package manager il pachetto  blueutilsu entrambi i Mac, poi esegui il comando  which blueutil e incolla i rispettivi path nelle variabili  homePath e workPath.

Poi esegui  blueutil --paired sul MacBook con il quale le periferiche sono attualmente collegate per ottenere gli indirizzi fisici, quindi copiali nelle rispettive variabili  keyboardAddress e mouseAddressal posto dei placeholders.


Ora lancia Automator e tra le opzioni per creare un nuovo elemento scegli “Applicazione”, poi cerca tra le azioni “shell” e aggiungi l’azione “Esegui script shell“, incolla lo script con le variabili modificate (oppure copia e incollalo cosi com’è e poi modificalo nell’IDE).

Avrai sicuramente notato la presenza di varie emoji nel codice, essendo uno script shell non avremmo alcun feedback in fase di esecuzione, per avere contezza che sia stato avviato e sopratutto che sia terminato correttamente o meno possiamo usare le notifiche, per cui andiamo ad inserire due notifiche prima e dopo lo script, ed in particolare aggiungiamo tra lo script e l’ultima notifica lo step “Imposta valore di variabile” con cui passare alla notifica i risultati dei comandi echo.

Ora premi  Cmd+S per salvare e creare l’applicazione, e chiamala Switcheroo.

L’applicazione appena creata ha l’icona predefinita di Automator, per renderla più riconoscibile cliccaci e poi premi  Cmd+i e poi trascina l’immagine sopra l’icona nella parte in alto a sinistra del pannello per sovrascriverla.

Ora sposta l’applicazione in una cartella come il tuo Dropbox o iCloud, poi trascina l’applicazione nella Dock bar, infine manda una copia di Switcheroo all’altro Mac e aggiungila al Dock anche li.

Finalmente, sul Mac dove hai attualmente mouse e tastiera collegati, puoi cliccare una volta l’icona di Switcheroo per scollegarli entrambi, e con un secondo click sempre su Switcheroo sull’altro Mac verrano collegate all’altro computer.

Da 8 click a 2. 😎

Note su blocchi e timeout

Purtroppo le API bluetooth a volte sono instabili e possono verificarsi degli imprevisti nel caso in cui la periferica non sia in modalità di appaiamento o non sia accesa affatto, in questi casi il comando blueutil --pair non arriverà mai a conclusione non avendo un timeout interno ne modo di specificarne uno

Esisterebbe il comodo comando timeout facente parte della libreria coreutils sempre disponibile tramite brew, tuttavia usato in combinazione con il comando blueutil --pair, porta ad avere sempre un popup aggiuntivo di conferma connessione da parte del Mac quando la periferica viene collegata, cosa che andrebbe contro l’obbiettivo di ridurre il numero di click al minimo.

Utilizzare il comando timeout su delle funzioni bash all’interno di Automator si è rivelato quasi impossibile, per cui per evitare che laddove ci fossero problemi lo script resti bloccato senza dare feedback, lo script si termina automaticamente dopo 15 secondi.

https://sresc.io/1fpO

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.