टर्मिनल प्रोग्राम का फ़ॉन्ट बदलें w / o रीस्टार्टिंग


6

घर पर मुझे एक अच्छा बड़ा प्रदर्शन मिला है जो दुर्भाग्य से मेरे रेजिना मैकबुक की तरह ही नहीं है।

मैं कम-रेज स्क्रीन पर एक पिक्सेल-फ़ॉन्ट का उपयोग करना चाहता हूं और रेटिना स्क्रीन पर एक अच्छा चिकनी। ऐसा करने के लिए मैंने एक स्क्रिप्ट स्थापित की है जो डिस्प्ले से कनेक्ट होने पर किसी ईवेंट को सुनती है।

मैंने दो प्रोफाइलों को टर्मिनल.ऐप में स्थापित किया है, एक लो-रेस स्क्रीन के लिए और एक रेटिना स्क्रीन के लिए।

क्या कोई टर्मिनल (ऐप्पलस्क्रिप्ट का उपयोग करके) "डिफ़ॉल्ट" प्रोफ़ाइल बनाने का एक तरीका है defaults com.apple.terminal ... यह किया होगा)

निम्न स्क्रिप्ट वर्तमान डिफ़ॉल्ट प्रोफ़ाइल को बदलकर काम करती है (इसलिए यह पूरी तरह से मेरी ज़रूरत नहीं है, लेकिन अगर मैं उन सभी सेटिंग्स के नाम पा सकता हूं जो मुझे बदलना चाहते हैं तो काम कर सकते हैं):

#!/usr/bin/env osascript -l JavaScript
function run (argv) {
  var terminal = Application('Terminal');

  terminal.defaultSettings.fontName = 'creep';
  terminal.defaultSettings.fontSize = 16;

  // these don't seem to work
  // because I do not know their names, and it's hard to debug guessing them
  // terminal.defaultSettings.fontAntialiasing = false;
  // terminal.defaultSettings.fontHeigthSpacing = 0.8;
}

मुझे परिवर्तनों को वापस लाने के लिए एक स्क्रिप्ट लिखनी होगी


जिज्ञासा से बाहर, कनेक्टेड घटनाओं को प्रदर्शित करने के लिए किस विधि का उपयोग कर रहे हैं? यह शायद लॉन्च के माध्यम से किया जा सकता है यदि आप सही AppleEvent के नाम का पता लगा सकते हैं।
phobox

@ फोबॉक्स मैं एक iokit श्रोता का उपयोग कर रहा हूं जो स्क्रिप्ट को ट्रिगर करता है जब भी एक निश्चित यूएसबी डिवाइस को इसमें संलग्न किया जाता है यह जवाब । मुझे यह पता नहीं चला कि एचडीएमआई उपकरणों के लिए यह कैसे करना है, इसलिए मैं इस तथ्य पर ध्यान देता हूं कि मेरे पास एक FLIRC USB डिवाइस है जिसे उसी हब में प्लग किया गया है जो डिस्प्ले को भी जोड़ता है (डिस्प्ले में USB हब है)। आपको किसी अन्य वर्ग के उपकरणों को सुनने में सक्षम होना चाहिए IOUSBDevice हालाँकि। वैकल्पिक रूप से, आप बस एक स्क्रिप्ट चला सकते हैं जो यह जांचती है कि प्रदर्शन हर 2 सेकंड या तो जुड़ा हुआ है (उदाहरण के लिए ioreg -p IODisplayConnect )।
romeovs

जवाबों:


5

ठीक है, AppleScript एडिटर में कुछ बेवकूफ बनाने के बाद (इसमें यह अच्छी बात है) शब्दकोश कि आप एक दिए गए अनुप्रयोग के लिए सभी उपलब्ध आदेशों से पता चलता है) मैं इस स्क्रिप्ट के लिए बसे:

#!/usr/bin/env osascript
on run {name}
  tell application "Terminal"
    set default settings to settings set name
    set current settings of tabs of windows to settings set name
  end tell
end run

इसे निष्पादन योग्य बनाएं ( chmod u+x change.applescript ) और इसे चलाने के लिए, सक्रिय करने के लिए प्रोफ़ाइल के नाम से गुजर रहा है:

./change.applescript creep

यह करेगा:

  • डिफ़ॉल्ट प्रोफ़ाइल को बदलें, इसलिए सभी नई विंडो इसका उपयोग करेंगी
  • सभी विंडो के सभी टैब की प्रोफ़ाइल को नई प्रोफ़ाइल में बदलें, इसलिए खुले टर्मिनलों को भी इसका उपयोग करने के लिए मिलता है!
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.