นี่คือสิ่งที่ฉันทำบน Mac ของฉัน สำหรับเซิร์ฟเวอร์ทุกเครื่องฉันเพิ่มรายการไว้ในไฟล์ ~ / .ssh / config เช่น
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
Applescript นี้จะถูกเรียกใช้เมื่อมีการสร้างเซสชัน SSH มันตั้งค่าสีพื้นหลังของเทอร์มินัลเป็นค่า RGB ที่ให้ไว้ (หรือกลับไปเป็นค่าเริ่มต้นหากไม่มีการระบุค่าสี) ส่วนที่อาจยุ่งยากคือการสกัดกั้นจุดสิ้นสุดของเซสชัน SSH เพื่อตั้งค่าสีกลับไปเป็นค่าเริ่มต้น สำหรับสิ่งนั้นฉันสร้างเชลล์สคริปต์ต่อไปนี้เป็น ~ / bin / ssh เพื่อลบล้างคำสั่ง ssh เริ่มต้น สิ่งนี้จะดักจับและตัดการเรียกไปยังคำสั่ง SSH ฉันพยายามใช้ aliasing และฟังก์ชั่น แต่วิธีนี้ทำงานได้ดีที่สุด:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
นี่คือแหล่งที่มาสำหรับสคริปต์change_terminal_colours.scpt วางสิ่งนี้ในไดเรกทอรี ~ / bin ของคุณด้วย:
on run argv
tell application "Terminal"
# NOTE: Color values range from 0 to 65535.
if (count of argv) > 0 then
set backgroundColor to {(item 1 of argv) * 256, (item 2 of argv) * 256, (item 3 of argv) * 256}
else
set backgroundColor to background color of default settings
end if
try
set background color of (selected tab of front window) to backgroundColor
end try
end tell
end run
ฉันเขียนวิธีการแก้ปัญหานี้เมื่อสัปดาห์ที่แล้วและได้ใช้มันตั้งแต่นั้นมา ฉันหวังว่าคนอื่นจะพบว่ามันมีคุณค่า ฉันคิดว่ามันใช้งานได้ดีกว่าโซลูชั่นใด ๆ ที่ฉันพบโดย Googling