mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 00:03:02 +03:00
deploy: 280e0ed2e5
This commit is contained in:
parent
08e24873ca
commit
324e7c6063
4 changed files with 166 additions and 15 deletions
|
|
@ -503,7 +503,8 @@ Emacs is also particularly good at writing Lisp code, e.g. Clojure, Common Lisp,
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">slime</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">forge</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">deadgrep</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">vc-annonate</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">vc-annonate</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">telega</span>)))
|
||||
</span></span></code></pre></div><h4 id="avy">Avy</h4>
|
||||
<p><a href="https://github.com/abo-abo/avy">Avy</a> is a package that helps navigate Emacs in a tree-like manner.</p>
|
||||
<p>References:</p>
|
||||
|
|
@ -3581,6 +3582,7 @@ Emacs is also particularly good at writing Lisp code, e.g. Clojure, Common Lisp,
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/projects"</span>))))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">org-agenda-files</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>(<span style="color:#ba2121">"inbox.org"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"misc/habit.org"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">,@</span><span style="color:#19177c">project-files</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">org-refile-targets</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>(<span style="color:#666">,@</span>(<span style="color:#00f">mapcar</span>
|
||||
|
|
@ -3619,8 +3621,10 @@ Emacs is also particularly good at writing Lisp code, e.g. Clojure, Common Lisp,
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#666">,</span>(<span style="color:#00f">concat</span> <span style="color:#ba2121">"* TODO %:elfeed-entry-title\n"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"/Entered on/ %U\n"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"%a\n"</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#ba2121">"n"</span> <span style="color:#ba2121">"note"</span> <span style="color:#19177c">entry</span> (<span style="color:#19177c">file</span> <span style="color:#19177c">my/generate-inbox-note-name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">,</span>(<span style="color:#00f">concat</span> <span style="color:#ba2121">"* %?\n"</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#ba2121">"n"</span> <span style="color:#ba2121">"note"</span> <span style="color:#19177c">plain</span> (<span style="color:#19177c">file</span> <span style="color:#19177c">my/generate-inbox-note-name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">,</span>(<span style="color:#00f">concat</span> <span style="color:#ba2121">"#+TODO: PROCESSED(p)\n"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"\n"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"* %?\n"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"/Entered on/ %U"</span>))))
|
||||
</span></span></code></pre></div><h5 id="org-ql">org-ql</h5>
|
||||
<p><a href="https://github.com/alphapapa/org-ql">org-ql</a> is a package to query the org files. I’ve tried using it for:</p>
|
||||
|
|
@ -3635,19 +3639,68 @@ Emacs is also particularly good at writing Lisp code, e.g. Clojure, Common Lisp,
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> (<span style="color:#008000">:fetcher</span> <span style="color:#19177c">github</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:repo</span> <span style="color:#ba2121">"alphapapa/org-ql"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:files</span> (<span style="color:#008000">:defaults</span> (<span style="color:#008000">:exclude</span> <span style="color:#ba2121">"helm-org-ql.el"</span>))))
|
||||
</span></span></code></pre></div><h5 id="tracking-habits">Tracking habits</h5>
|
||||
<p>Let’s see how this goes.</p>
|
||||
<p>References:</p>
|
||||
<ul>
|
||||
<li><a href="https://orgmode.org/manual/Tracking-your-habits.html">https://orgmode.org/manual/Tracking-your-habits.html</a></li>
|
||||
</ul>
|
||||
<p><a href="https://github.com/ml729/org-habit-stats">org-habit-stats</a> is a pretty nice package. Using my fork until my PR is merged.</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">org-habit-stats</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> (<span style="color:#008000">:host</span> <span style="color:#19177c">github</span> <span style="color:#008000">:repo</span> <span style="color:#ba2121">"ml729/org-habit-stats"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:after</span> (<span style="color:#19177c">org</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:config</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#666">'</span>(<span style="color:#19177c">org-habit-stats-mode-map</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:states</span> <span style="color:#666">'</span>(<span style="color:#19177c">normal</span> <span style="color:#19177c">emacs</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"q"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-exit</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-calendar-scroll-left</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">">"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-calendar-scroll-right</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"["</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-scroll-graph-left</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"]"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-scroll-graph-right</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"{"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-scroll-graph-left-big</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"}"</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-scroll-graph-right-big</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"."</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-view-next-habit</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">","</span> <span style="color:#00f">#'</span><span style="color:#19177c">org-habit-stats-view-previous-habit</span>))
|
||||
</span></span></code></pre></div><h5 id="custom-agendas">Custom agendas</h5>
|
||||
<p>Some custom agendas to fit my workflow.</p>
|
||||
<p>See <a href="https://emacs.stackexchange.com/questions/18179/org-agenda-command-with-org-agenda-filter-by-tag-not-working">this answer</a> at Emacs StackExchange for filtering the <code>agenda</code> block by tag:</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/org-match-at-point-p</span> (<span style="color:#19177c">match</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Return non-nil if headline at point matches MATCH.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Here MATCH is a match string of the same format used by
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121"></span><span style="color:#19177c">`org-tags-view'</span><span style="color:#ba2121">."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">funcall</span> (<span style="color:#00f">cdr</span> (<span style="color:#19177c">org-make-tags-matcher</span> <span style="color:#19177c">match</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-get-todo-state</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-get-tags-at</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-reduced-level</span> (<span style="color:#19177c">org-current-level</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/org-agenda-skip-without-match</span> (<span style="color:#19177c">match</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"Skip current headline unless it matches MATCH.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Return nil if headline containing point matches MATCH (which
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">should be a match string of the same format used by
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121"></span><span style="color:#19177c">`org-tags-view'</span><span style="color:#ba2121">). If headline does not match, return the
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">position of the next headline in current buffer.
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Intended for use with </span><span style="color:#19177c">`org-agenda-skip-function'</span><span style="color:#ba2121">, where this will
|
||||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">skip exactly those headlines that do not match."</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">save-excursion</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">unless</span> (<span style="color:#19177c">org-at-heading-p</span>) (<span style="color:#19177c">org-back-to-heading</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">next-headline</span> (<span style="color:#008000">save-excursion</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">or</span> (<span style="color:#19177c">outline-next-heading</span>) (<span style="color:#00f">point-max</span>)))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#19177c">my/org-match-at-point-p</span> <span style="color:#19177c">match</span>) <span style="color:#800">nil</span> <span style="color:#19177c">next-headline</span>))))
|
||||
</span></span></code></pre></div><p>And the agendas themselves:</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/org-scheduled-get-time</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">scheduled</span> (<span style="color:#19177c">org-get-scheduled-time</span> (<span style="color:#00f">point</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> <span style="color:#19177c">scheduled</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">format-time-string</span> <span style="color:#ba2121">"%Y-%m-%d"</span> <span style="color:#19177c">scheduled</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">""</span>)))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">org-agenda-hide-tags-regexp</span> (<span style="color:#008000">rx</span> (<span style="color:#008000">or</span> <span style="color:#ba2121">"org"</span> <span style="color:#ba2121">"refile"</span>)))
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">org-agenda-hide-tags-regexp</span> (<span style="color:#008000">rx</span> (<span style="color:#008000">or</span> <span style="color:#ba2121">"org"</span> <span style="color:#ba2121">"refile"</span> <span style="color:#ba2121">"habit"</span>)))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">org-agenda-custom-commands</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>((<span style="color:#ba2121">"p"</span> <span style="color:#ba2121">"My outline"</span>
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">agenda</span> <span style="color:#ba2121">""</span>)
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">agenda</span> <span style="color:#ba2121">""</span> ((<span style="color:#19177c">org-agenda-skip-function</span> <span style="color:#666">'</span>(<span style="color:#19177c">my/org-agenda-skip-without-match</span> <span style="color:#ba2121">"-habit"</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">tags-todo</span> <span style="color:#ba2121">"inbox"</span>
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">org-agenda-overriding-header</span> <span style="color:#ba2121">"Inbox"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-prefix-format</span> <span style="color:#ba2121">" %i %-12:c"</span>)
|
||||
|
|
@ -3655,7 +3708,11 @@ Emacs is also particularly good at writing Lisp code, e.g. Clojure, Common Lisp,
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">tags-todo</span> <span style="color:#ba2121">"+waitlist+SCHEDULED<=\"<+14d>\""</span>
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">org-agenda-overriding-header</span> <span style="color:#ba2121">"Waitlist"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-hide-tags-regexp</span> <span style="color:#ba2121">"waitlist"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-prefix-format</span> <span style="color:#ba2121">" %i %-12:c %-12(my/org-scheduled-get-time)"</span>)))))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-prefix-format</span> <span style="color:#ba2121">" %i %-12:c %-12(my/org-scheduled-get-time)"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">tags-todo</span> <span style="color:#ba2121">"habit+SCHEDULED<=\"<+0d>\""</span>
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#19177c">org-agenda-overriding-header</span> <span style="color:#ba2121">"Habits"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-prefix-format</span> <span style="color:#ba2121">" %i %-12:c"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">org-agenda-hide-tags-regexp</span> <span style="color:#ba2121">"."</span>)))))))
|
||||
</span></span></code></pre></div><h5 id="other-settings">Other settings</h5>
|
||||
<p>Hotkeys</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:#19177c">my-leader-def</span>
|
||||
|
|
@ -4283,7 +4340,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:templates</span> <span style="color:#666">`</span>(<span style="color:#666">,</span><span style="color:#19177c">my/org-review-capture-template</span>)))
|
||||
</span></span></code></pre></div><h4 id="org-contacts">org-contacts</h4>
|
||||
<p><code>org-contacts</code> is a package to store contacts in an org file.</p>
|
||||
<p>It seems like the package has been somewhat revived in the recent months. It used things like <code>lexical-let</code> when I first found it.</p>
|
||||
<p>It seems the package has been somewhat revived in the recent months. It used things like <code>lexical-let</code> when I first found it.</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">org-contacts</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> (<span style="color:#008000">:type</span> <span style="color:#19177c">git</span> <span style="color:#008000">:repo</span> <span style="color:#ba2121">"https://repo.or.cz/org-contacts.git"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:if</span> (<span style="color:#19177c">not</span> <span style="color:#19177c">my/remote-server</span>)
|
||||
|
|
@ -4550,14 +4607,15 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
<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/org-file-open</span> ()
|
||||
</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">files</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">append</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#ba2121">"inbox.org"</span> <span style="color:#ba2121">"contacts.org"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">mapcar</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">f</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#ba2121">"projects/"</span> <span style="color:#19177c">f</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">seq-filter</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">f</span>) (<span style="color:#19177c">not</span> (<span style="color:#00f">member</span> <span style="color:#19177c">f</span> <span style="color:#666">'</span>(<span style="color:#ba2121">"."</span> <span style="color:#ba2121">".."</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">directory-files</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/projects"</span>)))))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">thread-last</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#ba2121">"projects"</span> <span style="color:#ba2121">"misc"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">mapcar</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">f</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">directory-files</span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/"</span> <span style="color:#19177c">f</span>) <span style="color:#800">t</span> (<span style="color:#008000">rx</span> <span style="color:#ba2121">".org"</span> <span style="color:#19177c">eos</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">apply</span> <span style="color:#00f">#'append</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">mapcar</span> (<span style="color:#008000">lambda</span> (<span style="color:#19177c">file</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">string-replace</span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/"</span>) <span style="color:#ba2121">""</span> <span style="color:#19177c">file</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">append</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#ba2121">"inbox.org"</span> <span style="color:#ba2121">"contacts.org"</span>)))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">find-file</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#19177c">org-directory</span> <span style="color:#ba2121">"/"</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">completing-read</span> <span style="color:#ba2121">"Org file: "</span> <span style="color:#19177c">files</span>)))))
|
||||
|
|
@ -6179,6 +6237,7 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:states</span> <span style="color:#666">'</span>(<span style="color:#19177c">emacs</span> <span style="color:#19177c">normal</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#19177c">'emms-browser-mode-map</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"gr"</span> <span style="color:#00f">#'</span><span style="color:#19177c">emms-browse-by-artist</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"gl"</span> <span style="color:#19177c">'lyrics-fetcher-emms-browser-show-at-point</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"gC"</span> <span style="color:#19177c">'lyrics-fetcher-emms-browser-fetch-covers-at-point</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"go"</span> <span style="color:#19177c">'lyrics-fetcher-emms-browser-open-large-cover-at-point</span>)
|
||||
|
|
@ -6404,6 +6463,90 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">use-package</span> <span style="color:#19177c">ement</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> (<span style="color:#008000">:host</span> <span style="color:#19177c">github</span> <span style="color:#008000">:repo</span> <span style="color:#ba2121">"alphapapa/ement.el"</span>))
|
||||
</span></span></code></pre></div><h4 id="telega">Telega</h4>
|
||||
<p><a href="https://github.com/zevlg/telega.el/">telega.el</a> is a Telegam client for Emacs.</p>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>tdlib-1.8.10</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>font-gnu-unifont</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>font-gnu-freefont</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<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">telega</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> <span style="color:#800">t</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:commands</span> (<span style="color:#19177c">telega</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:init</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my-leader-def</span> <span style="color:#ba2121">"a l"</span> (<span style="color:#19177c">my/command-in-persp</span> <span style="color:#ba2121">"telega"</span> <span style="color:#ba2121">"telega"</span> <span style="color:#666">3</span> (<span style="color:#19177c">telega</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/use-doom-colors</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-button-active</span> <span style="color:#008000">:foreground</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">'base0</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:background</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">'cyan</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-webpage-chat-link</span> <span style="color:#008000">:foreground</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">'base0</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:background</span> (<span style="color:#19177c">doom-color</span> <span style="color:#19177c">'fg</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:config</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-root-mode-map</span> <span style="color:#19177c">telega-chat-mode-map</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:states</span> <span style="color:#666">'</span>(<span style="color:#19177c">normal</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"gp"</span> <span style="color:#19177c">telega-prefix-map</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-msg-button-map</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<SPC>"</span> <span style="color:#800">nil</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-chat-mode-map</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"C-<return>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">newline</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/persp-add-rule</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">telega-root-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"telega"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">telega-chat-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"telega"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">telega-image-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"telega"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">telega-webpage-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"telega"</span>))
|
||||
</span></span></code></pre></div><p>Building <code>telega-server</code> can create problems. It requires the latest version of <code>tdlib</code>, which isn’t available anywhere, but I can inherit the Guix package definition.</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/telega-server-build</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">telega-server-libs-prefix</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">string-trim</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">shell-command-to-string</span> <span style="color:#ba2121">"guix build tdlib-1.8.10"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-server-build</span> <span style="color:#ba2121">"CC=gcc"</span>))
|
||||
</span></span></code></pre></div><p>Setting up the modeline. The default mode string doesn’t look great with my other modeline modules, so I override that.</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:#19177c">add-hook</span> <span style="color:#19177c">'telega-load-hook</span> <span style="color:#00f">#'</span><span style="color:#19177c">telega-mode-line-mode</span>)
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">telega-mode-line-string-format</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#ba2121">"["</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:eval</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-mode-line-online-status</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:eval</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> <span style="color:#19177c">telega-use-tracking-for</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-mode-line-tracking</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:eval</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-mode-line-unread-unmuted</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">:eval</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">telega-mode-line-mentions</span> <span style="color:#19177c">'messages</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"]"</span>))
|
||||
</span></span></code></pre></div><p>Configuring company backends for the chat buffer, as recommended in the manual:</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/telega-chat-setup</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">set</span> (<span style="color:#00f">make-local-variable</span> <span style="color:#19177c">'company-backends</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">append</span> (<span style="color:#00f">list</span> <span style="color:#19177c">telega-emoji-company-backend</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">'telega-company-username</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">'telega-company-hashtag</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">'telega-company-markdown-precode</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> (<span style="color:#19177c">telega-chat-bot-p</span> <span style="color:#19177c">telega-chatbuf--chat</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-company-botcmd</span>))))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">company-mode</span> <span style="color:#666">1</span>))
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">add-hook</span> <span style="color:#19177c">'telega-chat-mode-hook</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/telega-chat-setup</span>)
|
||||
</span></span></code></pre></div><p>And custom online status. By default it marks you online when the Emacs frame is active, but I use EXWM, so I change that to when <code>telega.el</code> buffer is active. Otherwise, I’m online all the time.</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/telega-online-status</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">derived-mode-p</span> <span style="color:#19177c">'telega-root-mode</span> <span style="color:#19177c">'telega-chat-mode</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">'telega-image-mode</span> <span style="color:#19177c">'telega-webpage-mode</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#008000">setq</span> <span style="color:#19177c">telega-online-status-function</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/telega-online-status</span>)
|
||||
</span></span></code></pre></div><h4 id="off--jabber"><span class="org-todo done OFF">OFF</span> (OFF) jabber</h4>
|
||||
<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">srv</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> <span style="color:#800">t</span>
|
||||
|
|
@ -6749,6 +6892,11 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<ORG-JOURNAL>"</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">"EXWM"</span>) <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<EXWM>"</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">"*Org-Habit"</span>) <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<ORG>"</span>)
|
||||
</span></span><span style="display:flex;"><span> ((<span style="color:#008000">with-current-buffer</span> (<span style="color:#00f">get-buffer</span> <span style="color:#19177c">name</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">derived-mode-p</span> <span style="color:#19177c">'telega-root-mode</span> <span style="color:#19177c">'telega-chat-mode</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<TELEGA>"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#800">t</span> <span style="color:#19177c">name</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/elcord-buffer-details-format-functions</span> ()
|
||||
|
|
@ -6767,6 +6915,8 @@ Didn’t work out as I expected, so I’ve made <code>org-journal-tags</
|
|||
</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">elcord-buffer-details-format-function</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/elcord-buffer-details-format-functions</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">advice-add</span> <span style="color:#19177c">'elcord--try-update-presence</span> <span style="color:#008000">:filter-args</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/elcord-update-presence-mask-advice</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">add-to-list</span> <span style="color:#19177c">'elcord-mode-text-alist</span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-chat-mode</span> <span style="color:#666">.</span> <span style="color:#ba2121">"Telega Chat"</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">add-to-list</span> <span style="color:#19177c">'elcord-mode-text-alist</span> <span style="color:#666">'</span>(<span style="color:#19177c">telega-root-mode</span> <span style="color:#666">.</span> <span style="color:#ba2121">"Telega Root"</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">elcord-mode</span>))
|
||||
</span></span></code></pre></div><h4 id="snow">Snow</h4>
|
||||
<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">snow</span>
|
||||
|
|
@ -7423,6 +7573,7 @@ I’ve seen a couple of cases where people would swap their username and ema
|
|||
<li><a href="#eww">EWW</a></li>
|
||||
<li><a href="#erc">ERC</a></li>
|
||||
<li><a href="#ement-dot-el">ement.el</a></li>
|
||||
<li><a href="#telega">Telega</a></li>
|
||||
<li><a href="#off--jabber"><span class="org-todo done OFF">OFF</span> (OFF) jabber</a></li>
|
||||
<li><a href="#google-translate">Google Translate</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 117 KiB After Width: | Height: | Size: 117 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 60 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 68 KiB After Width: | Height: | Size: 64 KiB |
Loading…
Add table
Reference in a new issue