ฉันจะเปลี่ยนทางลัด Mission Control จากบรรทัดคำสั่งได้อย่างไร


11

ฉันพยายามคิดออกมาเป็นเวลานาน ฉันมีสคริปต์การจัดสรร Mac OS ที่ค่อนข้างปกติ:

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

ผมอยากจะเปลี่ยนทางลัดควบคุมภารกิจจะเป็นทั้งหมดCtrl+ Alt+ ...แทน+Ctrl ...ตัวอย่างเช่นค่าเริ่มต้นคือ: Ctrl+ Upเพื่อเปิดใช้งานการควบคุมภารกิจ ฉันต้องการเปลี่ยนสิ่งนี้เป็นCtrl+ Alt+ Upเนื่องจากทางลัดปัจจุบันขัดแย้งกับโปรแกรมอื่น ๆ ที่ฉันใช้

โปรดทราบว่าฉันทราบวิธีการทำเช่นนี้System Preferences > Keyboard > Shortcutsแล้วฉันกำลังมองหาโซลูชันบรรทัดคำสั่งแบบสคริปต์ได้

แก้ไข: ขอบคุณ @ user3439894 ฉันได้อ่านและสร้างสคริปต์เพื่อเปลี่ยนคีย์ plist ทั้งหมดเป็นสิ่งที่ฉันต้องการให้พวกเขาเป็น ปัญหาเดียวก็คือมันไม่ทำงาน :-(

นี่คือสิ่งที่ฉันมี:

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

ฉันมีปัญหาที่คล้ายกัน บางทีคุณสามารถลองวิธีแก้ปัญหาของฉัน: apple.stackexchange.com/questions/344494/…
นาธาน

@ นาธันดูเหมือนว่าโซลูชันของคุณต้องการการแทรกแซงด้วยตนเอง ฉันเพิ่งเรียนรู้วิธีการเปลี่ยนโปรแกรมอื่น ๆ ที่ฉันใช้มีปุ่มลัดที่แตกต่างกัน FTW Hammerspoon
ryanpcmcquen

ส่วนหนึ่งของคำสั่งนี้type = standard;ควรจะจริงจะทราบคำพูดที่อยู่รอบ ๆtype = 'standard'; 'standard'ที่กล่าวว่าแม้ว่าบางครั้งแม้จะมีบรรทัดคำสั่งรูปแบบที่ถูกต้องเปลี่ยนแปลงก็ไม่ได้มีผลบังคับใช้ถึงแม้จะมี; killall -u $USER cfprefsdการเพิ่มในตอนท้ายของคำสั่งdefaults นอกจากนี้ยัง.plistไม่จำเป็นต้องใช้พา ธ แบบเต็มไปยังไฟล์ในกรณีการใช้งานเช่นเดียวdefaults write com.apple.symbolichotkeys AppleSymbolicHotKeys ...กับส่วนที่เหลือของคำสั่งนั้นเป็นสิ่งที่จำเป็นทั้งหมด
user3439894

คำตอบ:


5

นี่ไม่ใช่คำตอบโดยตรงแม้ว่าฉันหวังว่าข้อมูลที่นำเสนอในที่นี้จะช่วยให้คุณได้รับคำตอบโดยตรง

ฉันสามารถบอกคุณได้ว่ามีการเปลี่ยนแปลงไฟล์ใดเมื่อคุณเปลี่ยนแป้นพิมพ์ลัดเริ่มต้นสำหรับ Mission Control จาก Control-Up Arrow เป็น Control-Option-Up Arrow มันคือ "หมายเลขรายการ 2" ของ "พารามิเตอร์" อาร์เรย์ในพจนานุกรม "ค่า" ของพจนานุกรม "32" และพจนานุกรม "34" ของพจนานุกรม "AppleSymbolicHotKeys" ใน/Users/$USER/Library/Preferences/com.apple.symbolichotkeys.plistไฟล์

ต่อไปนี้เป็นdefaults readตัวแทนของcom.apple.symbolichotkeys.plistโครงสร้างไฟล์ที่เกี่ยวข้องกับการเปลี่ยนแปลงที่เกิดขึ้นภายใต้สถานการณ์ที่กำหนดไว้ด้านบน

การควบคุมภารกิจด้วยค่าเริ่มต้นของลูกศรควบคุม

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

Mission Control เปลี่ยนเป็น Arrow-Option-Up Arrow

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

BUGSส่วนของdefaultsหน้าคนพูดว่า:

ค่าเริ่มต้นสามารถจัดโครงสร้างในรูปแบบที่ซับซ้อนมากทำให้ผู้ใช้ป้อนคำสั่งนี้ได้ยาก

และนี่คือตัวอย่างที่สมบูรณ์แบบเพราะมันจะเป็นบรรทัดคำสั่งที่ซับซ้อนมากที่ใช้defaultsในการเขียนค่าเป้าหมายไปยังองค์ประกอบอาร์เรย์เป้าหมายหากทำได้แม้กระทั่ง เพียงแค่ FYI ... หากคุณกำลังพยายามทำdefaults write com.apple.symbolichotkeys ...คำสั่งตรวจสอบให้แน่ใจว่าคุณได้สำรองไฟล์เป้าหมายก่อน

ตัวเลือกอื่นคือใช้ AppleScript เพื่อเปลี่ยนการตั้งค่าโดยการนำทาง GUI การตั้งค่าระบบและจะซับซ้อนเล็กน้อยเมื่อเทียบกับการตั้งค่าวัตถุระดับบนสุดซึ่งเป้าหมายที่นี่ไม่ใช่ ฉันไม่แน่ใจด้วยซ้ำว่ามันเป็นไปได้ แต่ถ้าฉันต้องการวิธีการแบบอัตโนมัติฉันก็จะหามันออกมา แต่ฉันก็ไม่มีเวลาที่จะหาวิธีใดวิธีหนึ่งขออภัย

อย่างน้อยตอนนี้คุณก็รู้ว่าอะไรเปลี่ยนแปลงที่และจากที่นั่นคุณอาจจะสามารถคิดออกเองหรือรับความช่วยเหลือเพิ่มเติมเกี่ยวกับการรู้เพิ่มเติมเล็กน้อย

นี่คือภาพที่ถูกตัดใน Xcode ของcom.apple.symbolichotkeys.plistไฟล์

ป้อนคำอธิบายรูปภาพที่นี่

BTW ฉันดักจับการเปลี่ยนแปลงโดยใช้ยูทิลิตี้ของบุคคลที่สามที่บันทึกการเปลี่ยนแปลงระบบไฟล์และจากนั้นแปลงข้อมูลนั้นเป็นเอาต์พุตที่มนุษย์สามารถอ่านได้มากขึ้นเพื่อให้ข้อมูลนี้


ดูเหมือนว่าจะเปลี่ยนไฟล์ plist ที่เหมาะสมปัญหาเพียงอย่างเดียวคือทางลัดจะไม่เปลี่ยนแปลงจริง ๆ ไม่ใช่หลังจากรีบูตอ่านไฟล์อีกครั้งหรืออะไรก็ตาม
ryanpcmcquen

"ยูทิลิตี้ของบุคคลที่สามนี้ชื่ออะไรที่บันทึกการเปลี่ยนแปลงของระบบไฟล์แล้วแปลงข้อมูลนั้นเป็นเอาต์พุตที่มนุษย์อ่านได้มากขึ้น"?
Allen Bargi

1
@ Allen Bargi, IIRC มันอาจfilemonเป็นส่วนหนึ่งของ Extras จากหนังสือ "Mac OS X Internals - ถึง The Core ของ Apple" ในรูปแบบของซอร์สโค้ด filemon.cซึ่งฉันรวบรวมเพื่อปฏิบัติการบนระบบของฉัน ฉันเปรียบเทียบความแตกต่างในไฟล์ที่เปลี่ยนแปลงของสถานะปัจจุบันกับไฟล์จากการสำรองข้อมูล Time Machine ที่ทำไว้ก่อนการเปลี่ยนแปลง คุณยังสามารถใช้คำสั่งดั้งเดิมfs_usage
user3439894

@ryanpcmcquen การเชื่อมโยงของคุณเสีย
charlesreid1

@ charlesreid1 โอใช่มันไม่ทำงาน
ryanpcmcquen

0

นี่คือคำแนะนำของฉัน:ใช้โปรแกรมอรรถประโยชน์เช่นKarabinerเพื่อประกอบการปรับแต่งดังกล่าว

ในฐานะนักพัฒนาซอฟต์แวร์ฉันอยากจะบอกว่าโดยส่วนตัวแล้วฉันคิดว่ามันเป็นปัญหาที่น่าสนใจและยั่วเย้าและมันแสดงให้เห็นถึง Macos ด้านที่มืดกว่าและมืดมนกว่าอยู่เบื้องหลังฉากที่ผู้พัฒนาซอฟต์แวร์และแฮกเกอร์เท่านั้นที่ชื่นชม ...

ปัญหานั้นง่ายพอ: ฉันแค่ต้องการตั้งค่าคีย์ผสมที่เป็นค่าเริ่มต้นใหม่ให้เข้ากับการเชื่อมโยงของฉันเอง

ทำไมบนโลกนี้มันช่างยากนัก / ซับซ้อน? ฉันต้องการค้นหาและโพสต์โซลูชัน ... คอยติดตาม


ขอบคุณฉันหวังว่าจะได้เห็นสิ่งที่คุณค้นพบ แต่การดาวน์โหลดโปรแกรมภายนอกจะใช้เวลานานกว่าการตั้งค่าผ่านทางอินเทอร์เฟซมาตรฐานของ Mac ฉันยังคงหวังว่าจะใช้โซลูชันบรรทัดคำสั่งในตัว
ryanpcmcquen
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.