Jak wyświetlić lub ukryć Przeglądarkę klawiatury za pomocą skrótu klawiaturowego?

19

Chciałbym wyświetlić i ukryć Przeglądarkę klawiatury za pomocą skrótu.

  • Czy istnieje sposób wyświetlenia Przeglądarki klawiatury za pomocą skrótu klawiaturowego?
  • Czy istnieje sposób automatycznego wyświetlania Przeglądarki klawiatury po przełączeniu się na określony język?
Renderowanie
źródło
Idealnym rozwiązaniem byłoby przypisanie skrótu klawiaturowego do skryptu Apple, który pokazuje klawiaturę.
duci9y

Odpowiedzi:

15

Uruchom przeglądarkę klawiatury z usługą (ulepszona)

Przeglądarkę klawiatury można uruchomić za pomocą skrótu przy użyciu funkcji Automator i usług OS X Services.

Program Keyboard Viewer jest dostępny w /System/Library/Input Methods/KeyboardViewer.app(w wersjach wcześniejszych niż Lion, może być w /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Możesz go otworzyć za pomocą skrótu, używając Automatora do stworzenia prostej usługi uruchamiania.

  1. Otwórz Automator i wybierz Service jako typ nowego dokumentu.
  2. Ustaw opcje (u góry obszaru przepływu pracy) na „Usługa nie otrzymuje danych wejściowych w żadnej aplikacji ”.
  3. Dodaj akcję Uruchom AppleScript do przepływu pracy i zastąp tekst następującymi liniami:

    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    end if
    
    activate application "KeyboardViewer"
    
    -- wait until the window has been closed, then end the KeyboardViewer process
    set numberOfWindows to 1
    repeat until numberOfWindows = 0
        delay 5
        tell application "System Events"
            tell process "KeyboardViewer"
                set numberOfWindows to count windows
            end tell
        end tell
    end repeat
    quit application "KeyboardViewer"
    
  4. Zapisz o nazwie typu „Open Keyboard Viewer”, a następnie otwórz Ustawienia klawiatury do Skróty klawiszowe zakładki. Wybierz Usługi w lewym okienku i przewiń w dół, gdzie powinieneś zobaczyć nazwę swojej Usługi w sekcji Ogólne.
  5. Upewnij się, że pole jest zaznaczone, aby je włączyć, a następnie wybierz je i kliknij przycisk Dodaj skrót, aby ustawić skrót.
  6. Po ustawieniu skrótu otwórz menu Usługi w dowolnej aplikacji (tj. Finder> Usługi), a następnie zamknij je. Z jakiegoś powodu mój klawisz skrótu nie działał, dopóki tego nie zrobiłem.

Kilka notatek:

  • Skrypt wymaga zaznaczenia pola Włącz dostęp dla urządzeń pomocniczych w panelu preferencji Uniwersalny dostęp .
  • Zamknięcie okna Przeglądarki klawiatury w rzeczywistości nie zamyka aplikacji, a jak zauważa Lri, może to być świnia zasobów, więc repeatpętla sprawdza co 5 sekund, czy Przeglądarka klawiatury ma otwarte okna, a jeśli nie, zamyka proces.
  • Jeśli używasz wstępną Lion OS, to może trzeba wymienić wystąpień KeyboardViewerz KeyboardViewerServer. Nie mam nic przydatnego przed Lionem, aby to przetestować (gdyby ktoś inny mógł zgłosić się w komentarzach, byłoby świetnie.
  • Ponieważ skrypt zapętla się, dopóki nie zostanie zamknięta przeglądarka klawiatury, ikona pokrętła Automator będzie wyświetlana na pasku menu, dopóki się nie zamknie.
robmathers
źródło
TAK! To jest dokładnie to , czego szukam. Znam automatyzator i skryptowanie powłoki, potrzebowałem tylko podpowiedzi. Dziękuję bardzo ... :)
jm666
Zaktualizowałem to za pomocą Applescript, który uruchamia sprawdzenie, czy okno zostało zamknięte, a jeśli tak, to kończy proces, aby uniknąć obniżenia wydajności. Każdy zainteresowany starą wersją opartą na bash może znaleźć tę wersję tutaj .
robmathers,
Przy minimalnej modyfikacji skrypt ten przełącza przeglądarkę. Zamień „end if” na „else” i przenieś „else if” na koniec.
AdamAL
Świetne rozwiązanie. Jednak element menu „Pokaż przeglądarkę klawiatury” nie wie, że przeglądarka klawiatury jest uruchomiona? Więc ten rodzaj psuje ten element menu, jeśli zdarzy się, że użyjesz ich obu.
Matt Sephton,
/System/Library/Input Methods/KeyboardViewer.appnie istnieje na Catalinie. Otworzyłem wszystkie aplikacje /System/Library/Input Methodsi żadna z nich nie otworzyła przeglądarki klawiatury. Jakieś pomysły?
Indiana Kernick
4

The Extra Skrypty wtyczki z Quicksilver oferuje tej funkcji poprzez zapewnienie Pokaż klawiaturę Viewer.scpt .

Po utworzeniu Quicksilver Trigger dla Show Keyboard Viewer.scpt za pomocą akcji Uruchom , pojawi się globalny skrót klawiaturowy Przeglądarka klawiatury.

Oto źródło skryptu:

property theApplication : "KeyboardViewer"
property thePath : "/System/Library/Input Methods/KeyboardViewer.app"

set HFSPath to ((POSIX file thePath) as string)
tell application "System Events" to ¬
    set isRunning to 0 < (count (application processes whose name is theApplication))
if isRunning then
    tell application HFSPath to quit
else
    ignoring application responses
        tell application HFSPath to activate
    end ignoring
end if

Jeśli KeyboardViewer jest otwierany za pomocą AppleScript lub za pomocą, opena główne okno jest zamknięte, proces podglądu klawiatury pozostaje otwarty i zużywa około 0-20% procesora.

mach
źródło
Zwykle nie lubię instalować aplikacji innych firm do prostych skryptów, ale jest to wyjątek . :) Dziękuję bardzo, działając jak urok. ;)
jm666,
Jeśli chcesz uniknąć oprogramowania innych firm, właśnie opublikowałem odpowiedź, która zrobi to samo z wbudowanym oprogramowaniem.
robmathers,
sry mach, @CanuckSkier opublikował odpowiedź, co lubię bardziej, więc akceptuję jego odpowiedź. W każdym razie +1 dla QuickSilver. ;)
jm666,
4

