Today I Learned

Short TIL posts

1852 posts latest post 2026-05-13
Publishing rhythm
Apr 2026 | 23 posts
Just starred windsurf.nvim [1] by Exafunction [2]. It’s an exciting project with a lot to offer. A native neovim extension for Codeium References: [1]: https://github.com/Exafunction/windsurf.nvim [2]: https://github.com/Exafunction
I’m really excited about codeium.nvim [1], an amazing project by Exafunction [2]. It’s worth exploring! A native neovim extension for Codeium References: [1]: https://github.com/Exafunction/codeium.nvim [2]: https://github.com/Exafunction
Pin versions of dependencies · Issue #2200 · Kozea/WeasyPrint Stack trace: pdf = HTML(file_obj=html, base_url='/').write_pdf() File "/service/venv/lib/python3.9/site-packages/weasyprint/__init__.py", line 252, in write_pdf self.render(font_config, counter_sty... GitHub · github.com [1] weazyprint was throwing me some errors, turns out that it’s currently not compatible with the latest pydyf package. my error TypeError: __init__() takes 1 positional argument but 3 were give I fixed it by locking in pydyf at 0.8.0 pydyf==0.8.0 Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/Kozea/WeasyPrint/issues/2200 [2]: /thoughts/
These are SICK, gonna be using this a lot. (Thanks @evantravers 🥰.) · jesseleite/dotfiles@4979400 My dotfiles 💾. Contribute to jesseleite/dotfiles development by creating an account on GitHub. GitHub · github.com [1] helix inspired treesitter select outwards and select inwards. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/jesseleite/dotfiles/commit/49794006cbc9dc0e743925ec1a7122514d7148be [2]: /thoughts/
add helix · WaylonWalker/devtainer@71b9b29 🐳 (dotfiles) My personal development docker container base image - add helix · WaylonWalker/devtainer@71b9b29 GitHub · github.com [1] Helix officially made it in my devtainer. I am installing the binary right out of the github release with wget and tar. I can’t use installer because their release format does not match what installer is looking for. : I also move the runtime over to /usr/local/share/helix/runtime. : I use /usr/local/bin rather than my home directory as it works better with distrobox. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/WaylonWalker/devtainer/commit/71b9b29baf14f3714601d022ca12c3417437395b [2]: /thoughts/
[1] Here are some really great keybinds to make helix vim-like. It feels very antithetical to use this whole sale and forego the helix motion-verb language, but there are some nuggets like G in here that I find useful. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: /static/https://github.com/LGUG2Z/helix-vim/blob/master/config.toml [2]: /thoughts/
Support regex substitution command · Issue #2232 · helix-editor/helix Support regex substitution, comparable to vim :s or VSCode search & replace. I propose supporting regex replacements for selection s, files/, and the workspace scopes + /. This could be acc... GitHub · github.com [1] helix multicursor has the ability to do what vims :s/hello/world/gc does by using ) to cycle through cursors, and n to discard unwanted cursors. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/issues/2232#issuecomment-1250371051 [2]: /thoughts/
Support regex substitution command · Issue #2232 · helix-editor/helix Support regex substitution, comparable to vim :s or VSCode search & replace. I propose supporting regex replacements for selection s, files/, and the workspace scopes + /. This could be acc... GitHub · github.com [1] Here is a really good vim substitute with regex capture groups, saving this one for a rainy day. * Reading 1: This is a title to a link * Reading 2: This is another title :%s/\v(: )(.+)$/\1\[\2\]\( * Reading 1: [This is a title to a link]( * Reading 2: [This is another title]( Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/issues/2232#issuecomment-1228632218 [2]: /thoughts/
Support regex substitution command · Issue #2232 · helix-editor/helix Support regex substitution, comparable to vim :s or VSCode search & replace. I propose supporting regex replacements for selection s, files/, and the workspace scopes + /. This could be acc... GitHub · github.com [1] Interesting take on refactoring the whole codebase from your editor. In this thread the-mikedavis suggests multicursor as a replacement for substitute, and later in the thread takes the side that larger workspace wide edits are outside the scope of helix and he would reach for a refactoring tool like fastmod [2] to do the job. Note This post is a thought [3]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/issues/2232#issuecomment-1107644740 [2]: https://github.com/facebookincubator/fastmod?tab=readme-ov-file [3]: /thoughts/
I like facebookincubator’s [1] project fastmod [2]. A fast partial replacement for the codemod tool References: [1]: https://github.com/facebookincubator [2]: https://github.com/facebookincubator/fastmod
Support regex substitution command · Issue #2232 · helix-editor/helix Support regex substitution, comparable to vim :s or VSCode search & replace. I propose supporting regex replacements for selection s, files/, and the workspace scopes + /. This could be acc... GitHub · github.com [1] I am a heavy user off substitutions in vim, helix does not substitutions built in, rather it leans on multicursor support. to replace every instance of hello with world in vim :%s/hello/world/g<CR> and in helix you would %shello<CR>cworld<ESC>, Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/issues/2232 [2]: /thoughts/
Background Image | Wallpaper · Issue #3059 · helix-editor/helix Describe your feature request Hey ! It'd be cool to have the ability to set a background-image on supported terminals (like kitty). Like on IntelliJ: Here is an example of what it'd be on helix: GitHub · github.com [1] How to make helix themes transparent. You can make any built-in theme transparent in helix with one line, a few extras and you can make all the pop ups, help menus and status line trransparant as well. mkdir -p ~/.config/helix/themes hx :o ~/.config/helix/themes/dracula_transparant.toml # ~/.config/helix/themes/dracula_transparant.toml inherits = "dracula" "ui.background" = { fg = "foreground" } "ui.menu" = { fg = "white" } "ui.popup" = { fg = "white" } "ui.window" = { fg = "white" } "ui.help" = { fg = "light-gray" } "ui.statusline" = { fg = "gray" } "ui.statusline.inactive" = { fg = "black" } :config-edit # ~/.config/helix/config.toml theme="dracula_transparant" Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/issues/3059 [2]: /thoughts/
help on setting up ruff formatter + ruff + pyright please help on setting up ruff formatter + ruff + pyright please Reddit · reddit.com [1] This post shows how to set up multiple LSP’s in helix, the example uses pyright and ruff-lsp for python. Add this to your ~/.config/helix/languages.toml a [[language]] name = "python" auto-format = true language-servers = [ {name = "pyright"}, {name = "ruff-lsp"}, ] [language-server.pyright] command = "pyright-langserver" args = ["--stdio"] config = {} [language-server.ruff-lsp] command = "ruff-lsp" args = [] config = {} Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://www.reddit.com/r/HelixEditor/comments/17gglgm/help_on_setting_up_ruff_formatter_ruff_pyright/ [2]: /thoughts/
configuring pylsp · helix-editor helix · Discussion #6623 Hi, I'm trying to make some modifications to the default pylsp settings as I do not strictly follow PEP in my personal projects. I googled some examples but I cannot get them to work, so I am wonde... GitHub · github.com [1] How to set your python formatter to black with helix. The following snippet lays out how to set the helix editor to auto-format on save with the black formatter. [[language]] name = "python" language-servers = ["pylsp"] [language-server.pylsp.config.pylsp] plugins.pyls_mypy.enabled = true plugins.pyls_mypy.live_mode = true plugins.flake8.maxLineLength = 88 plugins.pycodestyle.maxLineLength = 88 [language.formatter] command = "black" args = ["--line-length", "88", "--quiet", "-"] Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://github.com/helix-editor/helix/discussions/6623 [2]: /thoughts/
Database Remote-Copy Tool For SQLite (draft) Neat new SQLite utilities often show up in branches of the SQLite repository. Here's a new one from last month: sqlite3-rsync, providing tools for efficiently creating and updating copies of … Simon Willison’s Weblog · simonwillison.net [1] Simon shared a really cool new utility tool for sqlite ispired by rsync. It checks hashes of each sqlite page and syncs pages. So if nothing in the database has changed it will only require 0.5% the bandwidth as a copy would. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://simonwillison.net/2024/Oct/4/sqlite-rsync/ [2]: /thoughts/
External Link X (formerly Twitter) · x.com [1] porta-john design update, working on moving the seams to line up with an edge to eliminate long noticable seams. These seams are required because I don’t have a printer big enough to print this in one shot. hotswaps are going in. I’m getting really excited for hotswaps as they will make keebs more repairable, and users can self change out the switches if they want. I can also pre-build them ready to go, and drop in switches at the time of order. I did learn today that these are hyper specific to gateron, damn all these switch manufacturers and their special pinouts. Last thing I gotta make more room for wiring the microcontroller and running wires out to the rows and columns, my first prototype build took waay to long to build. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://x.com/XTicklemykeys/status/1840104423508312273 [2]: /thoughts/
External Link X (formerly Twitter) · x.com [1] This low profile design almost made it to 9. I think blending together the custom brim to make them all one piece really made the final difference here. The custom brim is two layers thick, only touching on the top layer making it very easy to peel off, but gives better adhesion to the bed, and does not loose one like this print did. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://x.com/XTicklemykeys/status/1841646323939864871 [2]: /thoughts/
External Link X (formerly Twitter) · x.com [1] really excited for how these caps of my own design are working out. Having the extra control is the first time I’ve been able to print more than one at a time without some hacky gcode. I’ve got a set of nine here that I have printed 4 times without a single failure. Note This post is a thought [2]. It’s a short note that I make about someone else’s content online #thoughts References: [1]: https://x.com/XTicklemykeys/status/1841860763960377732 [2]: /thoughts/