(Non voglio sapere quanto sono pazzo a volerlo! :)
Focus-follow-mouse è anche noto come point-to-focus, focus pointer e (in alcune implementazioni) focus sciatto. [Aggiungi altri termini che renderanno questo più ricercabile!] X-mouse
(Non voglio sapere quanto sono pazzo a volerlo! :)
Focus-follow-mouse è anche noto come point-to-focus, focus pointer e (in alcune implementazioni) focus sciatto. [Aggiungi altri termini che renderanno questo più ricercabile!] X-mouse
Risposte:
Puoi farlo per Terminal.app immettendo il seguente comando dalla riga di comando:
defaults write com.apple.Terminal FocusFollowsMouse -bool true
Per le app X11 puoi farlo:
defaults write com.apple.x11 wm_ffm -bool true
In Snow Leopard, utilizzare questo invece:
defaults write org.x.X11 wm_ffm -bool true
Apparentemente c'è un programma chiamato CodeTek Virtual Desktop che lo emulerà in tutto il sistema, ma costa $$ (e non hanno mai ottenuto una versione per OSX Leopard).
Steve Yegge ha scritto un saggio al riguardo qualche tempo fa, dove ha provato e non è riuscito a scrivere un'estensione adatta. Da allora ho provato a trovare applicazioni focus-follow-mouse per OS X e ho fallito.
Focus-follow-mouse non è un metodo di input particolarmente adatto per OS X perché la sua barra dei menu è stata progettata per essere nella parte superiore dello schermo. Quando si sposta il mouse fuori dalla finestra dell'applicazione per accedere ai menu, se attraversa altre finestre dell'applicazione lungo il percorso, il menu cambia.
Quindi sì, in risposta al commento di dreeves, funziona perfettamente per Terminal (o per qualsiasi altra singola applicazione sul desktop), perché le uniche altre finestre che influenzerà sono le finestre di Terminale, quindi il menu non cambia mai quando si cambia finestra. E funziona benissimo per X11 perché le app X11 hanno generalmente le loro barre dei menu incorporate nella finestra, quindi non devi lasciare la finestra per accedervi.
Ovviamente puoi aggirare il problema del cambio di menu introducendo un ritardo artificiale prima che la messa a fuoco cambi e / o le opzioni di menu, ma non funzionerà mai come su altri desktop.
Sebbene questa sia lungi dall'essere una soluzione completa, due azioni utili integrate in OSX (10.11) sono:
⌃⌥-clic (control-option-click) - cambia lo stato attivo senza alzare la finestra
⌘-clic (comando-clic) - fa clic nella finestra senza cambiare lo stato attivo
Non sono sicuro di quando siano state introdotte queste scorciatoie, dato che non sono riuscito a trovarle scritte da nessuna parte.
click
è destinato a una finestra senza messa a fuoco.
Il problema del menu è l'unico motivo per cui il tradizionale focus-follow-mouse non funziona.
Ecco un'alternativa: non cambiare lo stato attivo finché non viene premuto un tasto sulla tastiera. Ciò coprirebbe il 95% dei casi d'uso per focus-follow-mouse, e renderebbe davvero felice questo vecchio utente di curmudgeon X. Non so quante volte scorrerò una pagina Web in Chrome e premi Command-T per aprire una nuova scheda e trovare invece l'apertura della scheda nel Terminale. Se il mio cervello non ha capito questo in 8 mesi di utilizzo di un Mac, non lo farà mai.
Ametista supporta questa funzione. Può essere facilmente installato con brew cask install amethyst
.
Ecco il file di configurazione che uso. Disattiva tutte le funzionalità oltre a focus-follow-mouse. Salvalo in ~/.amethyst
.
{
"LAYOUTS": "----------------------",
"layouts": [
],
"MODIFIERS": "----------------------",
"Valid modifiers are": [
"option",
"shift",
"control",
"command"
],
"mod1": [
],
"mod2": [
],
"COMMANDS": "----------------------",
"Commands are": {
"cycle-layout": "Cycle layout to the next layout",
"cycle-layout-backward": "Cycle layout to the previous layout",
"focus-screen-1": "Focus the main window on the first screen",
"focus-screen-2": "Focus the main window on the second screen",
"focus-screen-3": "Focus the main window on the third screen",
"focus-screen-2": "Focus the main window on the second screen",
"focus-screen-3": "Focus the main window on the third screen",
"focus-screen-4": "Focus the main window on the fourth screen",
"throw-screen-1": "Throw the focused window to the first screen",
"throw-screen-2": "Throw the focused window to the second screen",
"throw-screen-3": "Throw the focused window to the third screen",
"throw-screen-4": "Throw the focused window to the fourth screen",
"shrink-main": "Shrink the main pane of the current layout",
"expand-main": "Expand the main pane of the current layout",
"increase-main": "Increase the number of windows in the main pane",
"decrease-main": "Decrease the number of windows in the main pane",
"focus-ccw": "Move window focus counter-clockwise on the current screen",
"focus-cw": "Move window focus clockwise on the current screen",
"swap-ccw": "Swap focused window with the next window going counter-clockwi$
"swap-cw": "Swap focused window with the next window going clockwise",
"swap-main": "Swap focused window with the main window of its screen",
"throw-space-1": "Throw the focused window to the first space",
"throw-space-2": "Throw the focused window to the second space",
"throw-space-3": "Throw the focused window to the third space",
"throw-space-4": "Throw the focused window to the fourth space",
"throw-space-5": "Throw the focused window to the fifth space",
"throw-space-6": "Throw the focused window to the sixth space",
"throw-space-7": "Throw the focused window to the seventh space",
"throw-space-8": "Throw the focused window to the eighth space",
"throw-space-9": "Throw the focused window to the ninth space",
"throw-space-8": "Throw the focused window to the eighth space",
"throw-space-9": "Throw the focused window to the ninth space",
"toggle-float": "Toggle the focused window between being floating and tiled"
},
"screens": "3",
"cycle-layout": {
"mod": "mod1",
},
"cycle-layout-backward": {
"mod": "mod2",
},
"select-tall-layout": {
"mod": "mod1"
},
"select-wide-layout": {
"mod": "mod1"
},
"select-fullscreen-layout": {
"mod": "mod1"
},
"select-column-layout": {
"mod": "mod1"
},
"mod": "mod1"
},
"focus-screen-1": {
"mod": "mod1"
},
"focus-screen-2": {
"mod": "mod1"
},
"focus-screen-3": {
"mod": "mod1"
},
"focus-screen-4": {
"mod": "mod1"
},
"throw-screen-1": {
"mod": "mod2"
},
"throw-screen-2": {
"mod": "mod2"
},
"throw-screen-3": {
"mod": "mod2"
},
"throw-screen-4": {
"mod": "mod2"
"throw-screen-4": {
"mod": "mod2"
},
"shrink-main": {
"mod": "mod1"
},
"expand-main": {
"mod": "mod1"
},
"increase-main": {
"mod": "mod1"
},
"decrease-main": {
"mod": "mod1"
},
"focus-ccw": {
"mod": "mod1"
},
"focus-cw": {
"mod": "mod1"
},
"swap-screen-ccw": {
"mod": "mod2"
},
"swap-screen-cw": {
},
"swap-screen-cw": {
"mod": "mod2"
},
"swap-ccw": {
"mod": "mod2"
},
"swap-cw": {
"mod": "mod2"
},
"swap-main": {
"mod": "mod1"
},
"throw-space-1": {
"mod": "mod2"
},
"throw-space-2": {
"mod": "mod2"
},
"throw-space-3": {
"mod": "mod2"
},
"throw-space-4": {
"mod": "mod2"
},
"mod": "mod2"
},
"throw-space-5": {
"mod": "mod2"
},
"throw-space-6": {
"mod": "mod2"
},
"throw-space-7": {
"mod": "mod2"
},
"throw-space-8": {
"mod": "mod2"
},
"throw-space-9": {
"mod": "mod2"
},
"toggle-float": {
"mod": "mod1"
},
"toggle-tiling": {
"mod": "mod2"
},
"display-current-layout": {
"mod": "mod1"
"display-current-layout": {
"mod": "mod1"
},
"MISC": "----------------------",
"floating": [],
"float-small-windows": false,
"mouse-follows-focus": false,
"focus-follows-mouse": true,
"enables-layout-hud": false,
"enables-layout-hud-on-space-change": false
}
Così ho deciso di migliorare ancora il lavoro svolto su MouseFocus.app che presentava ancora alcuni difetti. Quelli sono stati risolti ora. Ho rinominato il tutto in "AutoRaise" per riflettere meglio ciò che fa questo strumento: quando si passa con il mouse su una finestra, questa viene sollevata in primo piano (con un ritardo a scelta) e viene messa a fuoco. Lo strumento può essere scaricato qui . Per usarlo, copiarlo nella cartella / Applicazioni / assicurandosi che sia eseguibile (chmod 700 AutoRaise). Quindi fai doppio clic su di esso dal Finder. Per attivarlo / disattivarlo rapidamente, è possibile utilizzare lo script apple di seguito e incollarlo in un flusso di lavoro di servizio dell'automatore . Quindi associare il servizio creato a una scorciatoia da tastiera tramite Preferenze di Sistema | Tastiera | Scorciatoie.
Aggiornamento (29-03-2017): il binario AutoRaise è stato aggiornato. Se non è stato specificato alcun ritardo sulla riga di comando, ora cercherà anche un file AutoRaise.delay instessocartella home. Ciò è particolarmente utile quando si utilizza il applecript in basso perché "avvia l'applicazione" non supporta gli argomenti della riga di comando. Il ritardo deve essere specificato in unità di50ms20ms. Ad esempio, per specificare un ritardo di 20 ms, eseguire questo comando una volta in un terminale: 'echo 1> ~ / AutoRaise.delay'
on run {input, parameters}
tell application "Finder"
if exists of application process "AutoRaise" then
quit application "/Applications/AutoRaise"
display notification "AutoRaise Stopped"
else
launch application "/Applications/AutoRaise"
display notification "AutoRaise Started"
end if
end tell
return input
end run
Aggiornamento (18-04-2019): la fonte https://github.com/sbmpost/AutoRaise
Aggiornamento (05-06-2020): il ritardo predefinito è stato impostato su 2 e il tempo di polling è stato ridotto. Queste impostazioni impediscono l'innalzamento involontario della finestra quando si sposta rapidamente il mouse (per esempio, per accedere al menu principale). Inoltre è stata aggiunta una funzionalità del mouse warp ed è stata corretta una perdita di memoria. Per ulteriori dettagli, consultare il README
Il focus segue il mouse ora è possibile in macOS, Mojave nel mio caso, usando chunkwm . Vedi questa risposta Stack Overflow per una soluzione "no autoraise". L'autorizzamento si attiva lasciando
chunkc set ffm_disable_autoraise 0
in ~/.chunkwmrc
.
Modifica 12-09-2019:
chunkwm è stato sostituito da yabai . Installare:
brew tap koekeishiya/formulae
brew install yabai
mkdir -p ~/.config/yabai/
printf 'yabai -m config focus_follows_mouse autoraise' >> ~/.config/yabai/yabairc
brew services start yabai
Attualmente uso MondoMouse e anche con le sue stranezze non potrei usare il mio mac senza di esso. Hanno una prova gratuita e la consiglierei a tutti.
Codetek aveva un prodotto che lo faceva, ma non pubblicarono mai una versione per Leopard o successive.
MondoMouse può in qualche modo fare focus-follow-mouse, ma non auto-raise. Anche il focus-follow-mouse è rotto però. Ad esempio, non gioca bene con il comando-scheda (se si Comando-Tab per una nuova applicazione e non toccare il mouse, quindi dovrebbe non tornare attenzione a dove il puntatore del mouse sembra essere - Sono abbastanza sicuro che ogni implementazione in Linux che ho visto sia corretta, ma MondoMouse no).
È possibile abilitare focus-follow-mouse (senza autoraise) solo per le finestre del Terminale (eseguire semplicemente quanto segue in un terminale):
defaults write com.apple.Terminal FocusFollowsMouse -string YES
E allo stesso modo per X11 windows:
defaults write org.x.X11 wm_ffm -bool true
(Per le versioni Mac precedenti alla 10.5.5 questo era:
defaults write com.apple.x11 wm_ffm true
)
Non conosco altre applicazioni che lo supportano.
È interessante notare che Leopard ha un tipo di focus-follow-mouse (sans autoraise) abilitato per impostazione predefinita. La rotella di scorrimento funziona in finestre non focalizzate.
Sfortunatamente CodeTek Virtual Desktop Pro non è più sviluppato e la società sembra essere andata fuori mercato da qualche anno.
Riferimento storico: http://www.codetek.com/ctvd/ (non funziona con le nuove versioni di OS X!)
Recensione storica: http://www.osnews.com/story/6144
Usando CodeTek Virtual Desktop Pro sei stato in grado di ottenere Focus-Follow-Mouse e disabilitare Auto-Raise, e aveva anche una Pager per i desktop virtuali - simile a come funziona Fvwm su Linux. Funzionava davvero alla perfezione: il miglior software che io abbia mai acquistato. Ha funzionato in modo coerente con tutte le app e il passaggio da un'app all'altra, lo spostamento di finestre in diverse aree di lavoro e la navigazione nelle aree di lavoro ha funzionato molto più facilmente rispetto a come è implementato nelle ultime versioni di OS X [10.6, 10.7, 10.8]
Sfortunatamente con Mac OS X 10.5 VirtualDesktop Pro ha smesso di funzionare e sembra che Apple abbia attivamente assicurato che CodeTek non continuerà a lavorarci.
È triste che Apple abbia schiacciato CodeTek e il suo prodotto - Virtual Desktop Pro è stato davvero superiore a come sono attualmente implementate le aree di lavoro di OS X. Funzionava sostanzialmente come Fvwm su LINUX - navigazione super veloce - senza clic inutili o gesti del mouse ...
Mi rattrista vedere che Apple detta il comportamento di Window Manager (Finder) e non sembra più consentire sostituzioni di terze parti per il Finder.
Esiste anche il problema correlato di aumento-su-clic. In OSX ogni volta che si fa clic su una finestra, viene anche sollevata, nascondendo potenzialmente altre finestre. Ciò è problematico quando si lavora con copia / incolla da due finestre in cui una di esse copre la maggior parte dello schermo. Mi piace tenere un blocco note globale (attivo in tutte le aree di lavoro) da cui copio / incollo roba (potrebbe essere qualsiasi cosa da comandi, testo, todo elementi ecc.) Questo è impegnativo sotto OSX. Sarebbe bello avere un'opzione per disabilitare il rilancio al clic.
Dare DwellClick una prova. Anche se non è per lo scopo previsto, il comportamento del clic automatico ha un effetto collaterale simile all'aumento automatico o al focus-follow-mouse.
Personalmente, utilizzo la funzione del clic sinistro solo dopo che il movimento del cursore si è fermato, ma c'è anche un clic con modificatori e un aiuto al trascinamento della finestra che è abbastanza utile.
È anche un po 'frustrante durante la navigazione web poiché vorrai disabilitare l'app o essere più consapevole di dove si trova il cursore (ad es. Non su alcun link o pulsante che non intendi attivare).
Usa la funzionalità Dwell in mac. Vai su Accessibilità -> tastiera -> Tastiera accessibilità (sono su Catalina)
Clicca qui per maggiori informazioni
Sperimentando con queste opzioni, la mia scheda Comando ha iniziato a comportarsi in modo strano. Ecco la soluzione di come focalizzare nuovamente le app:
Sembra che una funzionalità precedente, vale a dire la possibilità per il focus della finestra di Terminal di cambiare con il movimento del mouse, sia rotta in 10.6 e causi a Command-Tab di non trasferire correttamente il focus della finestra. Per risolvere il problema, basta incollare il seguente comando in un Terminale:
per impostazione predefinita scrivere com.apple.Terminal FocusFollowsMouse -string NO
Quindi riavviare Terminal.
Soluzione: poiché ero così abituato ad autorizzare in Windows, mi mancava molto sul Mac. La soluzione che ho trovato per Mac è Zooom (sì, tre o). Ha una funzione di autoraise. Puoi anche impostare millisecondi per attendere prima dell'autorizzamento. Non posso vivere senza di essa. La memorizzazione automatica è un'opzione nelle preferenze come puoi vedere nello screenshot https://www.macupdate.com/app/mac/23203/zooom http://coderage-software.com/zooom/index.html
Testato MondoMouse ( https://www.atomicbird.com/about/mac-apps ) su MacOS Mojave. Sembra funzionare bene per me!
Per installare il prefpane, verrà visualizzato un avviso " Abilita accesso per dispositivi di assistenza " che non risiede più nelle Preferenze di Sistema> Accessibilità . Dovrai impostarlo in Sicurezza e privacy> Accessibilità> Privacy
Ci saranno diversi avvertimenti su come consentire MondoMouse in ogni app che hai aperto, ma una volta impostato funziona bene! Che sollievo :)
Non puoi davvero farlo bene, perché l'interfaccia Mac semplicemente non è progettata pensando a focus-follow-mouse (con o senza auto-raise). Dubito che cambierà presto e, a meno che non lo faccia, tutti coloro che tentano di implementare focus-follow-mouse si imbatteranno negli stessi ostacoli e finiranno con un risultato insoddisfacente (per coloro che vogliono una cosa del genere).
Quindi, sì, è sei matto per voler questo - ma per motivi tecnici. Abituati a usare il Mac alle sue condizioni e sono sicuro che il tuo desiderio di costringerlo a comportarsi proprio come qualsiasi cosa X11 che usavi usare si riduca un po 'quando trovi nuovi modi efficienti di lavorare.