Cieszę się, że znalazłem ten wątek. Na podstawie powyższych odpowiedzi stworzyłem skrypt rozszerzenia Alfred, który przełącza Przeglądarkę klawiatury.

https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension

Zapewnia alfredowe słowo kluczowe „kv”, które włącza i wyłącza Przeglądarkę klawiatury, uruchamiając następujący skrypt Apple:

-- adapted from http://apple.stackexchange.com/a/62532
if application "KeyboardViewer" is running then
    quit application "KeyboardViewer"
else
    activate application "KeyboardViewer"
end if

(*
-- adapted from http://apple.stackexchange.com/a/59986
tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell
*)
-- icon ripped from osx /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Skomentowałem alternatywną implementację na wypadek problemów z wydajnością, których zamierzałem uniknąć.

Dergaczew
źródło
1
Uszkodzony link. Czy byłbyś tak uprzejmy, że opublikujesz to ponownie? Chciałbym użyć tego przepływu pracy Alfreda.
ddaa
Tutaj idziemy, ja przepisany go (a także dodano skrót klawiszowy Cmd + Alt + Ctrl + Shift + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton
3

Znalazłem sposób, dzięki BetterTouchTool, aby wykonać następujące czynności:

  • Aktywuj przeglądarkę klawiatury za pomocą skrótu
  • Zamknij Przeglądarkę Klawiatury innym skrótem
  • Przełącz przeglądarkę klawiatury o jeden skrót (nie trzeba używać dwóch poprzednich)
  • Dla wygody przesłałem również AppleScript

Platforma: rMBP Mountain Lion OSX 10.8


Aktywuj przeglądarkę klawiatury za pomocą skrótu

  • Uruchom BetterTouchTool
  • Dodaj skrót klawiaturowy
  • Dodaj predefiniowaną akcję >> Otwórz aplikację / plik / skrypt ...
  • Przejdź do Macintosh HD / System / Library / Input Methods /
  • Wybierz KeyboardViewer

Teraz masz skrót klawiaturowy, aby aktywować przeglądarkę bez dodatkowego skryptu.

JEDNAK zauważyłem, że naciśnięcie czerwonego przycisku X tak naprawdę nie powoduje zamknięcia aplikacji, co oznacza, że ​​przeglądarka klawiatury zostanie aktywowana tylko raz. Musisz więc utworzyć skrypt, aby zamknąć program.

Aby rozwiązać ten problem:


Zamknij Przeglądarkę klawiatury innym skrótem klawiaturowym

  • Otwórz Automator
  • Wybierz opcję Aplikacja jako typ dokumentu
  • Dodaj RunAppleScript
  • Tam, gdzie jest napisane (* Twój skrypt idzie tutaj *), zamień go na quit application "KeyboardViewer"
  • Kompiluj i zapisuj jak w dokumentach lub gdziekolwiek chcesz (przeniosłem go w to samo miejsce co KeyboardViewer)
  • Otwórz BetterTouchTool
  • Dodaj skrót klawiaturowy
  • Dodaj predefiniowaną akcję >> Otwórz aplikację / plik / skrypt ...
  • Znajdź właśnie zapisany plik aplikacji

Masz teraz sposób na dobre zamknąć przeglądarkę KeyBoard po jej aktywacji. Użyj go zamiast czerwonego przycisku X. Dopóki nie dowiem się, dlaczego przeglądarka klawiatury nie wyłącza się całkowicie po naciśnięciu przycisku X, powinno to być twoje rozwiązanie.

EDYTOWAĆ

Wymyśliłem sposób, aby PRZEŁĄCZYĆ przeglądarkę klawiatury !!


PRZEŁĄCZ PRZEGLĄDARKĘ KLAWIATUR za pomocą jednego skrótu klawiaturowego

taki sam proces jak poprzednio, ale kod został zmieniony:

  • Otwórz Automator
  • Wybierz opcję Aplikacja jako typ dokumentu
  • Dodaj RunAppleScript
  • Tam, gdzie jest napisane (* Twój skrypt idzie tutaj *), zamień go na
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Kompiluj i zapisuj jak w dokumentach lub gdziekolwiek chcesz (przeniosłem go w to samo miejsce co KeyboardViewer)
  • Otwórz BetterTouchTool
  • Dodaj skrót klawiaturowy
  • Dodaj predefiniowaną akcję >> Otwórz aplikację / plik / skrypt ...
  • Znajdź właśnie zapisany plik aplikacji

Teraz przeglądarka klawiatury jest przełączana i nie trzeba nawet przypisywać wielu skrótów!


Link do AppleScript

Przesłałem aplikację online, aby uzyskać szybszy dostęp, zamiast wykonywać powyższe kroki (po prostu aktywuj tę aplikację za pomocą BetterTouchTool). Jednak ponieważ nie jestem zidentyfikowanym wydawcą, Twój system operacyjny może zablokować uruchomienie tej aplikacji, w zależności od twoich preferencji bezpieczeństwa. Więc jeśli wolisz nie uruchamiać aplikacji od niezidentyfikowanych wydawców, po prostu wykonaj powyższe kroki, aby utworzyć własną aplikację!

Link do pliku: https://www.box.com/s/e2461c91e30e0af025e7


Mam nadzieję, że pomoże każdemu, ponieważ pomógł mi :)

