<script data-pm-proxy="intercept"></script><?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[.dotfiles]]></title><description><![CDATA[Developer setups, editors, and dotfiles.]]></description><link>https://dotfiles.substack.com</link><image><url>https://substackcdn.com/image/fetch/$s_!NVkZ!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa9ac4150-cf44-4405-837b-e997de2093c3_1280x1280.png</url><title>.dotfiles</title><link>https://dotfiles.substack.com</link></image><generator>Substack</generator><lastBuildDate>Tue, 01 Sep 2026 04:55:05 GMT</lastBuildDate><atom:link href="/__u/dotfiles.substack.com/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Adib Hanna]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[dotfiles@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[dotfiles@substack.com]]></itunes:email><itunes:name><![CDATA[Adib Hanna]]></itunes:name></itunes:owner><itunes:author><![CDATA[Adib Hanna]]></itunes:author><googleplay:owner><![CDATA[dotfiles@substack.com]]></googleplay:owner><googleplay:email><![CDATA[dotfiles@substack.com]]></googleplay:email><googleplay:author><![CDATA[Adib Hanna]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[51 - Amal Lalgi]]></title><description><![CDATA[Amal Lalgi is a student from Kerala, India, who is preparing to move to Austria to pursue a bachelor&#8217;s degree in Computer Science and Artificial Intelligence.]]></description><link>https://dotfiles.substack.com/p/51-amal-lalgi</link><guid isPermaLink="false">https://dotfiles.substack.com/p/51-amal-lalgi</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Fri, 17 Jul 2026 14:45:22 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!L-Z2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://amallalgi.is-a.dev/">Amal Lalgi</a> is a student from Kerala, India, who is preparing to move to Austria to pursue a bachelor&#8217;s degree in Computer Science and Artificial Intelligence.</p><p>He prefers clean, minimalist setups with no unnecessary redundancy, a principle reflected in his dotfiles configuration. He enjoys coding, although his academic responsibilities and personal life often limit the time he can dedicate to it.</p><p>Amal created and actively maintains <a href="https://github.com/theamallalgi/shownamer">Shownamer</a>, a lightweight Python-based CLI tool that retrieves metadata for locally stored TV shows, movies, and other media files, with a primary focus on batch renaming. He is currently improving its functionality and stability while avoiding unnecessary complexity and feature bloat.</p><p>He also created <a href="https://github.com/theamallalgi/zitchdog">Zitchdog</a>, a purple-based Neovim theme that supports many of the tools commonly used by developers, including terminals and CLI applications. Although he has had less time to maintain it recently, it remains one of his active projects.</p><p>Amal has also worked on several private client projects through freelancing. Despite having limited time for personal development work, he continues to maintain Shownamer and Zitchdog because they are part of his own workflow. Whenever he encounters an issue while using them, he makes an effort to fix it.</p><h2>Neovim &amp; Terminal</h2><p>For his code editor, Amal uses Neovim. He migrated to it a few years ago after becoming frustrated with VS Code. Before that, he had used Sublime Text for quite some time.</p><p>Even then, he was interested in joining the Neovim community, so he tried sideloading Neovim despite not yet knowing how to use it. He simply wanted to explore it, and it eventually became one of the best decisions he had made. Over time, Neovim gradually became his daily driver.</p><p>Amal has now been using Neovim for around three years and continues to learn new things from creators such as <a href="https://www.youtube.com/@teej_dv">TJ DeVries</a>. He is also a fan of creators like <a href="https://www.youtube.com/c/devaslife">Takuya Matsuyama</a> and <a href="https://www.youtube.com/@adibhanna">Adib Hanna</a>, particularly the way they design and organize their development workflows. He even once asked Adib for his wallpaper on Reddit.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!L-Z2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!L-Z2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:389148,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/207434610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!L-Z2!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9de8c936-5968-4332-bb21-29118854076e_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!_F-f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 424w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 848w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!_F-f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88790,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/207434610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 424w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 848w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!_F-f!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F86917357-b2e6-4612-96ac-cb26438d1ed2_1456x819.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>My workflow is very Git dependent, and as of late I try to shove tmux into wherever I can (I wish to master the defaults, as I will be working on a lot of servers in the future). I use lazygit for my Git workflow management as of late, as it gets the job done much faster than manually running git commit -m &#8220;foo&#8221;. I use delta for diff highlighting in lazygit, and a custom config that does not stray far from the defaults for tmux. Ever since I switched to Kitty (terminal), I had stopped using tmux, since the manual tabs and sessions in Kitty seemed to work really well for my workflow, but I am trying to go back to tmux lately.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!UZiN!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!UZiN!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:436900,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/207434610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!UZiN!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3b8e49ab-2d15-4d6a-a4c4-8f06512aa859_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p><span>I usually only use tiled windows, which is one of the main reasons I switched to Hyprland. I cannot seem to go back to a floating setup, and I am starting to despise booting into Windows, and I guess I know why.</span><br><span>Still, sign in pop ups and such look too strange while being tiled, so I have also set up a fairly good looking floating setup.</span></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!pgGq!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!pgGq!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:530312,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/207434610?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!pgGq!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1bc426a5-2a0f-4ed6-8bae-03510f5932a1_1920x1080.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favorite Tools</strong></h2><ul><li><p><a href="https://hypr.land/">Hyprland</a> &#8211; A dynamic Wayland compositor used as the primary desktop environment.</p></li><li><p><a href="https://sw.kovidgoyal.net/kitty/">Kitty</a> &#8211; The main terminal emulator, although <a href="https://alacritty.org/">Alacritty</a> remains a favorite.</p></li><li><p><a href="https://apps.gnome.org/Nautilus/">Nautilus</a> &#8211; The file manager of choice; nothing quite matches the clean GNOME aesthetic.</p></li><li><p><a href="https://github.com/Alexays/Waybar">Waybar</a> and <a href="https://github.com/ErikReider/SwayNotificationCenter">SwayNC</a> &#8211; Used for the system status bar and notification center.</p></li><li><p><a href="https://helium.computer/">Helium</a> &#8211; The browser of choice and a strongly preferred alternative to <a href="https://www.mozilla.org/firefox/">Firefox</a>.</p></li><li><p><a href="https://www.zsh.org/">Zsh</a> and <a href="https://www.nushell.sh/">Nushell</a> &#8211; Zsh is the primary shell, with Nushell used occasionally.</p></li><li><p><a href="https://ohmyposh.dev/">Oh My Posh</a> &#8211; Used to configure the shell prompt instead of <a href="https://starship.rs/">Starship</a> or <a href="https://ohmyz.sh/">Oh My Zsh</a>.</p></li><li><p><a href="https://mpv.io/">MPV</a> &#8211; A lightweight and highly configurable media player.</p></li><li><p><a href="https://neovim.io/">Neovim</a> &#8211; The only code editor in the workflow.</p></li><li><p><a href="https://www.nerdfonts.com/font-downloads">KodeMono Nerd Font</a> and the <a href="https://developer.apple.com/fonts/">San Francisco font family</a> &#8211; The primary fonts used throughout the setup.</p></li></ul><h2>Dotfiles</h2><p>More information about Amal&#8217;s configuration is available in his <a href="https://github.com/theamallalgi/dotfiles">dotfiles repository</a>. He has also included high-quality images of his setup with the email.</p><p>There is no dedicated installation process or setup script. The configuration files are stored using the same directory structure they use on his system. However, the repository is compatible with GNU Stow.</p><h2><strong>Favorite Books</strong></h2><h3><strong>Technical</strong></h3><ul><li><p><a href="https://amzn.to/4yn5jOB">The Rust Programming Language, 3rd Edition</a></p></li></ul><h2><strong>Non-Technical</strong></h2><ul><li><p><a href="https://www.goodreads.com/en/book/show/263114.Necromancer">Necromancer by Gordon R. Dickson</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[50 - Shivam Nagar]]></title><description><![CDATA[Shivam Nagar is a Computer Science student from Ghaziabad, India.]]></description><link>https://dotfiles.substack.com/p/50-shivam-nagar</link><guid isPermaLink="false">https://dotfiles.substack.com/p/50-shivam-nagar</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Tue, 07 Jul 2026 13:36:11 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!o34F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Shivam Nagar is a Computer Science student from Ghaziabad, India.</p><p>His journey with customization started back in school when he was using Windows. He spent hours browsing the r/unixporn subreddit and was fascinated by the amazing setups people shared. Seeing everyone&#8217;s unique workflows made him want to build one of his own, so he eventually switched to Linux and started experimenting with desktop customization. He never reached the level of many experienced users, but he learned a lot and enjoyed the process.</p><p>When he started college, he moved to a Mac. That&#8217;s when he discovered the macOS customization community through YouTube. Linkarzu was the creator who inspired him the most, and many ideas from his videos became the foundation of his setup.</p><p>It took him around two weeks to put everything together. He customized almost every part of his development environment, from his terminal and shell to Neovim and the command-line tools he uses every day. The only thing he never felt the need to change was the macOS menu bar. He actually prefers Apple&#8217;s default menu bar because he finds it clean, simple, and easy to use.</p><h2>Neovim &amp; Terminal</h2><p>Shivam started using Neovim because he wanted to learn it after seeing so many developers use it. Since he was a complete beginner, he learned mostly through YouTube. Creators like Linkarzu, ThePrimeagen, and TypeCraft helped him understand the basics, and he gradually picked up the tools and plugins they used. He did not go too deep into customization, but over time he built a setup that fits his workflow.</p><p>For his terminal, he tried Alacritty, Kitty, and WezTerm before settling on Ghostty. It felt like the perfect balance of speed and simplicity. Everything from the font rendering to image support works great in it.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!o34F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!o34F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3698470,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!o34F!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F125c2b57-c6e8-41c2-8606-17dd91ad6ef3_3420x2122.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!JuA6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!JuA6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4895868,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!JuA6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F718edf44-e093-4ae6-9edb-2c53f6b6f4c6_3420x2122.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!cy98!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!cy98!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4446848,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cy98!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2cc7800d-d636-4839-85f9-81b2e6b55e32_3420x2122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!dWsk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!dWsk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5775831,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!dWsk!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e298779-03fb-44ad-b68f-91c5e2f0133a_3420x2122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!89lc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!89lc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4112787,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!89lc!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F62a609a1-a36d-459f-a122-8f5fddcad95e_3420x2122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2_JJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2_JJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2333306,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/205768047?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 424w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 848w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2_JJ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F837a52c4-720c-4298-9461-7972457cdc08_3420x2122.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><strong><a href="https://neovim.io/">Neovim</a></strong> &#8212; Used for coding, writing, and note-taking in a keyboard-driven environment.</p></li><li><p><strong><a href="https://ghostty.org/">Ghostty</a></strong> &#8212; A lightweight terminal emulator that keeps the setup fast and simple.</p></li><li><p><strong><a href="https://github.com/junegunn/fzf">fzf</a></strong> &#8212; A fuzzy finder used to quickly search files, commands, and history.</p></li><li><p><strong><a href="https://github.com/tmux/tmux">tmux</a></strong> &#8212; A terminal multiplexer for managing multiple terminal sessions and panes.</p></li><li><p><strong><a href="https://lazygit.dev/">Lazygit</a></strong> &#8212; A terminal UI for Git that makes commits, branches, and diffs easier to manage.</p></li><li><p><strong><a href="https://starship.rs/">Starship</a></strong> &#8212; A minimal shell prompt that shows useful context without adding clutter.</p></li><li><p><strong><a href="https://eza.rocks/">eza</a></strong> &#8212; A modern replacement for <code>ls</code> with cleaner output and better file listing features.</p></li><li><p><strong><a href="https://github.com/charmbracelet/gum">Gum</a></strong> &#8212; A tool for building interactive shell scripts and improving command-line aliases.</p></li><li><p><strong><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a></strong> &#8212; A command-line tool for downloading videos and media from supported sites.</p></li></ul><h2>Dotfiles</h2><p>Shivam&#8217;s dotfiles contain the configuration for his macOS development environment, including Ghostty, Zsh, Neovim, tmux, and the command-line tools he uses.</p><p>You can find it here <a href="https://github.com/io-PEAK/dotfiles">https://github.com/io-PEAK/dotfiles</a></p><h2>Favorite Books</h2><h3>Technical</h3><ul><li><p><a href="https://amzn.to/4wP9l0D">Clean Code by Robert C. Martin</a></p></li></ul><h2>Non-Technical</h2><ul><li><p><a href="https://amzn.to/4y5Vu7g">The Stranger by Albert Camus</a> </p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Neovim Options: The Most Common Ones]]></title><description><![CDATA[One of the fastest ways to make Neovim feel like your editor is to understand options.]]></description><link>https://dotfiles.substack.com/p/neovim-options-the-most-common-ones</link><guid isPermaLink="false">https://dotfiles.substack.com/p/neovim-options-the-most-common-ones</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Tue, 21 Apr 2026 14:02:14 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!2eac!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2eac!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2eac!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:89912,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/194919876?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2eac!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3e6c0d83-b374-4f2a-a590-fe97c1c0b234_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the fastest ways to make Neovim feel like <strong>your</strong> editor is to understand options.</p><p>Options control the editor&#8217;s behavior: how text is displayed, how indentation works, how search behaves, where splits open, whether undo history persists, and much more.</p><p>This article focuses on the options you will see in <strong>many</strong> real-world configs. &#8220;Most used&#8221; is not an official Neovim ranking, so treat this as a practical list of <strong>common, high-value options</strong> that many people set early in their setup.</p><div><hr></div><h2><strong>First: how Neovim options work</strong></h2><p>Neovim options come in a few scopes:</p><ul><li><p><strong>global</strong>: affects the whole editor</p></li><li><p><strong>window-local</strong>: can differ per window</p></li><li><p><strong>buffer-local</strong>: can differ per buffer</p></li></ul><p>In Lua, the most common ways to set them are:</p><pre><code><code>vim.o.ignorecase = true      -- like :set, affects current scope
vim.wo.number = true         -- window-local option
vim.bo.expandtab = true      -- buffer-local option
vim.opt.scrolloff = 8        -- ergonomic Lua option interface</code></code></pre><p>For list- and map-style options, <code>vim.opt</code> It is usually the nicest interface:</p><pre><code><code>vim.opt.listchars = { tab = "&#187; ", trail = "&#183;", nbsp = "&#9251;" }
vim.opt.wildignore:append({ "node_modules", ".git" })</code></code></pre><p>If you want local behavior explicitly, use:</p><pre><code><code>vim.opt_local.wrap = true
vim.opt_global.ignorecase = true</code></code></pre><div><hr></div><h2><strong>1. Line-number options</strong></h2><h2><code>number</code></h2><pre><code><code>vim.wo.number = true</code></code></pre><p>Shows the absolute line number for each line.</p><p>Why people use it:</p><ul><li><p>easier navigation</p></li><li><p>easier code discussion</p></li><li><p>easier error reference</p></li></ul><p>This is one of the most common window options in Neovim configs.</p><div><hr></div><h2><code>relativenumber</code></h2><pre><code><code>vim.wo.relativenumber = true</code></code></pre><p>Shows line numbers relative to the cursor line.</p><p>Why people use it:</p><ul><li><p>makes motions like <code>5j</code>, <code>3k</code>, <code>d4j</code>, <code>y2k</code> more intuitive</p></li><li><p>combines well with normal-mode movement</p></li></ul><p>A very common combo is:</p><pre><code><code>vim.wo.number = true
vim.wo.relativenumber = true</code></code></pre><p>That gives you an absolute number on the current line and relative numbers around it.</p><div><hr></div><h2><code>numberwidth</code></h2><pre><code><code>vim.wo.numberwidth = 4</code></code></pre><p>Controls the minimum width of the number column.</p><p>You usually do not need to change this unless your layout feels cramped or you work in huge files a lot.</p><div><hr></div><h2><strong>2. Indentation options</strong></h2><p>These options are among the most important because they affect how code is inserted and displayed.</p><h2><code>tabstop</code></h2><pre><code><code>vim.bo.tabstop = 4</code></code></pre><p>Controls how wide a literal tab character is displayed.</p><p>Important:</p><ul><li><p>This is about the display width of actual tab characters</p></li><li><p>It does <strong>not,</strong> by itself, define indentation behavior for all editing actions</p></li></ul><p>If a file literally contains tab characters, <code>tabstop</code> changes how wide they look.</p><div><hr></div><h2><code>shiftwidth</code></h2><pre><code><code>vim.bo.shiftwidth = 4</code></code></pre><p>Defines how many columns count as one level of indentation for operations like <code>&gt;&gt;</code>, <code>&lt;&lt;</code>, and various indent features.</p><p>In practice:</p><ul><li><p>If you indent code by 2 spaces, use <code>shiftwidth = 2</code></p></li><li><p>If you indent by 4 spaces, use <code>shiftwidth = 4</code></p></li></ul><div><hr></div><h2><code>softtabstop</code></h2><pre><code><code>vim.bo.softtabstop = 4</code></code></pre><p>Controls how <code>&lt;Tab&gt;</code> and <code>&lt;BS&gt;</code> behave in Insert mode.</p><p>This is about the <em>editing feel</em> of tabbing, not the visual width of existing tab characters.</p><p>A common pattern is:</p><pre><code><code>vim.bo.tabstop = 4
vim.bo.shiftwidth = 4
vim.bo.softtabstop = 4</code></code></pre><p>That keeps visual width, indent width, and insert-mode tab behavior aligned.</p><div><hr></div><h2><code>expandtab</code></h2><pre><code><code>vim.bo.expandtab = true</code></code></pre><p>Makes pressing <code>&lt;Tab&gt;</code> insert spaces instead of a literal tab character.</p><p>This is one of the most commonly set buffer options because many codebases prefer spaces over tabs.</p><p>A common combination:</p><pre><code><code>vim.bo.expandtab = true
vim.bo.tabstop = 2
vim.bo.shiftwidth = 2
vim.bo.softtabstop = 2</code></code></pre><p>That gives you &#8220;2-space indentation using spaces.&#8221;</p><div><hr></div><h2><code>autoindent</code></h2><pre><code><code>vim.bo.autoindent = true</code></code></pre><p>Copies the current line&#8217;s indentation when you start a new line.</p><p>This is a very useful baseline option and one of the simplest ways to make editing feel better immediately.</p><div><hr></div><h2><code>smartindent</code></h2><pre><code><code>vim.bo.smartindent = true</code></code></pre><p>Adds simple indentation logic for C-like languages.</p><p>This can be useful, but it is worth knowing that many modern setups rely more on:</p><ul><li><p>filetype plugins</p></li><li><p>Treesitter-based indentation</p></li><li><p>LSP formatting</p></li><li><p>formatter tools</p></li></ul><p>So <code>smartindent</code> It is common, but not universal.</p><div><hr></div><h2><strong>3. Search options</strong></h2><p>These are some of the best &#8220;quality of life&#8221; options in the editor.</p><h2><code>ignorecase</code></h2><pre><code><code>vim.o.ignorecase = true</code></code></pre><p>Makes searches case-insensitive.</p><p>So <code>/foo</code> can match:</p><ul><li><p><code>foo</code></p></li><li><p><code>Foo</code></p></li><li><p><code>FOO</code></p></li></ul><p>This applies to normal search and also affects some completion behavior.</p><div><hr></div><h2><code>smartcase</code></h2><pre><code><code>vim.o.smartcase = true</code></code></pre><p>Works with <code>ignorecase</code>.</p><p>Behavior:</p><ul><li><p>If your pattern is lowercase, the search is case-insensitive</p></li><li><p>If your pattern contains uppercase letters, the search becomes case-sensitive</p></li></ul><p>This is one of the most common search combinations:</p><pre><code><code>vim.o.ignorecase = true
vim.o.smartcase = true
</code></code></pre><p>It feels natural because lowercase searches stay loose, while uppercase searches become precise.</p><div><hr></div><h2><code>hlsearch</code></h2><pre><code><code>vim.o.hlsearch = true</code></code></pre><p>Highlights all matches from the last search pattern.</p><p>Why people like it:</p><ul><li><p>You can see all matches at once</p></li><li><p>easier refactoring and scanning</p></li></ul><p>Why do some people disable it?</p><ul><li><p>It can feel visually noisy</p></li></ul><p>A common compromise is to leave it on and use:</p><pre><code><code>:nohlsearch</code></code></pre><p>When you want to clear the highlight temporarily.</p><div><hr></div><h2><code>incsearch</code></h2><pre><code><code>vim.o.incsearch = true</code></code></pre><p>Shows matches as you type the search pattern.</p><p>This gives search a more interactive feel and is widely considered one of the nicest default behaviors.</p><div><hr></div><h2><strong>4. Wrapping and reading text</strong></h2><h2><code>wrap</code></h2><pre><code><code>vim.wo.wrap = false</code></code></pre><p>Controls whether long lines wrap visually.</p><p>When on:</p><ul><li><p>long lines continue on the next screen line</p></li></ul><p>When off:</p><ul><li><p>lines stay on one visual line, and the window scrolls horizontally</p></li></ul><p>A lot of coding setups prefer:</p><pre><code><code>vim.wo.wrap = false</code></code></pre><p>Wrapped code lines can make the structure harder to read.</p><p>For prose or markdown, many people prefer <code>wrap = true</code>.</p><div><hr></div><h2><code>linebreak</code></h2><pre><code><code>vim.wo.linebreak = true</code></code></pre><p>When wrapping is enabled, this breaks long lines at nicer boundaries instead of in the middle of a word.</p><p>This is especially useful for:</p><ul><li><p>markdown</p></li><li><p>text notes</p></li><li><p>prose writing</p></li></ul><p>Common writing-oriented combo:</p><pre><code><code>vim.wo.wrap = true
vim.wo.linebreak = true</code></code></pre><div><hr></div><h2><code>breakindent</code></h2><pre><code><code>vim.wo.breakindent = true</code></code></pre><p>When a wrapped line continues visually, keep the continuation indented.</p><p>This makes wrapped text much easier to read, especially in nested structures or prose with indentation.</p><p>A very nice text-editing combo is:</p><pre><code><code>vim.wo.wrap = true
vim.wo.linebreak = true
vim.wo.breakindent = true</code></code></pre><div><hr></div><h2><strong>5. Cursor context and movement</strong></h2><h2><code>scrolloff</code></h2><pre><code><code>vim.wo.scrolloff = 8</code></code></pre><p>Keeps a minimum number of screen lines above and below the cursor.</p><p>This is one of the most widely used comfort settings in Neovim configs.</p><p>Why people like it:</p><ul><li><p>The cursor is not glued to the top or bottom of the window</p></li><li><p>easier to keep context while moving</p></li></ul><p>Common values:</p><ul><li><p><code>4</code></p></li><li><p><code>8</code></p></li><li><p><code>10</code></p></li></ul><div><hr></div><h2><code>sidescrolloff</code></h2><pre><code><code>vim.wo.sidescrolloff = 8</code></code></pre><p>The horizontal version of <code>scrolloff</code>, used mainly when <code>wrap</code> is off.</p><p>Useful if you work with long lines and do horizontal scrolling.</p><div><hr></div><h2><code>cursorline</code></h2><pre><code><code>vim.wo.cursorline = true</code></code></pre><p>Highlights the current cursor line.</p><p>Why people use it:</p><ul><li><p>easier to track the current line in dense code</p></li><li><p>useful on large monitors</p></li><li><p>especially nice in splits</p></li></ul><p>Tradeoff:</p><ul><li><p>It can add visual weight, and the docs note it can slow redraw somewhat</p></li></ul><p>Still, it is a very common option.</p><div><hr></div><h2><strong>6. Split behavior</strong></h2><h2><code>splitbelow</code></h2><pre><code><code>vim.o.splitbelow = true</code></code></pre><p>Makes horizontal splits open below the current window.</p><p>Without it, new horizontal splits open above.</p><p>Most people who set this feel it matches natural spatial expectations better.</p><div><hr></div><h2><code>splitright</code></h2><pre><code><code>vim.o.splitright = true</code></code></pre><p>Makes vertical splits open to the right of the current window.</p><p>This is another extremely common preference.</p><p>Together:</p><pre><code><code>vim.o.splitbelow = true
vim.o.splitright = true</code></code></pre><p>This is one of the most common &#8220;early config&#8221; choices in Neovim.</p><div><hr></div><h2><strong>7. Signs, whitespace, and visual helpers</strong></h2><h2><code>signcolumn</code></h2><pre><code><code>vim.wo.signcolumn = "yes"</code></code></pre><p>Controls when the sign column is shown.</p><p>Signs are used by things like:</p><ul><li><p>diagnostics</p></li><li><p>Git signs</p></li><li><p>breakpoints</p></li></ul><p>Why do people often set it to <code>"yes"</code>?</p><ul><li><p>prevents text from shifting left and right when signs appear or disappear</p></li></ul><p>This is especially helpful when using LSP diagnostics.</p><div><hr></div><h2><code>list</code></h2><pre><code><code>vim.wo.list = true</code></code></pre><p>Turns on &#8220;list mode,&#8221; which makes certain whitespace visible.</p><p>By default, it can show things like:</p><ul><li><p>tabs</p></li><li><p>trailing spaces</p></li><li><p>non-breaking spaces</p></li></ul><p>Useful when:</p><ul><li><p>debugging indentation issues</p></li><li><p>cleaning up whitespace</p></li><li><p>spotting trailing blanks</p></li></ul><div><hr></div><h2><code>listchars</code></h2><pre><code><code>vim.opt.listchars = {
  tab = "&#187; ",
  trail = "&#183;",
  nbsp = "&#9251;",
}</code></code></pre><p>Customizes how invisible characters are shown when <code>list</code> is enabled.</p><p>This is a classic &#8220;make the editor feel like mine&#8221; option.</p><div><hr></div><h2><strong>8. Clipboard and mouse</strong></h2><h2><code>clipboard</code></h2><pre><code><code>vim.opt.clipboard = "unnamedplus"</code></code></pre><p>Integrates Neovim with the system clipboard.</p><p>A very common setup is:</p><pre><code><code>vim.opt.clipboard = "unnamedplus"</code></code></pre><p>That makes normal yank/delete/put operations use the <code>+</code> clipboard register as the unnamed register.</p><p>For many users, this is one of the first options they set.</p><div><hr></div><h2><code>mouse</code></h2><pre><code><code>vim.o.mouse = "a"</code></code></pre><p>Enables mouse support in all major modes.</p><p>This allows things like:</p><ul><li><p>Clicking to move the cursor</p></li><li><p>selecting text with the mouse</p></li><li><p>resizing splits</p></li></ul><p>Some users love this, some disable it completely. It is largely a preference.</p><div><hr></div><h2><strong>9. Undo, files, and update behavior</strong></h2><h2><code>undofile</code></h2><pre><code><code>vim.bo.undofile = true</code></code></pre><p>Persists undo history to disk.</p><p>That means you can:</p><ul><li><p>close a file</p></li><li><p>reopen it later</p></li><li><p>still undo older changes</p></li></ul><p>This is one of the most valuable options for long-term editing comfort.</p><div><hr></div><h2><code>updatetime</code></h2><pre><code><code>vim.o.updatetime = 250</code></code></pre><p>Controls how long Neovim waits during inactivity before certain events fire, including <code>CursorHold</code>.</p><p>The docs also note it affects when the swap file is written.</p><p>Why do people often lower it from the default?</p><ul><li><p>snappier <code>CursorHold</code> behavior</p></li><li><p>faster diagnostic popups or plugins relying on idle timing</p></li></ul><p>Common values:</p><ul><li><p><code>250</code></p></li><li><p><code>300</code></p></li><li><p><code>500</code></p></li></ul><div><hr></div><h2><strong>10. Color and terminal UI</strong></h2><h2><code>termguicolors</code></h2><pre><code><code>vim.o.termguicolors = true</code></code></pre><p>Enables 24-bit RGB color in the terminal UI.</p><p>On modern terminals, this is usually desirable, and Neovim will also try to detect support automatically.</p><p>If you use a modern color scheme, this option is very often part of the setup.</p><div><hr></div><h2><strong>11. Completion and command-line comfort</strong></h2><h2><code>completeopt</code></h2><pre><code><code>vim.opt.completeopt = { "menu", "menuone", "noselect" }</code></code></pre><p>Controls how Insert-mode completion behaves.</p><p>A commonly used setup is:</p><pre><code><code>vim.opt.completeopt = { "menu", "menuone", "noselect" }</code></code></pre><p>Why people like it:</p><ul><li><p>show the completion menu</p></li><li><p>keep behavior predictable</p></li><li><p>Do not force-select the first item immediately</p></li></ul><p>If you use Neovim&#8217;s native completion or a completion plugin, this option matters a lot.</p><div><hr></div><h2><code>wildmenu</code></h2><pre><code><code>vim.o.wildmenu = true</code></code></pre><p>Enhances command-line completion, especially when pressing <code>&lt;Tab&gt;</code> in command-line mode.</p><p>This makes command-line completion much friendlier and is a very common option.</p><div><hr></div><h2><code>wildmode</code></h2><pre><code><code>vim.o.wildmode = "longest:full,full"</code></code></pre><p>Controls how command-line completion behaves across repeated <code>&lt;Tab&gt;</code> presses.</p><p>A common choice:</p><pre><code><code>vim.o.wildmode = "longest:full,full"</code></code></pre><p>This makes command-line completion feel much smoother.</p><div><hr></div><h2><code>showcmd</code></h2><pre><code><code>vim.o.showcmd = true</code></code></pre><p>Shows partial commands as you type them.</p><p>This is especially helpful when learning motions and operators because Neovim shows part of what you are building.</p><div><hr></div><h2><code>showmode</code></h2><pre><code><code>vim.o.showmode = false</code></code></pre><p>Shows the current mode in the command area.</p><p>Many people disable this when their statusline already shows the current mode.</p><p>If you use the default UI, leaving it on is perfectly reasonable.</p><div><hr></div><h2><strong>A practical &#8220;starter options&#8221; block</strong></h2><p>If you want a compact, practical set of commonly used options, this is a good starting point:</p><pre><code><code>-- Line numbers
vim.wo.number = true
vim.wo.relativenumber = true

