हिन्दी
दस्तावेज़
थीम

थीम

एक बिल्ट-इन थीम चुनें या अपनी स्वयं की परिभाषित करें।

OpenCode के साथ आप कई बिल्ट-इन थीम में से एक चुन सकते हैं, ऐसी थीम का उपयोग कर सकते हैं जो आपके टर्मिनल थीम के अनुकूल हो, या अपनी स्वयं की कस्टम थीम परिभाषित कर सकते हैं।

डिफ़ॉल्ट रूप से, OpenCode हमारी अपनी opencode थीम का उपयोग करता है।


टर्मिनल आवश्यकताएँ

थीम को उनके पूर्ण रंग पैलेट के साथ सही ढंग से प्रदर्शित करने के लिए, आपके टर्मिनल को truecolor (24-बिट रंग) को सपोर्ट करना चाहिए। अधिकांश आधुनिक टर्मिनल डिफ़ॉल्ट रूप से इसे सपोर्ट करते हैं, लेकिन आपको इसे सक्षम करने की आवश्यकता हो सकती है:

  • सपोर्ट की जाँच करें : echo $COLORTERM चलाएँ - इसे truecolor या 24bit आउटपुट करना चाहिए
  • truecolor सक्षम करें : अपने शेल प्रोफ़ाइल में एनवायरनमेंट वेरिएबल COLORTERM=truecolor सेट करें
  • टर्मिनल संगतता : सुनिश्चित करें कि आपका टर्मिनल एमुलेटर 24-बिट रंग को सपोर्ट करता है (iTerm2, Alacritty, Kitty, Windows Terminal, और GNOME Terminal के हाल के संस्करण जैसे अधिकांश आधुनिक टर्मिनल करते हैं)

truecolor सपोर्ट के बिना, थीम कम रंग सटीकता के साथ दिखाई दे सकती हैं या निकटतम 256-रंग सन्निकटन पर फॉलबैक कर सकती हैं।


बिल्ट-इन थीम

OpenCode कई बिल्ट-इन थीम के साथ आता है।

नामविवरण
systemआपके टर्मिनल के पृष्ठभूमि रंग के अनुकूल होता है
tokyonightTokyonight (opens in a new tab) थीम पर आधारित
everforestEverforest (opens in a new tab) थीम पर आधारित
ayuAyu (opens in a new tab) डार्क थीम पर आधारित
catppuccinCatppuccin (opens in a new tab) थीम पर आधारित
catppuccin-macchiatoCatppuccin (opens in a new tab) थीम पर आधारित
gruvboxGruvbox (opens in a new tab) थीम पर आधारित
kanagawaKanagawa (opens in a new tab) थीम पर आधारित
nordNord (opens in a new tab) थीम पर आधारित
matrixकाले पर हरे रंग की हैकर-शैली थीम
one-darkAtom One (opens in a new tab) Dark थीम पर आधारित

और अधिक, हम लगातार नई थीम जोड़ रहे हैं।


System थीम

system थीम को आपके टर्मिनल की रंग योजना के अनुकूल स्वचालित रूप से ढलने के लिए डिज़ाइन किया गया है। निश्चित रंगों का उपयोग करने वाली पारंपरिक थीम के विपरीत, system थीम:

  • gray scale उत्पन्न करती है : इष्टतम कंट्रास्ट सुनिश्चित करते हुए, आपके टर्मिनल के पृष्ठभूमि रंग के आधार पर एक कस्टम gray scale बनाती है।
  • ANSI रंगों का उपयोग करती है : सिंटैक्स हाइलाइटिंग और UI तत्वों के लिए मानक ANSI रंगों (0-15) का लाभ उठाती है, जो आपके टर्मिनल के रंग पैलेट का सम्मान करते हैं।
  • टर्मिनल डिफ़ॉल्ट को संरक्षित करती है : आपके टर्मिनल की नेटिव दिखावट बनाए रखने के लिए टेक्स्ट और पृष्ठभूमि रंगों हेतु none का उपयोग करती है।

system थीम उन उपयोगकर्ताओं के लिए है जो:

  • चाहते हैं कि OpenCode उनके टर्मिनल की दिखावट से मेल खाए
  • कस्टम टर्मिनल रंग योजनाओं का उपयोग करते हैं
  • सभी टर्मिनल एप्लिकेशन में एक सुसंगत रूप पसंद करते हैं