Renderowanie
źródło
fantastyczny!! Pomyślałem, że dodanie aplikacji keyboardViewer bezpośrednio do mojego indeksu paska startowego byłoby dobrym zamiennikiem moich celów, ale nie ma opcji zamknięcia Kbv po uruchomieniu! więc nie możesz wywołać go po raz drugi - dziwne. tak czy inaczej twój skrypt działa na ucztę! (Musiałem zapisać go jako skrypt / run, aby działał dla mnie.) Tx!
ptim
@memeLab Cieszę się, że zadziałało dla ciebie :)
Renderuj
3

Działałoby to również po zamknięciu głównego okna poprzez kliknięcie przycisku zamykania:

if application "KeyboardViewer" is running then
    tell application "System Events" to number of windows of process "KeyboardViewer"
    if result is 0 then
        quit application "KeyboardViewer"
        delay 0.1
        launch application "KeyboardViewer"
    else
        quit application "KeyboardViewer"
    end if
else
    launch application "KeyboardViewer"
end if

Jeśli Przeglądarka klawiatury jest otwierana za pomocą AppleScript lub open -a KeyboardViewerokno główne jest zamknięte, proces pozostaje otwarty i zużywa około 0-15% procesora. Nie dzieje się tak po wybraniu opcji Pokaż przeglądarkę klawiatury z menu wprowadzania. Lepszą opcją może być kliknięcie pozycji menu:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell

Oba skrypty wymagają dostępu, aby urządzenia pomocnicze były włączone w panelu preferencji dostępności.

Lri
źródło
2

Nie jest to skrót jednosuwowy, ale rozwiązaniem „bez myszy” jest Fn+ Ctrl+, F8aby ustawić fokus na ikonach „ Menu stanu ” po prawej stronie paska menu. ( Sekcja 4 )

wprowadź opis zdjęcia tutaj

Strzałki prowadzą do ikony Preferencje klawiatury i opcji Pokaż / Ukryj. Po wprowadzeniu Fn+ Ctrl+ F8ikona znajdująca się najdalej po lewej stronie menu „Menu stanu”, które znajdują się w prawej połowie paska menu, zostanie podświetlona. Po wybraniu użyj przycisku, Right Arrow →aby przejść do tego, który chcesz. Użyj, Down Arrow ↓aby otworzyć menu i wybierz żądaną opcję. Należy pamiętać, że Optionklawisz spowoduje udostępnienie różnych opcji menu w niektórych „menu statusu”.

