<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Stylix on Haseeb Majid</title>
    <link>https://haseebmajid.dev/tags/stylix/</link>
    <description>Recent content in Stylix on Haseeb Majid</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en</language>
    <lastBuildDate>Tue, 06 Aug 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://haseebmajid.dev/tags/stylix/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How to Configure Kitty on Nix to Show Emojis</title>
      <link>https://haseebmajid.dev/posts/2024-08-06-how-to-configure-kitty-on-nix-to-show-emojis/</link>
      <pubDate>Tue, 06 Aug 2024 00:00:00 +0000</pubDate>
      <author>Me</author>
      <guid>https://haseebmajid.dev/posts/2024-08-06-how-to-configure-kitty-on-nix-to-show-emojis/</guid>
      <description>&lt;p&gt;Recently, I was trying to configure the terminal emulator Kitty with Nix and Stylix, and I was having issues with it
showing emojis. It took me a lot longer to figure out than I would like to admit. So I decided to write a blog post,
showing you how I did it and perhaps saving you some time.&lt;/p&gt;
&lt;p&gt;I did this in my &lt;a href=&#34;https://gitlab.com/hmajid2301/dotfiles/-/blob/79d1ddee586a98816af3f5605de3059d675d58fe/modules/home/cli/terminals/kitty/default.nix&#34;&gt;home-manger config&lt;/a&gt;.
First we install the &lt;code&gt;Symbols Nerd Font&lt;/code&gt;, there are two ways we can normally add nerd fonts. Either patch our font,
which I had already done with my font Mono Lisa or use this font (symbols), alongside your font (as a fallback).
I haven&amp;rsquo;t fully managed to get that to work on my system, so I have both normal Mono Lisa and Nerd Font variants on my
system at the moment. Else other apps besides Kitty break. Anyway, tangent aside, you can install like this:&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p>Recently, I was trying to configure the terminal emulator Kitty with Nix and Stylix, and I was having issues with it
showing emojis. It took me a lot longer to figure out than I would like to admit. So I decided to write a blog post,
showing you how I did it and perhaps saving you some time.</p>
<p>I did this in my <a href="https://gitlab.com/hmajid2301/dotfiles/-/blob/79d1ddee586a98816af3f5605de3059d675d58fe/modules/home/cli/terminals/kitty/default.nix">home-manger config</a>.
First we install the <code>Symbols Nerd Font</code>, there are two ways we can normally add nerd fonts. Either patch our font,
which I had already done with my font Mono Lisa or use this font (symbols), alongside your font (as a fallback).
I haven&rsquo;t fully managed to get that to work on my system, so I have both normal Mono Lisa and Nerd Font variants on my
system at the moment. Else other apps besides Kitty break. Anyway, tangent aside, you can install like this:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nix" data-lang="nix"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl"><span class="n">home</span><span class="o">.</span><span class="n">packages</span> <span class="o">=</span> <span class="k">with</span> <span class="n">pkgs</span><span class="p">;</span> <span class="p">[</span>
</span></span><span class="line"><span class="cl">  <span class="p">(</span><span class="n">nerdfonts</span><span class="o">.</span><span class="n">override</span> <span class="p">{</span><span class="n">fonts</span> <span class="o">=</span> <span class="p">[</span><span class="s2">&#34;NerdFontsSymbolsOnly&#34;</span><span class="p">];})</span>
</span></span><span class="line"><span class="cl"><span class="p">];</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>Next my <a href="https://gitlab.com/hmajid2301/dotfiles/-/blob/79d1ddee586a98816af3f5605de3059d675d58fe/modules/home/styles/stylix/default.nix">Stylix config</a>
looks something like this, for my emoji font:</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nix" data-lang="nix"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl"><span class="n">stylix</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="n">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="n">fonts</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">emoji</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">      <span class="n">package</span> <span class="o">=</span> <span class="n">pkgs</span><span class="o">.</span><span class="n">noto-fonts-emoji</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">      <span class="n">name</span> <span class="o">=</span> <span class="s2">&#34;Noto Color Emoji&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="p">};</span>
</span></span><span class="line"><span class="cl">  <span class="p">};</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>Then finally, I configure Kitty like this, the key lines being the ones defined in the <code>extraConfig</code>. Here we are setting
symbols to map to emoji font and other nerd font symbols to the symbols&rsquo; font.</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-nix" data-lang="nix"><span class="line"><span class="cl"><span class="p">{</span>
</span></span><span class="line"><span class="cl"><span class="n">programs</span><span class="o">.</span><span class="n">kitty</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">  <span class="n">enable</span> <span class="o">=</span> <span class="no">true</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line hl"><span class="cl">  <span class="n">extraConfig</span> <span class="o">=</span> <span class="s1">&#39;&#39;
</span></span></span><span class="line"><span class="cl"><span class="s1">    symbol_map U+e000-U+e00a,U+ea60-U+ebeb,U+e0a0-U+e0c8,U+e0ca,U+e0cc-U+e0d4,U+e200-U+e2a9,U+e300-U+e3e3,U+e5fa-U+e6b1,U+e700-U+e7c5,U+f000-U+f2e0,U+f300-U+f372,U+f400-U+f532,U+f0001-U+f1af0 Symbols Nerd Font Mono
</span></span></span><span class="line"><span class="cl"><span class="s1">    symbol_map U+2600-U+26FF Noto Color Emoji
</span></span></span><span class="line"><span class="cl"><span class="s1">  &#39;&#39;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl">  <span class="n">settings</span> <span class="o">=</span> <span class="p">{</span>
</span></span><span class="line"><span class="cl">    <span class="n">shell</span> <span class="o">=</span> <span class="s2">&#34;fish&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">window_padding_width</span> <span class="o">=</span> <span class="mi">10</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">scrollback_lines</span> <span class="o">=</span> <span class="mi">10000</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">show_hyperlink_targets</span> <span class="o">=</span> <span class="s2">&#34;yes&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">enable_audio_bell</span> <span class="o">=</span> <span class="no">false</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">url_style</span> <span class="o">=</span> <span class="s2">&#34;none&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">underline_hyperlinks</span> <span class="o">=</span> <span class="s2">&#34;never&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">    <span class="n">copy_on_select</span> <span class="o">=</span> <span class="s2">&#34;clipboard&#34;</span><span class="p">;</span>
</span></span><span class="line"><span class="cl">  <span class="p">};</span>
</span></span><span class="line"><span class="cl"><span class="p">};</span>
</span></span><span class="line"><span class="cl"><span class="p">}</span>
</span></span></code></pre></div><p>This is what it looks like.</p>
<p><img
        loading="lazy"
        src="/posts/2024-08-06-how-to-configure-kitty-on-nix-to-show-emojis/images/kitty.png"
        type=""
        alt="Kitty Terminal"
        
      /></p>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