एक थीम का उपयोग करना

आप /theme कमांड के साथ थीम चयन को लाकर एक थीम चुन सकते हैं। या आप इसे tui.json में निर्दिष्ट कर सकते हैं।

tui.json
{
  "$schema": "https://opencode.ai/tui.json",
  "theme": "tokyonight"
}

कस्टम थीम

OpenCode एक लचीली JSON-आधारित थीम प्रणाली को सपोर्ट करता है जो उपयोगकर्ताओं को आसानी से थीम बनाने और कस्टमाइज़ करने देती है।


पदानुक्रम

थीम कई डायरेक्टरी से निम्नलिखित क्रम में लोड होती हैं जहाँ बाद की डायरेक्टरी पहले वालों को ओवरराइड करती हैं:

  1. बिल्ट-इन थीम - ये बाइनरी में एम्बेडेड हैं
  2. उपयोगकर्ता कॉन्फ़िग डायरेक्टरी - ~/.config/opencode/themes/*.json या $XDG_CONFIG_HOME/opencode/themes/*.json में परिभाषित
  3. प्रोजेक्ट रूट डायरेक्टरी - <project-root>/.opencode/themes/*.json में परिभाषित
  4. वर्तमान कार्यशील डायरेक्टरी - ./.opencode/themes/*.json में परिभाषित

यदि कई डायरेक्टरी में समान नाम वाली एक थीम है, तो उच्च प्राथमिकता वाली डायरेक्टरी की थीम का उपयोग किया जाएगा।


एक थीम बनाना

एक कस्टम थीम बनाने के लिए, थीम डायरेक्टरी में से किसी एक में एक JSON फ़ाइल बनाएँ।

उपयोगकर्ता-व्यापी थीम के लिए:

mkdir -p ~/.config/opencode/themes
vim ~/.config/opencode/themes/my-theme.json

और प्रोजेक्ट-विशिष्ट थीम के लिए।

mkdir -p .opencode/themes
vim .opencode/themes/my-theme.json

JSON प्रारूप

थीम निम्नलिखित के सपोर्ट के साथ एक लचीले JSON प्रारूप का उपयोग करती हैं:

  • Hex रंग : "#ffffff"
  • ANSI रंग : 3 (0-255)
  • रंग संदर्भ : "primary" या कस्टम परिभाषाएँ
  • डार्क/लाइट वेरिएंट : {"dark": "#000", "light": "#fff"}
  • कोई रंग नहीं : "none" - टर्मिनल के डिफ़ॉल्ट रंग या पारदर्शी का उपयोग करता है

रंग परिभाषाएँ

defs अनुभाग वैकल्पिक है और यह आपको पुन: प्रयोज्य रंग परिभाषित करने देता है जिन्हें थीम में संदर्भित किया जा सकता है।


टर्मिनल डिफ़ॉल्ट

विशेष मान "none" का उपयोग टर्मिनल के डिफ़ॉल्ट रंग को विरासत में लेने के लिए किसी भी रंग के लिए किया जा सकता है। यह उन थीम को बनाने के लिए विशेष रूप से उपयोगी है जो आपके टर्मिनल की रंग योजना के साथ निर्बाध रूप से मिश्रित होती हैं:

  • "text": "none" - टर्मिनल के डिफ़ॉल्ट अग्रभूमि रंग का उपयोग करता है
  • "background": "none" - टर्मिनल के डिफ़ॉल्ट पृष्ठभूमि रंग का उपयोग करता है

उदाहरण

यहाँ एक कस्टम थीम का उदाहरण है:

my-theme.json
{
  "$schema": "https://opencode.ai/theme.json",
  "defs": {
    "nord0": "#2E3440",
    "nord1": "#3B4252",
    "nord2": "#434C5E",
    "nord3": "#4C566A",
    "nord4": "#D8DEE9",
    "nord5": "#E5E9F0",
    "nord6": "#ECEFF4",
    "nord7": "#8FBCBB",
    "nord8": "#88C0D0",
    "nord9": "#81A1C1",
    "nord10": "#5E81AC",
    "nord11": "#BF616A",
    "nord12": "#D08770",
    "nord13": "#EBCB8B",
    "nord14": "#A3BE8C",
    "nord15": "#B48EAD"
  },
  "theme": {
    "primary": {
      "dark": "nord8",
      "light": "nord10"
    },
    "secondary": {
      "dark": "nord9",
      "light": "nord9"
    },
    "accent": {
      "dark": "nord7",
      "light": "nord7"
    },
    "error": {
      "dark": "nord11",
      "light": "nord11"
    },
    "warning": {
      "dark": "nord12",
      "light": "nord12"
    },
    "success": {
      "dark": "nord14",
      "light": "nord14"
    },
    "info": {
      "dark": "nord8",
      "light": "nord10"
    },
    "text": {
      "dark": "nord4",
      "light": "nord0"
    },
    "textMuted": {
      "dark": "nord3",
      "light": "nord1"
    },
    "background": {
      "dark": "nord0",
      "light": "nord6"
    },
    "backgroundPanel": {
      "dark": "nord1",
      "light": "nord5"
    },
    "backgroundElement": {
      "dark": "nord1",
      "light": "nord4"
    },
    "border": {
      "dark": "nord2",
      "light": "nord3"
    },
    "borderActive": {
      "dark": "nord3",
      "light": "nord2"
    },
    "borderSubtle": {
      "dark": "nord2",
      "light": "nord3"
    },
    "diffAdded": {
      "dark": "nord14",
      "light": "nord14"
    },
    "diffRemoved": {
      "dark": "nord11",
      "light": "nord11"
    },
    "diffContext": {
      "dark": "nord3",
      "light": "nord3"
    },
    "diffHunkHeader": {
      "dark": "nord3",
      "light": "nord3"
    },
    "diffHighlightAdded": {
      "dark": "nord14",
      "light": "nord14"
    },
    "diffHighlightRemoved": {
      "dark": "nord11",
      "light": "nord11"
    },
    "diffAddedBg": {
      "dark": "#3B4252",
      "light": "#E5E9F0"
    },
    "diffRemovedBg": {
      "dark": "#3B4252",
      "light": "#E5E9F0"
    },
    "diffContextBg": {
      "dark": "nord1",
      "light": "nord5"
    },
    "diffLineNumber": {
      "dark": "nord2",
      "light": "nord4"
    },
    "diffAddedLineNumberBg": {
      "dark": "#3B4252",
      "light": "#E5E9F0"
    },
    "diffRemovedLineNumberBg": {
      "dark": "#3B4252",
      "light": "#E5E9F0"
    },
    "markdownText": {
      "dark": "nord4",
      "light": "nord0"
    },
    "markdownHeading": {
      "dark": "nord8",
      "light": "nord10"
    },
    "markdownLink": {
      "dark": "nord9",
      "light": "nord9"
    },
    "markdownLinkText": {
      "dark": "nord7",
      "light": "nord7"
    },
    "markdownCode": {
      "dark": "nord14",
      "light": "nord14"
    },
    "markdownBlockQuote": {
      "dark": "nord3",
      "light": "nord3"
    },
    "markdownEmph": {
      "dark": "nord12",
      "light": "nord12"
    },
    "markdownStrong": {
      "dark": "nord13",
      "light": "nord13"
    },
    "markdownHorizontalRule": {
      "dark": "nord3",
      "light": "nord3"
    },
    "markdownListItem": {
      "dark": "nord8",
      "light": "nord10"
    },
    "markdownListEnumeration": {
      "dark": "nord7",
      "light": "nord7"
    },
    "markdownImage": {
      "dark": "nord9",
      "light": "nord9"
    },
    "markdownImageText": {
      "dark": "nord7",
      "light": "nord7"
    },
    "markdownCodeBlock": {
      "dark": "nord4",
      "light": "nord0"
    },
    "syntaxComment": {
      "dark": "nord3",
      "light": "nord3"
    },
    "syntaxKeyword": {
      "dark": "nord9",
      "light": "nord9"
    },
    "syntaxFunction": {
      "dark": "nord8",
      "light": "nord8"
    },
    "syntaxVariable": {
      "dark": "nord7",
      "light": "nord7"
    },
    "syntaxString": {
      "dark": "nord14",
      "light": "nord14"
    },
    "syntaxNumber": {
      "dark": "nord15",
      "light": "nord15"
    },
    "syntaxType": {
      "dark": "nord7",
      "light": "nord7"
    },
    "syntaxOperator": {
      "dark": "nord9",
      "light": "nord9"
    },
    "syntaxPunctuation": {
      "dark": "nord4",
      "light": "nord0"
    }
  }
}