{"id":51528581,"url":"https://github.com/xscriptor/xcode","last_synced_at":"2026-07-09T00:30:44.862Z","repository":{"id":365963418,"uuid":"1274151160","full_name":"xscriptor/xcode","owner":"xscriptor","description":"X vision on Xcode","archived":false,"fork":false,"pushed_at":"2026-06-19T15:48:34.000Z","size":28,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-19T17:34:10.638Z","etag":null,"topics":["customisation","developers","themes","xcode","xcode-theme","xcode-themes"],"latest_commit_sha":null,"homepage":"https://dev.xscriptor.com/en/?mode=so","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/xscriptor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-06-19T08:19:45.000Z","updated_at":"2026-06-19T15:48:38.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/xscriptor/xcode","commit_stats":null,"previous_names":["xscriptor/xcode"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/xscriptor/xcode","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xscriptor%2Fxcode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xscriptor%2Fxcode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xscriptor%2Fxcode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xscriptor%2Fxcode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/xscriptor","download_url":"https://codeload.github.com/xscriptor/xcode/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/xscriptor%2Fxcode/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35282897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-08T02:00:06.796Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["customisation","developers","themes","xcode","xcode-theme","xcode-themes"],"created_at":"2026-07-09T00:30:44.744Z","updated_at":"2026-07-09T00:30:44.848Z","avatar_url":"https://github.com/xscriptor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003eXcode Xscriptor\u003c/h1\u003e\n  \u003cp\u003eConvert ANSI terminal color palettes (16 colors per palette, 12 palettes) to \u003ccode\u003e.xccolortheme\u003c/code\u003e files for Xcode.\u003c/p\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://developer.apple.com/xcode/\"\u003e\u003cimg src=\"https://img.shields.io/badge/Xcode-12%2B-blue\" alt=\"Xcode\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://python.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Python-3.7%2B-blue\" alt=\"Python\"\u003e\u003c/a\u003e\n  \u003ca href=\"#themes\"\u003e\u003cimg src=\"https://img.shields.io/badge/Themes-12-purple\" alt=\"Themes\"\u003e\u003c/a\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\u003ch2\u003eContent\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli\u003e\u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#themes\"\u003eThemes\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#related-documents\"\u003eRelated Documents\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#license\"\u003eLicense\u003c/a\u003e\u003c/li\u003e\n  \u003cli\u003e\u003ca href=\"#x\"\u003eX\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"overview\"\u003eOverview\u003c/h2\u003e\n\n\u003cp\u003e\n  This generator reads ANSI terminal palettes (16 colors each, 12 palettes) defined in\n  \u003ca href=\"colors.md\"\u003e\u003ccode\u003ecolors.md\u003c/code\u003e\u003c/a\u003e and produces Xcode\n  \u003ccode\u003e.xccolortheme\u003c/code\u003e files. Each palette maps to 24 Xcode syntax\n  tokens (keywords, strings, comments, types, etc.) so that the editor's\n  syntax highlighting matches the terminal color scheme.\n\u003c/p\u003e\n\n\u003cp\u003e\n  Canonical themes live in \u003ca href=\"themes/\"\u003e\u003ccode\u003ethemes/\u003c/code\u003e\u003c/a\u003e.\n  When the source palette changes, run the generator to rebuild them into\n  \u003ca href=\"labs/dist/\"\u003e\u003ccode\u003elabs/dist/\u003c/code\u003e\u003c/a\u003e.\n\u003c/p\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"themes\"\u003eThemes\u003c/h2\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003ctable\u003e\n    \u003cthead\u003e\n      \u003ctr\u003e\n        \u003cth\u003eTheme\u003c/th\u003e\n        \u003cth\u003eBackground\u003c/th\u003e\n        \u003cth\u003eType\u003c/th\u003e\n      \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/X.xccolortheme\"\u003eX\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#050505\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Madrid.xccolortheme\"\u003eMadrid\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#fafafa\u003c/code\u003e\u003c/td\u003e\u003ctd\u003elight\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Lahabana.xccolortheme\"\u003eLahabana\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#19191a\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Miami.xccolortheme\"\u003eMiami\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#000000\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Paris.xccolortheme\"\u003eParis\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#1a0a30\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Tokio.xccolortheme\"\u003eTokio\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#1c1c1d\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Oslo.xccolortheme\"\u003eOslo\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#3f4451\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Helsinki.xccolortheme\"\u003eHelsinki\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#f8fafe\u003c/code\u003e\u003c/td\u003e\u003ctd\u003elight\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Berlin.xccolortheme\"\u003eBerlin\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#000000\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark (monochrome)\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/London.xccolortheme\"\u003eLondon\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#ffffff\u003c/code\u003e\u003c/td\u003e\u003ctd\u003elight (monochrome)\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Praha.xccolortheme\"\u003ePraha\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#1a1a1a\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n      \u003ctr\u003e\u003ctd\u003e\u003ca href=\"themes/Bogota.xccolortheme\"\u003eBogota\u003c/a\u003e\u003c/td\u003e\u003ctd\u003e\u003ccode\u003e#200b0a\u003c/code\u003e\u003c/td\u003e\u003ctd\u003edark\u003c/td\u003e\u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"usage\"\u003eUsage\u003c/h2\u003e\n\n\u003cpre\u003e\u003ccode\u003ecd labs\npython3 generate_themes.py\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eAll \u003ccode\u003e.xccolortheme\u003c/code\u003e files are written to \u003ccode\u003elabs/dist/\u003c/code\u003e. Once tested, promote them to \u003ccode\u003ethemes/\u003c/code\u003e if desired.\u003c/p\u003e\n\n\u003ch3\u003eProgrammatic API\u003c/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003efrom labs.generate_themes import make_theme, THEMES, SYNTAX_MAP\n\ntheme = THEMES[\"Praha\"]\ncolors = make_theme(\"Praha\", theme)\u003c/code\u003e\u003c/pre\u003e\n\n\u003chr\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"installation\"\u003eInstallation\u003c/h2\u003e\n\n\u003ch3\u003eLocal\u003c/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003e./install.sh              # install all themes\n./install.sh Praha        # install a single theme\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eRemote (from GitHub)\u003c/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003eREPO=\"xscriptor/xcode\" bash \u0026lt;(curl -fsSL https://raw.githubusercontent.com/xscriptor/xcode/main/install.sh)\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eInstall a single theme remotely:\u003c/p\u003e\n\n\u003cpre\u003e\u003ccode\u003eREPO=\"xscriptor/xcode\" bash \u0026lt;(curl -fsSL https://raw.githubusercontent.com/xscriptor/xcode/main/install.sh) -s Praha\u003c/code\u003e\u003c/pre\u003e\n\n\u003ch3\u003eUninstall\u003c/h3\u003e\n\n\u003cpre\u003e\u003ccode\u003e./install.sh -u                                      # local uninstall\nREPO=\"xscriptor/xcode\" bash \u0026lt;(curl -fsSL ...) -s -- -u   # remote uninstall\u003c/code\u003e\u003c/pre\u003e\n\n\u003cp\u003eThis removes any theme file matching the known theme names from \u003ccode\u003e~/Library/Developer/Xcode/UserData/FontAndColorThemes/\u003c/code\u003e.\u003c/p\u003e\n\n\u003cp\u003eAfter installation, restart Xcode and select the theme from \u003cstrong\u003eXcode \u0026gt; Preferences \u0026gt; Themes\u003c/strong\u003e.\u003c/p\u003e\n\n\u003chr\u003e\n\n\u003ch2 id=\"related-documents\"\u003eRelated Documents\u003c/h2\u003e\n\n\u003cul\u003e\n  \u003cli id=\"colors-md\"\u003e\u003ca href=\"colors.md\"\u003ecolors.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"contributing-md\"\u003e\u003ca href=\"CONTRIBUTING.md\"\u003eCONTRIBUTING.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"security-md\"\u003e\u003ca href=\"SECURITY.md\"\u003eSECURITY.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"code-of-conduct-md\"\u003e\u003ca href=\"CODE_OF_CONDUCT.md\"\u003eCODE_OF_CONDUCT.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"color-mapping-md\"\u003e\u003ca href=\"docs/color-mapping.md\"\u003edocs/color-mapping.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"labs-readme\"\u003e\u003ca href=\"labs/README.md\"\u003elabs/README.md\u003c/a\u003e\u003c/li\u003e\n  \u003cli id=\"license\"\u003e\u003ca href=\"LICENSE.md\"\u003elabs/README.md\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\n\u003chr\u003e\n\n\n\n\u003cdiv id=\"x\" align=\"center\"\u003e\n\u003ch2\u003eX\u003c/h2\u003e\n\n\u003ca href=\"https://dev.xscriptor.com\"\u003e\n  \u003cimg src=\"https://xscriptor.github.io/icons/icons/code/product-design/xsvg/verified-filled.svg\" width=\"24\" alt=\"X Web\" /\u003e\n\u003c/a\u003e\n \u0026 \n\u003ca href=\"https://github.com/xscriptor\"\u003e\n  \u003cimg src=\"https://xscriptor.github.io/icons/icons/code/product-design/xsvg/github.svg\" width=\"24\" alt=\"X Github Profile\" /\u003e\n\u003c/a\u003e\n \u0026 \n\u003ca href=\"https://www.xscriptor.com\"\u003e\n  \u003cimg src=\"https://xscriptor.github.io/icons/icons/code/product-design/xsvg/quotes.svg\" width=\"24\" alt=\"Xscriptor web\" /\u003e\n\u003c/a\u003e\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxscriptor%2Fxcode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxscriptor%2Fxcode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxscriptor%2Fxcode/lists"}