<turbo-stream action="append" target="posts_list"><template>    <div class="postbit" id="355224" data-post-id="355224">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="binarytemple" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/binarytemple/120/37040_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  binarytemple
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Lazyvim for neovim, tend to favour hand crafted vim configuration.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355224" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/34">Post #33</a>
	                </div>
	            </div>
              <div id="likers-container-355224" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355224"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #33"></div>
  </section>
</div>
    <div class="postbit" id="355225" data-post-id="355225">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hubertlepicki" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hubertlepicki/120/6822_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hubertlepicki
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>LazyVim breaks all the time, literally once per week.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355225" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/35">Post #34</a>
	                </div>
	            </div>
              <div id="likers-container-355225" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355225"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #34"></div>
  </section>
</div>
    <div class="postbit" id="355234" data-post-id="355234">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="binarytemple" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/binarytemple/120/37040_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  binarytemple
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’ve only been using LazyVim 2 weeks, was using NvChad for the two years before that. I’ll keep an eye out for the expiration date!</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355234" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/36">Post #35</a>
	                </div>
	            </div>
              <div id="likers-container-355234" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355234"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #35"></div>
  </section>
</div>
    <div class="postbit" id="355235" data-post-id="355235">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="hubertlepicki" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/hubertlepicki/120/6822_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  hubertlepicki
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I’m experimenting now with Helix editor <a href="https://helix-editor.com/" rel="noopener nofollow ugc">https://helix-editor.com/</a></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355235" data-batch-url="/posts/batch_likers">
                        2
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/37">Post #36</a>
	                </div>
	            </div>
              <div id="likers-container-355235" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355235"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #36"></div>
  </section>