wprowadź opis zdjęcia tutaj

Należy zaznaczyć, że Fn+ Ctrl+ F2aktywuje ikonę menu Apple  po lewej stronie. Stamtąd Right Arrow →uzyskasz dostęp do menu aplikacji. Te opcje są dostępne w Preferencjach systemowych >> Klawiatura >> Skróty :: Klawiatura:

wprowadź opis zdjęcia tutaj

W zależności od konfiguracji klawiszy funkcyjnych Fnopcja jest opcjonalna.

wprowadź opis zdjęcia tutaj

W macOS Sierra możesz również użyć Siri, aby Ci w tym pomóc. Wywołaj Siri za pomocą dowolnego skrótu klawiaturowego, który wybierzesz w Preferencjach systemowych >> Siri :: Skrót klawiaturowy, na przykład Option+Spacebar

wprowadź opis zdjęcia tutaj

... a następnie powiedz „Włącz przeglądarkę klawiatury”

wprowadź opis zdjęcia tutaj

... i voila:

wprowadź opis zdjęcia tutaj

Niestety Siri nie zamknie przeglądarki klawiatury ani Command⌘+w

Pan Kennedy
źródło
0

możesz zrobić wszystko za pomocą Automatora:

  1. otwórz Automator i wybierz „Aplikacja”
  2. w górnej części biblioteki znajdź „Uruchom aplikację”, kliknij ją dwukrotnie
  3. wybierz „inne” i przejdź do pliku KeyboardViewer w / System / Library / Input Methods
  4. Zapisz z nazwą „uruchom klawiaturę”. Sprawdź to.

następną częścią jest zamknięcie klawiatury:

  1. otwórz Automator i wybierz „Aplikacja”
  2. w górnej części biblioteki znajdź „Wyjdź z aplikacji”, kliknij ją dwukrotnie
  3. wybierz „inne” i przejdź do pliku KeyboardViewer w / System / Library / Input Methods

  4. Zapisz, używając nazwy „zamknij klawiaturę”. Sprawdź to.

teraz będziesz mieć dwa pliki, jeden do otwarcia, jeden do zamknięcia.

wystarczy skojarzyć przyciski myszy, aby uruchomić te dwa pliki!

na przykład używam myszy Microsoft Bluetooth Notebook Mouse 5000 i to

działa świetnie dla mnie w 10.9.1

Eugene Nogalsky
źródło
0

Monitor aktywności, KeyboardViewer.app uruchamia się z

Lokalizacja Findera: / System / Library / Input Methods / KeyboardViewer.app .

Normalne użycie: otwieranie z paska menu , zamykanie po najechaniu myszą, aby wyświetlić przyciski okna, w których można kliknąć przycisk (x) zamknij . Aby włączyć panel Pasek menu , Preferencje systemowe , Klawiatura , karta Klawiatura , wybierz Pokaż klawiaturę i Przeglądarki emoji na pasku menu .

Aplet KeyboardViewer wykazuje zachowania ograniczające.

  1. Okno apletu nie reaguje na ⌘-Q , ⌘-W .
  2. Co dziwne, po otwarciu z folderu Input Methods , Activity Monitor pokazuje, że aplet pozostaje uruchomiony po zamknięciu okna.
  3. Automator AppleScript pokazany poniżej działa powoli w tle, usługi klawiatury rejestrują działania otwierania i zamykania w monitorze aktywności po kilku sekundach.
  4. Pokazany poniżej skrypt skrótów klawiaturowych działa bezbłędnie, ale system wydaje się ignorować.
  5. Aplikacja Quit Sierra Automator nie zamknie KeyboardViewer.app

Poniższy skrypt Automatora można zapisać jako aplikację do otwierania i zamykania KeyboardViewer.app za pomocą jednego kliknięcia (Monitor aktywności pokazuje również tę czynność otwierania i zamykania) i działa dobrze po umieszczeniu w Docku.

Automator: Nowy , Aplikacja , Uruchom AppleScript , zapisz ten skrypt

-- see above post, Render
    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
        else 
            activate application "KeyboardViewer"
        end if
        return input
    end run
-- icon /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Niestety nie dodaje to skrótu klawiaturowego. Jednak oferuje obejście za jednym kliknięciem. Może być jakiś sposób na dodanie skrótu klawiaturowego za pomocą Automatora. Ogólny skrypt skrótu wygląda mniej więcej tak (ale nie ma pewności, jak go włączyć).

tell application "System Events"
    set application "KeyboardViewer" to keystroke "K" using control down
end tell

(macOS Sierra 10.12.6 na MP 6,1)

Mark Stewart
źródło