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

थीम

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

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) डार्क थीम पर आधारित

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

सिस्टम थीम

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

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

सिस्टम थीम उन यूज़र्स के लिए है जो:

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

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

आप /theme कमांड के साथ थीम सेलेक्ट को लाकर एक थीम चुन सकते हैं। या आप इसे अपनी कॉन्फ़िगरेशन में निर्दिष्ट कर सकते हैं।

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

कस्टम थीम

OpenCode एक फ्लेक्सिबल JSON-बेस्ड थीम सिस्टम सपोर्ट करता है जो यूज़र्स को आसानी से थीम बनाने और कस्टमाइज़ करने की अनुमति देता है।

हायरार्की

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

  • बिल्ट-इन थीम - ये बाइनरी में एम्बेडेड हैं
  • यूज़र कॉन्फ़िग डायरेक्टरी - ~/.config/opencode/themes/*.json या $XDG_CONFIG_HOME/opencode/themes/*.json में परिभाषित
  • प्रोजेक्ट रूट डायरेक्टरी - <project-root>/.opencode/themes/*.json में परिभाषित
  • करंट वर्किंग डायरेक्टरी - ./.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"
    }
  }
}