Làm cách nào để thay đổi phím tắt Mission Control từ dòng lệnh?


11

Tôi đã cố gắng để tìm ra điều này trong một thời gian dài. Tôi có một kịch bản cung cấp Mac OS khá điển hình:

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

Tôi muốn thay đổi các phím tắt điều khiển Nhiệm vụ thành Ctrl+ Alt+ ...thay vì Ctrl+ .... Ví dụ: mặc định là: Ctrl+ Upđể kích hoạt Kiểm soát nhiệm vụ. Tôi muốn thay đổi điều này thành Ctrl+ Alt+ Up, vì lối tắt hiện tại xung đột với các chương trình khác mà tôi sử dụng.

Lưu ý rằng tôi đã biết làm thế nào để thực hiện điều này thông qua System Preferences > Keyboard > Shortcuts, tôi đang tìm kiếm một giải pháp dòng lệnh có thể viết được.

EDIT: Cảm ơn @ user3439894 Tôi đã thực hiện và tạo một kịch bản để thay đổi tất cả các phím plist thành những gì tôi muốn chúng trở thành. Vấn đề duy nhất là, nó không hoạt động. :-(

Đây là những gì tôi có cho đến nay:

#!/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

Bạn đã bao giờ tìm ra một giải pháp cho điều này?
Nathan

@Nathan, không. Tôi chỉ cần cuộn với mặc định bây giờ.
ryanpcmcquen

Tôi đã có một vấn đề tương tự. Có lẽ bạn có thể thử giải pháp của tôi: apple.stackexchange.com/questions/344494/ trên
Nathan

@Nathan, có vẻ như giải pháp của bạn cần can thiệp thủ công. Tôi vừa học cách thay đổi các chương trình khác mà tôi sử dụng để có các phím nóng khác nhau. Hamsterpoon FTW.
ryanpcmcquen

Phần này của lệnh type = standard;thực sự cần type = 'standard';lưu ý các trích dẫn xung quanh 'standard'. Mặc dù vậy, đôi khi ngay cả với một dòng lệnh được tạo đúng, sự thay đổi sẽ không có hiệu lực, ngay cả khi ; killall -u $USER cfprefsdđược thêm vào cuối defaults lệnh . Ngoài ra, đường dẫn đầy đủ đến .plisttệp trong trường hợp sử dụng này là không cần thiết và đơn giản là ví dụ defaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...và phần còn lại của lệnh là tất cả những gì cần thiết.
dùng3439894

Câu trả lời:


5

Đây không phải là câu trả lời trực tiếp mặc dù tôi hy vọng thông tin được trình bày ở đây sẽ giúp bạn có câu trả lời trực tiếp.

Tôi có thể cho bạn biết những thay đổi trong tệp nào khi bạn thay đổi phím tắt mặc định cho Điều khiển nhiệm vụ từ Mũi tên điều khiển lên Mũi tên điều khiển tùy chọn. Đó là "Số mục 2" của Mảng "tham số" trong Từ điển "giá trị" của Từ điển "32" và Từ điển "34" của Từ điển "AppleSymbolicHotKeys" trong /Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plisttệp.

Đây là một defaults readđại diện của com.apple.symbolichotkeys.plistcấu trúc tệp vì nó liên quan đến các thay đổi được thực hiện trong các trường hợp được xác định ở trên.

Kiểm soát nhiệm vụ với mặc định của Mũi tên điều khiển

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

Mission Control đổi thành 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;
            };
        };
    };
}

Phần BUGS của defaultstrang người đàn ông nói:

Mặc định có thể được cấu trúc theo những cách rất phức tạp, khiến người dùng khó nhập chúng bằng lệnh này.

Và đây là một ví dụ hoàn hảo vì nó sẽ là một dòng lệnh rất phức tạp sử dụng defaultsđể ghi các giá trị đích vào các phần tử mảng đích, nếu nó thậm chí có thể thực hiện được. Chỉ là một FYI ... Nếu bạn định thử thực hiện một defaults write com.apple.symbolichotkeys ...lệnh, hãy chắc chắn rằng bạn đã sao lưu tệp mục tiêu trước.

Tùy chọn khác là sử dụng AppleScript để thay đổi cài đặt bằng cách điều hướng GUI tùy chọn hệ thống và điều đó cũng sẽ hơi phức tạp so với việc đặt đối tượng cấp cao nhất mà mục tiêu ở đây không phải là. Tôi thậm chí không chắc là nó có thể thực hiện được tuy nhiên nếu tôi cần một cách tự động thì tôi sẽ tìm ra tuy nhiên tôi không có thời gian để tìm ra một trong hai phương pháp, xin lỗi.

Ít nhất bây giờ bạn biết những thay đổi ở đâu và từ đó bạn có thể tự mình tìm ra nó hoặc nhận thêm trợ giúp khi biết thêm một chút.

Đây là hình ảnh được cắt trong Xcode của com.apple.symbolichotkeys.plisttệp.

nhập mô tả hình ảnh ở đây

BTW Tôi đã bẫy các thay đổi bằng tiện ích của bên thứ ba đã ghi lại các thay đổi của hệ thống tệp và sau đó chuyển đổi thông tin đó thành đầu ra dễ đọc hơn của con người để cung cấp thông tin này.


Nó dường như thay đổi các tập tin plist thích hợp, vấn đề duy nhất là, các phím tắt không thực sự thay đổi, không phải sau khi khởi động lại, đọc lại tập tin, hoặc bất cứ điều gì.
ryanpcmcquen

Tên của "tiện ích bên thứ ba đã ghi lại các thay đổi của hệ thống tập tin và sau đó chuyển đổi thông tin đó thành đầu ra dễ đọc hơn của con người" là gì?
Allen Bargi

1
@ ALLen Bargi, IIRC Có lẽ filemonđó là một phần của Extras từ cuốn sách "Mac OS X Internals - To The Core của Apple" dưới dạng mã nguồn filemon.c mà tôi đã biên dịch thành một tệp thực thi trên hệ thống của mình. Sau đó, tôi đã so sánh sự khác biệt trong tệp đã thay đổi của trạng thái hiện tại so với tệp từ bản sao lưu Time Machine được thực hiện ngay trước khi thay đổi. Bạn cũng có thể sử dụng lệnh fs_usage riêng .
dùng3439894

@ryanpcmcquen liên kết của bạn bị hỏng
charlesreid1

@ charlesreid1, ồ, nó không hoạt động.
ryanpcmcquen

1

Đây là khuyến nghị của tôi: sử dụng một tiện ích như Karabiner để thực hiện các tùy chỉnh đó.

Là một nhà phát triển, tôi muốn nói rằng cá nhân tôi thấy đó là một vấn đề hấp dẫn và trêu ngươi, và nó thực sự thể hiện mặt xấu, tối tăm của macOS skulking đằng sau hậu trường mà chỉ có các nhà phát triển phần mềm và tin tặc mới có thể đánh giá cao ...

Vấn đề đủ đơn giản: Tôi chỉ muốn ánh xạ lại tổ hợp phím mặc định cho ràng buộc của riêng tôi.

Tại sao trên trái đất lại khó khăn / phức tạp như vậy? Tôi dự định tìm hiểu và đăng một giải pháp ... Hãy theo dõi.


Cảm ơn bạn, tôi mong muốn được nhìn thấy những gì bạn tìm ra. Nhưng việc tải xuống một chương trình bên ngoài chỉ cần thiết lập chúng thông qua các giao diện tiêu chuẩn của Mac, tôi vẫn hy vọng vào một giải pháp dòng lệnh tích hợp.
ryanpcmcquen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.