</div>
    <div class="postbit" id="355246" data-post-id="355246">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="serpent" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/serpent/120/14597_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  serpent
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Running Fish with dotfiles managed by (Nix) Home Manager.</p>
<p>Nix is a rabbit hole, but I can recommend <a href="https://devenv.sh" rel="noopener nofollow ugc">https://devenv.sh</a>, which allows for easy setup of a locked dev environment for all kinds of services and languages. For example:</p>
<pre data-code-wrap="elixir"><code class="lang-elixir">{
  pkgs,
  lib,
  config,
  inputs,
  ...
}: {
  # https://devenv.sh/packages/
  packages = with pkgs; [
    git
    # linter and formatter for JavaScript, TypeScript, JSX, CSS and GraphQL
    biome
    # Nix code formatter
    alejandra
    # CLI image tools ("magick")
    imagemagick
    # CLI image optimisation
    mozjpeg
    pngcrush
    # PostgreSQL client utilities
    postgresql
    # content compression (handled by Phoenix.Bakery)
    brotli
    zstd
    # Mermaid diagram generator
    mermaid-cli
  ];

  # https://devenv.sh/languages/
  languages.elixir.enable = true;
  languages.javascript.enable = true;
  languages.javascript.npm.enable = true;

  # https://devenv.sh/services/
  services.postgres = {
    enable = true;
    package = pkgs.postgresql_15;
    initialDatabases = [{name = "myapp_dev";} {name = "myapp_test";}];
    initialScript = ''
      CREATE ROLE dev WITH LOGIN PASSWORD 'dev' SUPERUSER;
    '';
  };

  # https://devenv.sh/pre-commit-hooks/
  pre-commit.hooks = {
    alejandra.enable = true;
    biome.enable = true;
    biome.files = "\\.(js|ts|tsx|css)$";
    check-added-large-files = {
      enable = true;
      args = ["--maxkb=10240"];
    };
    mix-format.enable = true;
    mix-format.files = "\\.(ex|exs|heex)$";

    custom-mix-test = {
      enable = true;
      name = "mix-test";
      always_run = true;

      # The command to execute (mandatory):
      entry = "mix test";

      # Set this to false to not pass the changed files
      # to the command (default: true):
      pass_filenames = false;
    };
  };

  # https://devenv.sh/scripts/
  enterShell = ''
    echo
    elixir --version
    echo -n "Node.js "
    node --version
    echo
    echo '🌳 Type "mix devhelp" for command list.'
    echo
  '';

  scripts.pngoptim.exec = ''
    FILENAME="$1"
    if [ -z "$FILENAME" ]; then
      echo "Optimise PNG files for size without quality loss"
      echo
      echo "Usage: pngoptim &lt;filename&gt;"
      exit 1
    fi
    echo saving original to $FILENAME.orig
    mv "$FILENAME" "$FILENAME.orig"
    pngcrush -rem allb "$FILENAME.orig" "$FILENAME"
    echo before: $(wc -c &lt; "$FILENAME.orig") bytes, after: $(wc -c &lt; "$FILENAME") bytes
  '';

  scripts.jpgoptim.exec = ''
    FILENAME="$1"
    if [ -z "$FILENAME" ]; then
      echo "Optimise JPG files for size without quality loss"
      echo
      echo "Usage: jpgoptim &lt;filename&gt;"
      exit 1
    fi
    echo saving original to $FILENAME.orig
    cp "$FILENAME" "$FILENAME.orig"
    jpegtran -copy none -outfile "$FILENAME" "$FILENAME.orig"
    echo before: $(wc -c &lt; "$FILENAME.orig") bytes, after: $(wc -c &lt; "$FILENAME") bytes
  '';

  scripts.to_webp.exec = ''
    FILENAME="$1"
    if [ -z "$FILENAME" ]; then
      echo "Convert image to lossy WEBP"
      echo
      echo "Usage: to_webp &lt;filename&gt;"
      exit 1
    fi
    magick "$FILENAME" -define webp:lossless=false -strip "$FILENAME.webp"
    echo before: $(wc -c &lt; "$FILENAME") bytes, after: $(wc -c &lt; "$FILENAME.webp") bytes
  '';

  scripts.to_webp_lossless.exec = ''
    FILENAME="$1"
    if [ -z "$FILENAME" ]; then
      echo "Convert image to lossless WEBP"
      echo
      echo "Usage: to_webp_lossless &lt;filename&gt;"
      exit 1
    fi
    magick "$FILENAME" -define webp:lossless=true -strip "$FILENAME.webp"
    echo before: $(wc -c &lt; "$FILENAME") bytes, after: $(wc -c &lt; "$FILENAME.webp") bytes
  '';

  # See full reference at https://devenv.sh/reference/options/
}
</code></pre>
<p>With Direnv active, when I enter the project directory, the defined Elixir version becomes available in the path and I can call <code>devenv up</code> to spin up the DB.</p>
<p>I like it!  <img src="https://forum.elixirforum.com/images/emoji/apple/slightly_smiling_face.png?v=15" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>
<p>(To dive deeper, there is a nice full-fledged NixOS template designed for Hetzner VPS, including complete shell and NeoVim configs: <a href="https://github.com/LGUG2Z/nixos-hetzner-cloud-starter" class="inline-onebox" rel="noopener nofollow ugc">GitHub - LGUG2Z/nixos-hetzner-cloud-starter: A sane, batteries-included starter template for running NixOS on Hetzner Cloud · GitHub</a>. Would not recommend to start with NixOS, though, but to install just Nix on top of your existing OS and get started with Home Manager and Devenv.)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355246" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/38">Post #37</a>
	                </div>
	            </div>
              <div id="likers-container-355246" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355246"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #37"></div>
  </section>
</div>
    <div class="postbit" id="355420" data-post-id="355420">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Onor.io" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Onor.io/120/960_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Onor.io
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Zsh on Linux/Mac, Powershell for when I need to use Windows.  Although I like alacritty in both cases; not sure that alacritty is actually a shell–maybe just a terminal.</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355420" data-batch-url="/posts/batch_likers">
                        0
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/39">Post #38</a>
	                </div>
	            </div>
              <div id="likers-container-355420" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355420"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #38"></div>
  </section>
</div>
    <div class="postbit" id="355465" data-post-id="355465">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="Bedtimestory9" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/Bedtimestory9/120/36808_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  Bedtimestory9
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>I love FIsh’s software design philosophy.<br>
<a href="https://fishshell.com/docs/current/design.html" rel="noopener nofollow ugc">Fish’s design </a></p>
<p>Also <a href="https://fishshell.com/docs/current/design.html#configurability-is-the-root-of-all-evil" rel="noopener nofollow ugc">Configuribility is the root of all evil </a> <img src="https://forum.elixirforum.com/images/emoji/apple/grin.png?v=15" title=":grin:" class="emoji" alt=":grin:" loading="lazy" width="20" height="20"></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355465" data-batch-url="/posts/batch_likers">
                        3
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/40">Post #39</a>
	                </div>
	            </div>
              <div id="likers-container-355465" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355465"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #39"></div>
  </section>