-- Indentation
vim.bo.expandtab = true
vim.bo.shiftwidth = 2
vim.bo.tabstop = 2
vim.bo.softtabstop = 2
vim.bo.autoindent = true

-- Search
vim.o.ignorecase = true
vim.o.smartcase = true
vim.o.hlsearch = true
vim.o.incsearch = true

-- UI / movement
vim.wo.cursorline = true
vim.wo.scrolloff = 8
vim.wo.signcolumn = "yes"

-- Splits
vim.o.splitbelow = true
vim.o.splitright = true

-- Files / system
vim.bo.undofile = true
vim.o.updatetime = 250
vim.opt.clipboard = "unnamedplus"
vim.o.termguicolors = true

-- Command line / completion
vim.opt.completeopt = { "menu", "menuone", "noselect" }
vim.o.wildmenu = true
vim.o.wildmode = "longest:full,full"
</code></code></pre><p>In a real config, many buffer- and window-local options are often set with <code>vim.opt</code> or through filetype-specific config instead of being forced globally everywhere. But as a learning block, this is a useful start.</p><div><hr></div><h2><strong>How to think about options</strong></h2><p>The best way to learn Neovim options is not to memorize a giant list. Instead, think in categories:</p><ul><li><p><strong>How do I want code to indent?</strong></p></li><li><p><strong>How do I want search to feel?</strong></p></li><li><p><strong>How much context do I want around the cursor?</strong></p></li><li><p><strong>How should splits behave?</strong></p></li><li><p><strong>Do I want system clipboard integration?</strong></p></li><li><p><strong>Do I want persistent undo?</strong></p></li><li><p><strong>How visible should whitespace and diagnostics be?</strong></p></li></ul><p>That is how most good configs evolve.</p><p>You do not need to set fifty options at once. Start with the ones that change your daily experience the most:</p><ul><li><p>line numbers</p></li><li><p>indentation</p></li><li><p>search</p></li><li><p>scrolloff</p></li><li><p>split behavior</p></li><li><p>clipboard</p></li><li><p>undofile</p></li></ul><p>Then refine from there.</p><div><hr></div><h2><strong>Final thoughts</strong></h2><p>Neovim options are one of the highest-leverage parts of the editor.</p><p>Plugins add features. Options shape behavior.</p><p>If you understand the common options, you can make Neovim feel cleaner, faster, calmer, and much more intentional without adding a single plugin.</p><p>And once you get comfortable with them, reading someone else&#8217;s config becomes much easier, too.</p><div><hr></div><h2><strong>Suggested options to explore next</strong></h2><p>After the basics above, the next good options to learn are:</p><ul><li><p><code>formatoptions</code></p></li><li><p><code>textwidth</code></p></li><li><p><code>colorcolumn</code></p></li><li><p><code>conceallevel</code></p></li><li><p><code>foldmethod</code></p></li><li><p><code>foldexpr</code></p></li><li><p><code>spell</code></p></li><li><p><code>spelllang</code></p></li><li><p><code>sessionoptions</code></p></li><li><p><code>shortmess</code></p></li><li><p><code>timeoutlen</code></p></li><li><p><code>cmdheight</code></p></li><li><p><code>laststatus</code></p></li><li><p><code>showtabline</code></p></li></ul><p>Those are where configs start becoming more personal.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Build Your Own Go Commands in Neovim]]></title><description><![CDATA[One of the most useful things you can learn in Neovim is how to shape your own editing experience.]]></description><link>https://dotfiles.substack.com/p/build-your-own-go-commands-in-neovim</link><guid isPermaLink="false">https://dotfiles.substack.com/p/build-your-own-go-commands-in-neovim</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Wed, 15 Apr 2026 17:30:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!oEy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!oEy7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!oEy7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:525945,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/193272373?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!oEy7!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F933932bb-65c9-4c94-83e3-d0ce1cfa24c8_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>One of the most useful things you can learn in Neovim is how to shape your own editing experience.</p><p>This Go config is a good example of that. Instead of relying entirely on a plugin to define the workflow, it creates a set of custom commands that wrap the Go toolchain, a few helper binaries, and a small amount of LSP functionality.</p><p>That is the real lesson here:</p><p><strong>Neovim gives you enough primitives to build the workflows you want yourself.</strong></p><p>This is not an argument against plugins. Plugins are often excellent, and for many people, they are the fastest path to a polished setup. The point is that you do not have to stop there. When you understand how to write a few commands of your own, you can adapt Neovim to the way you actually work.</p><p>This article focuses on that idea: how custom commands can help you create a practical Go workflow, and what each command in this setup is doing.</p><div><hr></div><h2>The bigger lesson: build the experience you want</h2><p>A lot of people think of Neovim customization in two extremes:</p><ul><li><p>Use only stock Neovim</p></li><li><p>Install a plugin for everything</p></li></ul><p>In practice, the sweet spot is often somewhere in the middle.</p><p>You might use plugins for things like:</p><ul><li><p>LSP</p></li><li><p>completion</p></li><li><p>Treesitter</p></li><li><p>file navigation</p></li><li><p>fuzzy finding</p></li></ul><p>But for the small, repeated actions that define your personal workflow, custom commands are often the better tool.</p><p>That is what this setup demonstrates.</p><p>It takes common Go tasks and turns them into clear editor commands like:</p><ul><li><p><code>:GoBuild</code></p></li><li><p><code>:GoRun</code></p></li><li><p><code>:GoTest</code></p></li><li><p><code>:GoTestFunc</code></p></li><li><p><code>:GoModTidy</code></p></li><li><p><code>:GoLint</code></p></li><li><p><code>:GoAddTags</code></p></li><li><p><code>:GoAlt</code></p></li></ul><p>These are not abstract features hidden behind a large system. They are straightforward commands you can read, understand, and change.</p><p>That is valuable even if you already use plugins.</p><div><hr></div><h2>The key Neovim idea: user commands</h2><p>The entire approach is built on Neovim&#8217;s command API.</p><p>A command is created like this:</p><pre><code><code>vim.api.nvim_buf_create_user_command(0, "GoBuild", function(opts)
  -- implementation
