Bagaimana cara mengubah pintasan Kontrol Misi dari baris perintah?

11

Saya telah mencoba mencari tahu ini sejak lama. Saya memiliki skrip penyediaan Mac OS yang sangat khas:

https://gist.github.com/ryanpcmcquen/b2e608311f286a4ab3e1

Saya ingin mengubah pintasan kontrol Misi menjadi Ctrl+ Alt+ ...alih-alih Ctrl+ .... Misalnya, standarnya adalah: Ctrl+ Upuntuk mengaktifkan Kontrol Misi. Saya ingin mengubahnya ke Ctrl+ Alt+ Up, karena pintasan saat ini bertentangan dengan program lain yang saya gunakan.

Perhatikan bahwa saya sudah mengetahui cara melakukan ini System Preferences > Keyboard > Shortcuts, saya mencari solusi baris perintah skrip.

EDIT: Terima kasih kepada @ user3439894 Saya telah melaluinya dan membuat skrip untuk mengubah semua kunci plist menjadi apa yang saya inginkan. Satu-satunya masalah adalah, itu tidak berfungsi. :-(

Inilah yang saya miliki sejauh ini:

#!/bin/bash
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 32 "{enabled = 1; value = { parameters = (65535, 126, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 33 "{enabled = 1; value = { parameters = (65535, 125, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 34 "{enabled = 1; value = { parameters = (65535, 126, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 35 "{enabled = 1; value = { parameters = (65535, 125, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 79 "{enabled = 1; value = { parameters = (65535, 123, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 80 "{enabled = 1; value = { parameters = (65535, 123, 3014656); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 81 "{enabled = 1; value = { parameters = (65535, 124, 2883584); type = standard; }; }"
defaults write ~/Library/Preferences/com.apple.symbolichotkeys.plist AppleSymbolicHotKeys -dict-add 82 "{enabled = 1; value = { parameters = (65535, 124, 3014656); type = standard; }; }"
chown -Rf `whoami` ~/Library/Preferences/com.apple.symbolichotkeys.plist;
defaults read com.apple.symbolichotkeys
ryanpcmcquen
sumber
Apakah Anda pernah menemukan solusi untuk ini?
Nathan
@Nathan, tidak. Saya hanya roll dengan default sekarang.
ryanpcmcquen
Saya punya masalah serupa. Mungkin Anda dapat mencoba solusi saya: apple.stackexchange.com/questions/344494/...
Nathan
@Nathan, sepertinya solusi Anda memerlukan intervensi manual. Saya baru belajar cara mengubah program lain yang saya gunakan untuk memiliki hotkey yang berbeda. Hammerspoon FTW.
ryanpcmcquen
Bagian dari perintah ini type = standard;harus benar-benar type = 'standard';diperhatikan tanda kutip di sekitar 'standard'. Meskipun demikian, kadang-kadang bahkan dengan baris perintah yang dibentuk dengan benar, perubahan itu tidak berlaku, bahkan dengan ; killall -u $USER cfprefsdditambahkan ke akhir defaults perintah . Juga path lengkap ke .plistfile dalam kasus penggunaan ini tidak diperlukan dan hanya mis. defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...Dan sisa perintah adalah semua yang diperlukan.
user3439894

Jawaban:

5

Ini bukan jawaban langsung walaupun saya harap informasi yang disajikan di sini akan membantu Anda mendapatkan jawaban langsung.

Saya dapat memberi tahu Anda apa yang berubah di file mana ketika Anda mengubah pintasan keyboard default untuk Kontrol Misi dari Control-Up Arrow ke Control-Option-Up Arrow. Ini adalah "Item 2 Number" dari "parameter" Array dalam "nilai" Kamus dari "32" Kamus dan "34" Kamus dari Kamus "AppleSymbolicHotKeys" di /Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plistfile.

Berikut ini adalah defaults readrepresentasi dari com.apple.symbolichotkeys.pliststruktur file yang berkaitan dengan perubahan yang dibuat dalam keadaan yang ditentukan di atas.

Kontrol Misi dengan default Control-Up Arrow

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2359296
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2490368
                );
                type = standard;
            };
        };
    };
}

Kontrol Misi berubah menjadi Control-Option-Up Arrow

{
    AppleSymbolicHotKeys =     {
        32 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    2883584
                );
                type = standard;
            };
        };
        34 =         {
            enabled = 1;
            value =             {
                parameters =                 (
                    65535,
                    126,
                    3014656
                );
                type = standard;
            };
        };
    };
}

Bagian BUGS dari defaultshalaman manual mengatakan:

Default dapat disusun dengan cara yang sangat kompleks, sehingga menyulitkan pengguna untuk memasukkannya dengan perintah ini.

Dan ini adalah contoh yang sempurna karena akan menjadi baris perintah yang sangat kompleks yang digunakan defaultsuntuk menulis nilai target ke elemen array target, jika itu bisa dilakukan. Hanya sebuah FYI ... Jika Anda akan mencoba melakukan defaults write com.apple.symbolichotkeys ...perintah, pastikan Anda telah mencadangkan file target terlebih dahulu.

Opsi lainnya adalah menggunakan AppleScript untuk mengubah pengaturan dengan menavigasi GUI Preferensi Sistem dan itu juga akan sedikit rumit dibandingkan dengan mengatur objek tingkat atas, yang targetnya di sini bukan. Saya bahkan tidak yakin itu bisa dilakukan, tetapi jika saya membutuhkan cara otomatis maka saya akan mencari tahu tetapi saya tidak punya waktu untuk mencari tahu metode mana pun, maaf.

Setidaknya Anda sekarang tahu apa yang berubah di mana dan dari sana Anda mungkin bisa mencari tahu sendiri atau mendapatkan bantuan tambahan dengan mengetahui ini sedikit lebih banyak.

Berikut gambar yang terpotong dalam Xcode com.apple.symbolichotkeys.plistfile.

masukkan deskripsi gambar di sini

BTW Saya menjebak perubahan menggunakan utilitas pihak ketiga yang mencatat perubahan sistem file dan kemudian mengubah informasi itu menjadi keluaran yang lebih dapat dibaca manusia untuk memberikan informasi ini.

pengguna3439894
sumber
Tampaknya mengubah file plist yang tepat, satu-satunya masalah adalah, cara pintas tidak benar-benar berubah, tidak setelah reboot, membaca kembali file, atau apa pun.
ryanpcmcquen
Apa nama "utilitas pihak ketiga ini yang mencatat perubahan sistem file dan kemudian mengubah informasi itu menjadi keluaran yang lebih dapat dibaca manusia"?
Allen Bargi
1
@ Allen Bargi, IIRC Mungkin itu filemonadalah bagian dari Ekstra dari buku "Mac OS X Internal - To The Apple's Core" dalam bentuk kode sumber filemon.c yang saya kompilasi untuk dieksekusi pada sistem saya. Saya kemudian membandingkan perbedaan dalam file yang diubah dari kondisi saat ini terhadap file dari cadangan Time Machine yang dibuat tepat sebelum perubahan. Anda juga dapat menggunakan perintah fs_usage asli .
user3439894
@ryanpcmcquen tautan Anda rusak
charlesreid1
@ charlesreid1, oh well, tidak berhasil.
ryanpcmcquen
1

Ini rekomendasi saya: gunakan utilitas seperti Karabiner untuk menyertai penyesuaian seperti itu.

Sebagai seorang pengembang, saya ingin mengatakan bahwa secara pribadi saya menganggapnya sebagai masalah yang menarik dan menggiurkan, dan itu benar-benar menampilkan sisi MacOS yang lebih buruk dan lebih gelap yang menyelinap di belakang layar yang hanya dapat dinikmati oleh pengembang perangkat lunak dan peretas yang benar-benar menghargai ...

Masalahnya cukup sederhana: Saya hanya ingin memetakan ulang kombinasi tombol default ke binding saya sendiri.

Mengapa begitu sulit / rumit? Saya bermaksud mencari dan memposting solusi ... Tetap disini.

Steve Benner
sumber
Terima kasih, saya berharap dapat melihat apa yang Anda temukan. Tetapi mengunduh program eksternal membutuhkan waktu selama pengaturannya melalui antarmuka standar Mac, saya masih berharap untuk solusi baris perintah bawaan.
ryanpcmcquen