มีคำสั่งที่สามารถใช้เปลี่ยนโทนสีของ Mac OS X Terminal ได้หรือไม่? ฉันชอบความคิดที่จะสามารถเปลี่ยนสีได้ตามสคริปต์ที่ฉันเรียกใช้ จนถึงตอนนี้ฉันเพิ่งเปลี่ยนสีของ bash prompt ของฉันกับ PS1 ซึ่งก็โอเค แต่ก็ไม่ได้สังเกตได้อย่างที่ฉันต้องการ
มีคำสั่งที่สามารถใช้เปลี่ยนโทนสีของ Mac OS X Terminal ได้หรือไม่? ฉันชอบความคิดที่จะสามารถเปลี่ยนสีได้ตามสคริปต์ที่ฉันเรียกใช้ จนถึงตอนนี้ฉันเพิ่งเปลี่ยนสีของ bash prompt ของฉันกับ PS1 ซึ่งก็โอเค แต่ก็ไม่ได้สังเกตได้อย่างที่ฉันต้องการ
คำตอบ:
ทั้งนี้ขึ้นอยู่กับสิ่งที่ว่าคุณต้องการที่จะประสบความสำเร็จที่นี่เป็นความคิดที่ไม่กี่แห่งใน AppleScript ใช้รูปแบบเทอร์ของคุณ สิ่งเหล่านี้มีความแข็งแกร่งกว่าtput
เนื่องจากได้รับการรีเซ็ตด้วยการแจ้งสี ฯลฯ (อย่างน้อยสำหรับฉัน)
ชุดนี้เป็นการตั้งค่าแท็บทั้งหมดที่ใช้ Python (ไม่มีเซิร์ฟเวอร์ SSH สำหรับการทดสอบในขณะนี้) เป็น Homebrew, อื่น ๆ เป็น Ocean:
tell application "Terminal"
repeat with w from 1 to count windows
repeat with t from 1 to count tabs of window w
if processes of tab t of window w contains "Python" then
set current settings of tab t of window w to (first settings set whose name is "Homebrew")
else
set current settings of tab t of window w to (first settings set whose name is "Ocean")
end if
end repeat
end repeat
end tell
บันทึกเป็นสคริปต์และเรียกใช้เป็นosascript Name.scpt
ทุกเวลาที่คุณต้องการเปลี่ยนสีเปลือกของคุณ (แน่นอนคุณสามารถล้อมสิ่งนี้เป็นสคริปต์เปลือกหรือบางสิ่งบางอย่าง)
หากคุณต้องการที่จะแสดงกระบวนการที่ใช้เวลานานทั้งหมดแตกต่างกันให้ใช้เงื่อนไขดังต่อไปนี้:
if busy of tab t of window w is true then
หรือคุณสามารถกำหนดสไตล์ของแท็บเดียวโดยเลือกด้วยตนเอง:
on run argv
tell application "Terminal" to set current settings of tab (item 1 of argv as number) of front window to first settings set whose name is (item 2 of argv)
end run
เรียกใช้เช่นนี้:
osascript StyleTerm.scpt 3 Homebrew
-> แท็บที่สามของหน้าต่างเทอร์มินัลด้านหน้ารับสไตล์ Homebrew!
หากคุณต้องการแก้ไขหน้าต่างพื้นหลังให้แทนที่ "หน้าต่างด้านหน้า" ด้วยนิพจน์ที่อยู่ในวงเล็บเช่นหลัง "แท็บ" หากคุณเคยต้องการที่จะปรับเปลี่ยนการเลือกแท็บ "ปัจจุบัน" ใช้แทนselected tab
tab (item 1 of argv as number)
เพิ่มสิ่งต่อไปนี้ให้กับคุณ.bash_profile
หากวิธีแก้ปัญหาแรกนั้นใช้แรงงานคนมากเกินไปสำหรับคุณ:
PROMPT_COMMAND='osascript "/path/to/Name.scpt"'
ตอนนี้มันจะถูกดำเนินการก่อนทุกพรอมต์ (ปัญหาเท่านั้น: ไม่ใช่หลังจากเริ่มบางสิ่งบางอย่างssh
แต่หัวข้อนี้ไม่ได้เกี่ยวกับเทคนิคทุบตีแฟนซีอยู่ดีนี่เป็นเพียงตัวชี้)
สคริปต์ของคุณสามารถใช้tput
คำสั่งเพื่อตั้งค่าสีในลักษณะพกพาได้ ลองใช้สคริปต์ต่อไปนี้แล้วคุณจะเห็นเทอร์มินัลเป็นพื้นหลังสีฟ้าเข้มพร้อมข้อความสีฟ้าสดใส
#!/bin/bash
tput setab 6
tput clear
tput setaf 14
echo Hello World
คุณสามารถดูข้อมูลเพิ่มเติมเกี่ยวกับสิ่งนี้ได้ในman 5 terminfo
ส่วนที่เรียกว่า "การจัดการสี"
คุณสามารถทำสิ่งเดียวกันได้ด้วยการสะท้อนลำดับ escape ที่เทอร์มินัลของคุณรู้จักโดยตรง มันจะเร็วขึ้น แต่อาจไม่สามารถใช้งานโปรแกรมอื่นได้ หลายคนรู้จักลำดับ xterm และนี่คือสิ่งที่สคริปต์ด้านบนมีลักษณะเหมือนใช้พวกเขา
#!/bin/bash
printf "\033[48;5;6m" # or "\033[46m"
printf "\033[H\033[2J" # your system's clear command does something similar
printf "\033[38;5;14m" # or "\033[96m"
echo Hello World
Terminal -> Preferences -> Settings
หรือไม่
osascript
แต่ฉันไม่คุ้นเคยกับมัน
คุณสามารถใช้ applescript เพื่อให้ธีมสุ่มทุกเทอร์มินัลใหม่
แก้ไขของคุณ.bash_profile
และเพิ่มคำสั่งนี้
osascript -e "tell application \"Terminal\" to set current settings of front window to some settings set"
หากคุณได้รับเทอร์มินัลธีมแบบสุ่มคุณสามารถกด ⌘I
และตั้งค่าได้ด้วยตนเอง
สิ่งนี้มีประโยชน์มากขึ้นถ้าคุณได้รับธีมของเทอร์มินัลที่ดูแตกต่างกันมากมาย มีหลายเว็บไซต์ที่ถ้าคุณมองไปรอบ ๆ
Terminal -> Preferences -> Settings
ยกเว้นฉันต้องการทำสิ่งนี้ด้วยคำสั่งchangeBackgroundTheme; ssh; changeBackgroundTheme
ผมต้องการสร้างสคริปต์ที่จะมีลักษณะเช่นนี้: นี่จะช่วยเตือนฉันว่ามีหน้าต่างใดssh
บ้างในขณะนี้