[{"data":1,"prerenderedAt":594},["ShallowReactive",2],{"doc-content/docs/developer/apple-script":3,"doc-surroundings/docs/developer/apple-script":501,"docs-navigation":511},{"path":4,"draft":5,"date":6,"dateUpdated":7,"title":8,"body":9,"description":500,"image":6,"imageAlt":6},"/docs/developer/apple-script",false,null,"2025-05-15","Apple Script",{"type":10,"value":11,"toc":498},"minimark",[12,16,20,360,363,494],[13,14,8],"h1",{"id":15},"apple-script",[17,18,19],"p",{},"Hologram can be controlled by apple script to get a list of available themes, or set the active theme.",[21,22,27],"pre",{"className":23,"code":24,"language":25,"meta":26,"style":26},"language-applescript shiki shiki-themes github-dark github-dark","tell application \"Hologram Desktop\"\n    set activeTheme to false\n    set themeToMakeActive to false\n\n    # Loop though each theme, and find the active one, and the one we want to make active\n    repeat with theTheme in themes\n        set props to properties of theTheme\n        # Get the theme name and log it\n        set themeName to name of props\n        log themeName\n\n        # Is this theme active?\n        if theTheme is active then\n            set activeTheme to theTheme\n        end if\n\n        # Find a theme by name. In this case we’re looking for a theme named Beach\n        if themeName is equal to \"Beach\" then\n            set themeToMakeActive to theTheme\n        end if\n    end repeat\n\n    # Check if there is an active theme\n    if activeTheme is not false then\n        # Disable a theme\n        mark activeTheme as \"not active\"\n    end if\n\n    # Make a theme active\n    if themeToMakeActive is not false then\n        # Make a theme active\n        mark themeToMakeActive as \"active\"\n    end if\nend tell\n","applescript","",[28,29,30,47,63,75,82,89,108,128,134,152,161,166,172,190,202,208,213,219,235,246,251,257,262,268,284,290,302,308,313,319,332,338,349,354],"code",{"__ignoreMap":26},[31,32,35,39,43],"span",{"class":33,"line":34},"line",1,[31,36,38],{"class":37},"sOPea","tell",[31,40,42],{"class":41},"s8ozJ"," application",[31,44,46],{"class":45},"s4wv1"," \"Hologram Desktop\"\n",[31,48,50,53,57,60],{"class":33,"line":49},2,[31,51,52],{"class":37},"    set",[31,54,56],{"class":55},"suv1-"," activeTheme ",[31,58,59],{"class":37},"to",[31,61,62],{"class":41}," false\n",[31,64,66,68,71,73],{"class":33,"line":65},3,[31,67,52],{"class":37},[31,69,70],{"class":55}," themeToMakeActive ",[31,72,59],{"class":37},[31,74,62],{"class":41},[31,76,78],{"class":33,"line":77},4,[31,79,81],{"emptyLinePlaceholder":80},true,"\n",[31,83,85],{"class":33,"line":84},5,[31,86,88],{"class":87},"sJ8bj","    # Loop though each theme, and find the active one, and the one we want to make active\n",[31,90,92,95,98,102,105],{"class":33,"line":91},6,[31,93,94],{"class":37},"    repeat",[31,96,97],{"class":37}," with",[31,99,101],{"class":100},"s-3mD"," theTheme",[31,103,104],{"class":37}," in",[31,106,107],{"class":55}," themes\n",[31,109,111,114,117,119,122,125],{"class":33,"line":110},7,[31,112,113],{"class":37},"        set",[31,115,116],{"class":55}," props ",[31,118,59],{"class":37},[31,120,121],{"class":41}," properties",[31,123,124],{"class":37}," of",[31,126,127],{"class":55}," theTheme\n",[31,129,131],{"class":33,"line":130},8,[31,132,133],{"class":87},"        # Get the theme name and log it\n",[31,135,137,139,142,144,147,149],{"class":33,"line":136},9,[31,138,113],{"class":37},[31,140,141],{"class":55}," themeName ",[31,143,59],{"class":37},[31,145,146],{"class":41}," name",[31,148,124],{"class":37},[31,150,151],{"class":55}," props\n",[31,153,155,158],{"class":33,"line":154},10,[31,156,157],{"class":41},"        log",[31,159,160],{"class":55}," themeName\n",[31,162,164],{"class":33,"line":163},11,[31,165,81],{"emptyLinePlaceholder":80},[31,167,169],{"class":33,"line":168},12,[31,170,171],{"class":87},"        # Is this theme active?\n",[31,173,175,178,181,184,187],{"class":33,"line":174},13,[31,176,177],{"class":37},"        if",[31,179,180],{"class":55}," theTheme ",[31,182,183],{"class":37},"is",[31,185,186],{"class":55}," active ",[31,188,189],{"class":37},"then\n",[31,191,193,196,198,200],{"class":33,"line":192},14,[31,194,195],{"class":37},"            set",[31,197,56],{"class":55},[31,199,59],{"class":37},[31,201,127],{"class":55},[31,203,205],{"class":33,"line":204},15,[31,206,207],{"class":37},"        end if\n",[31,209,211],{"class":33,"line":210},16,[31,212,81],{"emptyLinePlaceholder":80},[31,214,216],{"class":33,"line":215},17,[31,217,218],{"class":87},"        # Find a theme by name. In this case we’re looking for a theme named Beach\n",[31,220,222,224,226,229,232],{"class":33,"line":221},18,[31,223,177],{"class":37},[31,225,141],{"class":55},[31,227,228],{"class":37},"is equal to",[31,230,231],{"class":45}," \"Beach\"",[31,233,234],{"class":37}," then\n",[31,236,238,240,242,244],{"class":33,"line":237},19,[31,239,195],{"class":37},[31,241,70],{"class":55},[31,243,59],{"class":37},[31,245,127],{"class":55},[31,247,249],{"class":33,"line":248},20,[31,250,207],{"class":37},[31,252,254],{"class":33,"line":253},21,[31,255,256],{"class":37},"    end repeat\n",[31,258,260],{"class":33,"line":259},22,[31,261,81],{"emptyLinePlaceholder":80},[31,263,265],{"class":33,"line":264},23,[31,266,267],{"class":87},"    # Check if there is an active theme\n",[31,269,271,274,276,279,282],{"class":33,"line":270},24,[31,272,273],{"class":37},"    if",[31,275,56],{"class":55},[31,277,278],{"class":37},"is not",[31,280,281],{"class":41}," false",[31,283,234],{"class":37},[31,285,287],{"class":33,"line":286},25,[31,288,289],{"class":87},"        # Disable a theme\n",[31,291,293,296,299],{"class":33,"line":292},26,[31,294,295],{"class":55},"        mark activeTheme ",[31,297,298],{"class":37},"as",[31,300,301],{"class":45}," \"not active\"\n",[31,303,305],{"class":33,"line":304},27,[31,306,307],{"class":37},"    end if\n",[31,309,311],{"class":33,"line":310},28,[31,312,81],{"emptyLinePlaceholder":80},[31,314,316],{"class":33,"line":315},29,[31,317,318],{"class":87},"    # Make a theme active\n",[31,320,322,324,326,328,330],{"class":33,"line":321},30,[31,323,273],{"class":37},[31,325,70],{"class":55},[31,327,278],{"class":37},[31,329,281],{"class":41},[31,331,234],{"class":37},[31,333,335],{"class":33,"line":334},31,[31,336,337],{"class":87},"        # Make a theme active\n",[31,339,341,344,346],{"class":33,"line":340},32,[31,342,343],{"class":55},"        mark themeToMakeActive ",[31,345,298],{"class":37},[31,347,348],{"class":45}," \"active\"\n",[31,350,352],{"class":33,"line":351},33,[31,353,307],{"class":37},[31,355,357],{"class":33,"line":356},34,[31,358,359],{"class":37},"end tell\n",[17,361,362],{},"Here's some examples of how to use a interact with Hologram using js Apple Script:",[21,364,368],{"className":365,"code":366,"language":367,"meta":26,"style":26},"language-js shiki shiki-themes github-dark github-dark","// Get a reference to the Hologram app\napp = Application('Hologram Desktop')\n\n// Get a list of available themes\napp.themes()\n// Get all themes by name\napp.themes.name()\n\n// Get the active theme. Only one theme can be active at a time.\ntheme = app.themes.whose({ active: true })[0]\n\n// Make a theme active\ntheme.mark({ as: 'active' })\n","js",[28,369,370,375,396,400,405,416,421,431,435,440,468,472,477],{"__ignoreMap":26},[31,371,372],{"class":33,"line":34},[31,373,374],{"class":87},"// Get a reference to the Hologram app\n",[31,376,377,380,383,387,390,393],{"class":33,"line":49},[31,378,379],{"class":55},"app ",[31,381,382],{"class":37},"=",[31,384,386],{"class":385},"sFR8T"," Application",[31,388,389],{"class":55},"(",[31,391,392],{"class":45},"'Hologram Desktop'",[31,394,395],{"class":55},")\n",[31,397,398],{"class":33,"line":65},[31,399,81],{"emptyLinePlaceholder":80},[31,401,402],{"class":33,"line":77},[31,403,404],{"class":87},"// Get a list of available themes\n",[31,406,407,410,413],{"class":33,"line":84},[31,408,409],{"class":55},"app.",[31,411,412],{"class":385},"themes",[31,414,415],{"class":55},"()\n",[31,417,418],{"class":33,"line":91},[31,419,420],{"class":87},"// Get all themes by name\n",[31,422,423,426,429],{"class":33,"line":110},[31,424,425],{"class":55},"app.themes.",[31,427,428],{"class":385},"name",[31,430,415],{"class":55},[31,432,433],{"class":33,"line":130},[31,434,81],{"emptyLinePlaceholder":80},[31,436,437],{"class":33,"line":136},[31,438,439],{"class":87},"// Get the active theme. Only one theme can be active at a time.\n",[31,441,442,445,447,450,453,456,459,462,465],{"class":33,"line":154},[31,443,444],{"class":55},"theme ",[31,446,382],{"class":37},[31,448,449],{"class":55}," app.themes.",[31,451,452],{"class":385},"whose",[31,454,455],{"class":55},"({ active: ",[31,457,458],{"class":41},"true",[31,460,461],{"class":55}," })[",[31,463,464],{"class":41},"0",[31,466,467],{"class":55},"]\n",[31,469,470],{"class":33,"line":163},[31,471,81],{"emptyLinePlaceholder":80},[31,473,474],{"class":33,"line":168},[31,475,476],{"class":87},"// Make a theme active\n",[31,478,479,482,485,488,491],{"class":33,"line":174},[31,480,481],{"class":55},"theme.",[31,483,484],{"class":385},"mark",[31,486,487],{"class":55},"({ as: ",[31,489,490],{"class":45},"'active'",[31,492,493],{"class":55}," })\n",[495,496,497],"style",{},"html pre.shiki code .sOPea, html code.shiki .sOPea{--shiki-default:#F97583;--shiki-dark:#F97583}html pre.shiki code .s8ozJ, html code.shiki .s8ozJ{--shiki-default:#79B8FF;--shiki-dark:#79B8FF}html pre.shiki code .s4wv1, html code.shiki .s4wv1{--shiki-default:#9ECBFF;--shiki-dark:#9ECBFF}html pre.shiki code .suv1-, html code.shiki .suv1-{--shiki-default:#E1E4E8;--shiki-dark:#E1E4E8}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .s-3mD, html code.shiki .s-3mD{--shiki-default:#FFAB70;--shiki-dark:#FFAB70}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);}html pre.shiki code .sFR8T, html code.shiki .sFR8T{--shiki-default:#B392F0;--shiki-dark:#B392F0}",{"title":26,"searchDepth":49,"depth":49,"links":499},[],"How to control Hologram with Apple Script.",[502,506],{"title":503,"path":504,"stem":505,"children":-1},"Simple Widget Example","/docs/developer/simple-example","docs/developer/07.simple-example",{"title":507,"path":508,"stem":509,"sectionTitle":510,"children":-1},"Hologram API","/docs/developer/api","docs/developer/10.api","API Reference",[512],{"title":513,"path":514,"stem":515,"children":516,"navigation":80},"Welcome to Hologram","/docs","docs/0.index",[517,518,522,526,530,588],{"title":513,"path":514,"stem":515,"navigation":80},{"title":519,"path":520,"stem":521,"navigation":80},"Themes & Wallpapers","/docs/themes","docs/1.themes",{"title":523,"path":524,"stem":525,"navigation":80},"Widgets","/docs/widgets","docs/2.widgets",{"title":527,"path":528,"stem":529,"navigation":80},"Settings","/docs/settings","docs/4.settings",{"title":531,"navigation":532,"sectionTitle":533,"collapsible":80,"path":534,"stem":535,"children":536,"page":5},"Developer",{"sectionTitle":533,"collapsible":80},"Developing Widgets","/docs/developer","docs/developer",[537,541,547,551,555,559,563,567,568,570,572,576,580,584],{"title":538,"path":539,"stem":540,"navigation":80},"Widget Developer Guide","/docs/developer/guide","docs/developer/01.guide",{"title":542,"path":543,"stem":544,"navigation":545,"sectionTitle":546},"Hologram Widget Class","/docs/developer/widget-class","docs/developer/02.widget-class",{"sectionTitle":546},"Building Widgets",{"title":548,"path":549,"stem":550,"navigation":80},"Widget Config","/docs/developer/widget-config","docs/developer/03.widget-config",{"title":552,"path":553,"stem":554,"navigation":80},"Widget Settings","/docs/developer/widget-settings","docs/developer/04.widget-settings",{"title":556,"path":557,"stem":558,"navigation":80},"Widget Color Settings","/docs/developer/widget-color-settings","docs/developer/05.widget-color-settings",{"title":560,"path":561,"stem":562,"navigation":80},"Creating Widget Presets","/docs/developer/widget-presets","docs/developer/06.widget-presets",{"title":564,"path":565,"stem":566,"navigation":80},"Making Widgets Scale","/docs/developer/making-widgets-scale","docs/developer/07.making-widgets-scale",{"title":503,"path":504,"stem":505,"navigation":80},{"title":8,"path":4,"stem":569,"navigation":80},"docs/developer/08.apple-script",{"title":507,"path":508,"stem":509,"navigation":571,"sectionTitle":510},{"sectionTitle":510},{"title":573,"path":574,"stem":575,"navigation":80},"Weather","/docs/developer/weather","docs/developer/11.weather",{"title":577,"path":578,"stem":579,"navigation":80},"Timer","/docs/developer/timer","docs/developer/12.timer",{"title":581,"path":582,"stem":583,"navigation":80},"Utility Class","/docs/developer/util","docs/developer/13.util",{"title":585,"path":586,"stem":587,"navigation":80},"Third Party Libraries","/docs/developer/third-party","docs/developer/14.third-party",{"title":589,"path":590,"stem":591,"navigation":592,"sectionTitle":593},"Frequently Asked Questions","/docs/faq","docs/faq",{"sectionTitle":593},"Help",1755585913038]