end, {
  nargs = "?",
  desc = "go build",
})</code></code></pre><p>That means:</p><ul><li><p>Create a user command called <code>GoBuild</code></p></li><li><p>Make it available for the current buffer</p></li><li><p>let it take optional arguments</p></li><li><p>define exactly what it does in Lua</p></li></ul><p>This is one of the most practical APIs in Neovim.</p><p>Once you understand it, you stop thinking only in terms of keymaps and plugins. You start thinking in terms of <strong>editor actions</strong> you can define yourself.</p><p>That is how you create your own experience.</p><div><hr></div><h2>Why custom commands are useful</h2><p>Custom commands are especially good when:</p><ul><li><p>The action already exists as a CLI command</p></li><li><p>You run it often</p></li><li><p>You want better defaults</p></li><li><p>You want editor integration around it</p></li><li><p>You want a clearer interface than &#8220;remember this shell command.&#8221;</p></li></ul><p>That is exactly the case for a lot of Go development.</p><p>Go already has great tooling. So instead of trying to replace the toolchain, this config makes it easier to drive from inside Neovim.</p><p>The result is simple:</p><ul><li><p>Common actions become easier to trigger</p></li><li><p>Defaults become smarter</p></li><li><p>Related editor behavior can be handled automatically</p></li><li><p>The workflow becomes more personal</p></li></ul><div><hr></div><h2>The helper layer</h2><p>Before the commands, the config defines a few helpers. These are what make the command implementations feel clean instead of repetitive.</p><h3><code>notify()</code></h3><p>A small wrapper around <code>vim.notify()</code>.</p><p>This gives consistent feedback for success, failure, and informational messages.</p><h3><code>run_cmd()</code></h3><p>A reusable async command runner built on <code>vim.system()</code>.</p><p>It handles:</p><ul><li><p>the command to run</p></li><li><p>the working directory</p></li><li><p>text output</p></li><li><p>the callback after completion</p></li></ul><p>This is important because it means each user command can focus on <strong>what</strong> it wants to do, not on reimplementing process management every time.</p><h3><code>get_package_path()</code></h3><p>Returns the current file&#8217;s directory.</p><p>That is useful for commands that should operate on the current package.</p><h3><code>get_module_root()</code></h3><p>Walks upward until it finds <code>go.mod</code>.</p><p>That is useful for commands that should run from the module root, such as:</p><ul><li><p><code>go build ./...</code></p></li><li><p><code>go generate ./...</code></p></li><li><p><code>go mod tidy</code></p></li><li><p><code>go get ...</code></p></li></ul><p>These helpers are small, but they are the reason the rest of the file stays readable.</p><div><hr></div><h2>The commands and what they teach</h2><p>The nice thing about this config is that each command teaches a small pattern you can reuse elsewhere.</p><h2>Build and run</h2><h3><code>:GoBuild</code></h3><p>Wraps:</p><pre><code><code>go build</code></code></pre><p>Default target: <code>./...</code></p><p>This teaches a simple but useful pattern:</p><ul><li><p>Create a user command</p></li><li><p>Provide a sensible default</p></li><li><p>Allow optional custom args</p></li><li><p>Run from the correct working directory</p></li><li><p>Notify on success or failure</p></li></ul><p>Example:</p><pre><code><code>:GoBuild
:GoBuild ./cmd/api</code></code></pre><p>This is not just a Go command. It is an example of how to turn a common shell task into a first-class editor action.</p><div><hr></div><h3><code>:GoRun</code></h3><p>Wraps:</p><pre><code><code>go run</code></code></pre><p>Default target: <code>.</code></p><p>This command opens a terminal split instead of collecting output in memory.</p><p>That teaches another important lesson: not every command should be handled the same way.</p><p>For:</p><ul><li><p>builds</p></li><li><p>formatting</p></li><li><p>quick background checks</p></li></ul><p>An async process plus notification may be enough.</p><p>For:</p><ul><li><p>app output</p></li><li><p>long-running tests</p></li><li><p>interactive processes</p></li></ul><p>A terminal buffer is often the better UI.</p><p>Example:</p><pre><code><code>:GoRun
:GoRun ./cmd/server</code></code></pre><div><hr></div><h3><code>:GoGenerate</code></h3><p>Wraps:</p><pre><code><code>go generate</code></code></pre><p>Default target: <code>./...</code></p><p>After success, it runs <code>:checktime</code>.</p><p>That teaches a subtle but important point: a good custom command does not only launch an external process. It also handles the editor consequences of that process.</p><p>If files were regenerated on disk, the editor should notice.</p><p>That is part of creating a good experience.</p><div><hr></div><h2>Testing commands</h2><h3><code>:GoTest</code></h3><p>Wraps:</p><pre><code><code>go test -v</code></code></pre><p>Default target: <code>./...</code></p><p>Runs in a terminal split.</p><p>This is a straightforward quality-of-life command, but it also shows the value of default behavior. Most of the time, you want the same flags and the same presentation. A command captures that once.</p><div><hr></div><h3><code>:GoTestFunc</code></h3><p>This is one of the most interesting commands in the file.</p><p>It uses Treesitter to:</p><ul><li><p>find the syntax node under the cursor</p></li><li><p>walk upward to the surrounding function</p></li><li><p>read the function name</p></li><li><p>check whether it looks like a Go test</p></li><li><p>run only that test</p></li></ul><p>So the command becomes a &#8220;run test under cursor&#8221; workflow.</p><p>That is a great example of how custom commands can combine:</p><ul><li><p>editor state</p></li><li><p>syntax awareness</p></li><li><p>an external tool</p></li></ul><p>This is where writing your own commands becomes powerful. You are no longer limited to thin shell aliases. You can make the editor understand context.</p><div><hr></div><h3><code>:GoTestFile</code></h3><p>This command runs tests for the current package directory.</p><p>Even though its name suggests &#8220;file,&#8221; it is really package-scoped based on the current file&#8217;s location.</p><p>Still, the underlying idea is useful: derive the target from the current buffer, then feed that into the Go toolchain automatically.</p><p>That pattern generalizes well to many languages.</p><div><hr></div><h3><code>:GoCoverage</code></h3><p>Wraps a coverage workflow:</p><pre><code><code>go test -coverprofile=coverage.out &lt;args&gt; &amp;&amp; go tool cover -html=coverage.out</code></code></pre><p>This is a good reminder that custom commands can bundle multiple steps into one action.</p><p>That is often where they become most valuable:</p><ul><li><p>not just exposing a command</p></li><li><p>but encoding a workflow</p></li></ul><div><hr></div><h2>Module commands</h2><h3><code>:GoModTidy</code></h3><p>Wraps:</p><pre><code><code>go mod tidy</code></code></pre><p>Runs from the module root.</p><p>This is a good example of a command that is small but worth promoting into your editor workflow because it is common enough to deserve a name.</p><div><hr></div><h3><code>:GoModInit</code></h3><p>Wraps:</p><pre><code><code>go mod init &lt;module-name&gt;</code></code></pre><p>This shows another common pattern: validate the user input first, then run the external command.</p><div><hr></div><h3><code>:GoGet</code></h3><p>Wraps:</p><pre><code><code>go get &lt;package&gt;</code></code></pre><p>Runs from the module root and then checks for changed files.</p><p>This is the same general lesson again:</p><ul><li><p>pick the right working directory</p></li><li><p>run the tool</p></li><li><p>handle post-command editor state</p></li></ul><p>That is the structure of many good custom commands.</p><div><hr></div><h2>Code-quality and code-generation commands</h2><h3><code>:GoVet</code></h3><p>Wraps:</p><pre><code><code>go vet</code></code></pre><p>Default target: <code>./...</code></p><p>A simple example of surfacing an existing quality check directly in the editor.</p><div><hr></div><h3><code>:GoLint</code></h3><p>Wraps:</p><pre><code><code>golangci-lint run</code></code></pre><p>Default target: <code>./...</code></p><p>This shows how custom commands can unify external tools into your own workflow without needing a large integration layer.</p><p>You are not replacing the linter. You are giving it a home inside your editor.</p><div><hr></div><h3><code>:GoDoc</code></h3><p>Wraps:</p><pre><code><code>go doc &lt;symbol&gt;</code></code></pre><p>If no argument is passed, it uses the word under the cursor.</p><p>That is a useful pattern:</p><ul><li><p>accept manual input</p></li><li><p>but derive a smart default from the current editing context</p></li></ul><p>That is exactly the kind of small improvement that makes a setup feel personal.</p><div><hr></div><h3><code>:GoImpl</code></h3><p>Uses the <code>impl</code> helper binary to generate interface implementation stubs and insert them into the current buffer.</p><p>This teaches another powerful pattern:</p><ul><li><p>run an external code generator</p></li><li><p>capture its output</p></li><li><p>insert that output directly into the buffer</p></li></ul><p>That opens the door to a lot of custom workflows beyond Go.</p><div><hr></div><h3><code>:GoIfErr</code></h3><p>Uses <code>iferr</code> if available, otherwise inserts a basic <code>if err != nil { return err }</code> block directly.</p><p>This is a very good design choice.</p><p>It teaches that custom commands should be helpful even when the ideal dependency is missing. Graceful fallbacks make personal tools much nicer to live with.</p><div><hr></div><h3><code>:GoModernize</code></h3><p>Saves the file, runs a modernization action through <code>gopls</code>, then reloads the file.</p><p>This command is useful because it shows that your custom commands do not have to be limited to shell tools. They can also wrap language-server-powered workflows.</p><p>So your personal command surface can sit on top of:</p><ul><li><p>the Go CLI</p></li><li><p>helper binaries</p></li><li><p>LSP features</p></li></ul><p>All of that can coexist cleanly.</p><div><hr></div><h3><code>:GoFillStruct</code></h3><p>This command directly uses Neovim&#8217;s LSP client to request a code action and apply one related to filling struct fields.</p><p>This teaches a very modern pattern for Neovim configuration:</p><ul><li><p>use shell commands for toolchain tasks</p></li><li><p>use LSP for semantic editor actions</p></li><li><p>hide the ceremony behind a simple user command</p></li></ul><p>That is exactly how you build your own experience.</p><div><hr></div><h3><code>:GoAddTags</code></h3><p>Uses <code>gomodifytags</code> to add tags to a struct.</p><h3><code>:GoRemoveTags</code></h3><p>Uses <code>gomodifytags</code> to remove tags.</p><p>These are practical because they turn a somewhat awkward external tool invocation into a short, repeatable editor action.</p><p>That is one of the best uses of custom commands: turning slightly annoying workflows into one clean command.</p><div><hr></div><h2>Navigation commands</h2><h3><code>:GoAlt</code></h3><p>Switches between:</p><ul><li><p><code>foo.go</code></p></li><li><p><code>foo_test.go</code></p></li></ul><h3><code>:GoAltV</code></h3><p>Does the same in a vertical split.</p><p>These commands are simple, but they show that custom commands are not only for running external tools. They are also great for navigation and editor movement.</p><p>Sometimes the best commands are the ones that remove tiny bits of friction dozens of times a day.</p><div><hr></div><h2>Tool-management commands</h2><p>The config also includes commands for installing or updating common Go-related binaries:</p><ul><li><p><code>:GoInstallBinaries</code></p></li><li><p><code>:GoUpdateBinaries</code></p></li><li><p><code>:GoInstallBinary</code></p></li></ul><p>These commands wrap <code>go install ...@latest</code> for tools like:</p><ul><li><p><code>goimports</code></p></li><li><p><code>gomodifytags</code></p></li><li><p><code>impl</code></p></li><li><p><code>iferr</code></p></li><li><p><code>gotests</code></p></li><li><p><code>golangci-lint</code></p></li><li><p><code>dlv</code></p></li><li><p><code>staticcheck</code></p></li><li><p><code>govulncheck</code></p></li></ul><p>This section is useful because it reinforces the main idea of the article:<br>your editor can do more than edit text. It can become a command surface for your whole development workflow.</p><div><hr></div><h2>What this approach gives you</h2><p>Writing commands like these gives you several benefits.</p><h3>You understand your workflow better</h3><p>Because you wrote it, you know what happens when you run it.</p><h3>You can tune defaults around your real work</h3><p>You decide:</p><ul><li><p>the flags</p></li><li><p>the cwd</p></li><li><p>the UI</p></li><li><p>the notifications</p></li><li><p>the fallback behavior</p></li></ul><h3>You can combine tools in ways plugins may not</h3><p>You can mix:</p><ul><li><p>shell commands</p></li><li><p>Treesitter</p></li><li><p>LSP</p></li><li><p>buffer edits</p></li><li><p>terminal splits</p></li><li><p>notifications</p></li></ul><p>in exactly the way you want.</p><h3>You become less dependent on one package doing everything</h3><p>This does not mean avoiding plugins. It means learning how to extend Neovim yourself when the moment calls for it.</p><p>That is a more durable skill.</p><div><hr></div><h2>Where plugins still fit</h2><p>Plugins still make a lot of sense.</p><p>They are especially useful when you want:</p><ul><li><p>broad feature coverage</p></li><li><p>polished UI</p></li><li><p>community conventions</p></li><li><p>less setup work</p></li><li><p>mature integrations you do not want to maintain yourself</p></li></ul><p>There is no conflict here.</p><p>A strong Neovim setup often combines both:</p><ul><li><p>plugins for larger systems</p></li><li><p>custom commands for personal workflows</p></li></ul><p>That is probably the healthiest way to think about it.</p><div><hr></div><h2>Practical takeaway</h2><p>The most useful lesson from this Go config is not &#8220;do not use plugins.&#8221;</p><p>It is this:</p><p><strong>learn how to create your own commands, because that is how you turn Neovim into your editor.</strong></p><p>Neovim already gives you the building blocks:</p><ul><li><p><code>vim.api.nvim_buf_create_user_command()</code></p></li><li><p><code>vim.system()</code></p></li><li><p>terminal buffers</p></li><li><p>Treesitter</p></li><li><p>LSP</p></li><li><p>normal buffer APIs</p></li></ul><p>With those pieces, you can build commands that feel native, save time, and reflect the way you actually work.</p><p>That is what this config demonstrates well.</p><div><hr></div><h2>Command summary</h2><h3>Build / run</h3><ul><li><p><code>:GoBuild</code></p></li><li><p><code>:GoRun</code></p></li><li><p><code>:GoGenerate</code></p></li></ul><h3>Test</h3><ul><li><p><code>:GoTest</code></p></li><li><p><code>:GoTestFunc</code></p></li><li><p><code>:GoTestFile</code></p></li><li><p><code>:GoCoverage</code></p></li></ul><h3>Modules</h3><ul><li><p><code>:GoModTidy</code></p></li><li><p><code>:GoModInit</code></p></li><li><p><code>:GoGet</code></p></li></ul><h3>Code tools</h3><ul><li><p><code>:GoVet</code></p></li><li><p><code>:GoLint</code></p></li><li><p><code>:GoDoc</code></p></li><li><p><code>:GoImpl</code></p></li><li><p><code>:GoIfErr</code></p></li><li><p><code>:GoModernize</code></p></li><li><p><code>:GoFillStruct</code></p></li><li><p><code>:GoAddTags</code></p></li><li><p><code>:GoRemoveTags</code></p></li></ul><h3>Navigation</h3><ul><li><p><code>:GoAlt</code></p></li><li><p><code>:GoAltV</code></p></li></ul><h3>Tool management</h3><ul><li><p><code>:GoInstallBinaries</code></p></li><li><p><code>:GoUpdateBinaries</code></p></li><li><p><code>:GoInstallBinary</code></p></li></ul><div><hr></div><h2>Final thought</h2><p>This setup is a good reminder that customization is not only about adding features. It is also about shaping behavior.</p><p>Plugins are one way to do that. Writing your own commands is another.</p><p>The real advantage of learning both is that you stop treating your editor as a fixed product and start treating it as a tool you can refine.</p><p>That is where Neovim becomes especially powerful.</p>]]></content:encoded></item><item><title><![CDATA[49 - Aymen Hafeez]]></title><description><![CDATA[Aymen Hafeez is a chemical engineer and a data science student at Imperial College London.]]></description><link>https://dotfiles.substack.com/p/49-aymen-hafeez</link><guid isPermaLink="false">https://dotfiles.substack.com/p/49-aymen-hafeez</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Wed, 15 Apr 2026 14:33:15 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!sXWI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://aymenhafeez.github.io/">Aymen Hafeez</a> is a chemical engineer and a data science student at Imperial College London. Alongside his academic work, he actively contributes to open-source projects and builds tools that sit at the intersection of engineering, data, and developer experience.</p><p>His projects reflect a consistent theme: simplifying complex workflows and making technical concepts more accessible.</p><p>Some of his notable works include:</p><ul><li><p><strong><a href="https://github.com/aymenhafeez/stravaTUI">StravaTUI</a></strong> &#8212; a terminal user interface for viewing Strava running stats</p></li><li><p><strong><a href="https://github.com/aymenhafeez/animplotlib">animplotlib</a></strong> &#8212; a Python tool for creating data animations with minimal friction</p></li><li><p><strong><a href="https://github.com/aymenhafeez/strange-attractor-visualiser">strange-attractor-visualiser</a></strong> &#8212; an educational web app for exploring chaotic systems visually</p></li></ul><p>Outside of programming, Aymen spends his time running, playing guitar, and exploring film photography. He also writes about engineering, mathematics, and Neovim on his <a href="https://aymenhafeez.github.io/">personal blog</a>, where he shares both technical insights and photography.</p><h2>Neovim &amp; Terminal</h2><p>Aymen&#8217;s workflow is centered around Neovim and the terminal. His primary terminal emulator is Ghostty, chosen for its speed and native feel, along with support for splits and tabs.</p><p>He began using Vim roughly seven years ago, initially as a LaTeX editor during his undergraduate studies. Around 2021, he transitioned to Neovim, and his configuration has continued to evolve alongside his needs.</p><p>A defining characteristic of his setup is a preference for building rather than installing. When new functionality is needed, he typically attempts to implement it using Neovim&#8217;s built-in capabilities. Only when necessary does he rely on external plugins.</p><p>One of the most important parts of his workflow is Neovim&#8217;s built-in terminal integration. This allows him to create tight feedback loops:</p><ul><li><p>Sending commands to compile LaTeX documents and refresh PDF previews</p></li><li><p>Running interactive sessions such as IPython</p></li><li><p>Executing code blocks directly from the editor, creating a notebook-like workflow</p></li></ul><p>He has <a href="https://aymenhafeez.github.io/posts/2026-03-31-nvim-jupyter-notebooks/">written</a> in detail about this approach, including how it enables a lightweight alternative to Jupyter-style environments.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!sXWI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 424w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 848w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!sXWI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:949382,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/194301857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 424w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 848w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 1272w, /__u/substackcdn.com/image/fetch/$s_!sXWI!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d5ec020-a3c3-41a5-a30a-8ceb891ee187_3072x1920.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!I1QT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!I1QT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:300907,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/194301857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!I1QT!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b16f802-dbe6-4527-be85-191102e72a54_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!hs54!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!hs54!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:346288,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/194301857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 424w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 848w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 1272w, /__u/substackcdn.com/image/fetch/$s_!hs54!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F11cf78c5-3e23-4967-b715-d6032e7a6955_1920x1200.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favourite Tools</strong></h2><p>Aymen&#8217;s toolkit is minimal but highly optimized:</p><ul><li><p>Neovim &#8212; his primary editor for nearly all text-based work</p></li><li><p><a href="https://ghostty.org/">Ghostty</a> &#8212; a terminal emulator with a native feel and strong performance</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a> &#8212; for fast fuzzy searching across files and history</p></li><li><p><a href="https://github.com/ibhagwan/fzf-lua">fzf-lua</a> &#8212; integrates fzf directly into Neovim</p></li><li><p><a href="https://github.com/ajeetdsouza/zoxide">zoxide</a> &#8212; an intelligent replacement for cd, improving navigation efficiency</p></li></ul><h2><strong>Dotfiles</strong></h2><p>Aymen keeps his configuration simple and practical. His dotfiles are <a href="https://github.com/aymenhafeez/dotfiles">publicly available</a>, and his setup process reflects his philosophy of minimal overhead.</p><p>Rather than using complex installation scripts, he typically:</p><ol><li><p>Clones the repository</p></li><li><p>Creates symlinks to the appropriate directories</p></li></ol><p>Because he rarely switches machines, this approach has proven sufficient and avoids unnecessary complexity.</p><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!zsBe!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!zsBe!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3637460,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/194301857?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!zsBe!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7517aff5-f76a-406d-b9f3-225ce4e6976e_5712x4284.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favourite Books</strong></h2><h3><strong>Technical</strong></h3><ul><li><p><em><a href="https://www.sciencedirect.com/book/monograph/9780080418650/coulson-and-richardsons-chemical-engineering">Coulson and Richardson&#8217;s Chemical Engineering Design</a></em><a href="https://www.sciencedirect.com/book/monograph/9780080418650/coulson-and-richardsons-chemical-engineering"> &#8212; a foundational text in chemical engineering</a></p></li></ul><h3><strong>Non-Technical</strong></h3><ul><li><p><em><a href="https://amzn.to/4dPM748">The Wind-Up Bird Chronicle</a></em><a href="https://amzn.to/4dPM748"> by Haruki Murakami</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[Native LSP in Neovim 0.12]]></title><description><![CDATA[A focused guide to configuring Neovim&#8217;s built-in LSP client in Neovim 0.12]]></description><link>https://dotfiles.substack.com/p/native-lsp-in-neovim-012</link><guid isPermaLink="false">https://dotfiles.substack.com/p/native-lsp-in-neovim-012</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Wed, 08 Apr 2026 17:31:28 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xyI2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>A focused guide to configuring Neovim&#8217;s built-in LSP client in <strong>Neovim 0.12</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!xyI2!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!xyI2!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:170508,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/193270606?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!xyI2!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F553cbc47-4856-445a-b2d9-3ade49f09e95_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><h2>What changed in 0.12?</h2><p>Neovim 0.12 continues the native LSP direction introduced in 0.11:</p><ul><li><p>You define or extend server configs with <code>vim.lsp.config()</code>.</p></li><li><p>You activate them with <code>vim.lsp.enable()</code>.</p></li><li><p>You inspect health with <code>:checkhealth vim.lsp</code>.</p></li><li><p>You manage enabled configs with built-in <code>:lsp</code> commands such as <code>:lsp enable</code>, <code>:lsp disable</code>, and <code>:lsp restart</code>.</p></li></ul><p>This matters because native LSP configuration is now straightforward enough that you do <strong>not</strong> need an elaborate wrapper just to get language servers running.</p><div><hr></div><h2>The mental model</h2><p>There are <strong>three separate concerns</strong>:</p><ol><li><p><strong>Neovim LSP client</strong></p><ul><li><p>Talks to language servers.</p></li><li><p>Handles keymaps, diagnostics, hover, rename, code actions, etc.</p></li></ul></li><li><p><strong>LSP server definitions</strong></p><ul><li><p>Per-server configs such as <code>lua_ls</code>, <code>gopls</code>, <code>ts_ls</code>, <code>pyright</code>, etc.</p></li><li><p>These can come from your own config, or from the <code>nvim-lspconfig</code> plugin.</p></li></ul></li><li><p><strong>Server installation</strong></p><ul><li><p>Actually getting the server binaries onto your machine.</p></li><li><p>Neovim does <strong>not</strong> install servers by itself.</p></li><li><p>Mason helps with this part.</p></li></ul></li></ol><p>A common source of confusion is mixing up <strong>configuration</strong> with <strong>installation</strong>.</p><div><hr></div><h2>Important reality: native LSP still benefits from <code>nvim-lspconfig</code></h2><p>If you want lots of ready-made server definitions, install <code>neovim/nvim-lspconfig</code>. In the Neovim 0.11+ model, its job is mainly to provide the <code>lsp/</code> config files that Neovim can consume natively. You then use <code>vim.lsp.enable()</code> yourself instead of the old <code>require('lspconfig').XYZ.setup(...)</code> pattern.</p><p>So the modern split is:</p><ul><li><p><strong>Neovim built-in LSP</strong> = runtime and activation</p></li><li><p><strong>nvim-lspconfig</strong> = catalog of server definitions</p></li><li><p><strong>Mason</strong> = installs tools</p></li><li><p><strong>mason-lspconfig</strong> = bridges Mason package names and LSP config names, and can auto-enable installed servers</p></li></ul><div><hr></div><h1>Part 1 &#8212; Native LSP with no Mason</h1><h2>Minimal setup</h2><p>This is the smallest practical setup if the language servers are already installed on your machine and discoverable in <code>$PATH</code>.</p><pre><code><code>-- init.lua or lua/config/lsp.lua

-- Example: extend the built-in / lspconfig-provided config for lua_ls
vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      runtime = { version = 'LuaJIT' },
      diagnostics = {
        globals = { 'vim' },
      },
      workspace = {
        checkThirdParty = false,
        library = {
          vim.env.VIMRUNTIME,
        },
      },
      telemetry = { enable = false },
    },
  },
})

-- Enable one or more servers
vim.lsp.enable('lua_ls')
vim.lsp.enable({ 'gopls', 'jsonls' })</code></code></pre><h3>What this does</h3><ul><li><p><code>vim.lsp.config('lua_ls', {...})</code> modifies or defines a config.</p></li><li><p><code>vim.lsp.enable('lua_ls')</code> tells Neovim to start or attach that server for matching buffers.</p></li><li><p>If a server depends on root detection, the project needs the expected root markers such as <code>.git</code>, <code>go.mod</code>, <code>package.json</code>, and so on.</p></li></ul><div><hr></div><h2>Where configs come from</h2><p>Neovim can load LSP configs from multiple places.</p><h3>Option A: define them in Lua code</h3><pre><code><code>vim.lsp.config('gopls', {
  settings = {
    gopls = {
      staticcheck = true,
      gofumpt = true,
    },
  },
})

vim.lsp.enable('gopls')</code></code></pre><h3>Option B: create config files on <code>runtimepath</code></h3><p>You can place a config file at:</p><pre><code><code>~/.config/nvim/lsp/foo.lua</code></code></pre><p>Example:</p><pre><code><code>-- ~/.config/nvim/lsp/foo.lua
return {
  cmd = { 'true' },
  filetypes = { 'text' },
  root_markers = { '.git' },
}</code></code></pre><p>Then enable it:</p><pre><code><code>vim.lsp.enable('foo')</code></code></pre><h3>Option C: override a config from <code>nvim-lspconfig</code></h3><p>If you install <code>nvim-lspconfig</code>, its server definitions are loaded from <code>lsp/</code> directories on runtimepath. You can override them either:</p><ul><li><p>with <code>vim.lsp.config('server_name', {...})</code>, or</p></li><li><p>by adding files under <code>after/lsp/</code></p></li></ul><p>Example:</p><pre><code><code>vim.lsp.config('rust_analyzer', {
  settings = {
    ['rust-analyzer'] = {
      cargo = { allFeatures = true },
      checkOnSave = true,
    },
  },
})</code></code></pre><div><hr></div><h2>Recommended file structure</h2><p>A clean structure is enough. You do not need a huge framework.</p><pre><code><code>~/.config/nvim/
&#9500;&#9472;&#9472; init.lua
&#9492;&#9472;&#9472; lua/
    &#9492;&#9472;&#9472; config/
        &#9500;&#9472;&#9472; lsp.lua
        &#9492;&#9472;&#9472; autocmds.lua</code></code></pre><p>Example:</p><pre><code><code>-- init.lua
require('config.lsp')</code></code></pre><pre><code><code>-- lua/config/lsp.lua
vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      diagnostics = { globals = { 'vim' } },
    },
  },
})

