This commit is contained in:
SqrtMinusOne 2023-08-12 19:22:53 +00:00
parent eca6578332
commit 5b6e4567a7
6 changed files with 74 additions and 49 deletions

View file

@ -653,28 +653,26 @@
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">&#34;xclip -selection clipboard -i&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">&#34;xclip -selection clipboard -i&#34;</span><span style="">
</span></span></span></code></pre></div><h3 id="ui">UI</h3>
<p>I generated the following with <a href="https://github.com/edkolev/tmuxline.vim">tmuxline.vim</a> plugin and palenight theme for <a href="https://github.com/vim-airline/vim-airline">vim-airline</a></p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span># This tmux statusbar config was created by tmuxline.vim<span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span># on Wed, <span style="color:#666">22</span> Jan <span style="color:#666">2020</span><span style="">
</span></span></span><span style="display:flex;"><span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-justify <span style="color:#ba2121">&#34;centre&#34;</span><span style="">
<p>On <span class="timestamp-wrapper"><span class="timestamp">[2020-01-22 Wed]</span></span>, I had generated the first version of this following with <a href="https://github.com/edkolev/tmuxline.vim">tmuxline.vim</a> plugin and palenight theme for <a href="https://github.com/vim-airline/vim-airline">vim-airline</a>.</p>
<p>Then I adapted it to use the current Emacs theme.</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>set -g status-justify <span style="color:#ba2121">&#34;centre&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status <span style="color:#ba2121">&#34;on&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left-style <span style="color:#ba2121">&#34;none&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-command-style <span style="color:#ba2121">&#34;fg=#bfc7d5,bg=#474b59&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-command-style <span style="color:#ba2121">&#34;fg=&lt;&lt;get-color(name=&#34;</span>fg<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right-style <span style="color:#ba2121">&#34;none&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-active-border-style <span style="color:#ba2121">&#34;fg=#939ede&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-style <span style="color:#ba2121">&#34;none,bg=#333747&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-style <span style="color:#ba2121">&#34;fg=#bfc7d5,bg=#474b59&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-border-style <span style="color:#ba2121">&#34;fg=#474b59&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-active-border-style <span style="color:#ba2121">&#34;fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-style <span style="color:#ba2121">&#34;none,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g message-style <span style="color:#ba2121">&#34;fg=&lt;&lt;get-color(name=&#34;</span>fg<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g pane-border-style <span style="color:#ba2121">&#34;fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right-length <span style="color:#ba2121">&#34;100&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left-length <span style="color:#ba2121">&#34;100&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-activity-style <span style="color:#ba2121">&#34;none,fg=#939ede,bg=#333747&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-activity-style <span style="color:#ba2121">&#34;none,fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-separator <span style="color:#ba2121">&#34;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-style <span style="color:#ba2121">&#34;none,fg=#bfc7d5,bg=#333747&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left <span style="color:#ba2121">&#34;#[fg=#292D3E,bg=#939ede] #S #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right <span style="color:#ba2121">&#34;#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#333747] %-H:%M #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] %a, %b %d #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#292D3E,bg=#939ede] #H &#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-format <span style="color:#ba2121">&#34;#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[default] #I #W #[align=left] #[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-current-format <span style="color:#ba2121">&#34;#[fg=#333747,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #I #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-style <span style="color:#ba2121">&#34;none,fg=&lt;&lt;get-color(name=&#34;</span>fg<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-left <span style="color:#ba2121">&#34;#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;] #S #[fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;] #W #[fg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>set -g status-right <span style="color:#ba2121">&#34;%-H:%M #[bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,fg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;] %a, %b %d #[bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;] #H &#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-format <span style="color:#ba2121">&#34;#[fg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;] #I #W #[align=left] #[fg=&lt;&lt;get-color(name=&#34;</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span><span style="display:flex;"><span><span style=""></span>setw -g window-status-current-format <span style="color:#ba2121">&#34;#[fg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]#[fg=&lt;&lt;get-fg-for-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;] #I #W #[fg=&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#ba2121">&#34;)&gt;&gt;,bg=&lt;&lt;get-color(name=&#34;</span>bg-other<span style="color:#ba2121">&#34;)&gt;&gt;,nobold,nounderscore,noitalics]&#34;</span><span style="">
</span></span></span></code></pre></div><p>Source the line config:</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>source ~/.tmux.line.conf<span style="">
</span></span></span></code></pre></div><h2 id="alacritty">Alacritty</h2>
@ -697,6 +695,13 @@
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#00f">&gt;</span> <span style="color:#008000">quote</span> <span style="color:#666">0</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#ba2121">&#34;\&#34;&#34;</span> <span style="color:#19177c">color</span> <span style="color:#ba2121">&#34;\&#34;&#34;</span>)
</span></span><span style="display:flex;"><span> <span style="color:#19177c">color</span>))
</span></span></code></pre></div><p><a id="code-snippet--get-fg-for-color"></a></p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">let</span> ((<span style="color:#19177c">val</span> (<span style="color:#008000">if</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">name</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;black</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;white</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#00f">eq</span> <span style="color:#008000">quote</span> <span style="color:#666">1</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#ba2121">&#34;\&#34;&#34;</span> <span style="color:#19177c">val</span> <span style="color:#ba2121">&#34;\&#34;&#34;</span>)
</span></span><span style="display:flex;"><span> <span style="color:#19177c">val</span>))
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">setq-local</span> <span style="color:#19177c">org-confirm-babel-evaluate</span> <span style="color:#800">nil</span>)
</span></span></code></pre></div><p>References:</p>
<ul>
@ -743,7 +748,7 @@
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">x</span>:<span style="color:#bbb"> </span><span style="color:#666">0</span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">y</span>:<span style="color:#bbb"> </span><span style="color:#666">0</span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">dynamic_padding</span>:<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">true</span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">opacity</span>:<span style="color:#bbb"> </span><span style="color:#666">0.80</span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">opacity</span>:<span style="color:#bbb"> </span><span style="color:#666">1</span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">key_bindings</span>:<span style="color:#bbb">
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Paste, action</span>:<span style="color:#bbb"> </span>Paste }<span style="color:#bbb">

