mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 00:03:02 +03:00
deploy: ec9d4f60e5
This commit is contained in:
parent
d526a2dbc4
commit
6ee4989de3
4 changed files with 72 additions and 7 deletions
|
|
@ -1590,8 +1590,12 @@ Emacs is also particularly great at writing Lisp code, e.g. Clojure, Common Lisp
|
|||
</span></span></code></pre></div><p>One rule looks as follows:</p>
|
||||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>(major-mode workspace-index persp-name)
|
||||
</span></span></code></pre></div><p>And a function to act on these rules.</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/perspective-assign</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">when-let*</span> ((<span style="color:#19177c">rule</span> (<span style="color:#19177c">alist-get</span> <span style="color:#19177c">major-mode</span> <span style="color:#19177c">my/perspective-assign-alist</span>)))
|
||||
<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">defvar</span> <span style="color:#19177c">my/perspective-assign-ignore</span> <span style="color:#800">nil</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"If non-nil, ignore </span><span style="color:#19177c">`my/perspective-assign'</span><span style="color:#ba2121">"</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/perspective-assign</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">when-let*</span> ((<span style="color:#19177c">_</span> (<span style="color:#19177c">not</span> <span style="color:#19177c">my/perspective-assign-ignore</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">rule</span> (<span style="color:#19177c">alist-get</span> <span style="color:#19177c">major-mode</span> <span style="color:#19177c">my/perspective-assign-alist</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">workspace-index</span> (<span style="color:#00f">car</span> <span style="color:#19177c">rule</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">persp-name</span> (<span style="color:#19177c">cadr</span> <span style="color:#19177c">rule</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">buffer</span> (<span style="color:#00f">current-buffer</span>)))
|
||||
|
|
@ -1607,6 +1611,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:#19177c">with-perspective</span> <span style="color:#19177c">persp-name</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">persp-set-buffer</span> <span style="color:#19177c">buffer</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">persp-switch-to-buffer</span> <span style="color:#19177c">buffer</span>)))))
|
||||
</span></span></code></pre></div><p>Also advise to ignore the assignment:</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/perspective-assign-ignore-advice</span> (<span style="color:#19177c">fun</span> <span style="color:#008000">&rest</span> <span style="color:#19177c">args</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">let</span> ((<span style="color:#19177c">my/perspective-assign-ignore</span> <span style="color:#800">t</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">apply</span> <span style="color:#19177c">fun</span> <span style="color:#19177c">args</span>)))
|
||||
</span></span></code></pre></div><p>If EXWM is available, then so is mine <code>perspective-exwm</code> package, which features a convenient procedure called <code>perspective-exwm-assign-window</code>. Otherwise, we just work with perspectives.</p>
|
||||
<p>Now, we have to put this function somewhere, and <code>after-change-major-mode-hook</code> seems like a perfect place for 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:#19177c">add-hook</span> <span style="color:#19177c">'after-change-major-mode-hook</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/perspective-assign</span>)
|
||||
|
|
@ -6862,7 +6870,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">erc-update-modules</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">erc-autojoin-channels-alist</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">`</span>((<span style="color:#666">,</span>(<span style="color:#008000">rx</span> <span style="color:#ba2121">"libera.chat"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"#systemcrafters"</span>)))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"#systemcrafters"</span> <span style="color:#ba2121">"#systemcrafters-emacs"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">erc-kill-buffer-on-part</span> <span style="color:#800">t</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">erc-track-shorten-start</span> <span style="color:#666">8</span>))
|
||||
</span></span></code></pre></div><p>Exclude everything but actual messages from notifications.</p>
|
||||
|
|
@ -6886,7 +6894,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">: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">znc-erc</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">"ai"</span> <span style="color:#00f">#'</span><span style="color:#19177c">znc-erc</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic">;; (my-leader-def "ai" #'znc-erc)</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">erc-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"ERC"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:config</span>
|
||||
|
|
@ -6949,6 +6957,12 @@ 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">display-line-numbers-mode</span> <span style="color:#666">-1</span>))
|
||||
</span></span><span style="display:flex;"><span>
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">add-hook</span> <span style="color:#19177c">'mastodon-mode-hook</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/mastodon-configure</span>)
|
||||
</span></span></code></pre></div><p>Kill processes. Useful when the package stops working due to unstable connection.</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/mastodon-reset</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">cl-loop</span> <span style="color:#19177c">for</span> <span style="color:#19177c">process</span> <span style="color:#19177c">in</span> (<span style="color:#00f">process-list</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">if</span> (<span style="color:#19177c">string-match-p</span> <span style="color:#ba2121">"emacs.ch"</span> (<span style="color:#00f">process-name</span> <span style="color:#19177c">process</span>))
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">do</span> (<span style="color:#00f">delete-process</span> <span style="color:#19177c">process</span>)))
|
||||
</span></span></code></pre></div><p>The package also doesn’t have evil bindings. I implement a few basic bindings here:</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">with-eval-after-load</span> <span style="color:#19177c">'mastodon</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">general-define-key</span>
|
||||
|
|
@ -7219,8 +7233,59 @@ 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">: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/plz.el"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:defer</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/ement</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">interactive</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">ement-connect</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:user-id</span> <span style="color:#ba2121">"@sqrtminusone:matrix.org"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:password</span> (<span style="color:#19177c">my/password-store-get</span> <span style="color:#ba2121">"My_Online/Accounts/matrix"</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/ement-room-setup</span> ()
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">display-line-numbers-mode</span> <span style="color:#666">1</span>))
|
||||
</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><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><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">"ai"</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/ement</span>)
|
||||
</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">ement-room-list-auto-update</span> <span style="color:#800">t</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-mark-rooms-read</span> <span style="color:#19177c">'send</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-message-format-spec</span> <span style="color:#ba2121">"%S> %W%B%r%R[%t]"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-left-margin-width</span> <span style="color:#666">0</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-right-margin-width</span> <span style="color:#666">10</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-sender-in-left-margin</span> <span style="color:#800">nil</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-sender-headers</span> <span style="color:#800">nil</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-sender-in-headers</span> <span style="color:#800">nil</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-reactions</span> <span style="color:#800">nil</span> <span style="color:#008000">:height</span> <span style="color:#19177c">'unspecified</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-reactions-key</span> <span style="color:#800">nil</span> <span style="color:#008000">:height</span> <span style="color:#19177c">'unspecified</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-timestamp</span> <span style="color:#800">nil</span> <span style="color:#008000">:inherit</span> <span style="color:#19177c">'font-lock-function-name-face</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-membership</span> <span style="color:#800">nil</span> <span style="color:#008000">:height</span> <span style="color:#666">0.9</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:inherit</span> <span style="color:#19177c">'font-lock-warning-face</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-wrap-prefix</span> <span style="color:#800">nil</span> <span style="color:#008000">:inherit</span> <span style="color:#19177c">'unspecified</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-timestamp-header</span> <span style="color:#800">nil</span> <span style="color:#008000">:height</span> <span style="color:#19177c">'unspecified</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">set-face-attribute</span> <span style="color:#19177c">'ement-room-wrap-prefix</span> <span style="color:#800">nil</span> <span style="color:#008000">:inherit</span> <span style="color:#19177c">'unspecified</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-room-wrap-prefix</span> <span style="color:#ba2121">"-> "</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">setq</span> <span style="color:#19177c">ement-notify-notification-predicates</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(<span style="color:#19177c">ement-notify--event-mentions-session-user-p</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">ement-notify--event-mentions-room-p</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">ement-notify--room-unread-p</span>))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">advice-add</span> <span style="color:#00f">#'</span><span style="color:#19177c">ement-room-list-revert</span> <span style="color:#008000">:around</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/perspective-assign-ignore-advice</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">add-hook</span> <span style="color:#19177c">'ement-room-mode-hook</span> <span style="color:#00f">#'</span><span style="color:#19177c">my/ement-room-setup</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">ement-room-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"ement"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">ement-describe-room-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"ement"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">ement-room-occur-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"ement"</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">ement-room-list-mode</span> <span style="color:#666">3</span> <span style="color:#ba2121">"ement"</span>))
|
||||
</span></span></code></pre></div><p>Some custom keymaps:</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">with-eval-after-load</span> <span style="color:#19177c">'ement-room-list</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">:states</span> <span style="color:#666">'</span>(<span style="color:#19177c">normal</span> <span style="color:#19177c">visual</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:keymaps</span> <span style="color:#666">'</span>(<span style="color:#19177c">ement-room-list-mode-map</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"<tab>"</span> <span style="color:#00f">#'</span><span style="color:#19177c">magit-section-toggle</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"C-j"</span> <span style="color:#00f">#'</span><span style="color:#19177c">magit-section-forward</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"C-k"</span> <span style="color:#00f">#'</span><span style="color:#19177c">magit-section-backward</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"q"</span> <span style="color:#00f">#'</span><span style="color:#19177c">quit-window</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"gr"</span> <span style="color:#00f">#'</span><span style="color:#19177c">revert-buffer</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#ba2121">"RET"</span> <span style="color:#00f">#'</span><span style="color:#19177c">ement-room-list-RET</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>
|
||||
|
|
@ -7306,7 +7371,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">'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="reddit">Reddit</h4>
|
||||
</span></span></code></pre></div><h4 id="reddit"><span class="org-todo done OFF">OFF</span> Reddit</h4>
|
||||
<p><a href="https://github.com/thanhvg/emacs-reddigg">reddigg</a> allows to view reddit in org-mode.</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">reddigg</span>
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:straight</span> <span style="color:#800">t</span>)
|
||||
|
|
@ -8366,7 +8431,7 @@ I’ve seen a couple of cases where people would swap their username and ema
|
|||
<li><a href="#mastodon">Mastodon</a></li>
|
||||
<li><a href="#ement-dot-el">ement.el</a></li>
|
||||
<li><a href="#telega">Telega</a></li>
|
||||
<li><a href="#reddit">Reddit</a></li>
|
||||
<li><a href="#reddit"><span class="org-todo done OFF">OFF</span> Reddit</a></li>
|
||||
<li><a href="#google-translate">Google Translate</a></li>
|
||||
<li><a href="#off--jabber"><span class="org-todo done OFF">OFF</span> (OFF) jabber</a></li>
|
||||
</ul>
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 118 KiB After Width: | Height: | Size: 118 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 61 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 64 KiB After Width: | Height: | Size: 65 KiB |
Loading…
Add table
Reference in a new issue