vim.lsp.enable({ 'lua_ls', 'gopls', 'jsonls' })</code></code></pre><div><hr></div><h2>Add practical LSP keymaps</h2><p>Neovim ships LSP defaults, but most people still want buffer-local mappings on attach.</p><pre><code><code>vim.api.nvim_create_autocmd('LspAttach', {
  callback = function(args)
    local bufnr = args.buf
    local map = function(mode, lhs, rhs, desc)
      vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
    end

    map('n', 'K', vim.lsp.buf.hover, 'LSP Hover')
    map('n', 'gd', vim.lsp.buf.definition, 'Go to definition')
    map('n', 'gD', vim.lsp.buf.declaration, 'Go to declaration')
    map('n', 'gi', vim.lsp.buf.implementation, 'Go to implementation')
    map('n', 'gr', vim.lsp.buf.references, 'References')
    map('n', '&lt;leader&gt;rn', vim.lsp.buf.rename, 'Rename symbol')
    map({ 'n', 'v' }, '&lt;leader&gt;ca', vim.lsp.buf.code_action, 'Code action')
    map('n', '&lt;leader&gt;f', function()
      vim.lsp.buf.format({ async = true })
    end, 'Format buffer')
  end,
})</code></code></pre><div><hr></div><h2>Diagnostics configuration</h2><p>A solid baseline:</p><pre><code><code>vim.diagnostic.config({
  severity_sort = true,
  update_in_insert = false,
  float = {
    border = 'rounded',
    source = 'if_many',
  },
  underline = true,
  virtual_text = {
    spacing = 2,
    source = 'if_many',
    prefix = '&#9679;',
  },
  signs = {
    text = {
      [vim.diagnostic.severity.ERROR] = 'E',
      [vim.diagnostic.severity.WARN] = 'W',
      [vim.diagnostic.severity.INFO] = 'I',
      [vim.diagnostic.severity.HINT] = 'H',
    },
  },
})</code></code></pre><div><hr></div><h2>Completion note</h2><p>Neovim 0.12 has native completion improvements, but LSP completion behavior and UI are still often paired with a completion plugin such as <code>nvim-cmp</code> or alternatives. If you want <strong>pure built-in LSP only</strong>, you can still run LSP without any completion plugin.</p><p>LSP does <strong>not</strong> require Mason.<br>LSP also does <strong>not</strong> require <code>nvim-cmp</code>.</p><div><hr></div><h2>Typical server-specific examples</h2><h3>Lua (<code>lua_ls</code>)</h3><pre><code><code>vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      diagnostics = { globals = { 'vim' } },
      workspace = {
        checkThirdParty = false,
        library = {
          vim.env.VIMRUNTIME,
          '${3rd}/luv/library',
        },
      },
      telemetry = { enable = false },
    },
  },
})

vim.lsp.enable('lua_ls')</code></code></pre><h3>Go (<code>gopls</code>)</h3><pre><code><code>vim.lsp.config('gopls', {
  settings = {
    gopls = {
      staticcheck = true,
      gofumpt = true,
      usePlaceholders = true,
    },
  },
})

vim.lsp.enable('gopls')</code></code></pre><h3>TypeScript / JavaScript (<code>ts_ls</code>)</h3><pre><code><code>vim.lsp.config('ts_ls', {
  settings = {
    typescript = {
      inlayHints = {
        includeInlayParameterNameHints = 'all',
        includeInlayFunctionParameterTypeHints = true,
        includeInlayVariableTypeHints = true,
      },
    },
    javascript = {
      inlayHints = {
        includeInlayParameterNameHints = 'all',
        includeInlayFunctionParameterTypeHints = true,
        includeInlayVariableTypeHints = true,
      },
    },
  },
})

vim.lsp.enable('ts_ls')
</code></code></pre><div><hr></div><h2>Debugging native LSP</h2><p>Start here, in this order:</p><h3>1. Verify the config is enabled</h3><pre><code><code>:checkhealth vim.lsp</code></code></pre><h3>2. Inspect currently enabled configs</h3><pre><code><code>:lsp</code></code></pre><h3>3. Check filetype</h3><pre><code><code>:set filetype?</code></code></pre><p>If the buffer filetype is wrong, the server may never attach.</p><h3>4. Check root detection</h3><p>Many servers need a project root. If you open a random file outside a recognizable workspace, the server may not start.</p><h3>5. Check that the server executable exists</h3><p>If you are not using Mason, make sure the binary is in your shell PATH.</p><p>Examples:</p><pre><code><code>which gopls
which lua-language-server
which typescript-language-server
</code></code></pre><h3>6. Turn on LSP logs if needed</h3><pre><code><code>vim.lsp.log.set_level('trace')</code></code></pre><p>Then inspect the log:</p><pre><code><code>vim.cmd('tabnew ' .. vim.lsp.log.get_filename())</code></code></pre><div><hr></div><h1>Part 2 &#8212; Native LSP + Mason</h1><p>Now the practical setup most people actually want.</p><h2>What each plugin does</h2><h3><code>mason.nvim</code></h3><p>Installs and manages external tools: LSP servers, formatters, linters, DAP adapters.</p><h3><code>mason-tool-installer.nvim</code></h3><p>Ensures a list of tools is installed automatically. Good for reproducible setups across machines.</p><h3><code>mason-lspconfig.nvim</code></h3><p>Bridges Mason with LSP config names. It can:</p><ul><li><p>translate names like <code>lua_ls</code> &#8596; <code>lua-language-server</code></p></li><li><p>expose convenience commands like <code>:LspInstall</code></p></li><li><p>automatically enable installed LSP servers using <code>vim.lsp.enable()</code></p></li></ul><h3><code>nvim-lspconfig</code></h3><p>Still important. It provides the ready-made LSP config definitions that native Neovim can consume.</p><div><hr></div><h2>Recommended plugin set</h2><p>For a modern Neovim 0.12 setup, this combination is the most practical:</p><ul><li><p><code>mason-org/mason.nvim</code></p></li><li><p><code>mason-org/mason-lspconfig.nvim</code></p></li><li><p><code>WhoIsSethDaniel/mason-tool-installer.nvim</code></p></li><li><p><code>neovim/nvim-lspconfig</code></p></li></ul><p>Even though the runtime is native, <code>nvim-lspconfig</code> remains useful because it ships the server configs.</p><div><hr></div><h2>Load order matters</h2><p>Use this order:</p><ol><li><p><code>mason.nvim</code></p></li><li><p><code>nvim-lspconfig</code></p></li><li><p><code>mason-lspconfig.nvim</code></p></li><li><p><code>mason-tool-installer.nvim</code></p></li><li><p>your <code>vim.lsp.config(...)</code> overrides</p></li><li><p><code>vim.lsp.enable(...)</code> if you are enabling manually</p></li></ol><p>Important points:</p><ul><li><p><code>mason.nvim</code> should be set up early, not lazily deferred.</p></li><li><p><code>mason-lspconfig.nvim</code> expects both Mason and <code>nvim-lspconfig</code> to already be available.</p></li></ul><div><hr></div><h2>Example with <code>lazy.nvim</code></h2><pre><code><code>{
  'mason-org/mason.nvim',
  opts = {},
},
{
  'neovim/nvim-lspconfig',
},
{
  'mason-org/mason-lspconfig.nvim',
  dependencies = {
    'mason-org/mason.nvim',
    'neovim/nvim-lspconfig',
  },
  opts = {},
},
{
  'WhoIsSethDaniel/mason-tool-installer.nvim',
  dependencies = { 'mason-org/mason.nvim' },
  opts = {
    ensure_installed = {
      'lua_ls',
      'gopls',
      'ts_ls',
      'jsonls',
      'stylua',
      'prettier',
      'goimports',
    },
  },
}</code></code></pre><p>That plugin spec is only half the story. You still need LSP config and activation.</p><div><hr></div><h2>Strategy A &#8212; Mason installs tools, you enable servers manually</h2><p>This is the cleanest setup if you want full control.</p><h3>Step 1: Mason</h3><pre><code><code>require('mason').setup()</code></code></pre><h3>Step 2: mason-tool-installer</h3><pre><code><code>require('mason-tool-installer').setup({
  ensure_installed = {
    'lua_ls',
    'gopls',
    'ts_ls',
    'jsonls',
    'stylua',
    'prettier',
  },
})</code></code></pre><p>Because <code>mason-lspconfig</code> is present, <code>mason-tool-installer</code> can accept <strong>LSP config names</strong> like <code>lua_ls</code> and <code>gopls</code>, not only raw Mason package names.</p><h3>Step 3: mason-lspconfig</h3><pre><code><code>require('mason-lspconfig').setup({
  automatic_enable = false,
})</code></code></pre><p>This disables auto-enabling so you stay in charge.</p><h3>Step 4: native Neovim LSP config</h3><pre><code><code>vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      diagnostics = { globals = { 'vim' } },
      workspace = { checkThirdParty = false },
      telemetry = { enable = false },
    },
  },
})

vim.lsp.config('gopls', {
  settings = {
    gopls = {
      staticcheck = true,
      gofumpt = true,
    },
  },
})</code></code></pre><h3>Step 5: Enable servers manually</h3><pre><code><code>vim.lsp.enable({
  'lua_ls',
  'gopls',
  'ts_ls',
  'jsonls',
})</code></code></pre><h3>Why choose this approach?</h3><ul><li><p>predictable</p></li><li><p>explicit</p></li><li><p>easy to reason about</p></li><li><p>avoids surprise attachments</p></li><li><p>best if you want different behavior per machine or per project</p></li></ul><div><hr></div><h2>Strategy B &#8212; Mason installs tools and mason-lspconfig auto-enables them</h2><p>This is the lower-friction setup.</p><h3>Step 1: Mason</h3><pre><code><code>require('mason').setup()
</code></code></pre><h3>Step 2: mason-tool-installer</h3><pre><code><code>require('mason-tool-installer').setup({
  ensure_installed = {
    'lua_ls',
    'gopls',
    'ts_ls',
    'jsonls',
    'stylua',
    'prettier',
  },
})</code></code></pre><h3>Step 3: your overrides</h3><p>Define server-specific config <strong>before</strong> auto-enable is expected to attach in real use.</p><pre><code><code>vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      diagnostics = { globals = { 'vim' } },
      workspace = { checkThirdParty = false },
      telemetry = { enable = false },
    },
  },
})

vim.lsp.config('gopls', {
  settings = {
    gopls = {
      staticcheck = true,
      gofumpt = true,
    },
  },
})</code></code></pre><h3>Step 4: mason-lspconfig with automatic enable</h3><pre><code><code>require('mason-lspconfig').setup({
  automatic_enable = true,
})</code></code></pre><p>With this setup, installed servers are automatically enabled via <code>vim.lsp.enable()</code>.</p><h3>Why choose this approach?</h3><ul><li><p>fewer lines</p></li><li><p>easier initial setup</p></li><li><p>convenient for general-purpose configs</p></li></ul><h3>Downside</h3><ul><li><p>less explicit</p></li><li><p>can be harder to debug when you want selective behavior</p></li></ul><div><hr></div><h2>Strategy C &#8212; auto-enable most servers, exclude a few</h2><p>This is usually the best compromise.</p><pre><code><code>require('mason-lspconfig').setup({
  automatic_enable = {
    exclude = {
      'rust_analyzer',
      'ts_ls',
    },
  },
})</code></code></pre><p>Then enable excluded servers manually when you want special handling.</p><pre><code><code>vim.lsp.config('ts_ls', {
  settings = {
    typescript = {
      inlayHints = {
        includeInlayParameterNameHints = 'all',
      },
    },
  },
})

vim.lsp.enable('ts_ls')</code></code></pre><p>This pattern is useful for servers that often need custom root logic, custom formatting policy, or conflict handling.</p><div><hr></div><h1>Part 3 &#8212; Full example configuration</h1><p>This is a complete practical example for Neovim 0.12.</p><pre><code><code>-- lua/config/lsp.lua

require('mason').setup()

require('mason-tool-installer').setup({
  ensure_installed = {
    'lua_ls',
    'gopls',
    'ts_ls',
    'jsonls',
    'bashls',
    'stylua',
    'prettier',
    'shfmt',
  },
})

vim.lsp.config('lua_ls', {
  settings = {
    Lua = {
      runtime = { version = 'LuaJIT' },
      diagnostics = { globals = { 'vim' } },
      workspace = {
        checkThirdParty = false,
        library = {
          vim.env.VIMRUNTIME,
        },
      },
      telemetry = { enable = false },
    },
  },
})

vim.lsp.config('gopls', {
  settings = {
    gopls = {
      staticcheck = true,
      gofumpt = true,
      usePlaceholders = true,
    },
  },
})

vim.lsp.config('ts_ls', {
  settings = {
    typescript = {
      inlayHints = {
        includeInlayParameterNameHints = 'all',
        includeInlayFunctionParameterTypeHints = true,
        includeInlayVariableTypeHints = true,
      },
    },
    javascript = {
      inlayHints = {
        includeInlayParameterNameHints = 'all',
        includeInlayFunctionParameterTypeHints = true,
        includeInlayVariableTypeHints = true,
      },
    },
  },
})

require('mason-lspconfig').setup({
  automatic_enable = {
    exclude = { 'ts_ls' },
  },
})

vim.lsp.enable('ts_ls')

vim.diagnostic.config({
  severity_sort = true,
  update_in_insert = false,
  float = {
    border = 'rounded',
    source = 'if_many',
  },
  underline = true,
  virtual_text = {
    spacing = 2,
    source = 'if_many',
    prefix = '&#9679;',
  },
  signs = {
    text = {
      [vim.diagnostic.severity.ERROR] = 'E',
      [vim.diagnostic.severity.WARN] = 'W',
      [vim.diagnostic.severity.INFO] = 'I',
      [vim.diagnostic.severity.HINT] = 'H',
    },
  },
})

vim.api.nvim_create_autocmd('LspAttach', {
  callback = function(args)
    local bufnr = args.buf
    local map = function(mode, lhs, rhs, desc)
      vim.keymap.set(mode, lhs, rhs, { buffer = bufnr, desc = desc })
    end

    map('n', 'K', vim.lsp.buf.hover, 'LSP Hover')
    map('n', 'gd', vim.lsp.buf.definition, 'Go to definition')
    map('n', 'gD', vim.lsp.buf.declaration, 'Go to declaration')
    map('n', 'gi', vim.lsp.buf.implementation, 'Go to implementation')
    map('n', 'gr', vim.lsp.buf.references, 'References')
    map('n', '&lt;leader&gt;rn', vim.lsp.buf.rename, 'Rename symbol')
    map({ 'n', 'v' }, '&lt;leader&gt;ca', vim.lsp.buf.code_action, 'Code action')
    map('n', '&lt;leader&gt;f', function()
      vim.lsp.buf.format({ async = true })
    end, 'Format buffer')
  end,
})</code></code></pre><div><hr></div><h1>Part 4 &#8212; Best practices</h1><h2>1. Use Mason for installation, native LSP for behavior</h2><p>This is the cleanest separation.</p><ul><li><p>Mason manages binaries.</p></li><li><p><code>vim.lsp.config()</code> defines behavior.</p></li><li><p><code>vim.lsp.enable()</code> activates servers.</p></li></ul><h2>2. Keep overrides in one place</h2><p>Have a single file such as:</p><pre><code><code>lua/config/lsp.lua</code></code></pre><p>or split by language if it gets large.</p><h2>3. Prefer manual enable for special servers</h2><p>Servers like TypeScript, Rust, or anything that may compete on formatting or needs custom root logic are often easier to manage explicitly.</p><h2>4. Use <code>:checkhealth vim.lsp</code> first</h2><p>That is the first debugging step now, not old habits built around legacy commands.</p><h2>5. Do not confuse package names with config names</h2><p>Examples:</p><ul><li><p>LSP config name: <code>lua_ls</code></p></li><li><p>Mason package name: <code>lua-language-server</code></p></li></ul><p><code>mason-lspconfig</code> exists largely to bridge this mismatch.</p><h2>6. <code>nvim-lspconfig</code> is still useful</h2><p>Even if you are &#8220;doing native LSP,&#8221; <code>nvim-lspconfig</code> is still the easiest way to get sane server definitions without writing every config from scratch.</p><div><hr></div><h1>Part 5 &#8212; Common mistakes</h1><h2>Mistake 1: assuming Neovim installs servers</h2><p>It does not. Native LSP config is not an installer.</p><h2>Mistake 2: using the old <code>require('lspconfig').SERVER.setup({})</code> mental model everywhere</h2><p>That older style still appears in many guides, but for 0.12 the cleaner path is:</p><ul><li><p><code>vim.lsp.config()</code></p></li><li><p><code>vim.lsp.enable()</code></p></li></ul><h2>Mistake 3: enabling before the server config is available</h2><p>If you rely on definitions from <code>nvim-lspconfig</code>, make sure that the plugin is loaded before trying to enable a config.</p><h2>Mistake 4: debugging the wrong layer</h2><p>If a server is not attaching, isolate the problem:</p><ul><li><p>is the binary installed?</p></li><li><p>is the filetype correct?</p></li><li><p>is root detection working?</p></li><li><p>is the config enabled?</p></li></ul><h2>Mistake 5: mixing formatter ownership without intention</h2><p>Some LSP servers&#8217; format. Some teams prefer dedicated formatters. Decide intentionally whether <code>vim.lsp.buf.format()</code> should use the server, an external formatter, or a filtered client list.</p><div><hr></div><h1>Part 6 &#8212; Recommended setup for most people</h1><p>If you want the most practical answer:</p><ul><li><p>install <code>nvim-lspconfig</code></p></li><li><p>install <code>mason.nvim</code></p></li><li><p>install <code>mason-tool-installer.nvim</code></p></li><li><p>install <code>mason-lspconfig.nvim</code></p></li><li><p>Use Mason to install tools</p></li><li><p>Use <code>vim.lsp.config()</code> for overrides</p></li><li><p>Use either:</p><ul><li><p><code>automatic_enable = false</code> and <code>vim.lsp.enable(...)</code> manually, or</p></li><li><p><code>automatic_enable = { exclude = { ... } }</code> for a hybrid approach</p></li></ul></li></ul><p>That gives you:</p><ul><li><p>native Neovim 0.12 LSP</p></li><li><p>reproducible installs</p></li><li><p>minimal boilerplate</p></li><li><p>explicit control where it matters</p></li></ul><div><hr></div><h1>References</h1><ol><li><p>Neovim LSP help: <code>:help lsp</code>, <code>:help vim.lsp.config</code>, <code>:help vim.lsp.enable</code></p></li><li><p>Neovim 0.12 news: <code>:help news-0.12</code></p></li><li><p><code>neovim/nvim-lspconfig</code> README and <code>lsp/</code> configs</p></li><li><p><code>mason-org/mason.nvim</code> README</p></li><li><p><code>mason-org/mason-lspconfig.nvim</code> README</p></li><li><p><code>WhoIsSethDaniel/mason-tool-installer.nvim</code> README</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[What’s New in Neovim 0.12]]></title><description><![CDATA[Neovim 0.12.0 was released on March 29, 2026. This release adds a built-in plugin manager, expands built-in LSP support, introduces native insert-mode auto-completion, improves the default UI and statusline, adds several useful Lua APIs, and includes a number of breaking changes that may require config updates.]]></description><link>https://dotfiles.substack.com/p/whats-new-in-neovim-012</link><guid isPermaLink="false">https://dotfiles.substack.com/p/whats-new-in-neovim-012</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Sun, 05 Apr 2026 03:09:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!vMyu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Neovim 0.12.0 was released on <strong>March 29, 2026</strong>. This release adds a built-in plugin manager, expands built-in LSP support, introduces native insert-mode auto-completion, improves the default UI and statusline, adds several useful Lua APIs, and includes a number of breaking changes that may require config updates.</p><p>This guide is organized around the changes that matter most in day-to-day use, with practical examples and a short migration checklist at the end.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!vMyu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!vMyu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/193173279?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 424w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 848w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 1272w, /__u/substackcdn.com/image/fetch/$s_!vMyu!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d9536f1-d05a-4bcc-9385-b16659bc8477_1536x1024.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><div><hr></div><h2>At a glance</h2><p>The most important additions in 0.12 are:</p><ul><li><p><strong>Built-in plugin management with </strong><code>vim.pack</code></p></li><li><p><strong>Expanded built-in LSP support,</strong> including <code>selectionRange</code>, <code>inlineCompletion</code>, <code>linkedEditingRange</code>, <code>documentLink</code>, and viewport-only semantic tokens</p></li><li><p><strong>Native insert-mode auto-completion</strong> via the new <code>'autocomplete'</code> option</p></li><li><p><strong>A redesigned experimental core UI (</strong><code>ui2</code><strong>)</strong></p></li><li><p><strong>New commands</strong> such as <code>:restart</code>, <code>:connect</code>, and <code>:uniq</code></p></li><li><p><strong>Useful new Lua APIs</strong> such as <code>vim.net.request()</code>, <code>vim.fs.ext()</code>, <code>vim.list.unique()</code>, and <code>vim.list.bisect()</code></p></li><li><p><strong>Built-in plugins</strong> such as <code>:Undotree</code> and <code>:DiffTool</code></p></li><li><p><strong>Breaking changes</strong> around diagnostics, Treesitter behavior, and renamed APIs</p></li></ul><p>Official source: <code>:help news-0.12</code>.</p><div><hr></div><h2>1. Built-in plugin manager: <code>vim.pack</code></h2><p>Neovim 0.12 adds <code>vim.pack</code>, a built-in plugin manager. It is still marked <strong>experimental</strong>, but the official docs describe it as stable enough for daily use.</p><h3>Basic usage</h3><pre><code><code>vim.pack.add({
  'https://github.com/sainnhe/gruvbox-material',
  'https://github.com/nvim-treesitter/nvim-treesitter',
  {
    src = 'https://github.com/neovim/nvim-lspconfig',
    version = 'v2.0.0',
  },
})</code></code></pre><p>You can also use a table to set the plugin name explicitly:</p><pre><code><code>vim.pack.add({
  {
    src = 'https://github.com/user/generic-name',
    name = 'my-plugin',
  },
})</code></code></pre><h3>Where plugins live</h3><p><code>vim.pack</code> manages plugins in a dedicated directory under your data path:</p><pre><code><code>site/pack/core/opt</code></code></pre><p>It also maintains a lockfile at:</p><pre><code><code>~/.config/nvim/nvim-pack-lock.json</code></code></pre><p>That lockfile should be treated like part of your config and kept under version control.</p><h3>Updating plugins</h3><pre><code><code>vim.pack.update()</code></code></pre><p>By default, this opens a confirmation buffer where you can review pending changes.</p><p>Useful variants:</p><pre><code><code>vim.pack.update({ 'nvim-treesitter' })
vim.pack.update(nil, { force = true })
vim.pack.update(nil, { offline = true })
vim.pack.update(nil, { target = 'lockfile' })</code></code></pre><h3>Deleting plugins</h3><pre><code><code>vim.pack.del({ 'old-plugin' })</code></code></pre><h3>Important caveats</h3><ul><li><p><code>vim.pack</code> uses <strong>Git</strong> and expects plugin sources to be Git repositories.</p></li><li><p>It is <strong>not a lazy-loading framework</strong>.</p></li><li><p>During <code>init.lua</code> sourcing, plugin loading defaults differently than after startup, so read <code>:help vim.pack</code> if you rely on exact loading behavior.</p></li><li><p>If a plugin is already on disk, <code>vim.pack.add()</code> does <strong>not</strong> automatically verify that its current revision matches the declared <code>version</code>; use <code>vim.pack.update()</code> to synchronize.</p></li></ul><h3>Events</h3><p><code>PackChangedPre</code> and <code>PackChanged</code> can be used for post-install or post-update hooks:</p><pre><code><code>vim.api.nvim_create_autocmd('PackChanged', {
  callback = function(ev)
    if ev.data.spec.name == 'nvim-treesitter' then
      vim.system({ 'make' }, { cwd = ev.data.path })
    end
  end,
})</code></code></pre><div><hr></div><h2>2. LSP improvements</h2><p>Neovim 0.12 expands built-in LSP support significantly.</p><h3>Native config and enable flow</h3><p>The recommended built-in pattern is:</p><pre><code><code>vim.lsp.config['lua_ls'] = {
  cmd = { 'lua-language-server' },
  filetypes = { 'lua' },
  root_markers = { { '.luarc.json', '.luarc.jsonc' }, '.git' },
}

