(Nie chcę słyszeć, jak szalony jestem, żeby tego chcieć! :)
Fokus-podąża za myszą jest również znany jako punkt-fokus, fokus wskaźnika i (w niektórych implementacjach) niechlujny fokus. [Dodaj inne terminy, które ułatwią wyszukiwanie!] X-mouse
(Nie chcę słyszeć, jak szalony jestem, żeby tego chcieć! :)
Fokus-podąża za myszą jest również znany jako punkt-fokus, fokus wskaźnika i (w niektórych implementacjach) niechlujny fokus. [Dodaj inne terminy, które ułatwią wyszukiwanie!] X-mouse
Odpowiedzi:
Możesz to zrobić dla Terminal.app, wydając następujące polecenie w wierszu poleceń:
defaults write com.apple.Terminal FocusFollowsMouse -bool true
W przypadku aplikacji X11 możesz to zrobić:
defaults write com.apple.x11 wm_ffm -bool true
W Snow Leopardzie użyj tego zamiast tego:
defaults write org.x.X11 wm_ffm -bool true
Najwyraźniej istnieje program o nazwie CodeTek Virtual Desktop, który będzie emulował go w całym systemie, ale kosztuje $ $$ (i nigdy nie wydali wersji dla OSX Leopard).
Steve Yegge jakiś czas temu napisał na ten temat esej, w którym bezskutecznie próbował napisać odpowiednie rozszerzenie. Od tego czasu próbowałem znaleźć aplikacje z funkcją focus-follow-mouse dla OS X i również się nie udało.
Fokus-podąża za myszą nie jest szczególnie odpowiednią metodą wprowadzania danych w systemie OS X, ponieważ jego pasek menu został zaprojektowany tak, aby znajdował się u góry ekranu. Gdy przesuniesz wskaźnik myszy poza okno aplikacji, aby przejść do menu, jeśli po drodze przecina okna innych aplikacji, menu się zmieni.
Więc tak, w odpowiedzi na komentarz Dreeves, działa doskonale w przypadku Terminala (lub dowolnej innej pojedynczej aplikacji na pulpicie), ponieważ jedynymi innymi oknami, na które ma to wpływ, są okna terminala, więc menu nigdy się nie zmienia podczas przełączania okien. I działa dobrze na X11, ponieważ aplikacje X11 zazwyczaj mają swoje paski menu osadzone w oknie, więc nie musisz opuszczać okna, aby uzyskać do nich dostęp.
Oczywiście możesz obejść problem zmiany menu, wprowadzając sztuczne opóźnienie przed zmianą ostrości i / lub przełączeniem menu, ale nigdy nie będzie to działać tak dobrze, jak na innych komputerach stacjonarnych.
Chociaż nie jest to kompletne rozwiązanie, dwie przydatne czynności wbudowane w OSX (10.11) to:
⌃⌥-klik ( Ctrl- opcja-klik) - przełącza fokus bez podnoszenia okna
⌘-kliknięcie (polecenie + kliknięcie) - kliknięcie okna bez przełączania fokusa
Nie jestem pewien, kiedy te skróty zostały wprowadzone, ponieważ nie byłem w stanie znaleźć ich nigdzie napisanych.
click
Jest przeznaczony do okna bez ostrości.
Problem z menu jest jedynym powodem, dla którego tradycyjne skupienie się na myszce nie działa.
Oto alternatywa: nie zmieniaj fokusu, dopóki nie zostanie naciśnięty klawisz na klawiaturze. Obejmuje to 95% przypadków użycia fokus-podąża za myszą i sprawiłoby, że ten stary zrzędliwy użytkownik X byłby naprawdę szczęśliwy. Nie wiem, ile razy będę przewijać stronę internetową w Chrome i naciskać Command-T, aby otworzyć nową kartę, i zamiast tego znajdę otwieraną kartę w terminalu. Jeśli mój mózg nie wykrył tego w ciągu 8 miesięcy używania komputera Mac, to nigdy się nie uda.
Amethyst obsługuje tę funkcję. Można go łatwo zainstalować za pomocą brew cask install amethyst
.
Oto plik konfiguracyjny, którego używam. Wyłącza wszystkie funkcje oprócz fokus-podąża za myszą. Zapisz to ~/.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
}
Postanowiłem więc ponownie ulepszyć pracę, którą wykonałem na MouseFocus.app, która wciąż miała pewne wady. Te są teraz naprawione. Zmieniłem nazwę na „AutoRaise”, aby lepiej odzwierciedlić to, co robi to narzędzie: kiedy najedziesz kursorem na okno, zostanie ono podniesione do przodu (z wybranym przez ciebie opóźnieniem) i uzyska fokus. Narzędzie można pobrać tutaj . Aby go użyć, skopiuj go do folderu / Applications /, upewniając się, że jest wykonywalny (chmod 700 AutoRaise). Następnie kliknij go dwukrotnie z poziomu Findera. Aby szybko go włączyć / wyłączyć, możesz użyć poniższego skryptu jabłkowego i wkleić go do przepływu pracy usługi automatyzatora . Następnie powiąż utworzoną usługę ze skrótem klawiaturowym poprzez Preferencje systemowe | Klawiatura | Skróty.
Aktualizacja (29-03-2017): Zaktualizowano plik binarny AutoRaise. Jeśli nie określono opóźnienia w wierszu poleceń, będzie teraz szukać pliku AutoRaise.delay wpodobniefolder domowy. Jest to szczególnie przydatne przy korzystaniu z poniższego skryptu jabłkowego, ponieważ „uruchom aplikację” nie obsługuje argumentów wiersza poleceń. Opóźnienie należy podać w jednostkach50 ms20 ms. Na przykład, aby określić opóźnienie 20 ms, uruchom to polecenie raz w terminalu: „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
Aktualizacja (18-04-2019): źródło https://github.com/sbmpost/AutoRaise
Aktualizacja (05-06-2020): Domyślne opóźnienie zostało ustawione na 2, a czas odpytywania został skrócony. Te ustawienia zapobiegają niezamierzonemu podnoszeniu okna podczas szybkiego przesuwania myszy (na przykład w celu dotarcia do górnego menu). Dodano również funkcję myszy warp i naprawiono wyciek pamięci. Więcej informacji można znaleźć w README
Focus podąża za myszą jest teraz możliwy w macOS, Mojave w moim przypadku, używając chunkwm . Zobacz tę odpowiedź przepełnieniem stosu dla rozwiązania „nie AutoRaise”. Autoraise aktywuje się po wyjściu
chunkc set ffm_disable_autoraise 0
w ~/.chunkwmrc
.
Edycja 2019-09-12:
chunkwm zostało zastąpione przez yabai . Żeby zainstalować:
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
Obecnie używam MondoMouse i nawet z jego dziwactwami nie mogłem bez niego używać mojego Maca. Mają bezpłatny okres próbny i polecam go wszystkim.
Codetek miał produkt, który to zrobił, ale nigdy nie wydał wersji dla Leoparda lub nowszej.
MondoMouse może w pewnym sensie robić fokus-podążanie za myszą, ale nie automatycznie podnosi. Jednak nawet fokus podąża za myszą. Na przykład, nie gra dobrze z poleceń na karcie (jeśli Command-kartę do nowej aplikacji i nie dotykać myszki to powinno nie przełącznik ostrości z powrotem tam wskaźnik myszy bywa - Jestem prawie na pewno każda implementacja w Linuksie, którą widziałem, działa poprawnie, ale MondoMouse nie).
Możesz włączyć focus-follow-mouse (bez autoraise) tylko dla okien terminala (po prostu wykonaj następujące czynności w terminalu):
defaults write com.apple.Terminal FocusFollowsMouse -string YES
I podobnie dla okien X11:
defaults write org.x.X11 wm_ffm -bool true
(W przypadku wersji Mac wcześniejszych niż 10.5.5 było to:
defaults write com.apple.x11 wm_ffm true
)
Nie znam innych aplikacji, które to obsługują.
Interesujące jest to, że Leopard ma domyślnie włączony jeden rodzaj fokus-podąża za myszą (bez autoraise). Kółko przewijania działa w niezogniskowanych oknach.
Niestety CodeTek Virtual Desktop Pro nie jest już rozwijany i wydaje się, że firma kilka lat temu zbankrutowała.
Odniesienie historyczne: http://www.codetek.com/ctvd/ (nie działa w nowych wersjach OS X!)
Recenzja historyczna: http://www.osnews.com/story/6144
Używając CodeTek Virtual Desktop Pro, mogłeś uzyskać Focus-Follow-Mouse i wyłączyć Auto-Raise, a także miał Pager dla wirtualnych pulpitów - podobnie jak Fvwm działa w systemie Linux. To naprawdę działało idealnie - najlepsze oprogramowanie, jakie kiedykolwiek kupiłem. Działał spójnie ze wszystkimi aplikacjami, a przełączanie aplikacji, przenoszenie okien do różnych obszarów roboczych i nawigacja w obszarach roboczych działało znacznie łatwiej niż w przypadku implementacji w najnowszych wersjach OS X [10.6, 10.7, 10.8]
Niestety z Mac OS X 10.5 VirtualDesktop Pro przestał działać i wygląda na to, że Apple aktywnie upewnił się, że CodeTek nie będzie dalej na nim działał.
To smutne, że Apple zmiażdżył CodeTeka i jego produkt - Virtual Desktop Pro był naprawdę lepszy od tego, jak obecnie wdrażane są obszary robocze OS X. Działało w zasadzie jak Fvwm na LINUX - super szybka nawigacja - bez zbędnych kliknięć czy gestów myszy ...
Zasmuca mnie to, że Apple dyktuje zachowanie menedżera okien (Findera) i nie wydaje się już zezwalać na zastępowanie Findera przez inne firmy.
Istnieje również powiązany problem z podniesieniem za kliknięcie. W systemie OSX każde kliknięcie okna jest również podnoszone, co potencjalnie powoduje ukrycie innych okien. Jest to problematyczne podczas pracy z kopiowaniem / wklejaniem w dwóch oknach, w których jedno z nich zajmuje większą część ekranu. Lubię utrzymywać globalny (aktywny we wszystkich obszarach roboczych) notatnik, z którego kopiuję / wklejam rzeczy (może to być wszystko, od poleceń, tekstu, rzeczy do zrobienia itp.). Jest to trudne pod OSX. Fajnie byłoby mieć opcję wyłączania podniesienia po kliknięciu.
Wypróbuj DwellClick . Chociaż nie jest to zgodne z jego przeznaczeniem, zachowanie automatycznego klikania ma efekt uboczny podobny do automatycznego podnoszenia lub śledzenia myszy.
Osobiście używam funkcji klikania lewym przyciskiem myszy tylko po zatrzymaniu ruchu kursora, ale jest też klikanie z modyfikatorami i pomoc w przeciąganiu okna, która jest całkiem przydatna.
Jest to również trochę frustrujące podczas przeglądania sieci, ponieważ będziesz chciał wyłączyć aplikację lub być bardziej świadomy tego, gdzie spoczywa kursor (np. Nie na linkach lub przyciskach, których nie zamierzasz aktywować).
Użyj funkcji Dwell w systemie Mac. Idź do Dostępność -> klawiatura -> Klawiatura ułatwień dostępu (jestem na Catalinie)
Kliknij tutaj, aby uzyskać więcej informacji
Eksperymentując z tymi opcjami, moja karta Command-Tab zaczęła się dziwnie zachowywać. Oto rozwiązanie, w jaki sposób ponownie skupia się na aplikacjach:
Wygląda na to, że poprzednia funkcja, a mianowicie możliwość zmiany fokusu okna terminala wraz z ruchem myszy, jest zepsuta w 10.6 i powoduje, że Command-Tab nie przenosi poprawnie fokusa okna. Aby rozwiązać problem, po prostu wklej następujące polecenie w terminalu:
domyślne napisz com.apple.Terminal FocusFollowsMouse -string NO
Następnie uruchom ponownie Terminal.
Rozwiązanie: Ponieważ byłem tak przyzwyczajony do pisania w systemie Windows, bardzo mi go brakowało na Macu. Rozwiązaniem, które znalazłem dla Maca, jest Zooom (tak, trzy o's). Posiada funkcję autoraise. Możesz nawet ustawić milisekundy oczekiwania przed autoremise. Nie mogę bez tego żyć. Autoraise to opcja w ustawieniach wstępnych, jak widać na zrzucie ekranu https://www.macupdate.com/app/mac/23203/zooom http://coderage-software.com/zooom/index.html
Przetestowano mysz MondoMouse ( https://www.atomicbird.com/about/mac-apps ) na MacOS Mojave. Wydaje mi się, że działa dobrze!
Aby zainstalować panel wstępny, pojawi się komunikat „ Włącz dostęp dla urządzeń pomocniczych ”, który nie znajduje się już w Preferencjach systemowych> Dostępność . Musisz to ustawić w Bezpieczeństwo i prywatność> Dostępność> Prywatność
Pojawi się kilka ostrzeżeń dotyczących zezwalania na MondoMouse w każdej otwartej aplikacji, ale po ustawieniu działa dobrze! Co za ulga :)
Naprawdę nie możesz tego zrobić dobrze, ponieważ interfejs Maca po prostu nie został zaprojektowany z myślą o fokus-podąża za myszą (z automatycznym podnoszeniem lub bez niego). Wątpię, żeby to się zmieniło w najbliższym czasie, a jeśli tak się nie stanie, każdy, kto spróbuje zaimplementować skupienie-podążanie za myszą, napotka te same przeszkody i zakończy się z niezadowalającym wynikiem (dla tych, którzy chcą czegoś takiego).
Tak, tak, ty jesteś szalony dla chcących to - ale ze względów technicznych. Przyzwyczaj się do używania Maca na własnych warunkach i jestem pewien, że chcesz zmusić go do zachowywania się tak, jak wszystko, czego używałeś na X11, za chwilę ustąpi, gdy znajdziesz nowe wydajne sposoby pracy.