</div>
    <div class="postbit" id="355501" data-post-id="355501">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="KristerV" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/KristerV/120/13808_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  KristerV
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>i’m on zsh/oh-my for the above reasons.</p>
<aside class="quote no-group" data-username="adamcstephens" data-post="18" data-topic="69122">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/adamcstephens/48/24542_2.png" class="avatar"> adamcstephens:</div>
<blockquote>
<p>I switched from zsh to fish years ago and would recommend anyone using zsh to try it out.</p>
</blockquote>
</aside>
<aside class="quote no-group" data-username="andyleclair" data-post="20" data-topic="69122">
<div class="title">
<div class="quote-controls"></div>
<img alt="" width="24" height="24" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/48/36483_2.png" class="avatar"> andyleclair:</div>
<blockquote>
<p>I switched to Fish from Zsh and never looked back.</p>
</blockquote>
</aside>
<p>i went zsh → fish for 6 moths → zsh. i liked Fish a lot. problem was i couldn’t run bash scripts i found online. having to remember how to convert them or what tool to use to convert them became so frustrating. i guess today AI could do it for me. how do you deal with that?</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355501" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/41">Post #40</a>
	                </div>
	            </div>
              <div id="likers-container-355501" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355501"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #40"></div>
  </section>
</div>
    <div class="postbit" id="355544" data-post-id="355544">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="NobbZ" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/NobbZ/120/27235_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  NobbZ
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>Bash scripts are ran thorugh bash, not fish…</p>
<p>So if they messed up the shebang, I’d do <code>bash that_script.sh</code></p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355544" data-batch-url="/posts/batch_likers">
                        6
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/42">Post #41</a>
	                </div>
	            </div>
              <div id="likers-container-355544" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355544"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #41"></div>
  </section>
</div>
    <div class="postbit" id="355550" data-post-id="355550">
  <section>
    <div class="post-wrap">


					<div class="post-header">
		        <div class="user-avatar">
		          <img alt="andyleclair" src="https://forum.elixirforum.com/user_avatar/forum.elixirforum.com/andyleclair/120/36483_2.png" width="120" height="120" />
		        </div>
					
						<div class="user-details">
		          <div class="user-name">
		            <h3>
                  andyleclair
                  </h3>
		          </div>
						
						</div>
					
					</div>

	        <div class="thread-main">
	            <div class="post-body" data-turbo="false">
								<p>you can run a shell inside a shell dog! just run <code>bash</code> inside <code>fish</code> to run whatever script (or put it in a file and run it directly with <code>bash my_script.sh</code>)</p> 
	            </div>

	            <div class="base-line">
	                <div class="thread-counters">
	                    <span class="thread-count count-likes js-likers-trigger" title="Likes" data-post-id="355550" data-batch-url="/posts/batch_likers">
                        1
                      </span>
                      <!-- <span class="thread-count js-solved-indicator" title="Marked as solution"></span> -->
	                </div>
	                <div class="go-to-post">
	                  <a title="Go to post" alt="Go to post" href="https://forum.elixirforum.com/t/which-shell-do-you-use-recommend/69122/43">Post #42</a>
	                </div>
	            </div>
              <div id="likers-container-355550" 
                   class="likers-container"
                   data-first-post="false"
                   data-batch-url="/posts/batch_likers">
                   <div class="likers-placeholder" 
                     data-likers-post-id="355550"
                     data-batch-url="/posts/batch_likers">
                  <div class="post-likers"></div>
                </div>
              </div>
	        </div>
			

    </div>

    <div class="triangle-top-right type-standard-post cat-standard-post" title="Post #42"></div>
  </section>
</div>
</template></turbo-stream><turbo-stream action="replace" target="load-more-container"><template><div id="load-more-container" class="load-more-container">
    <a class="load-more-button" data-turbo-stream="true" href="/topics/69122/load_more?page=5">Load more posts (8 remaining)</a>
</div></template></turbo-stream>