vim.lsp.enable('lua_ls')</code></code></pre><p>You can check whether it is attached with:</p><pre><code><code>:checkhealth vim.lsp</code></code></pre><h3>New defaults and built-in mappings</h3><p>Neovim now provides these global LSP mappings by default:</p><ul><li><p><code>gra</code> &#8594; code actions</p></li><li><p><code>gri</code> &#8594; implementations</p></li><li><p><code>grn</code> &#8594; rename</p></li><li><p><code>grr</code> &#8594; references</p></li><li><p><code>grt</code> &#8594; type definition</p></li><li><p><code>grx</code> &#8594; run codelens</p></li><li><p><code>gO</code> &#8594; document symbols</p></li><li><p><code>Ctrl-S</code> in Insert mode &#8594; signature help</p></li></ul><p><code>gx</code> also handles <code>textDocument/documentLink</code> when the server supports it.</p><h3>Newly supported or improved capabilities</h3><p>0.12 adds or improves support for:</p><ul><li><p><code>textDocument/selectionRange</code></p></li><li><p><code>textDocument/inlineCompletion</code></p></li><li><p><code>textDocument/linkedEditingRange</code></p></li><li><p><code>textDocument/documentLink</code></p></li><li><p><code>textDocument/onTypeFormatting</code></p></li><li><p><code>textDocument/semanticTokens/range</code> for <strong>viewport-only</strong> semantic tokens</p></li><li><p><code>workspace/codeLens/refresh</code></p></li></ul><h3><code>selectionRange</code> fallback</h3><p>If Treesitter is not active, visual-mode <code>an</code> / <code>in</code> selection falls back to LSP <code>selectionRange</code>.</p><h3>Code lens and other features are not always on automatically</h3><p>The docs explicitly note that some features may need to be enabled manually depending on your setup, including:</p><ul><li><p>code lens</p></li><li><p>linked editing</p></li><li><p>inlay hints</p></li><li><p>inline completion</p></li></ul><h3><code>:lsp</code></h3><p>Neovim 0.12 includes a built-in <code>:lsp</code> command for interactive client management.</p><div><hr></div><h2>3. Native insert-mode auto-completion</h2><p>Neovim 0.12 adds the new <code>'autocomplete'</code> option:</p><pre><code><code>vim.o.autocomplete = true</code></code></pre><p>This enables built-in insert-mode auto-completion without a third-party completion UI plugin.</p><h3>Other completion-related additions</h3><p><code>'complete'</code> gained new flags:</p><ul><li><p><code>F{func}</code> &#8594; complete using a named function</p></li><li><p><code>F</code> &#8594; complete using <code>'completefunc'</code></p></li><li><p><code>o</code> &#8594; complete using <code>'omnifunc'</code></p></li></ul><p>It also supports limiting matches per source:</p><pre><code><code>vim.o.complete = ".^5,t^3,w"</code></code></pre><p>Useful popup menu options:</p><pre><code><code>vim.o.pumborder = 'rounded'
vim.o.pummaxwidth = 40
vim.o.completeopt = 'menu,menuone,noselect'</code></code></pre><p>Note that <code>nearest</code> is now a valid <code>completeopt</code> behavior for proximity-based sorting.</p><div><hr></div><h2>4. UI changes</h2><h3>Experimental <code>ui2</code></h3><p>Neovim 0.12 introduces <code>ui2</code>, an experimental redesign of the core messages and command-line UI.</p><p>Enable it with:</p><pre><code><code>require('vim._core.ui2').enable()</code></code></pre><p>What it changes:</p><ul><li><p>avoids many <strong>&#8220;Press ENTER&#8221;</strong> interruptions</p></li><li><p>avoids delays from warnings like <strong>W10</strong></p></li><li><p>highlights the command line as you type</p></li><li><p>exposes the pager as a regular <strong>buffer + window</strong></p></li></ul><p>Because it is explicitly marked experimental, it is best treated as something to try, not something to assume is stable in every workflow yet.</p><h3><code>:restart</code></h3><pre><code><code>:restart</code></code></pre><p>This restarts Neovim and reattaches all UIs.</p><h3><code>:connect</code></h3><pre><code><code>:connect /tmp/nvim.sock</code></code></pre><p>This dynamically connects the current UI to a server address.</p><h3>Busy status</h3><p>The <code>'busy'</code> buffer status is shown in the default statusline using the symbol <code>&#9680;</code>.</p><div><hr></div><h2>5. Default statusline improvements</h2><p>The default statusline is more useful in 0.12 and can show:</p><ul><li><p>diagnostic counts</p></li><li><p>progress/status information</p></li><li><p>busy state</p></li><li><p>terminal exit information</p></li></ul><p>Two notable helpers are:</p><pre><code><code>vim.diagnostic.status()
vim.lsp.status()</code></code></pre><p>If you already maintain a custom statusline, these APIs make it easier to integrate built-in diagnostics and LSP progress.</p><div><hr></div><h2>6. New Lua APIs worth knowing</h2><h3><code>vim.net.request()</code></h3><p>Neovim now includes a built-in HTTP helper:</p><pre><code><code>local res = vim.net.request('https://api.github.com/repos/neovim/neovim')
print(res.body)</code></code></pre><h3><code>vim.fs.ext()</code></h3><pre><code><code>print(vim.fs.ext('init.lua'))       -- lua
print(vim.fs.ext('archive.tar.gz')) -- gz</code></code></pre><h3><code>vim.list.unique()</code></h3><pre><code><code>local deduped = vim.list.unique({ 1, 2, 2, 3, 1 })</code></code></pre><h3><code>vim.list.bisect()</code></h3><pre><code><code>local idx = vim.list.bisect({ 10, 20, 30, 40 }, 25)</code></code></pre><h3>Other useful Lua additions</h3><ul><li><p><code>vim.hl.range()</code> now allows multiple timed highlights</p></li><li><p><code>vim.tbl_extend()</code> and <code>vim.tbl_deep_extend()</code> can take a function as conflict behavior</p></li><li><p><code>vim.version.intersect()</code> computes version-range intersections</p></li><li><p><code>Iter:take()</code> and <code>Iter:skip()</code> can accept predicates</p></li><li><p><code>Iter:peek()</code> works for all iterator types</p></li><li><p><code>Iter:unique()</code> deduplicates iterator output</p></li></ul><div><hr></div><h2>7. Built-in plugins</h2><h3><code>:Undotree</code></h3><pre><code><code>:packadd nvim.undotree
:Undotree</code></code></pre><p>This adds a built-in visual undo-tree navigator.</p><h3><code>:DiffTool</code></h3><pre><code><code>:packadd nvim.difftool
:DiffTool path/to/dir1 path/to/dir2</code></code></pre><p>This compares directories and files.</p><h3><code>tohtml</code> is now opt-in</h3><pre><code><code>:packadd nvim.tohtml
:TOhtml</code></code></pre><p><code>tohtml</code> is no longer loaded by default.</p><div><hr></div><h2>8. Treesitter changes</h2><h3>Markdown highlighting by default</h3><p>Treesitter-based Markdown highlighting is enabled by default.</p><h3>Built-in incremental selection</h3><p>Neovim 0.12 adds built-in node-based selection:</p><ul><li><p><code>v</code> then <code>an</code> &#8594; select outward</p></li><li><p><code>v</code> then <code>in</code> &#8594; select inward</p></li><li><p><code>v</code> then <code>]n</code> &#8594; next sibling</p></li><li><p><code>v</code> then <code>[n</code> &#8594; previous sibling</p></li></ul><p>This is especially useful if you want structural selection without relying on extra plugins.</p><h3>Breaking change: <code>get_parser()</code></h3><p><code>vim.treesitter.get_parser()</code> no longer throws on failure. It now returns <code>nil</code> when it cannot create a parser.</p><p>Old assumption:</p><pre><code><code>local parser = vim.treesitter.get_parser(bufnr)
</code></code></pre><p>Safer 0.12 pattern:</p><pre><code><code>local parser = vim.treesitter.get_parser(bufnr)
if parser then
  -- use parser
end</code></code></pre><div><hr></div><h2>9. Diagnostics changes</h2><h3>Major breaking change: diagnostic signs</h3><p>Diagnostic signs can <strong>no longer</strong> be configured with <code>:sign-define</code> or <code>sign_define()</code>.</p><p>You must configure them through <code>vim.diagnostic.config()</code>.</p><p>Example:</p><pre><code><code>local sev = vim.diagnostic.severity

vim.diagnostic.config({
  severity_sort = true,
  signs = {
    text = {
      [sev.ERROR] = 'E',
      [sev.WARN]  = 'W',
      [sev.INFO]  = 'I',
      [sev.HINT]  = 'H',
    },
  },
})</code></code></pre><h3>Other diagnostic notes</h3><ul><li><p><code>vim.diagnostic.disable()</code> and <code>vim.diagnostic.is_disabled()</code> were removed</p></li><li><p>the legacy signature of <code>vim.diagnostic.enable()</code> is no longer supported</p></li><li><p><code>vim.diagnostic.status()</code> is useful for statuslines</p></li></ul><div><hr></div><h2>10. New editor commands and behaviors</h2><h3>New commands</h3><ul><li><p><code>:restart</code> &#8594; restart Neovim and reattach UIs</p></li><li><p><code>:connect {addr}</code> &#8594; connect current UI to a server</p></li><li><p><code>:iput</code> &#8594; like <code>:put</code>, but adjusts indent</p></li><li><p><code>:retab -indentonly</code> &#8594; retab only leading whitespace</p></li><li><p><code>:uniq</code> &#8594; deduplicate lines in the current buffer</p></li><li><p><code>:wall ++p</code> &#8594; write all buffers and create missing parent directories</p></li><li><p><code>:help!</code> &#8594; help lookup with smarter guessing</p></li></ul><h3><code>:source</code> with a range can detect Lua</h3><p>When a selected range contains a Lua code block, Neovim can detect and execute it as Lua.</p><h3>Search completion</h3><p><code>'wildchar'</code> now enables completion in search contexts such as <code>/</code>, <code>?</code>, <code>:g</code>, <code>:v</code>, and <code>:vimgrep</code>.</p><div><hr></div><h2>11. Changed defaults</h2><p>Some defaults changed in 0.12:</p><ul><li><p><code>'shelltemp'</code> now defaults to <code>false</code></p></li><li><p><code>'diffopt'</code> now includes improved defaults such as <code>indent-heuristic</code> and <code>inline:char</code></p></li><li><p><code>'shada'</code> excludes <code>/tmp/</code> and <code>/private/</code> paths by default</p></li><li><p>terminal <code>'scrollback'</code> maximum increased to <strong>1,000,000</strong></p></li></ul><h3>Insert-mode <code>Ctrl-R</code> changed</h3><p><code>Ctrl-R</code> in Insert mode now inserts register contents <strong>literally</strong> by default.</p><p>If you relied on the older behavior that interpreted special characters, you may need to adjust your workflow.</p><div><hr></div><h2>12. Terminal improvements</h2><p>Neovim 0.12 improves terminal behavior in several ways:</p><ul><li><p>support for <strong>synchronized output</strong> (DEC private mode 2026)</p></li><li><p>support for <strong>clearing terminal scrollback</strong> via <code>CSI 3 J</code></p></li><li><p><code>nvim_open_term()</code> can now be called on a non-empty buffer</p></li><li><p>suspended PTY processes are shown as <code>[Process suspended]</code> and can be resumed by keypress</p></li></ul><div><hr></div><h2>13. Notable new highlight groups and events</h2><h3>Highlight groups</h3><p>Examples include:</p><ul><li><p><code>DiffTextAdd</code></p></li><li><p><code>OkMsg</code></p></li><li><p><code>StderrMsg</code></p></li><li><p><code>StdoutMsg</code></p></li><li><p><code>SnippetTabstopActive</code></p></li><li><p><code>PmenuBorder</code></p></li><li><p><code>PmenuShadow</code></p></li></ul><h3>New events</h3><p>Examples include:</p><ul><li><p><code>CmdlineLeavePre</code></p></li><li><p><code>MarkSet</code></p></li><li><p><code>SessionLoadPre</code></p></li><li><p><code>TabClosedPre</code></p></li><li><p><code>PackChangedPre</code></p></li><li><p><code>PackChanged</code></p></li></ul><div><hr></div><h2>14. Breaking changes and migration checklist</h2><p>These are the items most likely to affect existing configs or plugins.</p><h3>Rename changes</h3><ul><li><p><code>vim.diff</code> &#8594; <code>vim.text.diff</code></p></li><li><p>semantic tokens <code>start()/stop()</code> usage moved to <code>enable()</code></p></li></ul><h3>Diagnostics</h3><ul><li><p>remove any <code>:sign-define</code>-based diagnostic sign setup</p></li><li><p>move diagnostic sign configuration to <code>vim.diagnostic.config()</code></p></li><li><p>stop using removed functions like <code>vim.diagnostic.disable()</code></p></li></ul><h3>Treesitter</h3><ul><li><p>update code that assumes <code>vim.treesitter.get_parser()</code> throws on failure</p></li></ul><h3>Plugins</h3><ul><li><p><code>tohtml</code> is now opt-in</p></li><li><p>old shellmenu plugin is removed</p></li></ul><h3>Providers</h3><ul><li><p>Python 3.7 and 3.8 support were dropped</p></li></ul><h3>Options and behavior</h3><ul><li><p><code>'shelltemp'</code> changed to <code>false</code></p></li><li><p>Insert-mode <code>Ctrl-R</code> now inserts register contents literally</p></li></ul><div><hr></div><h2>15. Practical 0.12 config examples</h2><h3>Minimal modern structure</h3><pre><code><code>~/.config/nvim/
&#9500;&#9472;&#9472; init.lua
&#9500;&#9472;&#9472; nvim-pack-lock.json
&#9492;&#9472;&#9472; lua/
    &#9492;&#9472;&#9472; config/
        &#9500;&#9472;&#9472; init.lua
        &#9500;&#9472;&#9472; options.lua
        &#9500;&#9472;&#9472; keymaps.lua
        &#9500;&#9472;&#9472; diagnostics.lua
        &#9500;&#9472;&#9472; autocmds.lua
        &#9492;&#9472;&#9472; pack.lua</code></code></pre><h3><code>init.lua</code></h3><pre><code><code>require('config')</code></code></pre><h3><code>lua/config/init.lua</code></h3><pre><code><code>require('config.options')
require('config.pack')
require('config.keymaps')
require('config.diagnostics')
require('config.autocmds')</code></code></pre><h3><code>lua/config/options.lua</code></h3><pre><code><code>vim.o.autocomplete = true
vim.o.pumborder = 'rounded'
vim.o.pummaxwidth = 40
vim.o.completeopt = 'menu,menuone,noselect,nearest'</code></code></pre><h3><code>lua/config/diagnostics.lua</code></h3><pre><code><code>local sev = vim.diagnostic.severity

