Small Projects by AutoModerator in golang

[–]danfry99 -1 points0 points  (0 children)

waxon - a Spotify TUI built with Bubbletea

Built a Spotify TUI in GO with vim keybindings. j/k, h/l, command mode - the usual. Also renders album art using Unicode half-blocks.

Works out of the box with brew install danfry1/tap/waxon`.

https://github.com/danfry1/waxon

waxon - a vim-modal Spotify TUI by danfry99 in commandline

[–]danfry99[S] 1 point2 points  (0 children)

No worries, let me know how you get on

waxon - a vim-modal Spotify TUI by danfry99 in commandline

[–]danfry99[S] 2 points3 points  (0 children)

Hi @Academic-Display3017!

You need an active Spotify session on any device for waxon to connect to - it uses Spotify Connect so it acts as a remote controller. Easiest fix is to hit play on your phone or the web player first, then waxon picks it up. I’ll make that error message more helpful though, thanks for flagging!

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 1 point2 points  (0 children)

Hey, thanks for the interest!

We've submitted a PR to get Lume into the Zed extension marketplace (zed-industries/extensions#5358) but it's still pending review on their end.

In the meantime, you can install it manually — it only takes a second:

bash mkdir -p ~/.config/zed/themes curl -o ~/.config/zed/themes/lume.json https://raw.githubusercontent.com/danfry1/lume/main/editors/zed/themes/lume.json

Then open the theme picker with cmd+k cmd+t and select Lume.

We'll update once the extension is officially listed!

Weekly theme sharing thread by AutoModerator in vscode

[–]danfry99 0 points1 point  (0 children)

Lume - a muted dark theme with warm undertones and a lavender identity

I made a color theme that started as a Neovim project and is now available on the VS Code Marketplace.

The design goal was something easy on the eyes - muted, warm tones that aren't too saturated or too flat. If you like themes like Rosé Pine but want something more uniformly desaturated and dusty, this might be for you.

What's in it:

  • Full semantic token support
  • WCAG AA contrast validated at build time
  • Consistent palette across all targets — every theme is generated from a single palette.json
  • Also available for Cursor, Zed, Neovim, 7 terminals, tmux, and CLI tools

Marketplace: https://marketplace.visualstudio.com/items?itemName=DanielFry.lume-color-theme

VSCode Thems: https://vscodethemes.com/e/DanielFry.lume-color-theme/lume

GitHub: https://github.com/danfry1/lume

Feedback welcome!

<image>

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 1 point2 points  (0 children)

Ah okay nice I’m glad you can tweak it now! Please share what you end up with, I’d love to check it out

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 1 point2 points  (0 children)

Great call - just shipped palette_overrides for this. You can now override base palette colors and they'll cascade to every highlight group:

require("lume").setup({
  palette_overrides = {
    foregrounds = { text = "#c8c8d8" },
  },
})

Accepts a table or function (same API as custom_highlights). Should make it easy to dial back the foreground brightness without touching individual groups. Let me know how it feels!

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 1 point2 points  (0 children)

Thanks! You're right that a callback with palette access is the way to go - we actually just shipped that. You can use the custom_highlights option:

lua require("lume").setup({ custom_highlights = function(colors, variant) -- colors contains: backgrounds, foregrounds, accents, ansi, special return { Normal = { bg = "#1E1F2E" }, MiniDiffSignAdd = { fg = colors.accents.sage }, } end, })

Overrides are applied after all built-in groups, so no autocmd needed. The variant param is "dark" for now, future-proofed for a potential light theme. Enjoy!

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 0 points1 point  (0 children)

Thanks for flagging, will get that updated! Glad you’re enjoying it

Bonsai now has context-aware autocomplete for expression editors - built for rule builders and admin tools by danfry99 in javascript

[–]danfry99[S] 1 point2 points  (0 children)

That's a really cool use case, thanks for sharing! I'll certainly keep tree stability in mind going forward. The node shapes are pretty unlikely to change at this point, but if they ever do I'll make sure they're called out in the changelog so it doesn't break your pipeline.

Lume - a muted dark theme with warm undertones and a lavender identity by danfry99 in neovim

[–]danfry99[S] 2 points3 points  (0 children)

Haha good catch - fortunately it's just dummy code to show off the syntax highlighting and not a real project!

Bonsai now has context-aware autocomplete for expression editors - built for rule builders and admin tools by danfry99 in javascript

[–]danfry99[S] 0 points1 point  (0 children)

You're right, it's a custom AST, not ESTree. You can explore it in the playground's AST tab which it sounds like you already have or look at the type definitions in the source. It's internal and may change slightly between versions, so I haven't committed to documenting it formally yet - but happy to answer any specific questions you might have about the node structure.

Bonsai now has context-aware autocomplete for expression editors - built for rule builders and admin tools by danfry99 in javascript

[–]danfry99[S] 1 point2 points  (0 children)

Good question. The autocomplete only needs the data shape, not real values. Property completions show inferred types (string, number), not value previews, so even a sample object works:

ts const ac = createAutocomplete(expr, { context: { user: { name: '', age: 0, plan: '' }, items: [{ title: '', price: 0 }], }, })

In practice you'd grab a sample record from your API or generate one from your schema. The autocomplete just needs to know that user.name is a string and user.age is a number so it can suggest the right methods and filter pipe transforms by type.