“Tüm F1, F2'yi standart anahtar olarak kullan” komutunu kullanarak geçiş yapın


25

"Tüm F1, F2'yi standart anahtar olarak kullan" ayarını çok sık değiştirdim ve bir komut dosyası (veya bir klavye kısayolu) aracılığıyla otomatikleştirmek istiyorum. Mümkün mü? Google’a doğru argümanları denedim defaults write ...ama başarısız oldum .

fn ayarları


Güncelleme: Burada cevaplara dayanarak https://github.com/jkbrzt/macos-fn-toggle oluşturdum .

Güncelleme II: Şimdi de var - https://github.com/Pyroh/Fluor - etkin uygulamaya bağlı olarak klavyenin fn tuşlarının davranışını otomatik olarak değiştirmenize izin veren gerçekten hoş bir menubar uygulaması.

Yanıtlar:


25
tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Ayrıca kullanabilirsiniz defaults write -g com.apple.keyboard.fnState -bool true, ancak oturumu kapatıp tekrar açmadan değişiklikleri uygulamanın hiçbir yolunu bilmiyorum.


4
Bu senaryoyu Automator kullanarak bir uygulama olarak hazırladım
Jakub

@jkbr Github'daki uygulamanız sadece aradığım şeydi. Teşekkürler!
mdwhatcott

1
Bir komut dosyasını AppleScript Editor'dan bir uygulama olarak da kaydedebilirsiniz. Sadece betiği AppleScript Editor'a yapıştırın, ⌘S tuşuna basın ve formatı uygulamaya ayarlayın.
Lri,

Başka bir alternatif olarak, automator'da yeni bir "hizmet" oluşturun, Applescript'i Çalıştır komutunu ekleyin ve bunu yazdığı yere yapıştırın (* Komut dosyanız buraya gidiyor *). Kaydet ve ardından tüm uygulamalarda servisler menüsü fn :) içerecektir
Spyder

2
Mavericks'te şöyle bir hata alırsınız: "AppleScript Editor'a yardımcı erişime izin verilmiyor." Bu nedenle, Gizlilik Sekmesinde "Güvenlik ve Gizlilik" e gitmeniz, Kabul edilebilirliği seçmeniz ve uygulamanızın bunu yapmasını sağlamanız gerekir. Kilidi açmak için yönetici şifresi girmeniz gerekecektir.

9

Senaryoyu bilmiyorum ama bazı kullanışlı ters mühendislik ve Googling ile, orada mevcut AppleScript GUI şeylerini beğenmediğim için bunu yaptım:

https://github.com/nelsonjchen/fntoggle

Derlenmiş ikili dosya (PATH'inize girin veya ne olduğunu bilmiyorsanız /usr/local/bin/): https://github.com/nelsonjchen/fntoggle/releases

Veya shçalıştırarak herhangi bir şeyden (ControlPlane, Automator , vb.) Arayın .fntoggle onfntoggle off

Bu komut dosyasının açılması GUI erişilebilirliği gerektirmez. Aynı zamanda oturumu kapatıp tekrar açmanız gerekmez.


Bu hala Sierra'da çalışıyor mu? Burada çalışmıyor
Warren P,

@WarrenP Bu sorun aydınlatıcı olabilir. github.com/nelsonjchen/fntoggle/issues/4
crazysim

4

Mevcut durumu aşağıdaki şekilde okuyabilirsiniz. (F tuşları için 1, medya için 0 / parlaklık vb.)

defaults read "Apple Global Domain" "com.apple.keyboard.fnState"

Yazabilirsiniz, ancak yeniden başlatılıncaya kadar değişmez. (Bunun yerine Dock ve Finder'ı öldürmeye çalıştım, şanssız)

defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "1" ## F1 F2 etc
defaults write "Apple Global Domain" "com.apple.keyboard.fnState" "0" ## Brightness/Media

Bu pist dosyasını okuyanlar hakkında daha fazla bilgiye sahip birisinin, bu pist'i okuyanları öldürmek ve yeniden başlatmak için bir senaryo yazabileceğinden şüpheleniyorum, bu da değişikliği kabul etmeli.


Teşekkürler, doğru anahtar bu. Ancak doğrudan değiştirmek, davranışı değiştirmiyor gibi görünüyor.
Jakub

yeniden başlatılmasına rağmen yardım etmiyor
Daniel

1

Aslında, spot ışığı veya herhangi bir şey ile herhangi bir uygulamayı çalıştırmak zorunda değilsiniz, bence en iyi yol:

  1. Automator'da yeni Servis oluşturun
  2. Sürükle: "Run Apple betiği
  3. "Servis alıcıları seçildi" de: giriş seçmeyin
  4. Bu kodu diğer cevaptan yapıştırın :

    tell application "System Preferences"
    reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
    end tell
    tell application "System Events" to tell process "System Preferences"
    click checkbox 1 of tab group 1 of window 1
    end tell
    quit application "System Preferences" 
    
  5. "Adınız" olarak kaydedin

  6. Açık Sistem Tercihleri ​​→ Klavye → Kısayollar
  7. Soldaki menüden şunu seçin: "Hizmetler"
  8. Sağ tarafta, Genel'e tamamen ilerleyin ve servisinize benzersiz bir kısayol tuşu atayın, cmd + shift + L

  9. Bu kadar! Çok hızlı ya da hiçbir şey değil, ancak herhangi bir uygulamayı çalıştırmak veya Tercihler'e kendiniz gitmek zorunda değilsiniz.

Ek: EL Capitan ile bu yalnızca Automator odaklandığında çalışır, aksi takdirde (örneğin, betiği bir klavye kısayolu aracılığıyla çağırırsanız) "Çalıştırma" AppleScript "hatasıyla karşılaştı" mesajı alırsınız.


0

Farklı sormaya hoş geldiniz! Bunu bir cevap olarak yayınladınız, bu sadece sorulan soruyu doğrudan cevaplayan şeyler içindir. Ask Üzerine Cevaplar Farklı bir bağlantıdan daha fazlası olmalı. Bir bağlantı eklemek tamam, ama lütfen cevabınızdaki yazıyı özetleyin veya alıntı yapın. Fikir cevabı tek başına yapmaktır. Daha fazla bilgi için lütfen SSS bölümüne bakın. Teşekkürler.
Nathan Greenstein

0

Tüm cevaplar göz önüne alındığında Yosemite için aşağıdaki çözümü uyguladım.

Automator kullanarak, aşağıdaki kodla bir uygulama oluşturdum:

tell application "System Preferences"
reveal anchor "keyboardTab" of pane "com.apple.preference.keyboard"
end tell
tell application "System Events" to tell process "System Preferences"
click checkbox 1 of tab group 1 of window 1
end tell
quit application "System Preferences"

Sakla, Uygulamalar'a ekle. "AppleScript Editor'ın yardımcı erişime izin verilmemesi" ni önlemek için, Sistem Tercihleri-> Güvenlik ve Gizlilik-> Gizlilik'e dokunun -> Erişilebilirlik girişine gidin ve uygulamanızı ekleyin.

Benim gibi bir kısayol istiyorsanız, Automator uygulamasında Launch App ile yeni bir Apple Script oluşturun ve uygulamanızı seçin. Ardından Sistem Tercihleri-> Klavye-> Kısayol sekmeleri-> Servis girişi kısmına geri dönün ve listenin sonunda komut dosyasına bir kısayol atayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.