vim.diagnostic.config({
  severity_sort = true,
  update_in_insert = false,
  float = {
    border = 'rounded',
    source = true,
  },
  signs = {
    text = {
      [sev.ERROR] = 'E',
      [sev.WARN]  = 'W',
      [sev.INFO]  = 'I',
      [sev.HINT]  = 'H',
    },
  },
})</code></code></pre><h3><code>lua/config/pack.lua</code></h3><pre><code><code>vim.pack.add({
  'https://github.com/sainnhe/gruvbox-material',
  'https://github.com/nvim-treesitter/nvim-treesitter',
})</code></code></pre><div><hr></div><h2>16. What you can probably remove from your config</h2><p>After upgrading to 0.12, you may be able to simplify your setup by removing or rethinking:</p><ul><li><p>custom diagnostic-sign definitions based on <code>:sign-define</code></p></li><li><p>manual statusline diagnostic counters</p></li><li><p>ad-hoc HTTP wrappers for simple requests</p></li><li><p>third-party undotree plugins if the built-in one is enough</p></li><li><p>plugin-manager bootstrap code if you switch to <code>vim.pack</code></p></li></ul><p>Whether you should remove <code>nvim-lspconfig</code> or a third-party completion plugin depends on how much custom behavior you want. Neovim 0.12 reduces the need for them, but it does not automatically make them obsolete for every workflow.</p><div><hr></div><h2>Bottom line</h2><p>Neovim 0.12 is a substantial release, but the most important story is not just new features. It is that more of the editor is now usable without a large stack of plugins.</p><p>The biggest practical wins are:</p><ol><li><p><code>vim.pack</code> for built-in plugin management</p></li><li><p><strong>stronger built-in LSP support</strong></p></li><li><p><strong>native insert-mode auto-completion</strong></p></li><li><p><strong>cleaner diagnostics configuration</strong></p></li><li><p><strong>useful built-in UI and Lua improvements</strong></p></li></ol><p>If you upgrade, the first places to review are your <strong>plugin manager</strong>, <strong>diagnostic sign config</strong>, <strong>Treesitter parser assumptions</strong>, and any code that still uses renamed APIs.</p><div><hr></div><h2>References</h2><ul><li><p><code>:help news-0.12</code></p></li><li><p><code>:help vim.pack</code></p></li><li><p><code>:help lsp</code></p></li><li><p><code>:help diagnostic-signs</code></p></li><li><p><code>:help ui2</code></p></li><li><p><code>:help deprecated-0.12</code></p></li></ul>]]></content:encoded></item><item><title><![CDATA[48 - Albin Groen]]></title><description><![CDATA[Albin is a self-taught frontend developer currently working at All Ears.]]></description><link>https://dotfiles.substack.com/p/48-albin-groen</link><guid isPermaLink="false">https://dotfiles.substack.com/p/48-albin-groen</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Tue, 17 Feb 2026 19:51:49 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!YEF5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Albin is a self-taught frontend developer currently working at All Ears.</p><p>He started in design, and that influence still shows up in how he approaches development &#8212; with attention to detail, aesthetics, and craft. Outside of code, he&#8217;s always gravitated toward creative subcultures: freestyle skiing, skateboarding, keyboards, photography, and climbing. Things that reward long-term practice.</p><p>He lives just outside Stockholm with his partner. When he&#8217;s not working, he&#8217;s usually outdoors &#8212; hiking, traveling, photographing, or building and maintaining open-source projects.</p><p>Earlier in his career, he was active in the developer meetup scene, attending, speaking, and organizing events.</p><h4>Open Source</h4><p>Albin maintains a few projects:</p><ul><li><p><a href="https://github.com/albingroen/prismabuilder.io">https://github.com/albingroen/prismabuilder.io</a></p></li><li><p><a href="https://github.com/albingroen/react-cmdk">https://github.com/albingroen/react-cmdk  </a></p></li><li><p><a href="https://github.com/albingroen/quick.nvim">https://github.com/albingroen/quick.nvim</a></p></li></ul><h1>Neovim &amp; Terminal</h1><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!YEF5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!YEF5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2391994,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/188301766?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!YEF5!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0e0791c-c9f6-4b90-a168-daf2ef351fa6_6948x4008.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!O6DU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!O6DU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3662243,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/188301766?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!O6DU!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66bdc229-997b-49f1-9ea2-601c8a0f66d3_6948x4008.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Nb8f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Nb8f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png" width="1456" height="840" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:840,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3571554,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/188301766?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 424w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 848w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Nb8f!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6105e015-e2a6-42e0-9292-3ec6f54f4fdf_6948x4008.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><p>Neovim has been his primary editor for nearly a decade.</p><p>The configuration is centered around frontend development &#8212; mainly TypeScript and React. It&#8217;s been refined slowly over the years. Plugins get pruned regularly. What remains is what he actually uses.</p><p>He publishes a small Neovim distribution called `quick.nvim`, though his personal setup is slightly modified to integrate better with tmux.</p><p>Current plugin list:</p><ul><li><p><a href="https://github.com/Saghen/blink.cmp">blink.cmp</a> &#8212; High-performance completion plugin with fuzzy matching and async support.</p></li><li><p><a href="https://github.com/stevearc/conform.nvim">conform.nvim</a> &#8212; Lightweight formatter plugin that runs formatters on save with minimal config.</p></li><li><p><a href="https://github.com/rafamadriz/friendly-snippets">friendly-snippets</a> &#8212; Collection of preconfigured snippets for a wide range of languages and frameworks.</p></li><li><p><a href="https://github.com/lewis6991/gitsigns.nvim">gitsigns.nvim</a> &#8212; Git integration that shows added, changed, and removed lines in the sign column.</p></li><li><p><a href="https://github.com/folke/lazy.nvim">lazy.nvim</a> &#8212; Modern plugin manager with lazy-loading, lockfiles, and a clean UI.</p></li><li><p><a href="https://github.com/williamboman/mason-lspconfig.nvim">mason-lspconfig.nvim</a> &#8212; Bridge between Mason and lspconfig for automatic LSP server setup.</p></li><li><p><a href="https://github.com/williamboman/mason.nvim">mason.nvim</a> &#8212; Portable package manager for LSP servers, linters, formatters, and DAP adapters.</p></li><li><p><a href="https://github.com/windwp/nvim-autopairs">nvim-autopairs</a> &#8212; Automatically closes brackets, quotes, and other paired characters as you type.</p></li><li><p><a href="https://github.com/neovim/nvim-lspconfig">nvim-lspconfig</a> &#8212; Official quickstart configs for Neovim&#8217;s built-in LSP client.</p></li><li><p><a href="https://github.com/kylechui/nvim-surround">nvim-surround</a> &#8212; Easily add, change, and delete surrounding pairs like quotes, brackets, and tags.</p></li><li><p><a href="https://github.com/nvim-treesitter/nvim-treesitter">nvim-treesitter</a> &#8212; Treesitter integration for better syntax highlighting, indentation, and code navigation.</p></li><li><p><a href="https://github.com/windwp/nvim-ts-autotag">nvim-ts-autotag</a> &#8212; Automatically closes and renames HTML/JSX tags using Treesitter.</p></li><li><p><a href="https://github.com/JoosepAlvworked/nvim-ts-context-commentstring">nvim-ts-context-commentstring</a> &#8212; Sets the correct comment style based on cursor location in embedded languages.</p></li><li><p><a href="https://github.com/stevearc/oil.nvim">oil.nvim</a> &#8212; File explorer that lets you edit your filesystem like a normal buffer.</p></li><li><p><a href="https://github.com/navarasu/onedark.nvim">onedark.nvim</a> &#8212; Atom-inspired One Dark colorscheme with multiple style variants.</p></li><li><p><a href="https://github.com/nvim-lua/plenary.nvim">plenary.nvim</a> &#8212; Lua utility library used as a dependency by many popular plugins.</p></li><li><p><a href="https://github.com/MeanderingProgrammer/render-markdown.nvim">render-markdown.nvim</a> &#8212; Renders Markdown inline with headings, code blocks, and formatting styled in the buffer.</p></li><li><p><a href="https://github.com/nvim-telescope/telescope.nvim">telescope.nvim</a> &#8212; Highly extensible fuzzy finder for files, grep results, LSP symbols, and more.</p></li><li><p><a href="https://github.com/pmizio/typescript-tools.nvim">typescript-tools.nvim</a> &#8212; Native TypeScript language server integration with faster performance than tsserver wrappers.</p></li><li><p><a href="https://github.com/tpope/vim-rhubarb">vim-rhubarb</a> &#8212; GitHub integration for fugitive, enabling <code>:GBrowse</code> to open files on GitHub.</p></li><li><p><a href="https://github.com/tpope/vim-sleuth">vim-sleuth</a> &#8212; Automatically detects and sets the correct indentation style for each file.</p></li><li><p><a href="https://github.com/christoomey/vim-tmux-navigator">vim-tmux-navigator</a> &#8212; Seamless navigation between Neovim splits and tmux panes with the same keybindings.</p></li><li><p><a href="https://github.com/folke/which-key.nvim">which-key.nvim</a> &#8212; Displays a popup of available keybindings as you type, so you never forget a shortcut.</p></li></ul><h2>Favorite Tools</h2><h3>Terminal</h3><ul><li><p><a href="https://github.com/tmux/tmux">tmux</a> &#8212; Terminal multiplexer for managing multiple sessions, windows, and panes from a single screen.</p></li><li><p><a href="https://neovim.io/">Neovim</a> &#8212; Hyperextensible Vim-based text editor built for modern workflows and plugin ecosystems.</p></li><li><p><a href="https://github.com/opencode-ai/opencode">OpenCode</a> &#8212; an AI-powered coding assistant that runs directly in your terminal.</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a> &#8212; Blazing-fast general-purpose fuzzy finder for files, commands, and anything piped to it.</p></li><li><p><a href="https://github.com/ajeetdsouza/zoxide">zoxide</a> &#8212; Smarter <code>cd</code> command that learns your most-used directories and jumps to them instantly.</p></li><li><p><a href="https://fishshell.com/">Fish Shell</a> &#8212; User-friendly shell with autosuggestions, syntax highlighting, and sensible defaults out of the box.</p></li></ul><h3>GUI</h3><ul><li><p><a href="https://ghostty.org/">Ghostty</a> &#8212; Fast, native terminal emulator built from the ground up with modern GPU rendering.</p></li><li><p><a href="https://www.raycast.com/">Raycast</a> &#8212; Productivity launcher for macOS that replaces Spotlight with extensible commands and integrations.</p></li><li><p><a href="https://eggerapps.at/postico2/">Postico</a> &#8212; Clean, intuitive PostgreSQL client for macOS.</p></li><li><p><a href="https://zen-browser.app/">Zen</a> &#8212; Privacy-focused browser built on Firefox with a minimal, distraction-free interface.</p></li></ul><h2>Dotfiles</h2><p>You can find his dotfiles here:</p><p><a href="https://github.com/albingroen/dotfiles">https://github.com/albingroen/dotfiles </a> </p><p>He uses <a href="https://fishshell.com/">fish</a> instead of <a href="https://ohmyz.sh/">zsh</a>. Built-in syntax highlighting, solid autocomplete, and noticeably faster startup. It&#8217;s been his default shell for a while now.</p><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!kIQ_!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 424w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 848w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!kIQ_!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp" width="1456" height="971" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:971,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:5562450,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/webp&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/188301766?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 424w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 848w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 1272w, /__u/substackcdn.com/image/fetch/$s_!kIQ_!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2417d45-2783-49ea-883f-873beed4f2da_2976x1984.webp 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Books</h2><h3>Technical</h3><ul><li><p><a href="https://refactoringui.com/">Refactoring UI</a> &#8212; Practical examples on building better interfaces without necessarily being a trained designer.</p></li></ul><h3>Non-Technical</h3><ul><li><p><a href="https://amzn.to/40hfKDe">The Almanack of Naval Ravikant</a> &#8212; A curated collection of Naval&#8217;s tweets over the years. Short, dense, reflective. A quick read that lingers longer than expected.</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[47 - Filipe Lima]]></title><description><![CDATA[Filipe Lima is a full-stack software engineer from Brazil, currently working at a Web3 startup named d3. Outside of work, he&#8217;s passionate about movies, anime, series, and crafting setups that balance aesthetics with utility. In his free time, he enjoys puzzles, chess, and slowly rebuilding his reading habit, focusing on stories rather than technical manuals.]]></description><link>https://dotfiles.substack.com/p/47-filipe-lima</link><guid isPermaLink="false">https://dotfiles.substack.com/p/47-filipe-lima</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Fri, 09 Jan 2026 02:38:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!cP_t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://x.com/datsfilipeXYZ">Filipe Lima</a> is a full-stack software engineer from Brazil, currently working at a Web3 startup named <code>d3</code>. Outside of work, he&#8217;s passionate about movies, anime, series, and crafting setups that balance aesthetics with utility. In his free time, he enjoys puzzles, chess, and slowly rebuilding his reading habit, focusing on stories rather than technical manuals.</p><p>Filipe loves to rice his setup, he created a website to showcase his work: <a href="https://datsrice.datsfilipe.xyz/">https://datsrice.datsfilipe.xyz/</a></p><p>Some of his side projects: <a href="https://github.com/datsfilipe/trxsh">https://github.com/datsfilipe/trxsh</a> and <a href="https://github.com/datsfilipe/vesper.nvim">https://github.com/datsfilipe/vesper.nvim</a></p><h2>Neovim &amp; Terminal</h2><blockquote><p>My terminal setup is built around speed and simplicity. I want tools that start fast, feel fast, and stay out of the way.</p><p><a href="https://zellij.dev/">Zellij</a> is at the core of how I organize sessions &#8212; I use it with a single plugin, `<a href="https://github.com/mostafaqanbaryan/zellij-switch">zellij-switch</a>`, to flip between workspaces without clutter or drag. Everything else is chosen with a &#8220;fast, no-bloat&#8221; mindset.</p></blockquote><p>Filipe transitioned from more complex setups to this minimal structure after years of refining and reevaluating what he actually uses. The emphasis is on workflows that feel intuitive and don&#8217;t interrupt flow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!cP_t!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 424w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 848w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!cP_t!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png" width="1456" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:977903,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 424w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 848w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cP_t!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3cd21514-eb00-42ac-b454-d24d7434a99d_1467x935.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!viin!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 424w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 848w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 1272w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!viin!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png" width="1456" height="928" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:928,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:977903,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 424w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 848w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 1272w, /__u/substackcdn.com/image/fetch/$s_!viin!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F90f007c6-7000-4363-beb4-ec71efddb575_1467x935.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!47wx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 424w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 848w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 1272w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!47wx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png" width="1456" height="2457" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2457,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:959980,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 424w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 848w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 1272w, /__u/substackcdn.com/image/fetch/$s_!47wx!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff43810ae-8259-4cbf-8e2c-ae77501cb7b6_1920x3240.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!uGV9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 424w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 848w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!uGV9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png" width="1456" height="944" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:944,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1003547,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 424w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 848w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 1272w, /__u/substackcdn.com/image/fetch/$s_!uGV9!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdce7f501-f89c-4eb2-b357-bb48a1e11706_1467x951.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jbhh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 424w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 848w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jbhh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png" width="1315" height="1036" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1036,&quot;width&quot;:1315,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1195266,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 424w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 848w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jbhh!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F83397c08-e014-41c2-b26b-8c6c9a350af1_1315x1036.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ZctT!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ZctT!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1544091,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!ZctT!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd86a5dc0-7969-4d28-98a7-852e5310852c_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favourite Tools</h2><ul><li><p> <a href="https://zellij.dev/">Zellij</a> &#8212; Terminal workspace manager with a focus on simplicity and session switching via plugins.</p></li><li><p><a href="https://fishshell.com/">fish</a> &#8212; A fast and ergonomic shell with sensible defaults.</p></li><li><p><a href="https://alacritty.org/">Alacritty</a> &#8212; A performance-oriented terminal emulator that starts and runs quickly.</p></li><li><p> <a href="https://github.com/eza-community/eza">eza</a> &#8212; A modern replacement for `ls` with better defaults and nicer output.</p></li><li><p> <a href="https://git-scm.com/">git</a> &#8212; The baseline for version control; no extras, no unnecessary tooling.</p></li><li><p> <a href="https://github.com/x-motemen/ghq">ghq</a> &#8212; Organizes repositories cleanly so they appear where expected and integrate with Zellij sessions.</p></li><li><p><a href="https://bottom.pages.dev/stable/\">bottom</a> &#8212; System monitor that feels responsive without the overhead of Python-based alternatives.</p></li></ul><h2>Dotfiles</h2><p>You can find Filipe&#8217;s dotfiles here: <a href="https://github.com/datsfilipe/dotfiles">https://github.com/datsfilipe/dotfiles</a> and his Neovim config here: <a href="https://github.com/datsfilipe/datsnvim">https://github.com/datsfilipe/datsnvim</a></p><blockquote><p>His dotfiles include scripts, configurations, and tooling tailored to fast session workflows, NixOS integration, and personal automations. They&#8217;re not drop-in plug-and-play, but they contain many patterns and ideas that can be adapted into other workflows.</p></blockquote><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!N3by!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!N3by!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/dca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4712202,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!N3by!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdca964b6-4938-41e6-a17c-59d332f36ca3_4000x3000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!03sa!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!03sa!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2885029,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!03sa!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fd457ad-52bb-4af2-bbb4-9ceb7c24291f_3000x4000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!S6kR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!S6kR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2897895,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/183979280?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!S6kR!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47962d91-c1e2-41c8-b2b7-8020c9d08ced_3000x4000.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>I'm a big fan of berserk as you can see, it's not my favourite anime cause the adaptation (original) was cut too early and the sequences were rly bad, but it's the only mang&#225; I've ever read, and therefore my favourite. These keyboards are custom made but not by me, a guy from Brazil did those for me: <a href="https://www.instagram.com/tupinikeebs/">https://www.instagram.com/tupinikeebs/</a>. I want to get a smaller one like this and one flat in future (for usage with my laptop).</p></blockquote><h2>Favourite Books</h2><ul><li><p><a href="https://amzn.to/4jAmGo7">The Metamorphosis &#8212; Franz Kafka</a></p></li><li><p><a href="https://amzn.to/4qOdajy">Fahrenheit 451 &#8212; Ray Bradbury</a></p></li><li><p><a href="https://amzn.to/4qMmB2V">Short stories - Edgar Allan Poe</a></p></li><li><p><a href="https://amzn.to/4sunIWu">Posthumous Memoirs of Br&#225;s Cubas &#8212; Machado de Assis</a></p><p></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2></h2><p></p><p></p><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[46 - Paul Alden]]></title><description><![CDATA[He is a web developer with 17 years of experience, currently living in the South of the UK.]]></description><link>https://dotfiles.substack.com/p/46-paul-alden</link><guid isPermaLink="false">https://dotfiles.substack.com/p/46-paul-alden</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Mon, 17 Nov 2025 18:00:57 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!xAcb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>He is a web developer with 17 years of experience, currently living in the South of the UK. He studied Computer Science at university and, after graduating, travelled for several years before deciding on his career path. He currently works at Olio as a Senior Ruby Developer, contributing to their mission of reducing food waste and promoting a more sustainable model of consumption. Outside of work, he and his wife are expecting their first child in December, and he plays as much beach and indoor volleyball as he can.</p><p>Github: <a href="https://github.com/paulalden">https://github.com/paulalden</a></p><h2>Neovim &amp; Terminal</h2><blockquote><p>I live in the CLI as much as possible, so my work flow is very Tmux focused. This is the 4th version of my Neovim config, I&#8217;ve tried using Lazyvim previously, but it changed so quickly that I found it too unstable for my professional daily driver. This config is based on Kickstart and has been used daily for Ruby development.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!xAcb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!xAcb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:447048,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/179140578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!xAcb!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F800b0b7d-3e2c-470e-99a4-a06dfc51f30d_3360x2100.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!KlXD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!KlXD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:973274,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/179140578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!KlXD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fff967a50-df9d-454a-a49e-cf89fd7fa56d_3360x2100.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Y69F!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Y69F!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1534449,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/179140578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Y69F!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb33abcb4-09a3-4695-aa7b-55a0024482a7_3360x2100.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Dglw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Dglw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png" width="1456" height="911" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:911,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1482323,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/179140578?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 424w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 848w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Dglw!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F15f27cc2-ef2a-4218-9e16-f2f79e6c41c6_3358x2100.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><a href="https://neovim.io/">Neovim</a> &#8211; Modern, extensible Vim fork with async support and a built-in LSP client</p></li><li><p><a href="https://github.com/tmux/tmux/wiki">Tmux</a> &#8211; Terminal multiplexer for managing multiple terminal sessions in one window</p></li><li><p><a href="https://github.com/junegunn/fzf">FZF</a> &#8211; Blazing-fast command-line fuzzy finder (great for files, history, git, etc.)</p></li><li><p><a href="https://www.claude.com/product/claude-code">Claude Code</a> &#8211; AI-powered coding assistant by Anthropic, integrated into the terminal or IDE</p></li><li><p><a href="https://github.com/FelixKratz/SketchyBar">SketchyBar</a> &#8211; Fully customizable macOS status bar replacement written in C</p></li><li><p><a href="https://github.com/koekeishiya/yabai">Yabai</a> &#8211; Tiling window manager for macOS with focus on scripting and automation</p></li><li><p><a href="https://www.zsh.org/">ZSH</a> &#8211; Powerful shell with better autocompletion, globbing, and customization than Bash</p></li><li><p><a href="https://github.com/jesseduffield/lazygit">LazyGit</a> &#8211; Simple terminal UI for git commands &#8211; makes staging, committing, and branching effortless</p></li></ul><h2>Dotfiles</h2><p>You can find Paul&#8217;s dotfiles here: <a href="https://github.com/paulalden/dotfiles">https://github.com/paulalden/dotfiles</a></p><blockquote><p>My dotfiles are a constant work in progress, but this iteration has been my daily driver for about a year.</p></blockquote><h2>Favorite Books</h2><p>Non-technical book: </p><ul><li><p><a href="https://amzn.to/49YTpAp">Hyperion, by Dan Simmons</a></p></li></ul><p>Technical:</p><ul><li><p><a href="https://amzn.to/3JYRAJa">Eloquent Ruby by Russ Olsen</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[45 - Erick Navarro]]></title><description><![CDATA[Erick Navarro is a software engineer from Peru with over 15 years of experience, proficient in languages like Python, JS, Elixir, and Go.]]></description><link>https://dotfiles.substack.com/p/45-erick-navarro</link><guid isPermaLink="false">https://dotfiles.substack.com/p/45-erick-navarro</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Wed, 05 Nov 2025 18:01:34 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!u-sl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Erick Navarro is a software engineer from Peru with over 15 years of experience, proficient in languages like Python, JS, Elixir, and Go. </p><p>He enjoys learning new tools and languages, as well as building side projects. He has created Emacs packages (as an Emacs user), developed a functional database client at melocoton.app (which still needs refinement), and worked as an SRE for the past two years. </p><p>Passionate about servers, he maintains a home lab running VMs and containers. Currently, he is seeking a new job as a developer or SRE/platform engineer. </p><p>He founded Ruay Labs (ruaylabs.com&#8212;&#8221;ruay&#8221; means &#8220;build&#8221; in Quechua, the Inca language) to sell his ongoing projects. Eager to learn, he is focusing on streaming, having assisted with local meetup setups, and occasionally streams coding content in Spanish on Twitch at twitch.tv/erickgnavar. </p><p>He is also exploring 3D printing with a Bambu Lab A1, mastering 3D modeling and techniques while earning extra income through on-demand prints. He shares his learnings on his blog at <a href="https://erick.navarro.io/blog">https://erick.navarro.io/blog</a>.</p><h2><strong>Neovim (Or Emacs) &amp; Terminal</strong></h2><blockquote><p>I use emacs, I&#8217;ve been using it for almost 10 years. I tried vim before. I love modal editing but I didn&#8217;t like vim script so I search for other options,</p><p>I really like lisp as editor configuration language. I love emacs because is a living program, I can change anything on the fly because it&#8217;s basically a lisp machine</p><p>which happens to have an editor. I use evil-mode to emulate vim. So I have the best of both worlds</p><p>Also I love magit(git client) and org(markdown on steroids)</p><p>I have some custom workflows coded in lisp, I can have many projects opened at the same time using perspectives(kinda workspaces) and move quickly between them.</p><p>I can make commits and PRs using magit, open a shell, run tests, make editions in the whole project using ripgrep and a custom workflow, rename files as text using dired,</p><p>have literate programming using org, and many other things</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!u-sl!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!u-sl!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png" width="1456" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:295349,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/178045875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!u-sl!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb362833e-2c9e-4969-a530-3711b0b7a8b1_1812x960.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2bq9!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2bq9!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png" width="1456" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/aeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:272136,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/178045875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2bq9!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faeb808fd-e370-4d54-a142-750cc0c49bc0_1812x960.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rGNh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rGNh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png" width="1456" height="771" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:771,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:373544,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/178045875?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 424w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 848w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rGNh!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9942738a-c9e5-42ac-8acf-d345d8e6551a_1812x960.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favorite Tools</strong></h2><h3>CLI Tools</h3><ul><li><p><a href="https://junegunn.github.io/fzf/">fzf</a>: For history search with Ctrl-R in terminal and bash utilities.</p></li><li><p><a href="https://github.com/eza-community/eza">eza</a>: Replacement for ls.</p></li><li><p><a href="https://github.com/sharkdp/bat">bat</a>: Replacement for cat.</p></li><li><p><a href="https://github.com/tmux/tmux">tmux</a>: Terminal multiplexer; one session per project.</p></li><li><p><a href="https://github.com/BurntSushi/ripgrep">ripgrep</a>: Replacement for grep.</p></li><li><p><a href="https://mise.jdx.dev/">mise</a>: Version manager for Elixir, Rust, Zig, Node.js, Ruby; loads/unloads environment variables on directory change. Replaced asdf and direnv.</p></li><li><p><a href="https://docs.astral.sh/uv/">uv</a>: For Python virtualenvs and scripts; supports inline dependency metadata for quick scripts.</p></li></ul><h3>GUI Tools</h3><ul><li><p><a href="https://www.gnu.org/software/emacs/">Emacs</a>: Editor.</p></li><li><p><a href="https://www.homerow.app/">Homerow</a>: Keyboard-based clicking and scrolling on macOS.</p></li><li><p><a href="https://cleanshot.com/">Cleanshot</a>: Screen capture and annotation.</p></li><li><p><a href="https://www.hammerspoon.org/">Hammerspoon</a>: Window management and helpers.</p></li><li><p><a href="https://www.alfredapp.com/">Alfred</a>: Spotlight replacement and clipboard manager; custom workflows.</p></li><li><p><a href="https://espanso.org/">Espanso</a>: Text expander.</p></li><li><p><a href="https://erickgnavar.github.io/dynowall/">Dynowall</a>: Backgrounds (self-made).</p></li><li><p><a href="https://melocoton.app">Melocoton</a>: Database client.</p></li></ul><h2><strong>Dotfiles</strong></h2><p>You can find Erick&#8217;s configs here: <a href="https://github.com/erickgnavar/dotfiles">https://github.com/erickgnavar/dotfiles</a></p><blockquote><p>I use a custom script(setup.sh) to make installation(it works like stow).</p><p>Didn&#8217;t know stow existed back then. I use nixOS on linux and I was using nix-darwin on my work computer</p></blockquote><h2><strong>Favorite Books</strong></h2><p>Technical book: </p><ul><li><p><a href="https://amzn.to/4hIAYC7">A Philosophy of Software Design, by John Ousterhout</a></p></li></ul><p>Non-technical: </p><ul><li><p><a href="https://amzn.to/4hJfZPj">Song of Ice and Fire Series by GRRM</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[44 - Alexis CORPORAL]]></title><description><![CDATA[Alexis is a 4th-year BSIT student passionate about automating tasks and building tools that enhance development efficiency.]]></description><link>https://dotfiles.substack.com/p/44-alexis-corporal</link><guid isPermaLink="false">https://dotfiles.substack.com/p/44-alexis-corporal</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Tue, 28 Oct 2025 14:12:29 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!EjVZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://github.com/Alexis12119">Alexis</a> is a 4th-year BSIT student passionate about automating tasks and building tools that enhance development efficiency.</p><p>He enjoys customizing his workflow and experimenting with technologies that enable him to code more efficiently.</p><p>Explore his projects and learn more about him here: <a href="https://alexis-dev.vercel.app/">alexis-dev.vercel.app</a></p><h2><strong>Neovim &amp; Terminal</strong></h2><blockquote><p>I love my Neovim setup because it&#8217;s **fully tailored to my workflow**. The keybindings and automation features let me focus on coding instead of repetitive tasks. It&#8217;s designed to **scale with my projects**, supporting multiple programming languages seamlessly. Combined with OpenCode, Lazygit, Lazydocker, and other CLI tools, my setup helps me work faster, smarter, and more efficiently every day.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!EjVZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!EjVZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:127809,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/177367648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!EjVZ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3dae8934-d39e-4dfb-8dc5-847025e097f9_1366x768.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!zM3b!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!zM3b!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:105493,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/177367648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!zM3b!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F18a0ce8a-ce72-4b55-a20e-53198f9f243e_1366x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!lUSU!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!lUSU!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:120875,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/177367648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lUSU!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F721ab016-e5d7-48c2-a4cd-578f03c72c94_1366x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BULO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BULO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:108171,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/177367648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BULO!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa8b3ed6d-0b99-4b04-81e1-edf5f2032f2d_1366x768.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5Go5!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5Go5!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png" width="1366" height="768" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:768,&quot;width&quot;:1366,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67934,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/177367648?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 424w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 848w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5Go5!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F77a8a23a-14c2-4aec-94f3-e3edcb7c54e9_1366x768.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favorite Tools</strong></h2><ul><li><p><a href="https://github.com/neovim/neovim">Neovim</a> - My main editor. I customized it for scalability, workflow automation, custom keybindings that never get in the way, and smooth support for multiple programming languages.</p></li><li><p><a href="https://github.com/kovidgoyal/kitty">kitty</a> &#8211; A fast, feature-rich, cross-platform terminal emulator.</p></li><li><p><a href="https://github.com/tmux/tmux">tmux</a> &#8211; A terminal multiplexer that allows me to easily manage multiple terminal sessions.</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a> &#8211; A command-line fuzzy finder.</p></li><li><p><a href="https://github.com/sst/opencode">opencode</a> - An AI CLI that helps me code smarter and faster.</p></li><li><p><a href="https://github.com/jesseduffield/lazygit">lazygit</a> &#8211; A terminal UI for Git to speed up version control.</p></li><li><p><a href="https://github.com/jesseduffield/lazydocker">lazydocker</a> &#8211; A terminal UI for Docker to speed up container management.</p></li></ul><h2><strong>Dotfiles</strong></h2><h3>Neovim Setup</h3><p>Neovim Config: <a href="https://github.com/Alexis12119/nvim-config">https://github.com/Alexis12119/nvim-config</a></p><h4>Requirements</h4><p>Before diving in, ensure these are installed:</p><p><strong>On Windows</strong>, use Scoop.</p><ul><li><p><strong>Git:</strong> lazygit</p></li><li><p><strong>Telescope dependencies:</strong></p><ul><li><p>fd</p></li><li><p>bat</p></li><li><p>ripgrep</p></li><li><p>make</p></li><li><p>mingw-nuwen</p></li></ul></li><li><p><strong>Nerd Font (for icons):</strong></p><ul><li><p>JetBrainsMono</p></li><li><p>(Other fonts optional)</p></li></ul></li><li><p><strong>Neovim:</strong> v0.11+</p></li></ul><h4>Installation</h4><p><strong>Preparation:</strong></p><ol><li><p>Ensure Neovim is not running.</p></li><li><p>Remove or move the existing ~/.config/nvim directory.</p></li></ol><p><strong>Installation:</strong></p><ul><li><p><strong>Linux / macOS:</strong></p></li></ul><pre><code><code>bash &lt;(curl -s https://raw.githubusercontent.com/Alexis12119/nvim-config/main/installer/install.sh)</code></code></pre><ul><li><p><strong>Windows (PowerShell):</strong></p></li></ul><pre><code><code>Invoke-WebRequest https://raw.githubusercontent.com/Alexis12119/nvim-config/main/installer/install.ps1 -UseBasicParsing | Invoke-Expression</code></code></pre><h3>Dotfiles Setup</h3><p>Dotfiles: <a href="https://github.com/Alexis12119/dotfiles">https://github.com/Alexis12119/dotfiles</a></p><ul><li><p>Clone repo:</p></li></ul><pre><code><code>git clone https://github.com/Alexis12119/dotfiles.git ~/dotfiles</code></code></pre><ul><li><p>Use <code>stow</code> to symlink into the home directory.</p></li><li><p>Then install <a href="https://github.com/end-4/dots-hyprland">End-4 Dotfiles</a>.</p></li></ul><h2><strong>Favorite Books</strong></h2><ul><li><p>Bible</p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[43 - Yousef Haddar]]></title><description><![CDATA[Yousef is a software engineer with 4 years of experience, currently works at Github, loves problem solving, and used to be an ACM/IEEE/Codeforces contestant back in college.]]></description><link>https://dotfiles.substack.com/p/43-yousef-haddar</link><guid isPermaLink="false">https://dotfiles.substack.com/p/43-yousef-haddar</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Thu, 31 Jul 2025 17:36:03 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!M0mj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://www.linkedin.com/in/yousefhadder/">Yousef</a> is a software engineer with 4 years of experience, currently works at Github, loves problem solving, and used to be an ACM/IEEE/Codeforces contestant back in college.</p><h2>Neovim &amp; Terminal</h2><blockquote><ul><li><p>I love that you can configure it to be unique to your own style without extra stuff</p></li><li><p>I love how fast it is.</p></li><li><p>I love using vim motions and macros and keymaps</p></li><li><p>I love how you can find almost support to any functionality you need in an IDE</p></li></ul></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!M0mj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!M0mj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png" width="1456" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1319614,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!M0mj!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87711e46-5c69-4717-98d7-55f5fe04090a_2296x1328.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rQ3e!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 424w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 848w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rQ3e!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png" width="1456" height="843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:843,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:563651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 424w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 848w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rQ3e!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F971cd8a6-dcd8-44d5-a520-ab310e54e9ee_2296x1329.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VH2O!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 424w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 848w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VH2O!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png" width="1456" height="452" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:452,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:222009,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 424w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 848w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VH2O!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F346aedba-9fe6-4280-9009-98ebe4d3b0ca_2296x713.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!t66w!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!t66w!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png" width="1456" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1594109,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!t66w!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0862304b-e97a-4cf7-a7e8-1474950e4386_2296x1328.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!rEn-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!rEn-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png" width="1456" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1328172,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!rEn-!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F617b9f16-13f2-4d5a-ba8d-00ac45329e67_2296x1328.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FIp1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FIp1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png" width="1456" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1606259,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!FIp1!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4ad49ad-442c-437f-98a9-89922fdbefad_2296x1328.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!IJq6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!IJq6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png" width="1456" height="842" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:842,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1286671,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 424w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 848w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 1272w, /__u/substackcdn.com/image/fetch/$s_!IJq6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d4778ab-0fb7-444f-a251-aaad98da53eb_2296x1328.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><a href="https://neovim.io/">Neovim</a></p></li><li><p><a href="https://github.com/tmux/tmux/">Tmux</a>: terminal multiplexer.</p></li><li><p><a href="https://github.com/ajeetdsouza/zoxide">Zoxide</a>: a smarter <code>cd</code> command. </p></li><li><p><a href="https://github.com/sxyazi/yazi">Yazi</a>: Blazing fast terminal file manager written in Rust, based on async I/O.</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a>: A command-line fuzzy finder.</p></li><li><p><a href="https://ghostty.org/">Ghostty</a>: Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.</p></li><li><p><a href="https://apphousekitchen.com/">AIDente</a>: AlDente gives you control over your MacBook&#8217;s charging behavior, helping you extend battery lifespan and maintain peak performance.</p></li><li><p><a href="https://freemacsoft.net/appcleaner/">AppCleaner</a>: AppCleaner is a small application that allows you to uninstall unwanted apps thoroughly.</p></li></ul><h2>Dotfiles</h2><p>You can find Yousef&#8217;s dotfiles here: <a href="https://github.com/YousefHadder/dotfiles">https://github.com/YousefHadder/dotfiles</a> (instructions can be found in the readme)</p><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!x4Qg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!x4Qg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg" width="1456" height="1456" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1456,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4703302,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/169767260?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!x4Qg!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F476116b6-96a9-47c3-aa01-cb1f21dc63d6_4284x4284.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[42 - Oscar Cortez]]></title><description><![CDATA[Oscar is a seasoned software engineer and proud Pythonista from Nicaragua who now resides in Colombia and is a big fan of their coffee.]]></description><link>https://dotfiles.substack.com/p/42-oscar-cortez</link><guid isPermaLink="false">https://dotfiles.substack.com/p/42-oscar-cortez</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Thu, 10 Jul 2025 13:50:40 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!0pUd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Oscar is a seasoned software engineer and proud Pythonista from Nicaragua who now resides in Colombia and is a big fan of their coffee. A self-taught farmer and professional chef in his free time, he currently works at <a href="https://www.handraise.com/">Handraise</a>, a company that provides always-on media intelligence for narrative control. In his free time, he actively contributes to open-source projects like Django-Wiki or Django-Places. Oscar has had the privilege of working in various industries, including digital newspapers, cyber defense, healthcare, and big data. When he's not engrossed in a 30-days-old tmux session, he enjoys engaging with the community through meetups or trail running with his German shepherd dog.</p><h2><strong>Neovim &amp; Terminal</strong></h2><blockquote><p>My neovim config is pretty much based on <a href="https://github.com/nvim-lua/kickstart.nvim">kickstart.nvim</a> - There's<br>no extra or complex configuration, it just works.</p><p>I discovered the terminal world when I started my high school CS<br>journey. Back then, my computer was a Lenovo ThinkPad X300 with 4GB of<br>RAM, an i3 as a processor, and a 256 SSD running Manjaro Linux. With<br>those specs, I knew that wasting resources on an IDE was a luxury.<br>Luckily, my brain exploded when I saw <a href="http://fitoria.net/">fitoria</a> &amp; <a href="https://petersanchez.com/">petersanchez&#8217;s</a> power Vim &amp; tmux usage. Something in my brain said this is the way.</p><p>Most of my usage relies heavily on tmux popups. I used to be the guy<br>with dozens of Vim tabs and quite a few tmux windows. Popups are to me<br>a way to keep contextual information within a few keystrokes.<br><br>In my case, the main access to information is my editor. On this<br>screen, I know what and why I&#8217;m doing.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!0pUd!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!0pUd!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1283085,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/167990026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!0pUd!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F68dc4541-cd41-4950-9409-7c7d7e128e84_3024x1964.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Now under the premise of easy access and tmux popups, just<br>`ctrl+space+j` in case I need a scratch terminal to debug or test<br>things</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!3-wR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!3-wR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1393862,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/167990026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!3-wR!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5761b706-09c0-4d6f-a504-4f7b6b90c5fb_3024x1964.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>And `ctrl+space+a` if I want to play around with some AI tools</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!1-_A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!1-_A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1354293,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/167990026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!1-_A!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffe886c08-6d76-4b10-b093-93b1a78b4400_3024x1964.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Of course modals can be stacked on top of each other</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LxnD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LxnD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1306134,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/167990026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 424w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 848w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LxnD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F33b5863a-11fa-4a87-a17d-cae5070219f3_3024x1964.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favourite Tools</strong></h2><ul><li><p><a href="https://atuin.sh/">Atuin</a>: Fast, reliable, and easy to use shell history.</p></li><li><p><a href="https://github.com/matterhorn-chat/matterhorn">Matterhorn</a>: A feature-rich Unix terminal client for the Mattermost chat system.</p></li><li><p><a href="https://github.com/jesseduffield/lazydocker">Lazydocker</a>: The lazier way to manage everything docker.</p></li><li><p><a href="https://github.com/darrenburns/posting">Posting</a>: The modern API client that lives in your terminal.</p></li><li><p><a href="https://ghostty.org/">Ghostty</a>: Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.</p></li></ul><h2>Dotfiles</h2><p>You can find Oscar&#8217;s dotfiles here: <a href="https://github.com/oscarmcm/dotfiles">https://github.com/oscarmcm/dotfiles</a></p><blockquote><p>I don't think my dotfiles are something people can just plug and play,<br>but they have a few ideas that can be easily borrowed and improved.</p></blockquote><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!6KAI!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!6KAI!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg" width="1456" height="1949" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1949,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3884026,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/167990026?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!6KAI!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff870bd33-bf1b-4ed1-a1b9-357baae8671a_4198x5618.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Books</h2><ul><li><p>Technical</p><ul><li><p><a href="http://poignant.guide/">why's (Poignant) Guide to Ruby</a>: Programming books should not be boring. And this has the perfect balance between learning and having fun.</p></li></ul></li><li><p>Non-Technical</p><ul><li><p><a href="https://amzn.to/4lq6gi4">Meditations - Marcus Aurelius</a></p></li></ul></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[41 - Ahsan Habib]]></title><description><![CDATA[Ahsan Habib is a Computer Science student living in Dhaka, Bangladesh, who works part-time as a web developer.]]></description><link>https://dotfiles.substack.com/p/41-ahsan-habib</link><guid isPermaLink="false">https://dotfiles.substack.com/p/41-ahsan-habib</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Sun, 22 Jun 2025 15:19:18 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!QTNo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Ahsan Habib is a Computer Science student living in Dhaka, Bangladesh, who works part-time as a web developer. His journey with Neovim began when he forced himself to use Linux. At one point, he was addicted to an FPS game and decided to switch from Windows to Linux to focus on his academics. Eventually, he discovered the concept of "ricing," which led him to explore Neovim and programming. In his spare time, he enjoys spending time with his nephew and niece, who mean the world to him.</p><h2>Neovim &amp; Terminal</h2><blockquote><p>My Neovim setup consists of many modern plugins. Among them my favourites are :snacks, blink cmp and mini files.<br><a href="http://snacks.nvim">snacks.nvim</a> is a collection of plugins that just improves the quality of your neovim experience. It includes many features like fuzzy finding, image and content preview , indentlines with options to declare custom highlights etc.<br><a href="http://blink.cmp">blink.cmp</a> is an alternative to nvim-cmp, but with a faster completion engine. It's really easier to configure and provides faster completion compared to nvim-cmp which was a bit more complicated for beginners.<br><a href="http://mini.files">mini.files</a> is an awesome file explorer that allows you to edit files as if they are part of a buffer. Another alternative is oil.nvim which provides similar functionalities.</p></blockquote><blockquote><p>I have used many mainstream terminals, such as alacritty, foot, kitty, and wezterm, among others. But Ghostty seemed the best option for me. It's just perfect. From font rendering to image viewing, everything works in it.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!QTNo!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!QTNo!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38269,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!QTNo!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe5f61966-47f6-42aa-84a6-b129004430d5_1920x1080.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!94CY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!94CY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/bd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284630,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!94CY!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbd553449-ac1e-4145-a5c3-2013334f9d36_1920x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!BJc6!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!BJc6!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:284682,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!BJc6!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc91ebe6b-b4a0-4a28-893a-4d6d168a190a_1920x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!PQLQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!PQLQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:205417,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!PQLQ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4a18b67e-de21-438c-853c-00bbe68a6876_1920x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!lN92!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!lN92!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:486355,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!lN92!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3d87f525-7db8-4d1c-a564-468a9d32e599_1920x1080.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!tNo-!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!tNo-!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:308813,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/166528563?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 424w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 848w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 1272w, /__u/substackcdn.com/image/fetch/$s_!tNo-!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fac32d040-4c07-4722-92a5-e7541e4fa22c_1920x1080.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Favourite Tools</strong></h2><ul><li><p><a href="https://neovim.io">Neovim</a> : for coding and taking notes</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a> : for fuzzy finding</p></li><li><p><a href="https://github.com/tmux/tmux">Tmux</a> : Terminal Multiplexing</p></li><li><p><a href="https://github.com/jesseduffield/lazygit">lazygit</a> : a terminal UI for git</p></li><li><p><a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a> : for downloading yt videos</p></li><li><p><a href="https://github.com/eza-community/eza">eza</a> : &#8220;ls&#8221; alternative with icons</p></li><li><p><a href="https://ghostty.org">Ghostty</a> : Favourite Terminal</p></li></ul><h2>Dotfiles</h2><p>You can find his dotfiles here: <a href="https://github.com/bibjaw99/workstation">https://github.com/bibjaw99/workstation</a></p><h2>Favorite Books</h2><ul><li><p><strong>Technical</strong></p><ul><li><p><a href="https://amzn.to/4neIPcL">Linux Bible</a> by Christopher Negus</p></li><li><p><a href="https://learnvimscriptthehardway.stevelosh.com/">Learn Vimscript the Hard Way</a> by Steve Losh</p></li></ul></li><li><p><strong>Non-Technical</strong></p><ul><li><p><a href="https://amzn.to/4ef59z2">The Lord of the Rings</a> by J.R.R Tolkein</p><p></p></li></ul></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[40 - Pavle Dzakula]]></title><description><![CDATA[Pavle Dzakula is a terminal-based developer and lifelong tinkerer, currently building Tide42&#8212;a lightweight, tmux+Neovim-powered CLI IDE.]]></description><link>https://dotfiles.substack.com/p/40-pavle-dzakula</link><guid isPermaLink="false">https://dotfiles.substack.com/p/40-pavle-dzakula</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Tue, 03 Jun 2025 12:52:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Bl3I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Pavle Dzakula is a terminal-based developer and lifelong tinkerer, currently building Tide42&#8212;a lightweight, tmux+Neovim-powered CLI IDE.</p><p>In his free time, he enjoys fishing, developing open-source tools, restoring vintage hardware, exploring symbolic models of reality, and making his children laugh. When he needs a break from the modern stack, he dabbles in low-level programming with TempleOS and classic Assembly.</p><h2>Neovim &amp; Terminal</h2><blockquote><p>I love that Neovim feels like home &#8212; zero distractions, infinite extensibility. My setup uses Lua for quick startup and modular config. Combined with tmux, it creates a seamless workspace I can drop into from anywhere, even remote Raspberry Pi sessions.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Bl3I!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Bl3I!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:417702,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!Bl3I!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F82d4778f-2ba6-4a3d-8149-b9deb017a86f_3840x2160.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VXRS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VXRS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:477209,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!VXRS!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F096a1fda-b0af-4832-bcb4-807df463007e_3840x2160.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!HSPn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!HSPn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:567423,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!HSPn!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb716755b-3ce8-48f7-9422-2a3a84f07c69_3840x2160.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!067r!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!067r!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:880231,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!067r!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F974888b5-e06d-4b03-baa8-de1f7a2e67de_3840x2160.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!cM3Z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!cM3Z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:921855,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!cM3Z!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F30bc3030-3c33-453a-b939-7a3e02946d80_3840x2160.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!2WQW!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!2WQW!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png" width="1456" height="819" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:819,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:912613,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 424w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 848w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 1272w, /__u/substackcdn.com/image/fetch/$s_!2WQW!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3fa22982-4fe4-48bf-9e12-32e46172ba4b_3840x2160.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bFPS!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 424w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 848w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bFPS!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png" width="1456" height="804" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:804,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1154406,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 424w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 848w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 1272w, /__u/substackcdn.com/image/fetch/$s_!bFPS!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F40687e55-6e22-4659-8164-958a933efbcb_3840x2120.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><p>Here are some of the tools he uses daily:</p><ul><li><p><strong><a href="https://neovim.io/">Neovim</a></strong> + Lua config</p></li><li><p><strong><a href="https://neovim.io/">anaconda3</a></strong> for package management</p></li><li><p><strong><a href="https://neovim.io/">IPython</a></strong> for live testing of scripts</p></li><li><p><strong><a href="https://github.com/tmux/tmux">tmux</a></strong> for terminal multiplexing</p></li><li><p><strong><a href="https://github.com/aristocratos/btop">Btop</a></strong> for system monitoring</p></li><li><p><strong><a href="https://github.com/BurntSushi/ripgrep">ripgrep</a></strong> + <strong><a href="https://github.com/sharkdp/fd">fd</a></strong> for blazing search</p></li><li><p><strong><a href="https://github.com/junegunn/fzf">fzf</a></strong> for fuzzy everything</p></li><li><p><strong><a href="https://github.com/logicmagix/xtide86">Tide42</a></strong> &#8211; his custom terminal IDE with color themes, auto-updates, and a sidekick terminal-based color picker tool (<a href="https://github.com/logicmagix/npalette">NPalette</a>) and numerical charting (<a href="https://github.com/logicmagix/npalette">NChart</a>)</p></li></ul><h2>Dotfiles</h2><p>You can find his config here: <a href="https://github.com/logicmagix/tide42">https://github.com/logicmagix/tide42</a></p><blockquote><p>Just clone it, run the installer script, and you&#8217;re good to go. It respects existing configs and works across major distros (Debian, Arch, macOS).<br>It&#8217;s also self-updating with <code>--update</code> built-in.</p></blockquote><p></p><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!Xk6M!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!Xk6M!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg" width="1456" height="1092" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1092,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:721218,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://dotfiles.substack.com/i/165092660?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!Xk6M!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6fd1f048-8620-40f6-be6b-d9c8fedf956b_1920x1440.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Books</h2><ul><li><p><strong>Technical</strong></p><ul><li><p><em><a href="https://amzn.to/45BDbuS">The Art of Unix Programming</a></em><a href="https://amzn.to/45BDbuS"> by Eric S. Raymond</a></p></li></ul></li><li><p><strong>Non-Technical</strong> </p><ul><li><p><em><a href="https://amzn.to/43qHJmr">The Alchemist</a></em><a href="https://amzn.to/43qHJmr"> by Paulo Coelho</a> </p></li><li><p> <a href="https://amzn.to/3FzF8xy">Hitchhiker&#8217;s Guide to the Galaxy by Douglas Adams</a></p></li></ul></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[39 - Iain Simmons]]></title><description><![CDATA[Iain Simmons is a Development Lead and Web Developer working full-time remotely from his home in the beautiful Sunshine Coast, Queensland, Australia.]]></description><link>https://dotfiles.substack.com/p/39-iain-simmons</link><guid isPermaLink="false">https://dotfiles.substack.com/p/39-iain-simmons</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Sat, 04 Jan 2025 16:18:32 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!874n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Iain Simmons is a Development Lead and Web Developer working full-time remotely from his home in the beautiful Sunshine Coast, Queensland, Australia. He lives with his amazing wife and two boys. His youngest son has Down Syndrome, and both boys are homeschooled, so there's always a lot happening at home.</p><p>Aside from work, he spends most of his free time hanging out with his family, playing board games (there are more digital/online versions these days), and, of course, tinkering with his dotfiles and Neovim config, as well as following and talking to others who do the same.</p><h2>Neovim and Terminal</h2><blockquote><p>My Neovim config is based on <a href="https://github.com/nvim-lua/kickstart.nvim">kickstart.nvim</a>, though that was a long time ago. Now at the core of it are the <a href="https://github.com/echasnovski/mini.nvim">mini.nvim</a> and <a href="https://github.com/folke/snacks.nvim">snacks.nvim</a> plugins, and <a href="https://github.com/tinted-theming/tinted-vim">tinted-vim</a> for my colorscheme. I lazy load everything, and can typically load Neovim with my almost 70 plugins in less than 80 ms, since only 20 or so of those are loaded on startup.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!874n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!874n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2073238,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!874n!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd87044a1-299c-418d-a04a-cb2200a02ec0_3028x1892.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!5ia4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!5ia4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2006124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!5ia4!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7876eb7d-12ec-4dd3-859c-c0be6715f339_3028x1892.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!h2vG!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!h2vG!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2194374,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!h2vG!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d1b6154-a56e-493e-a238-9f7da4911af7_3028x1892.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!crvn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!crvn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png" width="1456" height="910" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:910,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1962824,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 424w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 848w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 1272w, /__u/substackcdn.com/image/fetch/$s_!crvn!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb6c6696-4d12-41a8-a8de-da7df64e3add_3028x1892.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><a href="https://wezfurlong.org/wezterm/">WezTerm</a>: terminal emulator</p></li><li><p><a href="https://github.com/tmux/tmux">tmux</a>: terminal multiplexer</p></li><li><p><a href="https://neovim.io/">Neovim</a></p></li><li><p><a href="https://fishshell.com/">fish</a>: shell</p></li><li><p><a href="https://github.com/joshmedeski/sesh">sesh</a>: tmux plugin for quickly switching sessions</p></li><li><p><a href="https://yazi-rs.github.io/">Yazi</a>: file explorer TUI</p></li><li><p><a href="https://github.com/tinted-theming/home">tinted-theming</a>: base16 colorschemes fork for all the things</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a>: fuzzy finder and <a href="https://github.com/PatrickF1/fzf.fish">fzf.fish</a> fzf plugin for fish shell</p></li><li><p><a href="https://github.com/ajeetdsouza/zoxide">zoxide</a>: A smarter cd command </p></li><li><p><a href="https://atuin.sh/">atuin</a>: magical shell history</p></li><li><p><a href="https://noborus.github.io/ov/index.html">ov</a>: pager</p></li><li><p><a href="https://github.com/Schniz/fnm">fnm</a>: Fast and simple Node.js version manager</p></li><li><p><a href="https://fx.wtf/">fx</a>: JSON viewer &amp; processor TUI</p></li><li><p><a href="https://posting.sh/">posting</a>: REST API client TUI</p></li><li><p><a href="https://www.raycast.com/">Raycast</a>: launcher, shortcuts, window management, converter and more</p></li><li><p><a href="https://obsidian.md/">Obsidian</a>: notes</p></li><li><p><a href="https://shottr.cc/">Shottr</a>: screenshot tool</p></li><li><p><a href="https://github.com/jesseduffield/lazygit">Lazygit</a>: simple terminal UI for git commands</p></li></ul><h2>Dotfiles</h2><p>Iain's main dotfiles are organized using stow, so others could use that to "apply" his dotfiles. However, he expects it would be more useful for people to simply browse the configuration files for a particular tool.</p><p>You can find his dotfiles here: <a href="https://github.com/iainsimmons/dotfiles">https://github.com/iainsimmons/dotfiles</a></p><p>And his Neovim config. Instructions are in the README:<br><a href="https://github.com/iainsimmons/nvim-config">https://github.com/iainsimmons/nvim-config</a></p><h2>Favorite Books</h2><p>Iain isn't much of a reader and tends to focus on documentation sites rather than technical books. The only technical book he recalls from recent memory is "<a href="https://amzn.to/3PkPum2">Hypermedia Systems</a>." </p><p>For non-technical reading, one of his favorites from childhood, introduced to him by his dad, is "<a href="https://amzn.to/3ZZsCxv">Magician</a>" by Raymond E. Feist.</p><p></p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[38 - Luis Vasconcellos]]></title><description><![CDATA[Luis Vasconcellos has a decade-long experience as a software engineer from S&#227;o Paulo, Brazil.]]></description><link>https://dotfiles.substack.com/p/38-luis-vasconcellos</link><guid isPermaLink="false">https://dotfiles.substack.com/p/38-luis-vasconcellos</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Wed, 21 Aug 2024 15:19:53 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!GNYQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Luis Vasconcellos has a decade-long experience as a software engineer from S&#227;o Paulo, Brazil. In his spare time, he enjoys studying Cybersecurity, practicing Jiu-Jitsu, and spending time with his family.</p><p>He also developed a Vim plugin that highlights keywords inside a buffer called <a href="https://github.com/lfv89/vim-interestingwords">interestingwords</a>. A Lua version is coming out soon! </p><h2>Neovim and Terminal</h2><blockquote><p>My Neovim setup incorporates modern Lua plugins such as Oil, Cmp, LuaLine, Conform, and Telescope, all managed with Lazy. Mason and Fidget primarily power the LSP environment.</p><p>I love the Nord Theme, which I have configured across every UI plugin, including components like autocomplete from CMP and code previews from Telescope.</p><p>More recently I've been using a fantastic Telescope extension called EasyPick. It allows custom data sources from shell invocations, which I like to use to list new and changed files from my git repo&#8212;essentially the key files you need in any coding session.</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!GNYQ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!GNYQ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg" width="1456" height="870" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:870,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:968857,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!GNYQ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4b85181-ba91-4caa-ac41-f8213e6c461d_3408x2036.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!lKMj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!lKMj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg" width="1456" height="880" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:880,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1023867,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!lKMj!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9a7e973a-62a1-48cb-ae2e-0965a7dcd31d_3410x2062.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!4dYK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!4dYK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg" width="1456" height="845" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:845,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:903679,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!4dYK!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5658cc47-e1ea-4805-a26e-2abe283e4c63_3412x1980.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><a href="https://github.com/lsd-rs/lsd">LSD</a>: The next-gen ls command.</p></li><li><p><a href="https://github.com/sharkdp/bat">Bat</a>: A <em>cat(1)</em> clone with syntax highlighting and Git integration. </p></li><li><p><a href="https://github.com/facebook/PathPicker?tab=readme-ov-file">FPP</a>: Facebook PathPicker is a simple command line tool that solves the perpetual problem of selecting files out of bash output. </p></li><li><p><a href="https://starship.rs/">Starship</a>: The minimal, blazing-fast, and infinitely customizable prompt for any shell.</p></li><li><p><a href="https://www.zsh.org/">Zsh</a>: shell.</p></li><li><p><a href="https://neovim.io/">Neovim</a>: Vim-based text editor. </p></li><li><p><a href="https://github.com/tmux/tmux">Tmux</a>: Terminal multiplexer. </p></li><li><p><a href="https://alacritty.org/">Alacritty</a>: Terminal emulator.</p></li></ul><h2>Dotfiles</h2><p>You can find Luis&#8217;s dotfiles here: <a href="https://github.com/lfv89/norse.nvim">https://github.com/lfv89/norse.nvim</a></p><h2>Favorite Books</h2><p>Technical</p><ul><li><p><a href="https://amzn.to/3TlIJmD">A Philosophy of Software Design</a><strong> </strong>by <a href="https://www.amazon.com/John-Ousterhout/e/B000APICQY/ref=dp_byline_cont_book_1">John Ousterhout</a> </p></li><li><p><a href="https://amzn.to/3AzeO3A">Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems</a> by <a href="https://www.amazon.com/Martin-Kleppmann/e/B00Q43XKD6/ref=dp_byline_cont_ebooks_1">Martin Kleppmann</a></p></li></ul><p>Non-Technical</p><ul><li><p><a href="https://amzn.to/3YSTGj5">Sapiens: A Brief History of Humankind</a> by <a href="https://www.amazon.com/Yuval-Noah-Harari/e/B00J21BCIW/ref=dp_byline_cont_ebooks_1">Yuval Noah Harari</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p>]]></content:encoded></item><item><title><![CDATA[37 - Marcos Oliveira]]></title><description><![CDATA[I&#8217;m a software engineer with 10 years of experience from Brazil and a self-taught developer.]]></description><link>https://dotfiles.substack.com/p/37-marcos-vinicius-oliveira-pereira</link><guid isPermaLink="false">https://dotfiles.substack.com/p/37-marcos-vinicius-oliveira-pereira</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Fri, 02 Aug 2024 17:02:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!jofP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote><p><em>I&#8217;m a software engineer with 10 years of experience from Brazil and a self-taught developer. I work at <a href="https://vtex.com">VTEX</a> but have built software for various industries like logistics, finance, health, education, and digital commerce. I started my career with Java, discovered JavaScript along the way, and then came across OCaml, ReScript, and functional programming, which changed my career path. I've specialized in UI engineering, focusing on design systems, front-end and developer tooling, developer experience, and functional programming.</em></p><p><em>I was active in the open-source community, especially in the ReScript ecosystem, by creating and maintaining libraries. But for the past two years, I&#8217;ve been more focused on the Vim and tmux ecosystems, releasing projects like <a href="https://bettervim.com/">BetterVim</a> and <a href="https://github.com/bettervim/better-tmux">BetterTmux</a>&#8212;that&#8217;s my attempt to make this ecosystem better with a top-notch developer experience.</em></p></blockquote><h2>Neovim and Terminal</h2><blockquote><p><em>I&#8217;ve been using Neovim and Tmux for years, and I started by copying a friend&#8217;s dotfiles. Three months later, as usual, I got tired of not knowing how to build my config from scratch. So, I created everything from scratch&#8212;the whole Neovim and Tmux config. It took me years to achieve a setup I was proud of, but in the end, it became a product, BetterVim. That&#8217;s right, I productified my Neovim config. I didn&#8217;t do this alone; I had two partners at the beginning, and now we&#8217;re two. I use this config daily, so beyond being a side project, it&#8217;s like a bonsai for me&#8212;I maintain it every day.</em></p><p><em>Now, I&#8217;m focused on TMUX, which I&#8217;ve been struggling with for years to achieve the perfect config, mostly related to developer experience (DX) principles. Recently, I launched an open-source project called BetterTmux that enhances my dotfiles. BetterTmux makes my config much easier by using React (you heard right) to build my TMUX config.</em></p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!jofP!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!jofP!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png" width="1456" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:158950,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!jofP!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F36b7badb-7d07-4470-a84a-38f3613b61b9_2000x1135.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!D0Fc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!D0Fc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png" width="1456" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:254213,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!D0Fc!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5173bbc3-069d-45df-a395-726206d701f2_2000x1135.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!H7jw!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!H7jw!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png" width="1456" height="826" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:826,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:249431,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 424w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 848w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 1272w, /__u/substackcdn.com/image/fetch/$s_!H7jw!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff99f91-991f-4731-a53a-72fe08aee08c_2000x1135.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!LKHK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 424w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 848w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!LKHK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png" width="1456" height="812" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:812,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:334088,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 424w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 848w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 1272w, /__u/substackcdn.com/image/fetch/$s_!LKHK!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35d786c6-3194-41b0-a4fc-be9100e9b829_1956x1091.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Tools</h2><ul><li><p><a href="https://bettervim.com">BetterVim</a> is a Neovim distribution featuring lots of slick defaults and an outstanding UI.</p></li><li><p><a href="https://github.com/bettervim/better-tmux">BetterTmux</a> is a framework for TMUX that leverages React and TypeScript to enable powerful customizations.</p></li><li><p><a href="https://github.com/kovidgoyal/kitty">Kitty</a> Terminal Emulator</p></li><li><p><a href="https://neovim.io/">Neovim</a> </p></li><li><p><a href="https://github.com/tmux/tmux">Tmux</a> Terminal Multiplexer </p></li><li><p><a href="https://www.raycast.com/">Raycast</a> A collection of powerful productivity tools all within an extendable launcher. Fast, ergonomic, and reliable.</p></li></ul><h2>Dotfiles</h2><p>You can find Marcos&#8217;s dotfiles here <a href="http://github.com/vmarcosp/dotfiles">http://github.com/vmarcosp/dotfiles</a> (Read the install.sh file)</p><h2>Desk Setup</h2><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bxfX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bxfX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg" width="1456" height="903" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:903,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1895249,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bxfX!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3eb5ebaa-eb4a-4d59-8f81-6f05496d5002_3980x2467.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!VOLJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!VOLJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg" width="1456" height="1941" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1941,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:967961,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!VOLJ!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd6cec4bb-0244-41c5-b6b1-7dbfe4ae1652_3024x4032.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Favorite Books</h2><p>Technical:</p><ul><li><p><a href="https://amzn.to/4c52ogY">The Art of Computer Programming by&nbsp;Donald Knuth</a></p></li></ul><p>Non-Technical:</p><ul><li><p>The Mystery of the Green House</p></li></ul><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/p/37-marcos-vinicius-oliveira-pereira?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thank you for reading .dotfiles. This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/p/37-marcos-vinicius-oliveira-pereira?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="/__u/dotfiles.substack.com/p/37-marcos-vinicius-oliveira-pereira?utm_source=substack&amp;utm_medium=email&amp;utm_content=share&amp;action=share"><span>Share</span></a></p></div><p></p>]]></content:encoded></item><item><title><![CDATA[36 - Kamil Kseń]]></title><description><![CDATA[Kamil is a front-end programmer, he enjoys building games in Rust & creating music in his free time.]]></description><link>https://dotfiles.substack.com/p/36-kamil-ksen</link><guid isPermaLink="false">https://dotfiles.substack.com/p/36-kamil-ksen</guid><dc:creator><![CDATA[Adib Hanna]]></dc:creator><pubDate>Fri, 19 Jul 2024 15:13:50 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!erAf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Kamil is a front-end programmer, he enjoys building games in Rust &amp; creating music in his free time.</p><h2>Neovim and Terminal</h2><blockquote><p><em>It&#8217;s based on Astronvim, which is a most underrated nvim distro. It&#8217;s giving you all IDE features (like LunarVIM) out-of-the-box while keeping the configuration simple and&nbsp;easily&nbsp;extendable (which wasn&#8217;t the case for big nvim distros). Also, there is an astrocommunity repo&nbsp;<a href="https://github.com/AstroNvim/astrocommunity/">https://github.com/AstroNvim/astrocommunity/</a>&nbsp;which contains ready copy-and-paste-to-go configuration file recipes for plugins which saves a huge amount of time while needing to install some handy and important plugins for work.</em></p><p><em>Outside the nvim, there is a tmux and my slimzsh shell that contains many handy aliases for quickly finding the projects and grep&#8217;ing the data in the most handy ways.</em></p><p><em>Of course, I extended the config by a lot, so it kinda became my very own thing after months of configuring it and I&#8217;m very proud of it. What do I love about it most?</em></p><p><em>It combines the best of both worlds - it&#8217;s beautiful and very practical (and fast). It gives me all the tools I need for my job and personal things while keeping it very simple and just as beautiful as possible. Also, it&#8217;s blazingly fast since it&#8217;s CLI-based</em></p><p><em>I enjoy practical things that are also beautiful at the same time. My config is practical, handy, and eye-pleasing at the same time&nbsp;&nbsp;:) </em></p><p>&#8212; Kamil</p></blockquote><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!erAf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!erAf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg" width="1456" height="651" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:651,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:355249,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!erAf!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6ede350f-24f7-4aa0-b4ed-5795b0fdcaac_3024x1352.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!iO0E!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!iO0E!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:395526,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!iO0E!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F66a83765-b3cb-4564-a45a-16fd43a3ca59_3024x1964.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ZG06!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ZG06!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:556676,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ZG06!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9d2e5c15-d7aa-4036-a444-b930427c8e54_3024x1964.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!bGI0!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!bGI0!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg" width="1456" height="508" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:508,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:311505,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!bGI0!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8b5c01a2-38ba-4dfa-87e2-dcabb4c8d725_2990x1044.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!060Y!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!060Y!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg" width="1456" height="944" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:944,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1144002,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!060Y!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4203458c-523c-469f-a895-52b75949e61b_3024x1960.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!ztf8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!ztf8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg" width="1456" height="946" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:946,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:786467,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!ztf8!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa92d3546-a565-4c3e-b933-6b32d63845c9_3024x1964.jpeg 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!FUCD!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!FUCD!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg" width="1456" height="911" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:911,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:508904,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!FUCD!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F81ecc3aa-12fd-44ff-af97-72e897294446_3024x1892.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="/__u/substackcdn.com/image/fetch/$s_!fuU8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="/__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_webp, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 1456w" sizes="100vw"><img src="/__u/substackcdn.com/image/fetch/$s_!fuU8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg" width="1456" height="961" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:961,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:657651,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpeg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="/__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_424, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 424w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_848, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 848w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_1272, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 1272w, /__u/substackcdn.com/image/fetch/$s_!fuU8!, /__u/dotfiles.substack.com/w_1456, /__u/dotfiles.substack.com/c_limit, /__u/dotfiles.substack.com/f_auto, /__u/dotfiles.substack.com/q_auto:good, /__u/dotfiles.substack.com/fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F35bf5383-95c6-4529-a935-f62e02debd5d_2976x1964.jpeg 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg aria-hidden="true" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h2>Favorite Tools</h2><ul><li><p><a href="https://github.com/tmux/tmux">Tmux</a>: Terminal multiplexer.</p></li><li><p><a href="https://neovim.io/">Neovim</a>: Vim-based text editor.</p></li><li><p><a href="https://github.com/jesseduffield/lazygit">lazygit</a>: Simple terminal UI for git commands.</p></li><li><p><a href="https://github.com/jesseduffield/lazydocker">lazydocker</a>: The lazier way to manage everything Docker.</p></li><li><p><a href="https://arc.net/">arc</a>: Web Browser.</p></li><li><p><a href="https://obsidian.md/">Obsidian</a>: Note-taking app.</p></li><li><p><a href="https://excalidraw.com/">excalidraw</a>: Virtual collaborative whiteboard tool.</p></li><li><p><a href="https://raycast.com/?via=adib">Raycast</a>: A collection of powerful productivity tools all within an extendable launcher. Fast, ergonomic, and reliable.</p></li><li><p><a href="https://keepassxc.org/">keepassxc</a>: Password manager.</p></li><li><p><a href="https://github.com/junegunn/fzf">fzf</a>: command-line fuzzy finder.</p></li></ul><h2>Dotfiles</h2><blockquote><p><em>I'm still messing around so it's not ready to use, but I hope anyone can find something valuable there :)&nbsp;&#8212; Kamil</em></p></blockquote><p>You can find Kamil&#8217;s dotfiles here: <a href="https://github.com/Kamyil/.dotfiles/tree/main">https://github.com/Kamyil/.dotfiles/tree/main</a> </p><h2>Favorite Books</h2><p>Technical:</p><ul><li><p><a href="https://amzn.to/3WqPfdA">Design Patterns: Elements of Reusable Object-Oriented Software 1st Edition</a></p></li></ul><p>Non-Technical</p><ul><li><p><a href="https://amzn.to/3Yccfyo">Sherlock Holmes books</a></p></li></ul><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://dotfiles.substack.com/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">.dotfiles is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><p></p><p></p>]]></content:encoded></item></channel></rss>