यहाँ मैंने अपने मैक पर क्या किया। हर सर्वर के लिए, मैं अपनी ~ / .shsh / config फाइल में इसके लिए एक प्रविष्टि जोड़ता हूं, जैसे
Host app13
HostName server.example.com
User tom
PermitLocalCommand yes
LocalCommand osascript %d/bin/change_terminal_colours.scpt 12 35 35
SSH सत्र के स्थापित होने के बाद इस एप्सस्क्रिप्ट को ट्रिगर किया जाता है। यह प्रदान की जाने वाली आरजीबी मूल्यों के लिए टर्मिनल पृष्ठभूमि का रंग निर्धारित करता है (या कोई रंग मान प्रदान नहीं किए जाने पर डिफ़ॉल्ट रूप से वापस)। संभावित रूप से मुश्किल हिस्सा एसएसएच सत्र के अंत में अवरोधों को रंग सेट करने के लिए रोकना है। उसके लिए, मैंने डिफ़ॉल्ट शेल कमांड को ओवरराइड करने के लिए निम्न शेल स्क्रिप्ट को ~ / bin / ssh के रूप में बनाया। यह अनिवार्य रूप से SSH कमांड में किसी भी कॉल को इंटरसेप्ट और रैप करता है। मैंने अलियासिंग और फ़ंक्शंस का उपयोग करने की कोशिश की, लेकिन इस समाधान ने सबसे अच्छा काम किया:
#!/bin/bash
/usr/bin/ssh $@
osascript ~/bin/change_terminal_colours.scpt
यहाँ change_terminal_colours.scpt स्क्रिप्ट का स्रोत है । इसे अपनी ~ / बिन निर्देशिका में भी रखें:
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 द्वारा पाया था।