{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Daily Notes Archive",
  "home_page_url": "https://go.waylonwalker.com/daily/",
  "feed_url": "https://go.waylonwalker.com/daily/archive/feed.json",
  "description": "Daily notes posts",
  "authors": [
    {
      "name": "Waylon Walker"
    }
  ],
  "items": [
    {
      "id": "https://go.waylonwalker.com/2026-03-03-notes/",
      "url": "https://go.waylonwalker.com/2026-03-03-notes/",
      "title": "2026-03-03 Notes",
      "content_html": "\u003cp\u003eThe big news today sweeping everywhere is the weekend bombing of Iran,\nAnthropic had an ultimatum to allow AI agents to autonomously pull the trigger\non life or death decisions and monitor every citizen in public spaces.  They\nstood their ground and it looks like many Americans stood with them, while\nspending millions on superbowl ads did almost nothing to them, this shot them\nto the top app downloads as openai subs plummet and anthropic subs soar.\u003c/p\u003e\n\u003cp\u003eI’m old enough to remember 9/11/01, an event that would kick off decade long\nwar.  It felt different then.  Maybe because I was 12, maybe because the\nInternet was not the prominant source of live new information.  The vibe was\nsupport.  Support to right the wrongs, prevent future attacks.  That day had\nlasting effects for decades to come to the people on the ground.\u003c/p\u003e\n\u003cp\u003eThis is not meant to be politicaly in any way, not take any side good, bad,\nright, wrong, purple, or grey, just the vibes I’m feeling and wanted to\ndocument for some reason. Logging this one in unpublished, idk, not really my\nexpertise just wanted to write feelings.\u003c/p\u003e\n",
      "content_text": "\nThe big news today sweeping everywhere is the weekend bombing of Iran,\nAnthropic had an ultimatum to allow AI agents to autonomously pull the trigger\non life or death decisions and monitor every citizen in public spaces.  They\nstood their ground and it looks like many Americans stood with them, while\nspending millions on superbowl ads did almost nothing to them, this shot them\nto the top app downloads as openai subs plummet and anthropic subs soar.\n\nI'm old enough to remember 9/11/01, an event that would kick off decade long\nwar.  It felt different then.  Maybe because I was 12, maybe because the\nInternet was not the prominant source of live new information.  The vibe was\nsupport.  Support to right the wrongs, prevent future attacks.  That day had\nlasting effects for decades to come to the people on the ground.\n\nThis is not meant to be politicaly in any way, not take any side good, bad,\nright, wrong, purple, or grey, just the vibes I'm feeling and wanted to\ndocument for some reason. Logging this one in unpublished, idk, not really my\nexpertise just wanted to write feelings.\n",
      "summary": "The big news today sweeping everywhere is the weekend bombing of Iran, Anthropic had an ultimatum to allow AI agents to autonomously pull the trigger on life...",
      "date_published": "2026-03-03T14:34:59Z",
      "date_modified": "2026-03-03T14:34:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2026-01-23-notes/",
      "url": "https://go.waylonwalker.com/2026-01-23-notes/",
      "title": "2026-01-23 Notes",
      "content_html": "\u003cp\u003eNext for markata go\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEmbed post, internal and external\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"/og/\" class=\"glossary-term\" title=\"OG is short for open graph, a set of standard meta tags that are used for social media sharing. This is what tells other websites how to describe and display...\"\u003eOg\u003c/a\u003e images\u003c/li\u003e\n\u003cli\u003ePost importer - thoughts\u003c/li\u003e\n\u003cli\u003eReader / blogroll plugin\u003c/li\u003e\n\u003cli\u003eK9s inspired tui\u003c/li\u003e\n\u003cli\u003e:files, :posts, :tags, :feeds,\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eExtra classes\u003c/p\u003e\n\u003cp\u003eWikilinks\u003c/p\u003e\n\u003cp\u003eLsp\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eComplete wikilinks\u003c/li\u003e\n\u003cli\u003eComplete mentions\u003c/li\u003e\n\u003cli\u003eDocument diagnostic\u003c/li\u003e\n\u003cli\u003eWorkspace diagnostics\u003c/li\u003e\n\u003cli\u003eConfig completions\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eJinja_md obsidian like support\u003c/p\u003e\n\u003cp\u003eView as in footer\u003c/p\u003e\n\u003cp\u003eArchive missing grid of pages\u003c/p\u003e\n\u003cp\u003eNav footer different on feeds than post\nSometimes the skip to content peeks into the top left corner of the page by a few pixels, it’s distracting\u003c/p\u003e\n\u003cp\u003eTap to zoom image\u003c/p\u003e\n\u003cp\u003eGoogle font\u003c/p\u003e\n\u003cp\u003eSitemap\u003c/p\u003e\n\u003cp\u003eBackground image support\u003c/p\u003e\n\u003cp\u003eMouse support in tui works, not in tmux\u003c/p\u003e\n\u003cp\u003eAll optional plugins with config from user should raise warning configured not able\u003c/p\u003e\n\u003cp\u003eLines of code should be separate from word count\u003c/p\u003e\n\u003cp\u003eTui press enter, should see full post and scroll/read render markdown\u003c/p\u003e\n\u003cp\u003eUpdate branding from fast to comprehensive\u003c/p\u003e\n\u003cp\u003eDebug pages, show config\u003c/p\u003e\n\u003chr/\u003e\n\u003cul\u003e\n\u003cli\u003eImage gallery\u003c/li\u003e\n\u003cli\u003ecarousel\u003c/li\u003e\n\u003cli\u003ePrev/next\u003c/li\u003e\n\u003cli\u003eEmbedfeed\u003c/li\u003e\n\u003cli\u003eFix aside\u003c/li\u003e\n\u003cli\u003eContrast / flashbang check on admonitions styles on all themes.\u003c/li\u003e\n\u003cli\u003eGlossary\u003c/li\u003e\n\u003cli\u003eBanner post\u003c/li\u003e\n\u003cli\u003eKeys\u003c/li\u003e\n\u003cli\u003eContainers\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cul\u003e\n\u003cli\u003ePage 1 link is always highlighted\u003c/li\u003e\n\u003cli\u003ePage 1 link is broken when coming from page 1\u003c/li\u003e\n\u003cli\u003eOn mobile search is too wide\u003c/li\u003e\n\u003cli\u003eShots needs warmed with a head request\u003c/li\u003e\n\u003cli\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr/\u003e\n\u003cp\u003eTags\u003c/p\u003e\n\u003cp\u003eContacts\u003c/p\u003e\n",
      "content_text": "Next for markata go\n\n* Embed post, internal and external \n* Og images\n* Post importer - thoughts\n* Reader / blogroll plugin \n* K9s inspired tui\n* :files, :posts, :tags, :feeds, \n\n---\n\n\nExtra classes\n\nWikilinks\n\nLsp \n* Complete wikilinks\n* Complete mentions\n* Document diagnostic \n* Workspace diagnostics \n* Config completions\n\n\nJinja_md obsidian like support\n\nView as in footer\n\nArchive missing grid of pages\n\nNav footer different on feeds than post\nSometimes the skip to content peeks into the top left corner of the page by a few pixels, it's distracting \n\nTap to zoom image \n\nGoogle font\n\nSitemap\n\nBackground image support\n\nMouse support in tui works, not in tmux\n\nAll optional plugins with config from user should raise warning configured not able\n\nLines of code should be separate from word count\n\nTui press enter, should see full post and scroll/read render markdown\n\nUpdate branding from fast to comprehensive \n\nDebug pages, show config \n\n---\n\n* Image gallery\n* carousel\n* Prev/next\n* Embedfeed\n* Fix aside\n* Contrast / flashbang check on admonitions styles on all themes.\n* Glossary\n* Banner post\n* Keys\n* Containers\n\n---\n\n* Page 1 link is always highlighted \n* Page 1 link is broken when coming from page 1\n* On mobile search is too wide \n* Shots needs warmed with a head request\n* \n\n---\n\nTags\n\nContacts\n\n",
      "summary": "Next for markata go",
      "date_published": "2026-01-23T22:28:38Z",
      "date_modified": "2026-01-23T22:28:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-11-21-notes/",
      "url": "https://go.waylonwalker.com/2025-11-21-notes/",
      "title": "2025-11-21 Notes",
      "content_html": "\u003cp\u003eLearned about nginx_auth today.  Feels good to unlock a new skill that I did not quite understand before.  I don’t think I grasped that there is a backend server in this flow to handle every request.  I could not fathom how this was secure with nginx alone.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://git.wayl.one/waylon/learn-nginx-auth\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/git.wayl.one.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/git.wayl.one.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://git.wayl.one/waylon/learn-nginx-auth\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eI’m excited to give this a try in my \u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e with k3s ingress next.\u003c/p\u003e\n",
      "content_text": "Learned about nginx_auth today.  Feels good to unlock a new skill that I did not quite understand before.  I don't think I grasped that there is a backend server in this flow to handle every request.  I could not fathom how this was secure with nginx alone.\n\nhttps://git.wayl.one/waylon/learn-nginx-auth\n\nI'm excited to give this a try in my homelab with k3s ingress next.",
      "summary": "Learned about nginx_auth today. Feels good to unlock a new skill that I did not quite understand before. I don't think I grasped that there is a backend...",
      "date_published": "2025-11-21T14:25:59Z",
      "date_modified": "2025-11-21T14:25:59Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-11-19-notes/",
      "url": "https://go.waylonwalker.com/2025-11-19-notes/",
      "title": "2025-11-19 Notes",
      "content_html": "\u003cp\u003eMaking progress on dropper this week.\u003c/p\u003e\n\u003cp\u003eIn prod.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eresize for image and video\u003c/li\u003e\n\u003cli\u003eFile feed with paging\u003c/li\u003e\n\u003cli\u003eNew plain filesystem backend\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIn dev\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRobust video conversion that seems to work on all my test videos\u003c/li\u003e\n\u003cli\u003eDuplicate file detection\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThinking about kedro pipelines from my phone in a parking lot here. I’m thinking about big picture what’s next for my pipelines.  I want an effective Dr plan. I want to create telemetry endpoints for catalog.  This will enable the Dr plan to identify  critical data that is not created by a pipeline and communication points to other teams.\u003c/p\u003e\n",
      "content_text": "Making progress on dropper this week.\n\nIn prod.\n\n* resize for image and video\n* File feed with paging\n* New plain filesystem backend\n\nIn dev\n\n* Robust video conversion that seems to work on all my test videos\n* Duplicate file detection\n\nThinking about kedro pipelines from my phone in a parking lot here. I'm thinking about big picture what's next for my pipelines.  I want an effective Dr plan. I want to create telemetry endpoints for catalog.  This will enable the Dr plan to identify  critical data that is not created by a pipeline and communication points to other teams.",
      "summary": "Making progress on dropper this week.",
      "date_published": "2025-11-19T18:55:14Z",
      "date_modified": "2025-11-19T18:55:14Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-11-04-notes/",
      "url": "https://go.waylonwalker.com/2025-11-04-notes/",
      "title": "2025-11-04 Notes",
      "content_html": "\u003cp\u003eToday I gave mcat a try and it’s so sick.  It can \u003ccode\u003ecat\u003c/code\u003e anything right in the\nterminal, pdf, image, even video.  It even works inside tmux unlike almost\nanything else that I’ve tried.\u003c/p\u003e\n",
      "content_text": "\nToday I gave mcat a try and it's so sick.  It can `cat` anything right in the\nterminal, pdf, image, even video.  It even works inside tmux unlike almost\nanything else that I've tried.\n",
      "summary": "Today I gave mcat a try and it's so sick. It can anything right in the terminal, pdf, image, even video. It even works inside tmux unlike almost anything...",
      "date_published": "2025-11-04T18:43:38Z",
      "date_modified": "2025-11-04T18:43:38Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-25-notes/",
      "url": "https://go.waylonwalker.com/2025-08-25-notes/",
      "title": "2025-08-25 Notes",
      "content_html": "\u003cp\u003eGave \u003ca href=\"/modd/\" class=\"wikilink\" data-title=\"modd\" data-description=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\" data-date=\"2025-08-25\" data-preview=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\"\u003emodd\u003c/a\u003e a try and it seems pretty good, will likely be slotting it in\nnext to my \u003ca href=\"https://just.systems/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/just.systems.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/just.systems.ico\" class=\"has-avatar  has-avatar-before\"\u003ejustfile\u003c/a\u003e usage.\u003c/p\u003e\n\u003cp\u003eGave \u003ca href=\"https://github.com/nkantar/sus\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/github.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/github.com.ico\" class=\"has-avatar  has-avatar-before\"\u003esus\u003c/a\u003e a try, but it lacked the\nconfigurability and flexibility I was looking for.  For now I will stick to\n\u003ca href=\"https://markata.dev/markata/plugins/redirects/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/markata.dev.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/markata.dev.ico\" class=\"has-avatar  has-avatar-before\"\u003emarkata-redirects\u003c/a\u003e plugin.\u003c/p\u003e\n",
      "content_text": "\nGave \u003ca href=\"/modd/\" class=\"wikilink\" data-title=\"modd\" data-description=\"Today I gave modd a try, and it seems like a good file watcher executor. I tried using libnotify to send desktop notifications, but all I got was modd, I...\" data-date=\"2025-08-25\"\u003emodd\u003c/a\u003e a try and it seems pretty good, will likely be slotting it in\nnext to my [justfile](https://just.systems/) usage.\n\nGave [sus](https://github.com/nkantar/sus) a try, but it lacked the\nconfigurability and flexibility I was looking for.  For now I will stick to\n[markata-redirects](https://markata.dev/markata/plugins/redirects/) plugin.\n\n",
      "summary": "Gave modd a try and it seems pretty good, will likely be slotting it in next to my justfile usage.",
      "date_published": "2025-08-25T10:45:08Z",
      "date_modified": "2025-08-25T10:45:08Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-23-notes/",
      "url": "https://go.waylonwalker.com/2025-08-23-notes/",
      "title": "2025-08-23 Notes",
      "content_html": "\u003ch2 id=\"knife-sharpener\"\u003eKnife Sharpener \u003ca href=\"#knife-sharpener\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eToday, some great work on the knife sharpener re-design.  I’ve been using the\nsame one since I first got my ender 3 3d printer, and have wanted to make some\nchanges ever since.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png\" alt=\"Helmet Hidden In Design\"/ data-glightbox=\"description: Helmet Hidden In Design\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eWyatt sat with me through the design, I probably would not have gone this deep without him, he thought the helmet look was hilarious\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4\" type=\"video/mp4\"\u003eKnife Sharpener Double Hinge First Try\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eNotice one of the biggest problems with this one here is how much is slides around\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png\" alt=\"Knife Sharpener Double Hinge Wing Nut\"/ data-glightbox=\"description: Knife Sharpener Double Hinge Wing Nut\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis wing nut really set it apart\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2 id=\"hollow-knight\"\u003eHollow Knight \u003ca href=\"#hollow-knight\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eProgress on the Hollow Knight Keeb Run.  SILKSONG in 2 WEEKS!!\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4\" type=\"video/mp4\"\u003eGetting The Lumafly Lantern In My Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4\" type=\"video/mp4\"\u003eUnlocking Royal Waterways In Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4\" type=\"video/mp4\"\u003eEntering Royal Waterway Hollow Knight Keeb Run\u003c/video\u003e\u003c/a\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4\" type=\"video/mp4\"\u003eUnlock Royal Waterway Bench In Hollow Knight Keeb\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"todays-script\"\u003etodays script \u003ca href=\"#todays-script\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade a little script to grab these\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003efeeds\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etoday\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eget\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;image\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"kc\"\u003eNone\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;![\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;image\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003eelse\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s1\"\u003e\u0026#39;[\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e](\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;url\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s1\"\u003e)\u0026#39;\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n## Knife Sharpener\n\nToday, some great work on the knife sharpener re-design.  I've been using the\nsame one since I first got my ender 3 3d printer, and have wanted to make some\nchanges ever since.\n\n![Helmet Hidden In Design](https://dropper.waylonwalker.com/api/file/4cf7ea72-ad4b-421e-92ad-9d08e47b469a.png)\n\u003e Wyatt sat with me through the design, I probably would not have gone this deep without him, he thought the helmet look was hilarious\n\n![Knife Sharpener Double Hinge First Try](https://dropper.waylonwalker.com/api/file/30335f07-9cac-4e66-b908-f0e3cfbf7582.mp4)\n\u003e Notice one of the biggest problems with this one here is how much is slides around\n\n![Knife Sharpener Double Hinge Wing Nut](https://dropper.waylonwalker.com/api/file/27b5c23f-69a3-4e7b-a468-5a6767e1cb2e.png)\n\u003e This wing nut really set it apart\n\n## Hollow Knight\n\nProgress on the Hollow Knight Keeb Run.  SILKSONG in 2 WEEKS!!\n\n![Getting The Lumafly Lantern In My Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/2ea5790c-66d7-401d-95c7-c81a2bccb743.mp4)\n![Unlocking Royal Waterways In Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/3713bdd1-c645-46c5-85d2-451356383842.mp4)\n![Entering Royal Waterway Hollow Knight Keeb Run](https://dropper.waylonwalker.com/api/file/58235f4d-701f-4ddc-a26d-ab5f9e0bdbfc.mp4)\n![Unlock Royal Waterway Bench In Hollow Knight Keeb](https://dropper.waylonwalker.com/api/file/bdf1985b-6a32-4bf4-9f9a-d6f814db7136.mp4)\n\n## todays script\n\nMade a little script to grab these\n\n``` python\nfor post in m.feeds.today.posts:\n    if post.get('image', None):\n        print(f'![{post[\"title\"]}]({post[\"image\"]})')\n    else:\n        print(f'[{post[\"title\"]}]({post[\"url\"]})')\n```\n",
      "summary": "Today, some great work on the knife sharpener re-design. I've been using the same one since I first got my ender 3 3d printer, and have wanted to make some...",
      "date_published": "2025-08-23T19:27:05Z",
      "date_modified": "2025-08-23T19:27:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-21-notes/",
      "url": "https://go.waylonwalker.com/2025-08-21-notes/",
      "title": "2025-08-21 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtu.be.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtu.be.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eIs ai in 2025 like a Roomba vacuum?  The ads make it look fantastic but after some time it becomes worthless and needs constant monitoring.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFor some reason the first one has kinda stuck with me.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eYou think youre thinking, but you’re mostly remembering. Your thoughts are just loops your nervous system finds familiar, your not making decisions, your repeating emotional echos.  Unless you interrupt the loop your future is your past in disguise.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF\n\nIs ai in 2025 like a Roomba vacuum?  The ads make it look fantastic but after some time it becomes worthless and needs constant monitoring.\n\nhttps://youtube.com/shorts/iIDVm_J-JxU?si=WRiLXASnXlqqidLi\n\nFor some reason the first one has kinda stuck with me.  \n\n\u003e You think youre thinking, but you're mostly remembering. Your thoughts are just loops your nervous system finds familiar, your not making decisions, your repeating emotional echos.  Unless you interrupt the loop your future is your past in disguise.\n\n",
      "summary": "https://youtu.be/-EYRzF0zp3U?si=mKCPlMDecrqzvjuF",
      "date_published": "2025-08-21T07:43:49Z",
      "date_modified": "2025-08-21T07:43:49Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-17-notes/",
      "url": "https://go.waylonwalker.com/2025-08-17-notes/",
      "title": "2025-08-17 Notes",
      "content_html": "\u003cp\u003eAfter a long time I begrudgingly setup window rules for hyprland.  What I\nwanted was the ability to log out and jump back into work with a freshened work\nspace.  Right now I’m running on low ram and disk on hyprland and sometimes I\nneed to just quit everything and get back to work quick.  So I setup exec-once\nto start my terminal, browser, and chat.  These are my main applications that\nrun on my power fingers 456 (which are on a layer that present under jkl).  I\nuse them every time I log in and will need them no matter what I do.  When I\nexec once them, they just dump onto one workspace, you can pick it but no\nmatter the timing, you end up with race conditions that end up with you on\ndifferent workspaces.\u003c/p\u003e\n\u003cp\u003eSo I setup window rules.  I avoided this for a long time, because of my\nworkflow on awesomewm, I thought this manual workspace selection was superior.\nWhat I really think happened was that awesomewm was a little trickier for me to\nfigure out what things were named and to actually get the rules setup\ncorrectly.\u003c/p\u003e\n\u003cp\u003ehyprland makes this pretty simple with its great cli.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep class\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNow that I can see attributes of these windows as I open them I can set up\nrules for them to go onto the correct workspace, or to float them.  I have a\ncouple of things like a file picker coming from a browser showing up in the\ntiled layout, when a file picker like this shows up, just cover everything up\nits temporary, no need to squeeze it into the tiled layout.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003ethe file picker float also fixed an issue I had where they would not show up,\nand lock up brave when its in full screen mode and I don’t realize it.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003ewindowrulev2 = workspace 1, class:^(steam)$\nwindowrulev2 = workspace 4, class:^(kitty)$\nwindowrulev2 = workspace 5, class:^(firefox)$\nwindowrulev2 = workspace 5, class:^(brave-browser)$\nwindowrulev2 = workspace 5, class:^(google-chrome)$\nwindowrulev2 = workspace 6, class:^(Signal)$\nwindowrulev2 = workspace 2, class:^(krita)$\nwindowrulev2 = workspace 8, class:^(brave-chat.openai.com__-Default)$\nwindowrulev2 = workspace 8, class:^(brave-youtube.com__-Default)$\nwindowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$\nwindowrulev2 = workspace 9, class:^(org.prismlauncher.PrismLauncher)$\nwindowrulev2 = float, class:^(org.prismlauncher.PrismLauncher)$, title:^(Console window.*)\nwindowrulev2 = float, class:^(xdg-desktop-portal-gtk)$\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nAfter a long time I begrudgingly setup window rules for hyprland.  What I\nwanted was the ability to log out and jump back into work with a freshened work\nspace.  Right now I'm running on low ram and disk on hyprland and sometimes I\nneed to just quit everything and get back to work quick.  So I setup exec-once\nto start my terminal, browser, and chat.  These are my main applications that\nrun on my power fingers 456 (which are on a layer that present under jkl).  I\nuse them every time I log in and will need them no matter what I do.  When I\nexec once them, they just dump onto one workspace, you can pick it but no\nmatter the timing, you end up with race conditions that end up with you on\ndifferent workspaces.\n\nSo I setup window rules.  I avoided this for a long time, because of my\nworkflow on awesomewm, I thought this manual workspace selection was superior.\nWhat I really think happened was that awesomewm was a little trickier for me to\nfigure out what things were named and to actually get the rules setup\ncorrectly.\n\nhyprland makes this pretty simple with its great cli.\n\n``` bash\nhyprctl clients -j | jq | grep class\n```\n\nNow that I can see attributes of these windows as I open them I can set up\nrules for them to go onto the correct workspace, or to float them.  I have a\ncouple of things like a file picker coming from a browser showing up in the\ntiled layout, when a file picker like this shows up, just cover everything up\nits temporary, no need to squeeze it into the tiled layout.\n\n\u003e the file picker float also fixed an issue I had where they would not show up,\n\u003e and lock up brave when its in full screen mode and I don't realize it.\n\n``` conf\nwindowrulev2 = workspace 1, class:^(steam)$\nwindowrulev2 = workspace 4, class:^(kitty)$\nwindowrulev2 = workspace 5, class:^(firefox)$\nwindowrulev2 = workspace 5, class:^(brave-browser)$\nwindowrulev2 = workspace 5, class:^(google-chrome)$\nwindowrulev2 = workspace 6, class:^(Signal)$\nwindowrulev2 = workspace 2, class:^(krita)$\nwindowrulev2 = workspace 8, class:^(brave-chat.openai.com__-Default)$\nwindowrulev2 = workspace 8, class:^(brave-youtube.com__-Default)$\nwindowrulev2 = float, class:^(org.pulseaudio.pavucontrol)$\nwindowrulev2 = workspace 9, class:^(org.prismlauncher.PrismLauncher)$\nwindowrulev2 = float, class:^(org.prismlauncher.PrismLauncher)$, title:^(Console window.*)\nwindowrulev2 = float, class:^(xdg-desktop-portal-gtk)$\n```\n",
      "summary": "After a long time I begrudgingly setup window rules for hyprland. What I wanted was the ability to log out and jump back into work with a freshened work...",
      "date_published": "2025-08-17T12:21:47Z",
      "date_modified": "2025-08-17T12:21:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-16-notes/",
      "url": "https://go.waylonwalker.com/2025-08-16-notes/",
      "title": "2025-08-16 Notes",
      "content_html": "\u003ch2 id=\"\u003ca href=\"/homelab/\" class=\"glossary-term\" title=\"A place to self host applications. For me this is primarily self built web applications, and applications for sharing files with my family. Techno Tim has a...\"\u003ehomelab\u003c/a\u003e-cleanup-day\"\u003eHomeLab cleanup day \u003ca href=\"#homelab-cleanup-day\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e remove nextcloud\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e pause photoprism\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e pause syncthing\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e move data to walkershare\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e filepermissions 1000:1000 all of it\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e organize how I want\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e resume photoprism\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e resume syncthing - update share locations\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e expose to mac over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ensure mac can write over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e expose to archlinux oversmb\u003c/li\u003e\n\u003cli\u003e\u003cinput checked=\"\" disabled=\"\" type=\"checkbox\"/\u003e ensure archlinux can write over smb\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e expose to syncthing over pvc\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e expose to my terminal over pvc\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003ewishlist\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Forgejo repos\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e Forgejo runners\u003c/li\u003e\n\u003cli\u003e\u003cinput disabled=\"\" type=\"checkbox\"/\u003e explore moving from docker repository to repoflow\u003c/li\u003e\n\u003c/ul\u003e\n",
      "content_text": "\n## HomeLab cleanup day\n\n- [x] remove nextcloud\n- [x] pause photoprism\n- [x] pause syncthing\n- [x] move data to walkershare\n- [x] filepermissions 1000:1000 all of it\n- [x] organize how I want\n- [ ] resume photoprism\n- [ ] resume syncthing - update share locations\n- [x] expose to mac over smb\n- [x] ensure mac can write over smb\n- [x] expose to archlinux oversmb\n- [x] ensure archlinux can write over smb\n- [ ] expose to syncthing over pvc\n- [ ] expose to my terminal over pvc\n\n**wishlist**\n\n- [ ] Forgejo repos\n- [ ] Forgejo runners\n- [ ] explore moving from docker repository to repoflow\n",
      "summary": "[x] remove nextcloud - [x] pause photoprism - [x] pause syncthing - [x] move data to walkershare - [x] filepermissions 1000:1000 all of it - [x] organize how...",
      "date_published": "2025-08-16T10:07:21Z",
      "date_modified": "2025-08-16T10:07:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-14-notes/",
      "url": "https://go.waylonwalker.com/2025-08-14-notes/",
      "title": "2025-08-14 Notes",
      "content_html": "\u003cp\u003eHuge progress on \u003ca href=\"https://waylonwalker.com/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eshots\u003c/a\u003e not to be confused\nwith \u003ca href=\"https://shots.waylonwalker.com\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/shots.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/shots.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eshots\u003c/a\u003e inspired by\n\u003ca href=\"https://justin.searls.co/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://justin.searls.co/shots/\u003c/a\u003e.  I’m building out my own instagram grid\ndesign, right now its 4 wide, but I wonder if it should be 3 wide to match up\nwith the old instagram grid designs, and I could do cool crops like instagram\nused to.\u003c/p\u003e\n\u003cp\u003eI went through a bunch of old \u003ca href=\"/gratitude/\" class=\"wikilink\"\u003egratitude\u003c/a\u003e posts and pulled images from all\nof them, and update all of the images to use dropper while I was at it.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eMore work after kids bed time and came up with a great concept that needs to go\ninto markata, yes its more configuration.  \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e is quickly becoming\ndeath by config.  What I wanted was the ability to make different cards\ndifferent sizes.\u003c/p\u003e\n\u003cp\u003eWhat I came up with was adding “card_classes” to the front matter of the\nmarkdown file.  This is a list of classes that will be added to the card div\nwhen the card is rendered.  This way I can make cards different sizes.  Here\nare a couple of good results I had.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png\" alt=\"screenshot-2025-08-15T01-35-08-108Z.png\"/ data-glightbox=\"description: screenshot-2025-08-15T01-35-08-108Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eA landscape shot of quarry lake\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png\" alt=\"screenshot-2025-08-15T01-35-48-593Z.png\"/ data-glightbox=\"description: screenshot-2025-08-15T01-35-48-593Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAn image of Rhiannon and I at sunset\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr/\u003e\n\u003cp\u003eMade a bit of cyberbrink crane progress, glued in a few cables and put the cab\non top of the tower.\u003c/p\u003e\n",
      "content_text": "\nHuge progress on [shots](https://waylonwalker.com/shots/) not to be confused\nwith [shots](https://shots.waylonwalker.com) inspired by\n\u003chttps://justin.searls.co/shots/\u003e.  I'm building out my own instagram grid\ndesign, right now its 4 wide, but I wonder if it should be 3 wide to match up\nwith the old instagram grid designs, and I could do cool crops like instagram\nused to.\n\nI went through a bunch of old \u003ca href=\"/gratitude/\" class=\"wikilink\"\u003egratitude\u003c/a\u003e posts and pulled images from all\nof them, and update all of the images to use dropper while I was at it.\n\n---\n\nMore work after kids bed time and came up with a great concept that needs to go\ninto markata, yes its more configuration.  \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e is quickly becoming\ndeath by config.  What I wanted was the ability to make different cards\ndifferent sizes.\n\nWhat I came up with was adding \"card_classes\" to the front matter of the\nmarkdown file.  This is a list of classes that will be added to the card div\nwhen the card is rendered.  This way I can make cards different sizes.  Here\nare a couple of good results I had.\n\n![screenshot-2025-08-15T01-35-08-108Z.png](https://dropper.waylonwalker.com/api/file/c946a174-ee0f-43fb-90d7-c6440c0ed708.png)\n\n\u003e A landscape shot of quarry lake\n\n![screenshot-2025-08-15T01-35-48-593Z.png](https://dropper.waylonwalker.com/api/file/fe5ea8de-2d45-4b9b-966e-85d65cea6151.png)\n\n\u003e An image of Rhiannon and I at sunset\n\n---\n\nMade a bit of cyberbrink crane progress, glued in a few cables and put the cab\non top of the tower.\n",
      "summary": "Huge progress on shots not to be confused with shots inspired by . I'm building out my own instagram grid design, right now its 4 wide, but I wonder if it...",
      "date_published": "2025-08-14T20:15:54Z",
      "date_modified": "2025-08-14T20:15:54Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-13-notes/",
      "url": "https://go.waylonwalker.com/2025-08-13-notes/",
      "title": "2025-08-13 Notes",
      "content_html": "\u003cp\u003eInspired by \u003ca href=\"https://justin.searls.co/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/justin.searls.co.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/justin.searls.co.ico\" class=\"has-avatar  has-avatar-before\"\u003eJustin Searls Shots\u003c/a\u003e, I made\nstarted \u003ca href=\"https://waylonwalker.com/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003emy own shots feed\u003c/a\u003e for \u003ca href=\"/self-host/\" class=\"glossary-term\" title=\"Self hosting is the act of hosting your own applications and services without using a SAS provider. This is typically done with your own hardware, but there...\"\u003eself hosted\u003c/a\u003e\nInstagram style photos.  The layout could use a lot of work, the feed seems\nlike its breaking on rebuild due to some cache issues, but its there and kind\nof works and eventually will get a proper prominently placed link, for now its\nan idea for anyone who sees this.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://waylonwalker.com/shots/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003ehttps://waylonwalker.com/shots/\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eBy the way what a boss domain searls.co is.  I’ve seen Chris Coyier just got\n\u003ca href=\"https://chriscoyier.net/2025/07/01/coyier-com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/chriscoyier.net.jpg\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/chriscoyier.net.jpg\" class=\"has-avatar  has-avatar-before\"\u003ecoyer.com\u003c/a\u003e and talked about\nbeing able to use it as a family domain.\u003c/p\u003e\n\u003c/blockquote\u003e\n",
      "content_text": "\nInspired by [Justin Searls Shots](https://justin.searls.co/shots/), I made\nstarted [my own shots feed](https://waylonwalker.com/shots/) for self hosted\nInstagram style photos.  The layout could use a lot of work, the feed seems\nlike its breaking on rebuild due to some cache issues, but its there and kind\nof works and eventually will get a proper prominently placed link, for now its\nan idea for anyone who sees this.\n\n\u003chttps://waylonwalker.com/shots/\u003e\n\n\u003e By the way what a boss domain searls.co is.  I've seen Chris Coyier just got\n\u003e [coyer.com](https://chriscoyier.net/2025/07/01/coyier-com/) and talked about\n\u003e being able to use it as a family domain.\n",
      "summary": "Inspired by Justin Searls Shots, I made started my own shots feed for self hosted Instagram style photos. The layout could use a lot of work, the feed seems...",
      "date_published": "2025-08-13T21:23:24Z",
      "date_modified": "2025-08-13T21:23:24Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-12-notes/",
      "url": "https://go.waylonwalker.com/2025-08-12-notes/",
      "title": "2025-08-12 Notes",
      "content_html": "\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg\" alt=\"17550430467561838968532746154870.jpg\"/ data-glightbox=\"description: 17550430467561838968532746154870.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eSad day yesterday.  We discovered that our freezer was left cracked over a day\nor so.  Kids self serviced themselves to some sausage dogs at some point and\nwedged the box in the door.  Everything was over 40F and done.\u003c/p\u003e\n\u003cp\u003eLessons learned for everyone.  For the kids, see something say something, food\nshould not come out of a freezer soft and barely fridge temp.  For the parents,\ndon’t get in a rush when loading the freezer.  If something doesn’t quite look\nlike it’s going to stay out, it probably won’t and next person to use it will\npay… Or you will pay when they don’t notice.  Last lesson for everyone, when\nyou come home late and tired from a family trip to Grandma’s and hear beeping\nit’s probably important and investigate.\u003c/p\u003e\n\u003chr/\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg\" alt=\"17550498066131861258207337996278.jpg\"/ data-glightbox=\"description: 17550498066131861258207337996278.jpg\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eI need some more ram… Was waiting out prime day, prices went up and haven’t\ngone down.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003e\u003ca href=\"https://forgejo.org/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/forgejo.org.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/forgejo.org.ico\" class=\"has-avatar  has-avatar-before\"\u003eforgejo\u003c/a\u003e is pretty dope, played with it for awhile today\nlocally, create repos with curl, \u003ca href=\"/glossary/git/\" class=\"glossary-term\" title=\"Git is a version control system for tracking changes in source code during software development. In the beginning there were many, some were licensed. As...\"\u003egit\u003c/a\u003e push, actions working with multiple\nrunners.\u003c/p\u003e\n",
      "content_text": "\n![17550430467561838968532746154870.jpg](https://dropper.waylonwalker.com/api/file/3b6cadef-301b-4c90-9b06-4cbc1405bced.jpg)\n\nSad day yesterday.  We discovered that our freezer was left cracked over a day\nor so.  Kids self serviced themselves to some sausage dogs at some point and\nwedged the box in the door.  Everything was over 40F and done.\n\nLessons learned for everyone.  For the kids, see something say something, food\nshould not come out of a freezer soft and barely fridge temp.  For the parents,\ndon't get in a rush when loading the freezer.  If something doesn't quite look\nlike it's going to stay out, it probably won't and next person to use it will\npay... Or you will pay when they don't notice.  Last lesson for everyone, when\nyou come home late and tired from a family trip to Grandma's and hear beeping\nit's probably important and investigate.\n\n---\n\n![17550498066131861258207337996278.jpg](https://dropper.waylonwalker.com/api/file/4751d638-b056-42bd-bc5b-4a7e94e4569f.jpg)\n\nI need some more ram... Was waiting out prime day, prices went up and haven't\ngone down.\n\n---\n\n[forgejo](https://forgejo.org/) is pretty dope, played with it for awhile today\nlocally, create repos with curl, git push, actions working with multiple\nrunners.\n\n\n\n",
      "summary": "Sad day yesterday. We discovered that our freezer was left cracked over a day or so. Kids self serviced themselves to some sausage dogs at some point and...",
      "date_published": "2025-08-12T16:46:31Z",
      "date_modified": "2025-08-12T16:46:31Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-08-notes/",
      "url": "https://go.waylonwalker.com/2025-08-08-notes/",
      "title": "2025-08-08 Notes",
      "content_html": "\u003ch2 id=\"this-web-aint-what-it-used-to-be\"\u003eThis Web ain’t what it used to be \u003ca href=\"#this-web-aint-what-it-used-to-be\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI found this \u003ca href=\"https://bsky.app/profile/miriam.codes/post/3lvuib52f7222\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/bsky.app.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/bsky.app.png\" class=\"has-avatar  has-avatar-before\"\u003epost\u003c/a\u003e\nfrom \u003ca href=\"https://miriam.codes\"\u003emiriam.codes\u003c/a\u003e while reading \u003ca href=\"https://dbushell.com/notes/2025-08-08T05:38Z/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/dbushell.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/dbushell.com.ico\" class=\"has-avatar  has-avatar-before\"\u003edbushell’s\nnotes\u003c/a\u003e.  I kinda agree with\nMiriam and David here.  AI is really making me feel like an old curmudgeon.\nEvery day it gets more enshitified, filled with more nonsense, more hate, more\n“fake news” which all news gets labeled as these days, nothing is credible to\nanyone anymore.\u003c/p\u003e\n\u003cp\u003eWhat I’m here for is still plugging away at my own site, trying harder than\never to find real people with real websites, who write real content that I\nenjoy.  I’m going to continue staying in my lane, making notes that no one will\nread, leaving thoughts no one will read, writing blog posts that might reach\n10s of people who really care.\u003c/p\u003e\n\u003cp\u003eYouTube still feels like a safe place.  I see more and  more \u003ca href=\"/ai-slop/\" class=\"glossary-term\" title=\"AI slop is unwanted AI content, generally shared by someone who did not review the output and is considered highly offensive and rude.\"\u003eAI slop\u003c/a\u003e popping up\nand off, but it doesn’t hit my feed, happy for that so far.  I do see a lot of\ncreators using AI thumbnails, Most look obvious, but some feel like uncanny\nfaces of the people I follow and it’s weird.  I think I follow the exact\naverage of the 2025 YT watcher, I watch a handful of the top 100 channels, and\na bunch of sub 1M average joes.  These all feel like people just sharing their\nstory.  A lot of them have Orange County Choppers Season 1 vibes, we are just\nmaking good content about trying to make it in the world.  They haven’t yet\ndescended into the madness that OCC became in its later seasons that was all\nabout building drama that tore the family apart.\u003c/p\u003e\n\u003ch2 id=\"moss-knight-from-a-hrefhollow-knight-home-row-layout-classwikilink-data-titlehollow-knight-home-row-layout-data-descriptioni-just-made-it-past-100-in-my-main-hollow-knight-run-so-now-i-will-allow-myself-to-get-silksong-when-it-comes-out-i-did-this-with-a-little-bit-of-yt-data-date2025-05-05hollow-knight-home-row-layouta\"\u003eMoss Knight from \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\" data-preview=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\"\u003ehollow knight home row layout\u003c/a\u003e \u003ca href=\"#moss-knight-from-a-hrefhollow-knight-home-row-layout-classwikilink-data-titlehollow-knight-home-row-layout-data-descriptioni-just-made-it-past-100-in-my-main-hollow-knight-run-so-now-i-will-allow-myself-to-get-silksong-when-it-comes-out-i-did-this-with-a-little-bit-of-yt-data-date2025-05-05hollow-knight-home-row-layouta\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I’m no pro, but getting better at timing on\nthe keeb layout.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4\" type=\"video/mp4\"\u003ehollow-knight-keeb-moss-knight.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"cyberbrick-crane-progress\"\u003eCyberbrick Crane Progress \u003ca href=\"#cyberbrick-crane-progress\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade some progress on the cyberbrick crane that I am building with Wyatt.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png\" alt=\"screenshot-2025-08-09T01-11-50-464Z.png\"/ data-glightbox=\"description: screenshot-2025-08-09T01-11-50-464Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## This Web ain't what it used to be\n\nI found this [post](https://bsky.app/profile/miriam.codes/post/3lvuib52f7222)\nfrom [miriam.codes](https://miriam.codes) while reading [dbushell's\nnotes](https://dbushell.com/notes/2025-08-08T05:38Z/).  I kinda agree with\nMiriam and David here.  AI is really making me feel like an old curmudgeon.\nEvery day it gets more enshitified, filled with more nonsense, more hate, more\n\"fake news\" which all news gets labeled as these days, nothing is credible to\nanyone anymore.\n\nWhat I'm here for is still plugging away at my own site, trying harder than\never to find real people with real websites, who write real content that I\nenjoy.  I'm going to continue staying in my lane, making notes that no one will\nread, leaving thoughts no one will read, writing blog posts that might reach\n10s of people who really care.\n\nYouTube still feels like a safe place.  I see more and  more AI slop popping up\nand off, but it doesn't hit my feed, happy for that so far.  I do see a lot of\ncreators using AI thumbnails, Most look obvious, but some feel like uncanny\nfaces of the people I follow and it's weird.  I think I follow the exact\naverage of the 2025 YT watcher, I watch a handful of the top 100 channels, and\na bunch of sub 1M average joes.  These all feel like people just sharing their\nstory.  A lot of them have Orange County Choppers Season 1 vibes, we are just\nmaking good content about trying to make it in the world.  They haven't yet\ndescended into the madness that OCC became in its later seasons that was all\nabout building drama that tore the family apart.\n\n## Moss Knight from \u003ca href=\"/hollow-knight-home-row-layout/\" class=\"wikilink\" data-title=\"hollow knight home row layout\" data-description=\"I just made it past 100% in my main hollow knight run, so now I will allow myself to get silksong when it comes out. I did this with a little bit of YT...\" data-date=\"2025-05-05\"\u003ehollow knight home row layout\u003c/a\u003e\n\nI took a break for awhile on the game, my son got bored and moved on.  He tends\nto switch out games a lot faster than me.  I came back to it tonight after a\nfew months off and just got some geo from the moss knights for awhile.  I got\nthis decent clip of clearing them, I'm no pro, but getting better at timing on\nthe keeb layout.\n\n![hollow-knight-keeb-moss-knight.mp4](https://dropper.waylonwalker.com/api/file/d8571451-7a1e-4997-85eb-b5ce2cfdc209.mp4)\n\n## Cyberbrick Crane Progress\n\nMade some progress on the cyberbrick crane that I am building with Wyatt.\n\n![screenshot-2025-08-09T01-11-50-464Z.png](https://dropper.waylonwalker.com/api/file/038e01d4-d2c8-4635-83d2-43a04c076ab6.png)\n",
      "summary": "I found this post from miriam.codes while reading dbushell's notes. I kinda agree with Miriam and David here. AI is really making me feel like an old...",
      "date_published": "2025-08-08T19:28:06Z",
      "date_modified": "2025-08-08T19:28:06Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-08-05-notes/",
      "url": "https://go.waylonwalker.com/2025-08-05-notes/",
      "title": "2025-08-05 Notes",
      "content_html": "\u003cp\u003eYesterday I started building out some qrcode tooling for myself starting with\n\u003ca href=\"https://qrcode.waylonwalker.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/qrcode.waylonwalker.com.ico\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/qrcode.waylonwalker.com.ico\" class=\"has-avatar  has-avatar-before\"\u003eqrcode.waylonwalker.com\u003c/a\u003e.  This is part of\nmy \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\" data-preview=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\"\u003etinyapps\u003c/a\u003e project.\u003c/p\u003e\n\u003cp\u003eAlso dug into \u003ca href=\"/qr-codes-in-python/\" class=\"wikilink\" data-title=\"qr codes in python\" data-description=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\" data-date=\"2025-08-05\" data-preview=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\"\u003eqr codes in python\u003c/a\u003e to try to get some easy and small\nqrcodes that I could add to my blog posts for others who find a post on desktop\nand want to open on mobile.\u003c/p\u003e\n\u003cp\u003eThis is what I am going for with qrcodes on my blog posts.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png\" alt=\"screenshot-2025-08-05T14-45-25-598Z.png\"/ data-glightbox=\"description: screenshot-2025-08-05T14-45-25-598Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eIf you want fancier qrcodes check out \u003ca href=\"https://mydigitalharbor.com/\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/mydigitalharbor.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/mydigitalharbor.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://mydigitalharbor.com/\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\nYesterday I started building out some qrcode tooling for myself starting with\n[qrcode.waylonwalker.com](https://qrcode.waylonwalker.com/).  This is part of\nmy \u003ca href=\"/tinyapps/\" class=\"wikilink\" data-title=\"tinyapps\" data-description=\"I\u0026#39;m working on replacing my usage of google inline search apps with real apps, these are ones that I create and host on my own homelab. The first three that...\" data-date=\"2025-05-22\"\u003etinyapps\u003c/a\u003e project.\n\nAlso dug into \u003ca href=\"/qr-codes-in-python/\" class=\"wikilink\" data-title=\"qr codes in python\" data-description=\"I have a couple of use cases for simple qr codes in python coming up. One is for blog posts, the other is for auth into a new server application logged to a...\" data-date=\"2025-08-05\"\u003eqr codes in python\u003c/a\u003e to try to get some easy and small\nqrcodes that I could add to my blog posts for others who find a post on desktop\nand want to open on mobile.\n\nThis is what I am going for with qrcodes on my blog posts.\n\n![screenshot-2025-08-05T14-45-25-598Z.png](https://dropper.waylonwalker.com/api/file/29b54d73-d4bc-4505-85f4-1b303f7e7bcc.png)\n\nIf you want fancier qrcodes check out \u003chttps://mydigitalharbor.com/\u003e\n",
      "summary": "Yesterday I started building out some qrcode tooling for myself starting with qrcode.waylonwalker.com. This is part of my tinyapps project.",
      "date_published": "2025-08-05T09:00:57Z",
      "date_modified": "2025-08-05T09:00:57Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-27-notes/",
      "url": "https://go.waylonwalker.com/2025-07-27-notes/",
      "title": "2025-07-27 Notes",
      "content_html": "\u003cp\u003eToday Wyatt and I conquered cathulu in Cat quest III.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4\" type=\"video/mp4\"\u003ecathulu.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eWhich then lead us to finish Mama Milk’s quest line.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4\" type=\"video/mp4\"\u003emama-milk.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003ch2 id=\"archlinux-btw-devtainer\"\u003earchlinux BTW devtainer \u003ca href=\"#archlinux-btw-devtainer\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eMade some progress on moving my devtainer back from ubuntu to arch, it’s\nsomewhat pertinent because a few of the things I use are now outdated and I\njust want to use a package manager and not have to build things from scratch.\u003c/p\u003e\n\u003ch2 id=\"kubernetes-development-environment\"\u003eKubernetes Development Environment \u003ca href=\"#kubernetes-development-environment\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eI also setup a dev environment in kubernetes, already using this new arch\nimage, its great so far, writing this post from it.\u003c/p\u003e\n\u003cp\u003eAs a challenge how much of my workflow could be done from kubernetes, docker\nbuild, and run would be hard, but I bet I could come up with something.  The\nclipboard part of my workflow would need a major change, especially for\ngrabbing previous terminal outputs.\u003c/p\u003e\n",
      "content_text": "\nToday Wyatt and I conquered cathulu in Cat quest III.\n\n![cathulu.mp4](https://dropper.waylonwalker.com/api/file/b64aacf2-5f33-4f68-be93-469c4139c192.mp4)\n\nWhich then lead us to finish Mama Milk's quest line.\n\n![mama-milk.mp4](https://dropper.waylonwalker.com/api/file/418e5653-4322-4e43-beda-c11db711d4bf.mp4)\n\n---\n\n## archlinux BTW devtainer\n\nMade some progress on moving my devtainer back from ubuntu to arch, it's\nsomewhat pertinent because a few of the things I use are now outdated and I\njust want to use a package manager and not have to build things from scratch.\n\n## Kubernetes Development Environment\n\nI also setup a dev environment in kubernetes, already using this new arch\nimage, its great so far, writing this post from it.\n\nAs a challenge how much of my workflow could be done from kubernetes, docker\nbuild, and run would be hard, but I bet I could come up with something.  The\nclipboard part of my workflow would need a major change, especially for\ngrabbing previous terminal outputs.\n\n\n",
      "summary": "Today Wyatt and I conquered cathulu in Cat quest III.",
      "date_published": "2025-07-27T01:25:33Z",
      "date_modified": "2025-07-27T01:25:33Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-24-notes/",
      "url": "https://go.waylonwalker.com/2025-07-24-notes/",
      "title": "2025-07-24 Notes",
      "content_html": "\u003cp\u003eCompleted the 8-bit dungeon in Cat Quest III with \u003ca href=\"https://wyattbubbylee.com\"\u003ewyatt\u003c/a\u003e today.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4\" type=\"video/mp4\"\u003e8-bit-dungeon.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nCompleted the 8-bit dungeon in Cat Quest III with [wyatt](https://wyattbubbylee.com) today.\n\n![8-bit-dungeon.mp4](https://dropper.waylonwalker.com/api/file/7fa41850-8303-4f7c-9a09-0ed05ef13139.mp4)\n",
      "summary": "Completed the 8-bit dungeon in Cat Quest III with wyatt today.",
      "date_published": "2025-07-24T20:58:17Z",
      "date_modified": "2025-07-24T20:58:17Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-23-notes/",
      "url": "https://go.waylonwalker.com/2025-07-23-notes/",
      "title": "2025-07-23 Notes",
      "content_html": "\u003cp\u003eToday I set up hypridle on my hyprland desktop build.  It was not too bad, I’m\nprobably going to tweak it as it I go if it bothers me, for now I’m giving it a\nshot.  My monitor is sometimes a PITA to get to wake up, that is my main\nconcern.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S hypridle\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eHere is the config I landed on.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003e# dim screen\ngeneral {\n    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.\n    before_sleep_cmd = loginctl lock-session    # lock before suspend.\n    after_sleep_cmd = hyprctl dispatch dpms on \u0026amp;\u0026amp; ddcutil setvcp 10 100  # to avoid having to press a key twice to turn on the display.\n}\n\nlistener {\n    timeout = 120                            # in seconds.\n    on-timeout = ddcutil setvcp 10 5 # command to run when timeout has passed.\n    on-resume = ddcutil setvcp 10 100  # command to run when activity is detected after timeout has fired.\n}\n\n# screen off\nlistener {\n    timeout = 3600\n    on-timeout = hyprctl dispatch dpms off\n    on-resume = hyprctl dispatch dpms on\n}\n\n# warning screen is about to go off\nlistener {\n    timeout = 315                            # in seconds.\n    on-timeout = notify-send \u0026#34;You are idle!\u0026#34; # command to run when timeout has passed.\n}\n\nlistener {\n    timeout = 330                            # in seconds.\n    on-timeout = loginctl lock-session\n}\n\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003elearned about \u003ccode\u003ewalker\u003c/code\u003e launcher and \u003ccode\u003ewev\u003c/code\u003e wayland event debgugger.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eEnded the day destroying the duck of doom in cat quest III.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4\" type=\"video/mp4\"\u003educk-of-doom.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nToday I set up hypridle on my hyprland desktop build.  It was not too bad, I'm\nprobably going to tweak it as it I go if it bothers me, for now I'm giving it a\nshot.  My monitor is sometimes a PITA to get to wake up, that is my main\nconcern.\n\n``` bash\nparu -S hypridle\n```\n\nHere is the config I landed on.\n\n``` conf\n# dim screen\ngeneral {\n    lock_cmd = pidof hyprlock || hyprlock       # avoid starting multiple hyprlock instances.\n    before_sleep_cmd = loginctl lock-session    # lock before suspend.\n    after_sleep_cmd = hyprctl dispatch dpms on \u0026\u0026 ddcutil setvcp 10 100  # to avoid having to press a key twice to turn on the display.\n}\n\nlistener {\n    timeout = 120                            # in seconds.\n    on-timeout = ddcutil setvcp 10 5 # command to run when timeout has passed.\n    on-resume = ddcutil setvcp 10 100  # command to run when activity is detected after timeout has fired.\n}\n\n# screen off\nlistener {\n    timeout = 3600\n    on-timeout = hyprctl dispatch dpms off\n    on-resume = hyprctl dispatch dpms on\n}\n\n# warning screen is about to go off\nlistener {\n    timeout = 315                            # in seconds.\n    on-timeout = notify-send \"You are idle!\" # command to run when timeout has passed.\n}\n\nlistener {\n    timeout = 330                            # in seconds.\n    on-timeout = loginctl lock-session\n}\n\n```\n\nlearned about `walker` launcher and `wev` wayland event debgugger.\n\n---\n\nEnded the day destroying the duck of doom in cat quest III.\n\n![duck-of-doom.mp4](https://dropper.waylonwalker.com/api/file/5ee1296c-7bf9-485a-9e94-d5c30310af95.mp4)\n",
      "summary": "Today I set up hypridle on my hyprland desktop build. It was not too bad, I'm probably going to tweak it as it I go if it bothers me, for now I'm giving it a...",
      "date_published": "2025-07-23T20:37:04Z",
      "date_modified": "2025-07-23T20:37:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-22-notes/",
      "url": "https://go.waylonwalker.com/2025-07-22-notes/",
      "title": "2025-07-22 Notes",
      "content_html": "\u003ch2 id=\"waybar-ricing\"\u003eWaybar ricing \u003ca href=\"#waybar-ricing\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"s2\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%a %b %d %I:%M %p}\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eNext I ripped a calendar from the docs.  When hovered I get a full year\ncalendar, right click gives me only the current month.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s2\"\u003e\u0026#34;clock\u0026#34;\u003c/span\u003e\u003cspan class=\"err\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%a %b %d %I:%M %p}\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;format-alt\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;{:%A, %B %d, %Y (%R)}  \u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;tooltip-format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;tt\u0026gt;\u0026lt;small\u0026gt;{calendar}\u0026lt;/small\u0026gt;\u0026lt;/tt\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;calendar\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;mode\u0026#34;\u003c/span\u003e          \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;year\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;mode-mon-col\u0026#34;\u003c/span\u003e  \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;weeks-pos\u0026#34;\u003c/span\u003e     \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll\u0026#34;\u003c/span\u003e     \u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;format\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;months\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e     \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ffead3\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;days\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e       \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ecc6d9\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;weeks\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e      \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#99ffdd\u0026#39;\u0026gt;\u0026lt;b\u0026gt;W{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;weekdays\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e   \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ffcc66\u0026#39;\u0026gt;\u0026lt;b\u0026gt;{}\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"nt\"\u003e\u0026#34;today\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e      \u003cspan class=\"s2\"\u003e\u0026#34;\u0026lt;span color=\u0026#39;#ff6699\u0026#39;\u0026gt;\u0026lt;b\u0026gt;\u0026lt;u\u0026gt;{}\u0026lt;/u\u0026gt;\u0026lt;/b\u0026gt;\u0026lt;/span\u0026gt;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e                          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;actions\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e  \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-click-right\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;mode\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;tz_up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;tz_down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;shift_up\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"nt\"\u003e\u0026#34;on-scroll-down\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;shift_down\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e              \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eI still want to change up the colors, but I’m happy with the usefulness of this\nfor now.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png\" alt=\"screenshot-2025-07-22T13-01-20-275Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T13-01-20-275Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n## Waybar ricing\n\n``` json\n  \"format\": \"{:%a %b %d %I:%M %p}\",\n```\n\nNext I ripped a calendar from the docs.  When hovered I get a full year\ncalendar, right click gives me only the current month.\n\n``` json\n\"clock\": {\n  \"format\": \"{:%a %b %d %I:%M %p}\",\n  \"format-alt\": \"{:%A, %B %d, %Y (%R)}  \",\n  \"tooltip-format\": \"\u003ctt\u003e\u003csmall\u003e{calendar}\u003c/small\u003e\u003c/tt\u003e\",\n  \"calendar\": {\n              \"mode\"          : \"year\",\n              \"mode-mon-col\"  : 3,\n              \"weeks-pos\"     : \"right\",\n              \"on-scroll\"     : 1,\n              \"format\": {\n                          \"months\":     \"\u003cspan color='#ffead3'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"days\":       \"\u003cspan color='#ecc6d9'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"weeks\":      \"\u003cspan color='#99ffdd'\u003e\u003cb\u003eW{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"weekdays\":   \"\u003cspan color='#ffcc66'\u003e\u003cb\u003e{}\u003c/b\u003e\u003c/span\u003e\",\n                          \"today\":      \"\u003cspan color='#ff6699'\u003e\u003cb\u003e\u003cu\u003e{}\u003c/u\u003e\u003c/b\u003e\u003c/span\u003e\"\n                          }\n              },\n  \"actions\":  {\n              \"on-click-right\": \"mode\",\n              \"on-scroll-up\": \"tz_up\",\n              \"on-scroll-down\": \"tz_down\",\n              \"on-scroll-up\": \"shift_up\",\n              \"on-scroll-down\": \"shift_down\"\n              }\n  }\n```\n\nI still want to change up the colors, but I'm happy with the usefulness of this\nfor now.\n\n![screenshot-2025-07-22T13-01-20-275Z.png](https://dropper.waylonwalker.com/api/file/a4fb1285-2830-4ccd-a974-347d0acf5fd5.png)\n",
      "summary": "Next I ripped a calendar from the docs. When hovered I get a full year calendar, right click gives me only the current month.",
      "date_published": "2025-07-22T08:01:51Z",
      "date_modified": "2025-07-22T08:01:51Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-21-notes/",
      "url": "https://go.waylonwalker.com/2025-07-21-notes/",
      "title": "2025-07-21 Notes",
      "content_html": "\u003cp\u003eIn my adventure to rice out hyprland I set up a sddm theme today, and it looks\nsick by only changing the wallpaper.  I tried out one theme and was pretty\nhappy with the results.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png\" alt=\"screenshot-2025-07-22T01-30-03-700Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-30-03-700Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eAlright, I ended up ricing out some more, looks so much better than the default sddm theme.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png\" alt=\"screenshot-2025-07-22T01-42-51-608Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-42-51-608Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eDefault sddm.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png\" alt=\"screenshot-2025-07-22T01-43-40-329Z.png\"/ data-glightbox=\"description: screenshot-2025-07-22T01-43-40-329Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003cp\u003eMy only hiccup was the wallpaper needed to be in a path relative to the theme\nroot directory and not an absolute path to my home directory.\u003c/p\u003e\n\u003cp\u003eThis command was super helpful for testing greeter themes.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003esddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/eucalyptus-drop\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nIn my adventure to rice out hyprland I set up a sddm theme today, and it looks\nsick by only changing the wallpaper.  I tried out one theme and was pretty\nhappy with the results.\n\n![screenshot-2025-07-22T01-30-03-700Z.png](https://dropper.waylonwalker.com/api/file/f89bc45e-aa10-473e-ae7b-85c0813850c6.png)\n\nAlright, I ended up ricing out some more, looks so much better than the default sddm theme.\n\n![screenshot-2025-07-22T01-42-51-608Z.png](https://dropper.waylonwalker.com/api/file/4bf76e68-9a8a-4aa1-b7e9-2df48e63b963.png)\n\nDefault sddm.\n\n![screenshot-2025-07-22T01-43-40-329Z.png](https://dropper.waylonwalker.com/api/file/f5c2a31a-63e0-4133-b33b-cdad936eb921.png)\n\nMy only hiccup was the wallpaper needed to be in a path relative to the theme\nroot directory and not an absolute path to my home directory.\n\nThis command was super helpful for testing greeter themes.\n\n``` bash\nsddm-greeter-qt6 --test-mode --theme /usr/share/sddm/themes/eucalyptus-drop\n```\n",
      "summary": "In my adventure to rice out hyprland I set up a sddm theme today, and it looks sick by only changing the wallpaper. I tried out one theme and was pretty...",
      "date_published": "2025-07-21T20:30:21Z",
      "date_modified": "2025-07-21T20:30:21Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-19-notes/",
      "url": "https://go.waylonwalker.com/2025-07-19-notes/",
      "title": "2025-07-19 Notes",
      "content_html": "\u003cp\u003eProgress on markata themes, I’m able to get feedback in the terminal.  I’m\nbuilding out a custom color model that will be able to mix and blend colors\nwith intent of this having the ability to work inside of a jinja template, so\nrather than needing to lean into transparency for mixing I can mix colors with\nintent.\u003c/p\u003e\n\u003cp\u003eNow with color mixing we can do subtle changes to things like headings.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png\" alt=\"screenshot-2025-07-20T01-22-16-799Z.png\"/ data-glightbox=\"description: screenshot-2025-07-20T01-22-16-799Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003ch2 id=\"themes-console-printout\"\u003eThemes console printout \u003ca href=\"#themes-console-printout\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre style=\"line-height:1.22; font-family:Menlo,\u0026#39;DejaVu Sans Mono\u0026#39;,consolas,\u0026#39;Courier New\u0026#39;,monospace\"\u003e\u003ccode style=\"font-family:inherit\"\u003e\n\n\u003cspan style=\"color: #f3f4f6; text-decoration-color: #f3f4f6; background-color: #1a1b26; font-weight: bold\"\u003eTokyo-Night Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b7280\"\u003e #6b7280 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4f46e5\"\u003e #4f46e5 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9333ea\"\u003e #9333ea \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9fafb\"\u003e #f9fafb \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5b4fc\"\u003e #a5b4fc \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e0e7ff\"\u003e #e0e7ff \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e5e7eb\"\u003e #e5e7eb \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9ca3af\"\u003e #9ca3af \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1a1b26\"\u003e #1a1b26 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #222436\"\u003e #222436 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4261\"\u003e #3b4261 \u003c/span\u003e\n\n\u003cspan style=\"color: #fecdd3; text-decoration-color: #fecdd3; background-color: #1e1e28; font-weight: bold\"\u003eCatppuccin Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f43f5e\"\u003e #f43f5e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9f1239\"\u003e #9f1239 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9d174d\"\u003e #9d174d \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb7185\"\u003e #fb7185 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c4b5fd\"\u003e #c4b5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e1e28\"\u003e #1e1e28 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2a38\"\u003e #2a2a38 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2c2c3a\"\u003e #2c2c3a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b2b3a\"\u003e #2b2b3a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #403d52\"\u003e #403d52 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4e4e5a\"\u003e #4e4e5a \u003c/span\u003e\n\n\u003cspan style=\"color: #dcfce7; text-decoration-color: #dcfce7; background-color: #2b3339; font-weight: bold\"\u003eEverforest Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #16a34a\"\u003e #16a34a \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #84cc16\"\u003e #84cc16 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f0fdf4\"\u003e #f0fdf4 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a3e635\"\u003e #a3e635 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b3339\"\u003e #2b3339 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #374045\"\u003e #374045 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b444a\"\u003e #3b444a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d484f\"\u003e #3d484f \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #475258\"\u003e #475258 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #517d90\"\u003e #517d90 \u003c/span\u003e\n\n\u003cspan style=\"color: #ffedd5; text-decoration-color: #ffedd5; background-color: #282828; font-weight: bold\"\u003eGruvbox Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #713f12\"\u003e #713f12 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ea580c\"\u003e #ea580c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #eab308\"\u003e #eab308 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9a3412\"\u003e #9a3412 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fef9c3\"\u003e #fef9c3 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #facc15\"\u003e #facc15 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #282828\"\u003e #282828 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3c3836\"\u003e #3c3836 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #504945\"\u003e #504945 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3634\"\u003e #3a3634 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f97316\"\u003e #f97316 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #665c54\"\u003e #665c54 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c6f64\"\u003e #7c6f64 \u003c/span\u003e\n\n\u003cspan style=\"color: #f1f5f9; text-decoration-color: #f1f5f9; background-color: #1f2335; font-weight: bold\"\u003eKanagwa Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e293b\"\u003e #1e293b \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #2563eb\"\u003e #2563eb \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e2e8f0\"\u003e #e2e8f0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e40af\"\u003e #1e40af \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dbeafe\"\u003e #dbeafe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cbd5e1\"\u003e #cbd5e1 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #60a5fa\"\u003e #60a5fa \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2e3e\"\u003e #2a2e3e \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3f52\"\u003e #3a3f52 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #394260\"\u003e #394260 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4b5162\"\u003e #4b5162 \u003c/span\u003e\n\n    \u003cspan style=\"color: #cffafe; text-decoration-color: #cffafe; background-color: #2e3440; font-weight: bold\"\u003eNord Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0891b2\"\u003e #0891b2 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4252\"\u003e #3b4252 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #434c5e\"\u003e #434c5e \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4c566a\"\u003e #4c566a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #06b6d4\"\u003e #06b6d4 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #5e81ac\"\u003e #5e81ac \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6b7d97\"\u003e #6b7d97 \u003c/span\u003e\n\n\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003eSynthwave-\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e84\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #86198f\"\u003e #86198f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #d946ef\"\u003e #d946ef \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdf2f8\"\u003e #fdf2f8 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fbcfe8\"\u003e #fbcfe8 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b21a8\"\u003e #6b21a8 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f5d0fe\"\u003e #f5d0fe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9a8d4\"\u003e #f9a8d4 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c060c0\"\u003e #c060c0 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ff66ff\"\u003e #f6f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e879f9\"\u003e #e879f9 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2d0036\"\u003e #2d0036 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #440055\"\u003e #405 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d0047\"\u003e #3d0047 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #520066\"\u003e #520066 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #8800aa\"\u003e #80a \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n",
      "content_text": "\nProgress on markata themes, I'm able to get feedback in the terminal.  I'm\nbuilding out a custom color model that will be able to mix and blend colors\nwith intent of this having the ability to work inside of a jinja template, so\nrather than needing to lean into transparency for mixing I can mix colors with\nintent.\n\nNow with color mixing we can do subtle changes to things like headings.\n\n![screenshot-2025-07-20T01-22-16-799Z.png](https://dropper.waylonwalker.com/api/file/f0063cc3-ec40-4658-be06-83ad9e8b8589.png)\n\n## Themes console printout\n\n\u003cpre style=\"line-height:1.22; font-family:Menlo,'DejaVu Sans Mono',consolas,'Courier New',monospace\"\u003e\u003ccode style=\"font-family:inherit\"\u003e\n\n\u003cspan style=\"color: #f3f4f6; text-decoration-color: #f3f4f6; background-color: #1a1b26; font-weight: bold\"\u003eTokyo-Night Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b7280\"\u003e #6b7280 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4f46e5\"\u003e #4f46e5 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9333ea\"\u003e #9333ea \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9fafb\"\u003e #f9fafb \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5b4fc\"\u003e #a5b4fc \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #000000\"\u003e #000 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e0e7ff\"\u003e #e0e7ff \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #111827\"\u003e #111827 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e5e7eb\"\u003e #e5e7eb \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f3f4f6\"\u003e #f3f4f6 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #9ca3af\"\u003e #9ca3af \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1a1b26\"\u003e #1a1b26 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #222436\"\u003e #222436 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2f3549\"\u003e #2f3549 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4261\"\u003e #3b4261 \u003c/span\u003e\n\n\u003cspan style=\"color: #fecdd3; text-decoration-color: #fecdd3; background-color: #1e1e28; font-weight: bold\"\u003eCatppuccin Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f43f5e\"\u003e #f43f5e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9f1239\"\u003e #9f1239 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c084fc\"\u003e #c084fc \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9d174d\"\u003e #9d174d \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #881337\"\u003e #881337 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fda4af\"\u003e #fda4af \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fecdd3\"\u003e #fecdd3 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb7185\"\u003e #fb7185 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffe4e6\"\u003e #ffe4e6 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c4b5fd\"\u003e #c4b5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e1e28\"\u003e #1e1e28 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2a38\"\u003e #2a2a38 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2c2c3a\"\u003e #2c2c3a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b2b3a\"\u003e #2b2b3a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #403d52\"\u003e #403d52 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff1f2\"\u003e #fff1f2 \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4e4e5a\"\u003e #4e4e5a \u003c/span\u003e\n\n\u003cspan style=\"color: #dcfce7; text-decoration-color: #dcfce7; background-color: #2b3339; font-weight: bold\"\u003eEverforest Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nmuted \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #16a34a\"\u003e #16a34a \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #84cc16\"\u003e #84cc16 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f0fdf4\"\u003e #f0fdf4 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #166534\"\u003e #166534 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #bbf7d0\"\u003e #bbf7d0 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #14532d\"\u003e #14532d \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dcfce7\"\u003e #dcfce7 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #86efac\"\u003e #86efac \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #4ade80\"\u003e #4ade80 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a3e635\"\u003e #a3e635 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2b3339\"\u003e #2b3339 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #374045\"\u003e #374045 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b444a\"\u003e #3b444a \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d484f\"\u003e #3d484f \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #22c55e\"\u003e #22c55e \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #475258\"\u003e #475258 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #517d90\"\u003e #517d90 \u003c/span\u003e\n\n\u003cspan style=\"color: #ffedd5; text-decoration-color: #ffedd5; background-color: #282828; font-weight: bold\"\u003eGruvbox Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #713f12\"\u003e #713f12 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ea580c\"\u003e #ea580c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #eab308\"\u003e #eab308 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #9a3412\"\u003e #9a3412 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fed7aa\"\u003e #fed7aa \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c2d12\"\u003e #7c2d12 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdba74\"\u003e #fdba74 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffedd5\"\u003e #ffedd5 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fef9c3\"\u003e #fef9c3 \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fb923c\"\u003e #fb923c \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #facc15\"\u003e #facc15 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #282828\"\u003e #282828 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3c3836\"\u003e #3c3836 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #504945\"\u003e #504945 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3634\"\u003e #3a3634 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f97316\"\u003e #f97316 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #665c54\"\u003e #665c54 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fff7ed\"\u003e #fff7ed \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #7c6f64\"\u003e #7c6f64 \u003c/span\u003e\n\n\u003cspan style=\"color: #f1f5f9; text-decoration-color: #f1f5f9; background-color: #1f2335; font-weight: bold\"\u003eKanagwa Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e293b\"\u003e #1e293b \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #2563eb\"\u003e #2563eb \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6366f1\"\u003e #6366f1 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e2e8f0\"\u003e #e2e8f0 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1e40af\"\u003e #1e40af \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #dbeafe\"\u003e #dbeafe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0f172a\"\u003e #0f172a \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cbd5e1\"\u003e #cbd5e1 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f1f5f9\"\u003e #f1f5f9 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #94a3b8\"\u003e #94a3b8 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f8fafc\"\u003e #f8fafc \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #60a5fa\"\u003e #60a5fa \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #818cf8\"\u003e #818cf8 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #1f2335\"\u003e #1f2335 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2a2e3e\"\u003e #2a2e3e \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3a3f52\"\u003e #3a3f52 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #394260\"\u003e #394260 \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4b5162\"\u003e #4b5162 \u003c/span\u003e\n\n    \u003cspan style=\"color: #cffafe; text-decoration-color: #cffafe; background-color: #2e3440; font-weight: bold\"\u003eNord Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\naccent \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #0891b2\"\u003e #0891b2 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #3b82f6\"\u003e #3b82f6 \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #155e75\"\u003e #155e75 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #a5f3fc\"\u003e #a5f3fc \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #164e63\"\u003e #164e63 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #67e8f9\"\u003e #67e8f9 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #cffafe\"\u003e #cffafe \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #22d3ee\"\u003e #22d3ee \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #93c5fd\"\u003e #93c5fd \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2e3440\"\u003e #2e3440 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3b4252\"\u003e #3b4252 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #434c5e\"\u003e #434c5e \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #4c566a\"\u003e #4c566a \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #06b6d4\"\u003e #06b6d4 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #5e81ac\"\u003e #5e81ac \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ecfeff\"\u003e #ecfeff \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #6b7d97\"\u003e #6b7d97 \u003c/span\u003e\n\n\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003eSynthwave-\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e84\u003c/span\u003e\u003cspan style=\"color: #ff00ff; text-decoration-color: #ff00ff; background-color: #2d0036; font-weight: bold\"\u003e Theme\u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eLight Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nheading \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #86198f\"\u003e #86198f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #d946ef\"\u003e #d946ef \u003c/span\u003e\nbackground \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fdf2f8\"\u003e #fdf2f8 \u003c/span\u003e\nsurface \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fce7f3\"\u003e #fce7f3 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #fbcfe8\"\u003e #fbcfe8 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #6b21a8\"\u003e #6b21a8 \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f5d0fe\"\u003e #f5d0fe \u003c/span\u003e\nselection_text \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #581c87\"\u003e #581c87 \u003c/span\u003e\nborder \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f9a8d4\"\u003e #f9a8d4 \u003c/span\u003e\n\n\u003cspan style=\"font-weight: bold\"\u003eDark Theme\u003c/span\u003e\ntext \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\nmuted \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #c060c0\"\u003e #c060c0 \u003c/span\u003e\nheading \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ff66ff\"\u003e #f6f \u003c/span\u003e\naccent \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #f472b6\"\u003e #f472b6 \u003c/span\u003e\naccent_alt \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #e879f9\"\u003e #e879f9 \u003c/span\u003e\nbackground \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #2d0036\"\u003e #2d0036 \u003c/span\u003e\nsurface \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #440055\"\u003e #405 \u003c/span\u003e\ncode_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #3d0047\"\u003e #3d0047 \u003c/span\u003e\nblockquote_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #520066\"\u003e #520066 \u003c/span\u003e\nblockquote_border \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ec4899\"\u003e #ec4899 \u003c/span\u003e\nlink_hover \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nselection_bg \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #8800aa\"\u003e #80a \u003c/span\u003e\nselection_text \u003cspan style=\"color: #000000; text-decoration-color: #000000; background-color: #ffffff\"\u003e #fff \u003c/span\u003e\nborder \u003cspan style=\"color: #ffffff; text-decoration-color: #ffffff; background-color: #ff00ff\"\u003e #f0f \u003c/span\u003e\n\u003c/code\u003e\u003c/pre\u003e\n",
      "summary": "Progress on markata themes, I'm able to get feedback in the terminal. I'm building out a custom color model that will be able to mix and blend colors with...",
      "date_published": "2025-07-19T17:12:15Z",
      "date_modified": "2025-07-19T17:12:15Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-18-notes/",
      "url": "https://go.waylonwalker.com/2025-07-18-notes/",
      "title": "2025-07-18 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"/fc/\" class=\"wikilink\" data-title=\"fc\" data-description=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\" data-date=\"2025-07-18\" data-preview=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\"\u003efc\u003c/a\u003e is pretty great.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eMarkata themes progress, setting up some visual feedback in the terminal for\nmyself to show themes.  Trying to think through how to blend colors to get more\nautomated variations and to get good colors without needing to use\ntransparancy, I was running into issues already trying to lean into\ntransparancy with text bleed.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png\" alt=\"screenshot-2025-07-19T01-16-55-168Z.png\"/ data-glightbox=\"description: screenshot-2025-07-19T01-16-55-168Z.png\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n\u003ca href=\"/fc/\" class=\"wikilink\" data-title=\"fc\" data-description=\"I am a linux user through and through. Desktop, server, vms, containers, everything except my phone is linux. With this I spend a lot of time in the...\" data-date=\"2025-07-18\"\u003efc\u003c/a\u003e is pretty great.\n\n---\n\nMarkata themes progress, setting up some visual feedback in the terminal for\nmyself to show themes.  Trying to think through how to blend colors to get more\nautomated variations and to get good colors without needing to use\ntransparancy, I was running into issues already trying to lean into\ntransparancy with text bleed.\n\n![screenshot-2025-07-19T01-16-55-168Z.png](https://dropper.waylonwalker.com/api/file/d069e806-e3c7-4549-a1c0-12d8a25c1394.png)\n",
      "summary": "fc is pretty great.",
      "date_published": "2025-07-18T19:27:18Z",
      "date_modified": "2025-07-18T19:27:18Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-17-notes/",
      "url": "https://go.waylonwalker.com/2025-07-17-notes/",
      "title": "2025-07-17 Notes",
      "content_html": "\u003cp\u003eTIL \u003ca href=\"/pygments-htmlformatter/\" class=\"wikilink\" data-title=\"pygments htmlformatter\" data-description=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\" data-date=\"2025-07-17\" data-preview=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\"\u003epygments htmlformatter\u003c/a\u003e is a big win for \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\" data-preview=\"This post is a work in progress.\"\u003emarkata\u003c/a\u003e, didn’t have a\nchance to take notes yesterday, but I’m really working on templates and themes.\nIt’s becoming more important for me as I get more users, i.e. family members\nblog sites up and running.  No one wants to look default, they all want to look\nunique, learning how to change out themes like this is a good win.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eStill working on searchcraft integrations and holy shit is it fast.  I’m\nsearching and scrubbing through logs out of cloudwatch at 2ms/search rather\nthan their dogwater 30s+ broken ui not loading, not showing me the logs I want.\nThis is not even apples to apples, cloudwatch chokes on one job worth of logs,\nI’ve got 500 jobs of logs and searchcraft is eating them up like nothin.\u003c/p\u003e\n",
      "content_text": "\nTIL \u003ca href=\"/pygments-htmlformatter/\" class=\"wikilink\" data-title=\"pygments htmlformatter\" data-description=\"I\u0026#39;ve been a long user of pygments, it\u0026#39;s been the thing that injects with funny little class names like and into the code blocks of my website. I\u0026#39;ve even gone...\" data-date=\"2025-07-17\"\u003epygments htmlformatter\u003c/a\u003e is a big win for \u003ca href=\"/markata/\" class=\"wikilink\" data-title=\"markata\" data-description=\"This post is a work in progress.\" data-date=\"2024-05-30\"\u003emarkata\u003c/a\u003e, didn't have a\nchance to take notes yesterday, but I'm really working on templates and themes.\nIt's becoming more important for me as I get more users, i.e. family members\nblog sites up and running.  No one wants to look default, they all want to look\nunique, learning how to change out themes like this is a good win.\n\n---\n\nStill working on searchcraft integrations and holy shit is it fast.  I'm\nsearching and scrubbing through logs out of cloudwatch at 2ms/search rather\nthan their dogwater 30s+ broken ui not loading, not showing me the logs I want.\nThis is not even apples to apples, cloudwatch chokes on one job worth of logs,\nI've got 500 jobs of logs and searchcraft is eating them up like nothin.\n",
      "summary": "TIL pygments-htmlformatter is a big win for markata, didn't have a chance to take notes yesterday, but I'm really working on templates and themes. It's...",
      "date_published": "2025-07-17T19:54:05Z",
      "date_modified": "2025-07-17T19:54:05Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-15-notes/",
      "url": "https://go.waylonwalker.com/2025-07-15-notes/",
      "title": "2025-07-15 Notes",
      "content_html": "\u003cp\u003eI’m working on hyprland, one thing I am missing from my awesomewm setup is rofi\nlist all running windows.  Sometimes I put a browser instance in a different\nworkspace and I cant find it, especially if I’ve full screened something over\ntop of it.\u003c/p\u003e\n\u003ch2 id=\"first-pass\"\u003efirst pass \u003ca href=\"#first-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003elook for brave and go to it or make one\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/usr/bin/env bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eaddr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"se\"\u003e\\\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"se\"\u003e\u003c/span\u003e\t\u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == \u0026#34;brave-browser\u0026#34;) | .address\u0026#39;\u003c/span\u003e \u003cspan class=\"p\"\u003e|\u003c/span\u003e head -n1\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[\u003c/span\u003e -n \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Focus the existing browser window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"nv\"\u003e$addr\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Launch a new browser window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\tbrave --password-store\u003cspan class=\"o\"\u003e=\u003c/span\u003ebasic \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"second-pass\"\u003esecond pass \u003ca href=\"#second-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eIf there are more than one cycle between them.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Get current window address\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_addr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl activewindow -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Get all Brave window addresses\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == \u0026#34;brave-browser\u0026#34;) | .address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${#\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e 0\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# No Brave windows, launch it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\tbrave --password-store\u003cspan class=\"o\"\u003e=\u003c/span\u003ebasic \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Find the index of the current window in brave_windows\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e i in \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e!brave_windows[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$current_addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nb\"\u003ebreak\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# If we\u0026#39;re already in a Brave window, switch to the next one (wrap around)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003ecurrent_index !\u003cspan class=\"o\"\u003e=\u003c/span\u003e -1\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nv\"\u003enext_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$((\u003c/span\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ecurrent_index \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e%\u003c/span\u003e num_windows\u003cspan class=\"k\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$next_index\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Not currently in a Brave window — focus the first one\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ebrave_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[0]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"third-pass\"\u003ethird pass \u003ca href=\"#third-pass\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eGeneralize it so that I can make keybindings for any app that I can figure out\nthe classname of and provide a start command.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e#!/usr/bin/env bash\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"cp\"\u003e\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eset\u003c/span\u003e -euo pipefail\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Args\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003eclass\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003e1\u003c/span\u003e\u003cspan class=\"k\"\u003e:-\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nb\"\u003eshift\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003estart_command\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$*\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$class\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e||\u003c/span\u003e -z \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$start_command\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eecho\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Usage: \u003c/span\u003e\u003cspan class=\"nv\"\u003e$0\u003c/span\u003e\u003cspan class=\"s2\"\u003e \u0026lt;class\u0026gt; \u0026lt;start-command...\u0026gt;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Current active window\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_addr\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl activewindow -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r \u003cspan class=\"s1\"\u003e\u0026#39;.address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# All windows with matching class\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=(\u003c/span\u003e\u003cspan class=\"k\"\u003e$(\u003c/span\u003ehyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq -r --arg class \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$class\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"s1\"\u003e\u0026#39;.[] | select(.class == $class) | .address\u0026#39;\u003c/span\u003e\u003cspan class=\"k\"\u003e)\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"si\"\u003e${#\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003e\u003cspan class=\"nv\"\u003enum_windows\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e 0\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# None running — start it\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eeval\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$start_command\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"p\"\u003e\u0026amp;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nb\"\u003eexit\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# See if currently focused window is in matching list\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e-1\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efor\u003c/span\u003e i in \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"p\"\u003e!matching_windows[@]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003edo\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e[[\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e==\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"nv\"\u003e$current_addr\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e \u003cspan class=\"o\"\u003e]]\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nv\"\u003ecurrent_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"nv\"\u003e$i\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\t\u003cspan class=\"nb\"\u003ebreak\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edone\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# Cycle to next window if already in one\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eif\u003c/span\u003e \u003cspan class=\"o\"\u003e((\u003c/span\u003ecurrent_index !\u003cspan class=\"o\"\u003e=\u003c/span\u003e -1\u003cspan class=\"o\"\u003e))\u003c/span\u003e\u003cspan class=\"p\"\u003e;\u003c/span\u003e \u003cspan class=\"k\"\u003ethen\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"nv\"\u003enext_index\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"k\"\u003e$((\u003c/span\u003e\u003cspan class=\"o\"\u003e(\u003c/span\u003ecurrent_index \u003cspan class=\"o\"\u003e+\u003c/span\u003e \u003cspan class=\"m\"\u003e1\u003c/span\u003e\u003cspan class=\"o\"\u003e)\u003c/span\u003e \u003cspan class=\"o\"\u003e%\u003c/span\u003e num_windows\u003cspan class=\"k\"\u003e))\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nv\"\u003e$next_index\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003eelse\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\t\u003cspan class=\"c1\"\u003e# Not in one — focus first\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\thyprctl dispatch focuswindow address:\u003cspan class=\"si\"\u003e${\u003c/span\u003e\u003cspan class=\"nv\"\u003ematching_windows\u003c/span\u003e\u003cspan class=\"p\"\u003e[0]\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003efi\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"finding-the-classname\"\u003efinding the classname \u003ca href=\"#finding-the-classname\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e❯ hyprctl clients -j \u003cspan class=\"p\"\u003e|\u003c/span\u003e jq \u003cspan class=\"p\"\u003e|\u003c/span\u003e grep kitty\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;class\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;initialClass\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"s2\"\u003e\u0026#34;initialTitle\u0026#34;\u003c/span\u003e: \u003cspan class=\"s2\"\u003e\u0026#34;kitty\u0026#34;\u003c/span\u003e,\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nI'm working on hyprland, one thing I am missing from my awesomewm setup is rofi\nlist all running windows.  Sometimes I put a browser instance in a different\nworkspace and I cant find it, especially if I've full screened something over\ntop of it.\n\n\n## first pass \n\nlook for brave and go to it or make one\n\n``` bash\n#!/usr/bin/env bash\n\naddr=$(hyprctl clients -j | jq -r \\\n\t'.[] | select(.class == \"brave-browser\") | .address' | head -n1)\n\nif [ -n \"$addr\" ]; then\n\t# Focus the existing browser window\n\thyprctl dispatch focuswindow address:$addr\nelse\n\t# Launch a new browser window\n\tbrave --password-store=basic \u0026\nfi\n```\n\n## second pass\n\nIf there are more than one cycle between them.\n\n``` bash\n# Get current window address\ncurrent_addr=$(hyprctl activewindow -j | jq -r '.address')\n\n# Get all Brave window addresses\nbrave_windows=($(hyprctl clients -j | jq -r '.[] | select(.class == \"brave-browser\") | .address'))\n\nnum_windows=${#brave_windows[@]}\n\nif ((num_windows == 0)); then\n\t# No Brave windows, launch it\n\tbrave --password-store=basic \u0026\n\texit\nfi\n\n# Find the index of the current window in brave_windows\ncurrent_index=-1\nfor i in \"${!brave_windows[@]}\"; do\n\tif [[ \"${brave_windows[$i]}\" == \"$current_addr\" ]]; then\n\t\tcurrent_index=$i\n\t\tbreak\n\tfi\ndone\n\n# If we're already in a Brave window, switch to the next one (wrap around)\nif ((current_index != -1)); then\n\tnext_index=$(((current_index + 1) % num_windows))\n\thyprctl dispatch focuswindow address:${brave_windows[$next_index]}\nelse\n\t# Not currently in a Brave window — focus the first one\n\thyprctl dispatch focuswindow address:${brave_windows[0]}\nfi\n```\n\n## third pass\n\nGeneralize it so that I can make keybindings for any app that I can figure out\nthe classname of and provide a start command.\n\n``` bash\n#!/usr/bin/env bash\n\nset -euo pipefail\n\n# Args\nclass=\"${1:-}\"\nshift\nstart_command=\"$*\"\n\nif [[ -z \"$class\" || -z \"$start_command\" ]]; then\n\techo \"Usage: $0 \u003cclass\u003e \u003cstart-command...\u003e\"\n\texit 1\nfi\n\n# Current active window\ncurrent_addr=$(hyprctl activewindow -j | jq -r '.address')\n\n# All windows with matching class\nmatching_windows=($(hyprctl clients -j | jq -r --arg class \"$class\" '.[] | select(.class == $class) | .address'))\n\nnum_windows=${#matching_windows[@]}\n\nif ((num_windows == 0)); then\n\t# None running — start it\n\teval \"$start_command\" \u0026\n\texit\nfi\n\n# See if currently focused window is in matching list\ncurrent_index=-1\nfor i in \"${!matching_windows[@]}\"; do\n\tif [[ \"${matching_windows[$i]}\" == \"$current_addr\" ]]; then\n\t\tcurrent_index=$i\n\t\tbreak\n\tfi\ndone\n\n# Cycle to next window if already in one\nif ((current_index != -1)); then\n\tnext_index=$(((current_index + 1) % num_windows))\n\thyprctl dispatch focuswindow address:${matching_windows[$next_index]}\nelse\n\t# Not in one — focus first\n\thyprctl dispatch focuswindow address:${matching_windows[0]}\nfi\n\n```\n\n## finding the classname\n\n``` bash\n❯ hyprctl clients -j | jq | grep kitty\n\n    \"class\": \"kitty\",\n    \"initialClass\": \"kitty\",\n    \"initialTitle\": \"kitty\",\n```\n",
      "summary": "I'm working on hyprland, one thing I am missing from my awesomewm setup is rofi list all running windows. Sometimes I put a browser instance in a different...",
      "date_published": "2025-07-15T10:57:37Z",
      "date_modified": "2025-07-15T10:57:37Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-12-notes/",
      "url": "https://go.waylonwalker.com/2025-07-12-notes/",
      "title": "2025-07-12 Notes",
      "content_html": "\u003cp\u003eStarting the polkit agent for hyperland arch to handle permission elevation for\ndesktop applications.\u003c/p\u003e\n\u003cdiv class=\"admonition error\"\u003e\n\u003cp class=\"admonition-title\"\u003eError\u003c/p\u003e\n\u003cp\u003eAn error occurred while accessing ‘bazzite-nvidia_razorcrest’, the system\nresponded: Cannot request authentication for this action. The PolicyKit\nauthentication system appears to be not available.: Not authorized to\nperform operation\u003c/p\u003e\n\u003c/div\u003e\n\u003cpre\u003e\u003ccode class=\"language-config\"\u003eexec-once = waybar \u0026amp; hyprpaper \u0026amp; $terminal \u0026amp; polkit \u0026amp; swaync \u0026amp; /usr/lib/polkit-kde-authentication-agent-1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e!!! GIPPITY\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e🧠 Why this happens:\nPolkit handles permission elevation for desktop apps.\n\nDolphin uses udisks2 to mount drives, which asks Polkit for permission.\n\nIf you don\u0026#39;t run a Polkit agent, you won\u0026#39;t be able to authorize mount actions from the GUI.\n\u003c/code\u003e\u003c/pre\u003e\n\u003chr/\u003e\n\u003cdiv class=\"admonition error\"\u003e\n\u003cp class=\"admonition-title\"\u003eError\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e❯ just build\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eError: configure storage: kernel does not support overlay fs: ‘overlay’ is not supported over btrfs at “/home/waylon/.local/share/containers/storage/overlay”: backing file system is unsupported for this graph driver\nerror: Recipe build failed with exit code 125\u003c/p\u003e\n\u003c/div\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S fuse-overlayfs\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003emkdir -p ~/.config/containers\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003envim ~/.config/containers/storage.conf\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003edriver\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;overlay\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e[\u003c/span\u003e\u003cspan class=\"nx\"\u003estorage\u003c/span\u003e\u003cspan class=\"p\"\u003e.\u003c/span\u003e\u003cspan class=\"nx\"\u003eoptions\u003c/span\u003e\u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nx\"\u003emount_program\u003c/span\u003e \u003cspan class=\"p\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/usr/bin/fuse-overlayfs\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003eWyatt and I tried 3 times to beat the ice tower on our second run of Cat Quest\nIII and failed, its tough.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4\" type=\"video/mp4\"\u003eice-tower-fail.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nStarting the polkit agent for hyperland arch to handle permission elevation for\ndesktop applications.\n\n!!! error \n\n    An error occurred while accessing 'bazzite-nvidia_razorcrest', the system\n    responded: Cannot request authentication for this action. The PolicyKit\n    authentication system appears to be not available.: Not authorized to\n    perform operation\n\n``` config\nexec-once = waybar \u0026 hyprpaper \u0026 $terminal \u0026 polkit \u0026 swaync \u0026 /usr/lib/polkit-kde-authentication-agent-1\n```\n\n!!! GIPPITY\n\n    🧠 Why this happens:\n    Polkit handles permission elevation for desktop apps.\n\n    Dolphin uses udisks2 to mount drives, which asks Polkit for permission.\n\n    If you don't run a Polkit agent, you won't be able to authorize mount actions from the GUI.\n\n---\n\n\n!!! error\n    ❯ just build\n    Error: configure storage: kernel does not support overlay fs: 'overlay' is not supported over btrfs at \"/home/waylon/.local/share/containers/storage/overlay\": backing file system is unsupported for this graph driver\n    error: Recipe build failed with exit code 125\n\n``` bash\nparu -S fuse-overlayfs\n```\n\n``` bash\nmkdir -p ~/.config/containers\nnvim ~/.config/containers/storage.conf\n```\n\n``` toml\n[storage]\ndriver = \"overlay\"\n\n[storage.options]\nmount_program = \"/usr/bin/fuse-overlayfs\"\n```\n\n---\n\nWyatt and I tried 3 times to beat the ice tower on our second run of Cat Quest\nIII and failed, its tough.\n\n![ice-tower-fail.mp4](https://dropper.waylonwalker.com/api/file/c3050a32-b914-489d-9bf3-c9a1adf2bc46.mp4)\n",
      "summary": "Starting the polkit agent for hyperland arch to handle permission elevation for desktop applications.",
      "date_published": "2025-07-12T15:19:20Z",
      "date_modified": "2025-07-12T15:19:20Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-11-notes/",
      "url": "https://go.waylonwalker.com/2025-07-11-notes/",
      "title": "2025-07-11 Notes",
      "content_html": "\u003cp\u003eContinuing my exploration of \u003ca href=\"https://searchcraft.com\"\u003eSearchcraft\u003c/a\u003e I loaded\nall of my blog into it.  It fully posted, indexed, and had my content ready for\nsearch in a literal blink.  It was like the experience of python devs running\nruff for the first time, and having the no way you just did that experience.\u003c/p\u003e\n\u003cp\u003eOk so semantic search is so freaking cool, does not compare to fuzzy search at\nall.  I don’t have to include parts of the title or something to find a post.\nI don’t have to spell things right, I dont even have to get the thing right.  I\ncan ask “create a mycraft server in kibinerers” and it takes me to the post\nabout running Minecraft in containers.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003easyncio\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"nn\"\u003ehttpx\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;http://0.0.0.0:8000\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;creation_test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"k\"\u003edef\u003c/span\u003e \u003cspan class=\"nf\"\u003eupload_documents\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"p\"\u003e):\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"n\"\u003edocuments\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eslug\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003etitle\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;body\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003econtent\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"k\"\u003efor\u003c/span\u003e \u003cspan class=\"n\"\u003epost\u003c/span\u003e \u003cspan class=\"ow\"\u003ein\u003c/span\u003e \u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eposts\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"k\"\u003easync\u003c/span\u003e \u003cspan class=\"k\"\u003ewith\u003c/span\u003e \u003cspan class=\"n\"\u003ehttpx\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eClient\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e \u003cspan class=\"k\"\u003eas\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eurl\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/index/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/documents\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003eurl\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"o\"\u003e=\u003c/span\u003e\u003cspan class=\"n\"\u003edocuments\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eraise_for_status\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Upload:\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003eresponse\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"c1\"\u003e# Commit changes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_url\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"sa\"\u003ef\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eSEARCHCRAFT_URL\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/index/\u003c/span\u003e\u003cspan class=\"si\"\u003e{\u003c/span\u003e\u003cspan class=\"n\"\u003eINDEX_NAME\u003c/span\u003e\u003cspan class=\"si\"\u003e}\u003c/span\u003e\u003cspan class=\"s2\"\u003e/commit\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eclient\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003epost\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003ecommit_url\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003eraise_for_status\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nb\"\u003eprint\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"s2\"\u003e\u0026#34;Committed:\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e \u003cspan class=\"n\"\u003ecommit_resp\u003c/span\u003e\u003cspan class=\"o\"\u003e.\u003c/span\u003e\u003cspan class=\"n\"\u003ejson\u003c/span\u003e\u003cspan class=\"p\"\u003e())\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"kn\"\u003efrom\u003c/span\u003e \u003cspan class=\"nn\"\u003emarkata\u003c/span\u003e \u003cspan class=\"kn\"\u003eimport\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e \u003cspan class=\"n\"\u003eMarkata\u003c/span\u003e\u003cspan class=\"p\"\u003e()\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"n\"\u003eupload_documents\u003c/span\u003e\u003cspan class=\"p\"\u003e(\u003c/span\u003e\u003cspan class=\"n\"\u003em\u003c/span\u003e\u003cspan class=\"p\"\u003e)\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\nContinuing my exploration of [Searchcraft](https://searchcraft.com) I loaded\nall of my blog into it.  It fully posted, indexed, and had my content ready for\nsearch in a literal blink.  It was like the experience of python devs running\nruff for the first time, and having the no way you just did that experience.\n\nOk so semantic search is so freaking cool, does not compare to fuzzy search at\nall.  I don't have to include parts of the title or something to find a post.\nI don't have to spell things right, I dont even have to get the thing right.  I\ncan ask \"create a mycraft server in kibinerers\" and it takes me to the post\nabout running Minecraft in containers.\n\n``` python\nimport asyncio\nimport httpx\n\nSEARCHCRAFT_URL = \"http://0.0.0.0:8000\"\nINDEX_NAME = \"creation_test\"\n\n\ndef upload_documents(m):\n    documents = [\n        {\n            \"id\": post.slug,\n            \"title\": post.title,\n            \"body\": post.content,\n        }\n        for post in m.posts\n    ]\n\n    async with httpx.Client() as client:\n        url = f\"{SEARCHCRAFT_URL}/index/{INDEX_NAME}/documents\"\n        response = client.post(url, json=documents)\n        response.raise_for_status()\n        print(\"Upload:\", response.json())\n\n        # Commit changes\n        commit_url = f\"{SEARCHCRAFT_URL}/index/{INDEX_NAME}/commit\"\n        commit_resp = client.post(commit_url)\n        commit_resp.raise_for_status()\n        print(\"Committed:\", commit_resp.json())\n\n\nfrom markata import Markata\n\nm = Markata()\nupload_documents(m)\n```\n\n\n",
      "summary": "Continuing my exploration of Searchcraft I loaded all of my blog into it. It fully posted, indexed, and had my content ready for search in a literal blink....",
      "date_published": "2025-07-11T08:06:23Z",
      "date_modified": "2025-07-11T08:06:23Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-10-notes/",
      "url": "https://go.waylonwalker.com/2025-07-10-notes/",
      "title": "2025-07-10 Notes",
      "content_html": "\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=VFlLRH3ifcM\"\u003e\u003cimg class=\"glightbox\" src=\"https://i.ytimg.com/vi/VFlLRH3ifcM/maxresdefault.jpg\" alt=\"Lightspeed search built for devs | Don MacKinnon on the future of content search\"/ data-glightbox=\"description: Lightspeed search built for devs | Don MacKinnon on the future of content search\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSpent the day working through \u003ca href=\"https://www.youtube.com/watch?v=VFlLRH3ifcM\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003eLightspeed search built for devs | Don MacKinnon\non the future of content search\u003c/a\u003e,\nthis episode of the changelog about searchcraft.  It was really interesting,\u003c/p\u003e\n\u003cp\u003eThen found this demo loading all of wikipedia and getting really sick search\nresults out of it!\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://www.youtube.com/watch?v=SjuPn6_yl2s\" style=\"--favicon-url: url(\u0026#39;/assets/markata/link-avatars/www.youtube.com.png\u0026#39;);\" data-favicon=\"/assets/markata/link-avatars/www.youtube.com.png\" class=\"has-avatar  has-avatar-before\"\u003ehttps://www.youtube.com/watch?v=SjuPn6_yl2s\u003c/a\u003e\u003c/p\u003e\n\u003chr/\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003epodman run --name searchcraft -p 8000:8000 searchcraftinc/searchcraft-core:latest\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# create an index\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e --data \u003cspan class=\"s1\"\u003e\u0026#39;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;index\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;name\u0026#34;: \u0026#34;creation_test\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;search_fields\u0026#34;: [\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    ],\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;fields\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;id\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;required\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;indexed\u0026#34;: false\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;created_at\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;datetime\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;indexed\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;active\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;bool\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;rating\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;f64\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;reviews\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;u64\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;fast\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;tags\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;multi\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;category\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;facet\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;formats\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;facet\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;multi\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;url\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;type\u0026#34;: \u0026#34;text\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e        \u0026#34;stored\u0026#34;: true\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    },\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;weight_multipliers\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: 2,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: 0.7\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e}\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/index\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# put a document in the index\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e   --data \u003cspan class=\"s1\"\u003e\u0026#39;{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;document\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;id\u0026#34;: \u0026#34;doc-001\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;created_at\u0026#34;: \u0026#34;2024-07-10T12:00:00Z\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;title\u0026#34;: \u0026#34;Hello World\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;body\u0026#34;: \u0026#34;This is your first Searchcraft document!\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;url\u0026#34;: \u0026#34;https://searchcraft.com\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;active\u0026#34;: true,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;rating\u0026#34;: 4.5,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;reviews\u0026#34;: 3,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;tags\u0026#34;: [\u0026#34;demo\u0026#34;, \u0026#34;test\u0026#34;],\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;category\u0026#34;: \u0026#34;/demo\u0026#34;,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;formats\u0026#34;: [\u0026#34;/pdf\u0026#34;, \u0026#34;/markdown\u0026#34;]\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/document/creation_test\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e# commit the changes\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST http://0.0.0.0:8000/index/creation_test/commit\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"c1\"\u003e## search\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003ecurl -X POST -H \u003cspan class=\"s2\"\u003e\u0026#34;Content-Type: application/json\u0026#34;\u003c/span\u003e --data \u003cspan class=\"s1\"\u003e\u0026#39;{\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;limit\u0026#34;: 5,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;offset\u0026#34;: 0,\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  \u0026#34;query\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    \u0026#34;fuzzy\u0026#34;: {\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e      \u0026#34;ctx\u0026#34;: \u0026#34;searchcraft\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e  }\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"s1\"\u003e}\u0026#39;\u003c/span\u003e http://0.0.0.0:8000/index/creation_test/search\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003cp\u003eresults\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;status\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e200\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"nt\"\u003e\u0026#34;data\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;hits\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;doc\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;doc-001\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;formats\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;/pdf\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;/markdown\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;active\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"kc\"\u003etrue\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;reviews\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e3\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;tags\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"s2\"\u003e\u0026#34;test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;created_at\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;2024-07-10T12:00:00Z\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;category\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;rating\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e4.5\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;title\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;Hello World\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"nt\"\u003e\u0026#34;body\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;This is your first Searchcraft document!\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;document_id\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;13964682816361504761\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;score\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.90137744\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;source_index\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;creation_test\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e],\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;time_taken\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mf\"\u003e0.000679577\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"nt\"\u003e\u0026#34;facets\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;category\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/demo\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"nt\"\u003e\u0026#34;formats\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"p\"\u003e[\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/markdown\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e},\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e{\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;path\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"s2\"\u003e\u0026#34;/pdf\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e,\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e            \u003cspan class=\"nt\"\u003e\u0026#34;count\u0026#34;\u003c/span\u003e\u003cspan class=\"p\"\u003e:\u003c/span\u003e \u003cspan class=\"mi\"\u003e1\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e          \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e        \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e      \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e    \u003cspan class=\"p\"\u003e]\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e  \u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"p\"\u003e}\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e",
      "content_text": "\n[![Lightspeed search built for devs | Don MacKinnon on the future of content search](https://i.ytimg.com/vi/VFlLRH3ifcM/maxresdefault.jpg)](https://www.youtube.com/watch?v=VFlLRH3ifcM)\n\nSpent the day working through [Lightspeed search built for devs | Don MacKinnon\non the future of content search](https://www.youtube.com/watch?v=VFlLRH3ifcM),\nthis episode of the changelog about searchcraft.  It was really interesting,\n\nThen found this demo loading all of wikipedia and getting really sick search\nresults out of it!\n\n\u003chttps://www.youtube.com/watch?v=SjuPn6_yl2s\u003e\n\n---\n\n``` bash\npodman run --name searchcraft -p 8000:8000 searchcraftinc/searchcraft-core:latest\n```\n\n``` bash\n# create an index\ncurl -X POST -H \"Content-Type: application/json\" --data '\n{\n  \"index\": {\n    \"name\": \"creation_test\",\n    \"search_fields\": [\n      \"title\",\n      \"body\"\n    ],\n    \"fields\": {\n      \"id\": {\n        \"type\": \"text\",\n        \"required\": true,\n        \"stored\": true,\n        \"indexed\": false\n      },\n      \"created_at\": {\n        \"type\": \"datetime\",\n        \"fast\": true,\n        \"stored\": true,\n        \"indexed\": true\n      },\n      \"title\": {\n        \"type\": \"text\",\n        \"stored\": true\n      },\n      \"body\": {\n        \"type\": \"text\",\n        \"stored\": true\n      },\n      \"active\": {\n        \"type\": \"bool\",\n        \"fast\": true,\n        \"stored\": true\n      },\n      \"rating\": {\n        \"type\": \"f64\",\n        \"stored\": true,\n        \"fast\": true\n      },\n      \"reviews\": {\n        \"type\": \"u64\",\n        \"stored\": true,\n        \"fast\": true\n      },\n      \"tags\": {\n        \"type\": \"text\",\n        \"stored\": true,\n        \"multi\": true\n      },\n      \"category\": {\n        \"type\": \"facet\",\n        \"stored\": true\n      },\n      \"formats\": {\n        \"type\": \"facet\",\n        \"stored\": true,\n        \"multi\": true\n      }\n      \"url\": {\n        \"type\": \"text\",\n        \"stored\": true\n      }\n    },\n    \"weight_multipliers\": {\n      \"title\": 2,\n      \"body\": 0.7\n    }\n\n  }\n}\n' http://0.0.0.0:8000/index\n\n\n# put a document in the index\ncurl -X POST -H \"Content-Type: application/json\"   --data '{\n    \"document\": {\n      \"id\": \"doc-001\",\n      \"created_at\": \"2024-07-10T12:00:00Z\",\n      \"title\": \"Hello World\",\n      \"body\": \"This is your first Searchcraft document!\",\n      \"url\": \"https://searchcraft.com\",\n      \"active\": true,\n      \"rating\": 4.5,\n      \"reviews\": 3,\n      \"tags\": [\"demo\", \"test\"],\n      \"category\": \"/demo\",\n      \"formats\": [\"/pdf\", \"/markdown\"]\n    }\n  }' http://0.0.0.0:8000/document/creation_test\n\n# commit the changes\ncurl -X POST http://0.0.0.0:8000/index/creation_test/commit\n\n## search\ncurl -X POST -H \"Content-Type: application/json\" --data '{\n  \"limit\": 5,\n  \"offset\": 0,\n  \"query\": {\n    \"fuzzy\": {\n      \"ctx\": \"searchcraft\"\n    }\n  }\n}' http://0.0.0.0:8000/index/creation_test/search\n```\n\nresults\n\n``` json\n{\n  \"status\": 200,\n  \"data\": {\n    \"hits\": [\n      {\n        \"doc\": {\n          \"id\": \"doc-001\",\n          \"formats\": [\n            \"/pdf\",\n            \"/markdown\"\n          ],\n          \"active\": true,\n          \"reviews\": 3,\n          \"tags\": [\n            \"demo\",\n            \"test\"\n          ],\n          \"created_at\": \"2024-07-10T12:00:00Z\",\n          \"category\": \"/demo\",\n          \"rating\": 4.5,\n          \"title\": \"Hello World\",\n          \"body\": \"This is your first Searchcraft document!\"\n        },\n        \"document_id\": \"13964682816361504761\",\n        \"score\": 0.90137744,\n        \"source_index\": \"creation_test\"\n      }\n    ],\n    \"count\": 1,\n    \"time_taken\": 0.000679577,\n    \"facets\": [\n      {\n        \"category\": [\n          {\n            \"path\": \"/demo\",\n            \"count\": 1\n          }\n        ]\n      },\n      {\n        \"formats\": [\n          {\n            \"path\": \"/markdown\",\n            \"count\": 1\n          },\n          {\n            \"path\": \"/pdf\",\n            \"count\": 1\n          }\n        ]\n      }\n    ]\n  }\n}\n```\n",
      "summary": "[](https://www.youtube.com/watch?v=VFlLRH3ifcM)",
      "date_published": "2025-07-10T20:10:58Z",
      "date_modified": "2025-07-10T20:10:58Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-09-notes/",
      "url": "https://go.waylonwalker.com/2025-07-09-notes/",
      "title": "2025-07-09 Notes",
      "content_html": "\u003cp\u003eWhat a nightmare this glossary plugin turns out to be, it broke my site.  I had\nit really close, then one more change asked for to the llm, an LGTM and did not\nlook close, it rewrote the whole thing and started rendering markdown with its\nown renderer not my configured markdown renderer.  Its close to working not but\nmoved to post_render and using \u003ca href=\"/html/\" class=\"glossary-term\" title=\"HTML (HyperText Markup Language) is the standard markup language used to create and design documents on the World Wide Web. It structures web content by...\"\u003ehtml\u003c/a\u003e/beautifulsoup rather than the raw markdown.\u003c/p\u003e\n",
      "content_text": "\n\nWhat a nightmare this glossary plugin turns out to be, it broke my site.  I had\nit really close, then one more change asked for to the llm, an LGTM and did not\nlook close, it rewrote the whole thing and started rendering markdown with its\nown renderer not my configured markdown renderer.  Its close to working not but\nmoved to post_render and using html/beautifulsoup rather than the raw markdown.\n",
      "summary": "What a nightmare this glossary plugin turns out to be, it broke my site. I had it really close, then one more change asked for to the llm, an LGTM and did...",
      "date_published": "2025-07-09T08:14:47Z",
      "date_modified": "2025-07-09T08:14:47Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-08-notes/",
      "url": "https://go.waylonwalker.com/2025-07-08-notes/",
      "title": "2025-07-08 Notes",
      "content_html": "\u003cp\u003eSetting up the hyprland run launcher to not be case sensitive.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003e\u003cspan class=\"nv\"\u003e$menu\u003c/span\u003e \u003cspan class=\"o\"\u003e=\u003c/span\u003e wofi --show drun --insensitive\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n",
      "content_text": "\nSetting up the hyprland run launcher to not be case sensitive.\n\n\n``` bash\n$menu = wofi --show drun --insensitive\n```\n\n---\n",
      "summary": "Setting up the hyprland run launcher to not be case sensitive.",
      "date_published": "2025-07-08T11:27:07Z",
      "date_modified": "2025-07-08T11:27:07Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-07-notes/",
      "url": "https://go.waylonwalker.com/2025-07-07-notes/",
      "title": "2025-07-07 Notes",
      "content_html": "\u003cp\u003eleaning into the rediculous rainbow borders instead of getting rid of them in hyprland.\u003c/p\u003e\n\u003cpre\u003e\u003ccode class=\"language-conf\"\u003ecol.active_border = rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) 45deg\ncol.inactive_border = rgba(111111aa) rgba(2a2a2aaa) rgba(111111aa) rgba(fafafaaa) rgba(fafafaaa) rgba(fafafaaa) rgba(111111aa) rgba(2a2a2aaa) 90deg\n\u003c/code\u003e\u003c/pre\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nleaning into the rediculous rainbow borders instead of getting rid of them in hyprland.\n\n``` conf\ncol.active_border = rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) rgba(ff77ffcc) rgba(33ccffee) rgba(aa00ffee) rgba(00ff99ee) 45deg\ncol.inactive_border = rgba(111111aa) rgba(2a2a2aaa) rgba(111111aa) rgba(fafafaaa) rgba(fafafaaa) rgba(fafafaaa) rgba(111111aa) rgba(2a2a2aaa) 90deg\n```\n\n![image](https://dropper.waylonwalker.com/api/file/abe9fec8-ce1c-4fdd-8975-2667f87df9ba.webp)\n",
      "summary": "leaning into the rediculous rainbow borders instead of getting rid of them in hyprland.",
      "date_published": "2025-07-07T23:13:36Z",
      "date_modified": "2025-07-07T23:13:36Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-06-notes/",
      "url": "https://go.waylonwalker.com/2025-07-06-notes/",
      "title": "2025-07-06 Notes",
      "content_html": "\u003ch2 id=\"cat-quest-iii\"\u003eCat Quest III \u003ca href=\"#cat-quest-iii\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4\" class=\"glightbox-link\"\u003e\u003cvideo autoplay loop muted playsinline controls preload=\"metadata\" class=\"md-video\" poster=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.webp?h=675\u0026w=1200\"\u003e\u003csource src=\"https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4\" type=\"video/mp4\"\u003egetting-ship-key.mp4\u003c/video\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003ehyprland volume control, I wasn’t sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S pavucontrol\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003ethinking about \u003ca href=\"/virtual-environment/\" class=\"glossary-term\" title=\"Virtual Environment is term for a sandboxed environment commonly associated with the python programming language. If you are installing any sort of python...\"\u003evirtual environment\u003c/a\u003e\u003c/p\u003e\n",
      "content_text": "\n## Cat Quest III\n\n![getting-ship-key.mp4](https://dropper.waylonwalker.com/api/file/b9aeb047-6e64-44f9-b067-0dadd951ad83.mp4)\n\n---\n\nhyprland volume control, I wasn't sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.\n\n``` bash\nparu -S pavucontrol\n```\n\n---\n\nthinking about virtual environment\n",
      "summary": "hyprland volume control, I wasn't sure if I needed something specific for wayland/pipewire, nope pavucontrol just works.",
      "date_published": "2025-07-06T09:43:22Z",
      "date_modified": "2025-07-06T09:43:22Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-05-notes/",
      "url": "https://go.waylonwalker.com/2025-07-05-notes/",
      "title": "2025-07-05 Notes",
      "content_html": "\u003chr/\u003e\n\u003cp\u003eI might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eGot \u003ccode\u003eswaync\u003c/code\u003e working in hyprland.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003ehyprland does not load its plugins by default, I don’t see anything in the\ndocs, but it appears that you need to \u003ccode\u003eexec-once = hyprpm reload\u003c/code\u003e to reload all\nenabled plugins on startup.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003efix broken waybar fonts\u003c/p\u003e\n\u003cpre class=\"chroma\"\u003e\u003ccode\u003e\u003cspan class=\"line\"\u003e\u003cspan class=\"cl\"\u003eparu -S ttf-font-awesome\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003chr/\u003e\n\u003cp\u003eCat Quest III progress with Wyatt and a new save with Ayla\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003ch2 id=\"markata-glossary\"\u003eMarkata Glossary \u003ca href=\"#markata-glossary\" class=\"heading-anchor\"\u003e#\u003c/a\u003e\u003c/h2\u003e\n\u003cp\u003eWorked on my glossary ui and how it works with markata.  I think I finally got\nsomething that autodetects glossary terms and swaps them with a hoverable\nelement that displays the definition.  getting the definition to remain on the\nscreen at all times and not fall of when the term is on one side of the page or\nanother was quite tricky.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\n---\n\nI might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.\n\n![image](https://dropper.waylonwalker.com/api/file/0870a551-75a7-4547-a8a5-6fa1aad30716.webp)\n\n---\n\nGot `swaync` working in hyprland.\n\n![image](https://dropper.waylonwalker.com/api/file/86aa4818-934c-4730-83b6-f26c247380f6.webp)\n\n---\n\nhyprland does not load its plugins by default, I don't see anything in the\ndocs, but it appears that you need to `exec-once = hyprpm reload` to reload all\nenabled plugins on startup.\n\n---\n\nfix broken waybar fonts\n\n``` bash\nparu -S ttf-font-awesome\n```\n\n---\n\nCat Quest III progress with Wyatt and a new save with Ayla\n\n![image](https://dropper.waylonwalker.com/api/file/5ce8b10d-2755-4dd7-8049-77149dae8ccd.webp)\n\n---\n\n## Markata Glossary\n\nWorked on my glossary ui and how it works with markata.  I think I finally got\nsomething that autodetects glossary terms and swaps them with a hoverable\nelement that displays the definition.  getting the definition to remain on the\nscreen at all times and not fall of when the term is on one side of the page or\nanother was quite tricky.\n\n![image](https://dropper.waylonwalker.com/api/file/d4b3c75b-4d3c-465c-9368-bf66abb7f381.webp)\n",
      "summary": "I might have gpg setup right for kdewallet on hyprland, and I just timed out the request before.",
      "date_published": "2025-07-05T10:35:50Z",
      "date_modified": "2025-07-05T10:35:50Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    },
    {
      "id": "https://go.waylonwalker.com/2025-07-04-notes/",
      "url": "https://go.waylonwalker.com/2025-07-04-notes/",
      "title": "2025-07-04 Notes",
      "content_html": "\u003cp\u003eFailed to \u003ca href=\"/gpg-setup-for-kdewallet/\" class=\"wikilink\" data-title=\"gpg setup for kdewallet\" data-description=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\" data-date=\"2025-07-04\" data-preview=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\"\u003egpg setup for kdewallet\u003c/a\u003e correctly on hyprland, brave still\ncomplains.  Maybe someday I’ll figure it out and complete the post.\u003c/p\u003e\n\u003chr/\u003e\n\u003cp\u003eI installed hyprpm plugins.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eFailed to fix Wyatt’s bazzite install, I think he is going to move forward with\nhyprland as his main.  Somehow after trying to dual boot hyprland and bazzite\nhe ended up with bazzite dumping him into recovery mode on every boot and\nsaying the root account is locked.\u003c/p\u003e\n\u003cp\u003eI did learn how to mount and chroot into a bazzite partition that is running\nbtrfs and rpm-ostree.  I’m still only partly sure what I’m doing so not really\nworth a post about.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n\u003chr/\u003e\n\u003cp\u003eContinued full detail on our Van, if its going to last we need to keep up on\nit, Car Washes are expencive, aint got no extra $$ in this economy, goddamn I\nsound like an old man.\u003c/p\u003e\n\u003cfigure\u003e\n\u003ca href=\"https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp\" class=\"glightbox-link\"\u003e\u003cimg class=\"glightbox\" src=\"https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp\" alt=\"image\"/ data-glightbox=\"description: image\"\u003e\u003c/a\u003e\n\u003c/figure\u003e\n",
      "content_text": "\nFailed to \u003ca href=\"/gpg-setup-for-kdewallet/\" class=\"wikilink\" data-title=\"gpg setup for kdewallet\" data-description=\"I\u0026#39;m trying to setup gpg for kdewallet on archlinux with hyprland so that brave shuts up. I\u0026#39;ve tried this, but brave still complains about the wallet setup,...\" data-date=\"2025-07-04\"\u003egpg setup for kdewallet\u003c/a\u003e correctly on hyprland, brave still\ncomplains.  Maybe someday I'll figure it out and complete the post.\n\n---\n\nI installed hyprpm plugins.\n\n![image](https://dropper.waylonwalker.com/api/file/2725367a-5810-4503-a95d-52898ec6afd9.webp)\n\n---\n\nFailed to fix Wyatt's bazzite install, I think he is going to move forward with\nhyprland as his main.  Somehow after trying to dual boot hyprland and bazzite\nhe ended up with bazzite dumping him into recovery mode on every boot and\nsaying the root account is locked.\n\nI did learn how to mount and chroot into a bazzite partition that is running\nbtrfs and rpm-ostree.  I'm still only partly sure what I'm doing so not really\nworth a post about.\n\n![image](https://dropper.waylonwalker.com/api/file/45e02cfe-8c36-4173-9b48-81a3b7ab3889.webp)\n\n---\n\nContinued full detail on our Van, if its going to last we need to keep up on\nit, Car Washes are expencive, aint got no extra $$ in this economy, goddamn I\nsound like an old man.\n\n![image](https://dropper.waylonwalker.com/api/file/e9c7cdb8-5f1e-40d2-b6d3-600f6a878588.webp)\n",
      "summary": "Failed to gpg-setup-for-kdewallet correctly on hyprland, brave still complains. Maybe someday I'll figure it out and complete the post.",
      "date_published": "2025-07-04T16:30:04Z",
      "date_modified": "2025-07-04T16:30:04Z",
      "authors": [
        {
          "name": "Waylon Walker",
          "url": "https://waylonwalker.com",
          "avatar": "/8bitcc.png"
        }
      ]
    }
  ]
}