[{"data":1,"prerenderedAt":304},["ShallowReactive",2],{"navigation_docs":3,"-architecture-ghostty":92,"-architecture-ghostty-surround-resolved":295,"daily-note-surround--architecture-ghostty":95},[4,9,35,66,82,87],{"title":5,"path":6,"stem":5,"icon":7,"order":8},"Home","/home","i-lucide-home",0,{"title":10,"icon":11,"order":12,"path":13,"stem":14,"children":15,"page":34},"Guide","i-lucide-book-open",1,"/guide","1.guide",[16,22,28],{"title":17,"path":18,"stem":19,"icon":20,"order":21},"Installation","/guide/installation","1.guide/1.installation","i-lucide-download",10,{"title":23,"path":24,"stem":25,"icon":26,"order":27},"Usage","/guide/usage","1.guide/2.usage","i-lucide-layers",20,{"title":29,"path":30,"stem":31,"icon":32,"order":33},"Configuration","/guide/configuration","1.guide/3.configuration","i-lucide-settings",30,false,{"title":36,"icon":26,"order":37,"path":38,"stem":39,"children":40,"page":34},"Architecture",2,"/architecture","2.architecture",[41,45,50,55,61],{"title":42,"path":43,"stem":44,"icon":26,"order":21},"Overview","/architecture/overview","2.architecture/1.overview",{"title":46,"path":47,"stem":48,"icon":49,"order":27},"Ghostty","/architecture/ghostty","2.architecture/2.ghostty","i-lucide-terminal",{"title":51,"path":52,"stem":53,"icon":54,"order":33},"Sessions","/architecture/sessions","2.architecture/3.sessions","i-lucide-layout-grid",{"title":56,"path":57,"stem":58,"icon":59,"order":60},"Shell Integration","/architecture/shell-integration","2.architecture/4.shell-integration","i-lucide-plug",40,{"title":62,"path":63,"stem":64,"icon":54,"order":65},"Widget","/architecture/widget","2.architecture/5.widget",50,{"title":67,"icon":68,"order":69,"path":70,"stem":71,"children":72,"page":34},"Development","i-lucide-wrench",3,"/development","3.development",[73,77],{"title":74,"path":75,"stem":76,"icon":68,"order":21},"Building","/development/building","3.development/1.building",{"title":78,"path":79,"stem":80,"icon":81,"order":27},"Distribution","/development/distribution","3.development/2.distribution","i-lucide-package",{"title":83,"path":84,"stem":83,"icon":85,"order":86},"Changelog","/changelog","i-lucide-history",98,{"title":88,"path":89,"stem":88,"icon":90,"order":91},"About","/about","i-lucide-info",99,{"id":93,"title":94,"aliases":95,"body":96,"concluded":95,"date":95,"description":289,"documentation":95,"extension":290,"isBase":34,"links":95,"meta":291,"mtime":95,"navigation":292,"order":27,"outcome":95,"path":47,"project":95,"repository":95,"seo":293,"started":95,"status":95,"stem":48,"tags":95,"team":95,"type":95,"__hash__":294},"docs/2.architecture/2.ghostty.md","Ghostty Integration",null,{"type":97,"value":98,"toc":282},"minimark",[99,103,116,146,149,153,166,169,189,193,205,207,228,232,235,243,257,261,266,275,278],[100,101,102],"h2",{"id":102},"libghostty",[104,105,106,107,111,112,115],"p",{},"Ghostty is built from source as an ",[108,109,110],"code",{},"xcframework"," (",[108,113,114],{},"GhosttyKit.xcframework",") via:",[117,118,123],"pre",{"className":119,"code":120,"language":121,"meta":122,"style":122},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pixi run build-ghostty\n# zig build -Doptimize=ReleaseFast for arm64\n","bash","",[108,124,125,140],{"__ignoreMap":122},[126,127,129,133,137],"span",{"class":128,"line":12},"line",[126,130,132],{"class":131},"sBMFI","pixi",[126,134,136],{"class":135},"sfazB"," run",[126,138,139],{"class":135}," build-ghostty\n",[126,141,142],{"class":128,"line":37},[126,143,145],{"class":144},"sHwdD","# zig build -Doptimize=ReleaseFast for arm64\n",[104,147,148],{},"The xcframework is git-ignored and must be built before the Xcode project can compile.",[100,150,152],{"id":151},"kytosghosttyapp","KytosGhosttyApp",[104,154,155,157,158,161,162,165],{},[108,156,152],{}," is the ",[108,159,160],{},"@Observable @MainActor"," singleton that owns the Ghostty application handle (",[108,163,164],{},"ghostty_app_t",").",[104,167,168],{},"Responsibilities:",[170,171,172,183,186],"ul",{},[173,174,175,176,179,180],"li",{},"Loads ",[108,177,178],{},"~/.config/ghostty/config"," via ",[108,181,182],{},"ghostty_config_load_default_files()",[173,184,185],{},"Owns the app tick loop",[173,187,188],{},"Registers C callbacks: wakeup, action, clipboard read/write, close surface",[100,190,192],{"id":191},"kytosghosttyview","KytosGhosttyView",[104,194,195,157,197,200,201,204],{},[108,196,192],{},[108,198,199],{},"NSView"," subclass that wraps ",[108,202,203],{},"ghostty_surface_t",".",[104,206,168],{},[170,208,209,215,218,225],{},[173,210,211,212],{},"Hosts the Metal ",[108,213,214],{},"CAMetalLayer",[173,216,217],{},"Forwards keyboard events, mouse events, and scroll wheel input",[173,219,220,221,224],{},"Implements ",[108,222,223],{},"NSTextInputClient"," for IME support",[173,226,227],{},"Parses OSC escape sequences for title and working directory updates",[100,229,231],{"id":230},"resource-detection","Resource Detection",[104,233,234],{},"libghostty locates its resources (shell integration scripts, terminfo) via a sentinel file:",[117,236,241],{"className":237,"code":239,"language":240},[238],"language-text","Kytos.app/Contents/Resources/terminfo/78/xterm-ghostty\n","text",[108,242,239],{"__ignoreMap":122},[104,244,245,246,249,250,253,254,204],{},"When found, Ghostty sets ",[108,247,248],{},"resources_dir"," to ",[108,251,252],{},"Contents/Resources/ghostty",", which must contain ",[108,255,256],{},"shell-integration/",[100,258,260],{"id":259},"default-config","Default Config",[104,262,263,265],{},[108,264,182],{}," reads:",[170,267,268,272],{},[173,269,270],{},[108,271,178],{},[173,273,274],{},"XDG config paths",[104,276,277],{},"This is why all terminal settings go in the Ghostty config file — Kytos doesn't implement its own terminal configuration layer.",[279,280,281],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":122,"searchDepth":69,"depth":69,"links":283},[284,285,286,287,288],{"id":102,"depth":37,"text":102},{"id":151,"depth":37,"text":152},{"id":191,"depth":37,"text":192},{"id":230,"depth":37,"text":231},{"id":259,"depth":37,"text":260},"How libghostty is embedded and driven","md",{"icon":49},{"title":46,"icon":49,"order":27},{"title":94,"description":289},"NFR5ieaiKcNkP5hKFx-Lx8fnw_3qA_YfnCMVasPJb4k",[296,300],{"title":297,"description":298,"path":43,"navigation":299},"Architecture Overview","How Kytos layers libghostty, KelyphosKit, and Swift",{"title":42,"icon":26,"order":21},{"title":301,"description":302,"path":52,"navigation":303},"Sessions & Workspaces","Window management, tab restoration, and state persistence",{"title":51,"icon":54,"order":33},1774809102566]