View file

@ -3403,6 +3403,7 @@
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value-rgb</span>
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg-mode-line-active</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg-mode-line</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#19177c">my/light-p</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-dec</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg-alt</span>) <span style="color:#666">10</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-inc</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg-alt</span>) <span style="color:#666">15</span>)))))

View file

@ -1290,14 +1290,17 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> <span style="color:#008000">:config</span>
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">doom-themes-enable-bold</span> <span style="color:#800">t</span>
</span></span><span style="display:flex;"><span> <span style="color:#19177c">doom-themes-enable-italic</span> <span style="color:#800">t</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">my/remote-server</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">load-theme</span> <span style="color:#19177c">&#39;doom-gruvbox</span> <span style="color:#800">t</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">load-theme</span> <span style="color:#19177c">&#39;doom-palenight</span> <span style="color:#800">t</span>))
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic">;; (if my/remote-server</span>
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic">;; (load-theme &#39;doom-gruvbox t)</span>
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic">;; (load-theme &#39;doom-palenight t))</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">doom-themes-visual-bell-config</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">doom-themes-treemacs-theme</span> <span style="color:#ba2121">&#34;doom-colors&#34;</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">doom-themes-treemacs-config</span>))
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">use-package</span> <span style="color:#19177c">modus-themes</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> <span style="color:#800">t</span>)
</span></span></code></pre></div><p>Let&rsquo;s see&hellip;</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">use-package</span> <span style="color:#19177c">ef-themes</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> <span style="color:#800">t</span>)
</span></span></code></pre></div><h4 id="custom-theme-1">Custom theme</h4>
<p>Here I define a few things on the top of Emacs theme, because:</p>
<ul>
@ -1317,6 +1320,10 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/modus-p</span> ()
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">seq-find</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">x</span>) (<span style="color:#19177c">string-match-p</span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> <span style="color:#ba2121">&#34;modus&#34;</span>) (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">x</span>)))
</span></span><span style="display:flex;"><span> <span style="color:#19177c">custom-enabled-themes</span>))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/ef-p</span> ()
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">seq-find</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">x</span>) (<span style="color:#19177c">string-match-p</span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> <span style="color:#ba2121">&#34;ef&#34;</span>) (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">x</span>)))
</span></span><span style="display:flex;"><span> <span style="color:#19177c">custom-enabled-themes</span>))
</span></span></code></pre></div><p>I also want to know if the current theme is light or not:</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/light-p</span> ()
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg</span>)))
@ -1336,22 +1343,23 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defvar</span> <span style="color:#19177c">my/alpha-for-light</span> <span style="color:#666">7</span>)
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/doom-color</span> (<span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">override</span> (<span style="color:#19177c">alist-get</span> (<span style="color:#19177c">my/doom-p</span>) <span style="color:#19177c">my/theme-override</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">color-name</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">is-light</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">alist-get</span> <span style="color:#19177c">color</span> <span style="color:#19177c">override</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span>
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;black</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;fg</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;white</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;fg</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;border</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;base0</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;base8</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">string-match-p</span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> <span style="color:#ba2121">&#34;light-&#34;</span>) <span style="color:#19177c">color-name</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-inc</span> (<span style="color:#19177c">my/doom-color</span> (<span style="color:#00f">intern</span> (<span style="color:#00f">substring</span> <span style="color:#19177c">color-name</span> <span style="color:#666">6</span>)))
</span></span><span style="display:flex;"><span> <span style="color:#19177c">my/alpha-for-light</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">color</span>))))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">override</span> (<span style="color:#19177c">alist-get</span> (<span style="color:#19177c">my/doom-p</span>) <span style="color:#19177c">my/theme-override</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">color-name</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">is-light</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">alist-get</span> <span style="color:#19177c">color</span> <span style="color:#19177c">override</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span>
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;black</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;fg</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;white</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;bg</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;fg</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">&#39;border</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">is-light</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;base0</span>) (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">&#39;base8</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">string-match-p</span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> <span style="color:#ba2121">&#34;light-&#34;</span>) <span style="color:#19177c">color-name</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-inc</span> (<span style="color:#19177c">my/doom-color</span> (<span style="color:#00f">intern</span> (<span style="color:#00f">substring</span> <span style="color:#19177c">color-name</span> <span style="color:#666">6</span>)))
</span></span><span style="display:flex;"><span> <span style="color:#19177c">my/alpha-for-light</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">color</span>)))))))
</span></span></code></pre></div><p>And the same for <code>modus-themes</code>. <code>my/modus-color</code> has to accept the same arguments as I use for <code>my/doom-color</code> for backward compatibility, which requires a bit more tuning.</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/modus-get-base</span> (<span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">base-value</span> (<span style="color:#00f">string-to-number</span> (<span style="color:#00f">substring</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>) <span style="color:#666">4</span> <span style="color:#666">5</span>)))
@ -1359,9 +1367,8 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">base-end</span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> <span style="color:#19177c">&#39;fg-dim</span> (<span style="color:#19177c">modus-themes--current-theme-palette</span>)))))
</span></span><span style="display:flex;"><span> (<span style="color:#00f">nth</span> <span style="color:#19177c">base-value</span> (<span style="color:#19177c">ct-gradient</span> <span style="color:#666">9</span> <span style="color:#19177c">base-start</span> <span style="color:#19177c">base-end</span> <span style="color:#800">t</span>))))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/modus-color</span> (<span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let*</span> ((<span style="color:#19177c">palette</span> (<span style="color:#19177c">modus-themes--current-theme-palette</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">is-light</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> <span style="color:#19177c">&#39;bg-main</span> <span style="color:#19177c">palette</span>)))))
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/prot-color</span> (<span style="color:#19177c">color</span> <span style="color:#19177c">palette</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">is-light</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> <span style="color:#19177c">&#39;bg-main</span> <span style="color:#19177c">palette</span>)))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span>
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">member</span> <span style="color:#19177c">color</span> <span style="color:#666">&#39;</span>(<span style="color:#19177c">black</span> <span style="color:#19177c">white</span> <span style="color:#19177c">light-black</span> <span style="color:#19177c">light-white</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">bg-main</span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> <span style="color:#19177c">&#39;bg-main</span> <span style="color:#19177c">palette</span>)))
@ -1391,9 +1398,17 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">color</span> <span style="color:#19177c">&#39;grey</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/modus-get-base</span> <span style="color:#19177c">&#39;base5</span>))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">string-match-p</span> (<span style="color:#008000">rx</span> <span style="color:#19177c">bos</span> <span style="color:#ba2121">&#34;light-&#34;</span>) (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> (<span style="color:#00f">intern</span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%s-intense&#34;</span> (<span style="color:#00f">substring</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>) <span style="color:#666">6</span>))) <span style="color:#19177c">palette</span>)))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> (<span style="color:#00f">intern</span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%s-intense&#34;</span> (<span style="color:#00f">substring</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>) <span style="color:#666">6</span>))) <span style="color:#19177c">palette</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> (<span style="color:#00f">intern</span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;bg-%s-intense&#34;</span> (<span style="color:#00f">substring</span> (<span style="color:#00f">symbol-name</span> <span style="color:#19177c">color</span>) <span style="color:#666">6</span>))) <span style="color:#19177c">palette</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> (<span style="color:#19177c">cadr</span> (<span style="color:#00f">assoc</span> <span style="color:#19177c">color</span> <span style="color:#19177c">palette</span>))))))
</span></span></code></pre></div><p>Test the two functions.</p>
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/modus-color</span> (<span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/prot-color</span> <span style="color:#19177c">color</span> (<span style="color:#19177c">modus-themes--current-theme-palette</span>)))
</span></span><span style="display:flex;"><span>
</span></span><span style="display:flex;"><span>(<span style="color:#008000">defun</span> <span style="color:#19177c">my/ef-color</span> (<span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/prot-color</span> <span style="color:#19177c">color</span> (<span style="color:#19177c">ef-themes--current-theme-palette</span>)))
</span></span></code></pre></div><p>Test the three functions.</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">defconst</span> <span style="color:#19177c">my/test-colors-list</span>
</span></span><span style="display:flex;"><span> <span style="color:#666">&#39;</span>(<span style="color:#19177c">black</span> <span style="color:#19177c">red</span> <span style="color:#19177c">green</span> <span style="color:#19177c">yellow</span> <span style="color:#19177c">blue</span> <span style="color:#19177c">magenta</span> <span style="color:#19177c">cyan</span> <span style="color:#19177c">white</span> <span style="color:#19177c">light-black</span>
</span></span><span style="display:flex;"><span> <span style="color:#19177c">light-red</span> <span style="color:#19177c">light-green</span> <span style="color:#19177c">light-yellow</span> <span style="color:#19177c">light-blue</span> <span style="color:#19177c">light-magenta</span>
@ -1404,13 +1419,14 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">buf</span> (<span style="color:#19177c">generate-new-buffer</span> <span style="color:#ba2121">&#34;*colors-test*&#34;</span>)))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">with-current-buffer</span> <span style="color:#19177c">buf</span>
</span></span><span style="display:flex;"><span> (<span style="color:#00f">insert</span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%-20s %-10s %-10s&#34;</span> <span style="color:#ba2121">&#34;Color&#34;</span> <span style="color:#ba2121">&#34;Doom&#34;</span> <span style="color:#ba2121">&#34;Modus&#34;</span>) <span style="color:#ba2121">&#34;\n&#34;</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#00f">insert</span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%-20s %-10s %-10s %-10s&#34;</span> <span style="color:#ba2121">&#34;Color&#34;</span> <span style="color:#ba2121">&#34;Doom&#34;</span> <span style="color:#ba2121">&#34;Modus&#34;</span> <span style="color:#ba2121">&#34;Ef&#34;</span>) <span style="color:#ba2121">&#34;\n&#34;</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cl-loop</span> <span style="color:#19177c">for</span> <span style="color:#19177c">color</span> <span style="color:#19177c">in</span> <span style="color:#19177c">my/test-colors-list</span>
</span></span><span style="display:flex;"><span> <span style="color:#008000">do</span> (<span style="color:#00f">insert</span>
</span></span><span style="display:flex;"><span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%-20s %-10s %-10s\n&#34;</span>
</span></span><span style="display:flex;"><span> (<span style="color:#00f">format</span> <span style="color:#ba2121">&#34;%-20s %-10s %-10s %-10s\n&#34;</span>
</span></span><span style="display:flex;"><span> (<span style="color:#00f">prin1-to-string</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/doom-color</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/modus-color</span> <span style="color:#19177c">color</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/modus-color</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/ef-color</span> <span style="color:#19177c">color</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">special-mode</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">rainbow-mode</span>))
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">switch-to-buffer</span> <span style="color:#19177c">buf</span>)))
@ -1419,12 +1435,14 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> (<span style="color:#008000">cond</span>
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">stringp</span> <span style="color:#19177c">color</span>) (<span style="color:#19177c">my/color-value</span> (<span style="color:#00f">intern</span> <span style="color:#19177c">color</span>)))
</span></span><span style="display:flex;"><span> ((<span style="color:#00f">eq</span> <span style="color:#19177c">color</span> <span style="color:#19177c">&#39;bg-other</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">color</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg</span>)))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#19177c">ct-light-p</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-dec</span> <span style="color:#19177c">color</span> <span style="color:#666">3</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-dec</span> <span style="color:#19177c">color</span> <span style="color:#666">3</span>))))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg-dim</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">color</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">&#39;bg</span>)))
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#19177c">ct-light-p</span> <span style="color:#19177c">color</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-dec</span> <span style="color:#19177c">color</span> <span style="color:#666">2</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ct-edit-hsl-l-dec</span> <span style="color:#19177c">color</span> <span style="color:#666">3</span>)))))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">my/doom-p</span>) (<span style="color:#19177c">my/doom-color</span> <span style="color:#19177c">color</span>))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">my/modus-p</span>) (<span style="color:#19177c">my/modus-color</span> <span style="color:#19177c">color</span>))))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">my/modus-p</span>) (<span style="color:#19177c">my/modus-color</span> <span style="color:#19177c">color</span>))
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">my/ef-p</span>) (<span style="color:#19177c">my/ef-color</span> <span style="color:#19177c">color</span>))))
</span></span></code></pre></div><p>And a few more functions</p>
<h5 id="custom-theme">Custom theme</h5>
<p>So, the custom theme:</p>
@ -1474,6 +1492,7 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">load-theme</span> <span style="color:#19177c">theme</span> <span style="color:#800">t</span>)
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> <span style="color:#19177c">current-prefix-arg</span>
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/regenerate-desktop</span>)))
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#19177c">my/switch-theme</span> <span style="color:#19177c">&#39;ef-duo-light</span>)
</span></span></code></pre></div><h4 id="dim-inactive-buffers">Dim inactive buffers</h4>
<p>Dim inactive buffers.</p>
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">use-package</span> <span style="color:#19177c">auto-dim-other-buffers</span>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 118 KiB

After

Width:  |  Height:  |  Size: 118 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB