mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 16:13:03 +03:00
249 lines
16 KiB
HTML
249 lines
16 KiB
HTML
<!DOCTYPE html>
|
|
<html lang=""><head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
|
|
|
<title>My Emacs packages</title>
|
|
<meta name="description" content="Freedom is a state of mind">
|
|
<meta name="author" content='SqrtMinusOne'>
|
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&display=swap" rel="stylesheet">
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous">
|
|
|
|
|
|
<link rel="stylesheet" href="/sass/researcher.min.css">
|
|
|
|
|
|
<link rel="icon" type="image/ico" href="https://sqrtminusone.xyz/favicon.ico">
|
|
|
|
|
|
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
|
|
|
</head>
|
|
|
|
<body><div class="container mt-5">
|
|
<nav class="navbar navbar-expand-sm flex-column flex-sm-row text-nowrap p-0">
|
|
<a class="navbar-brand mx-0 mr-sm-auto" href="https://sqrtminusone.xyz/" title="SqrtMinusOne">
|
|
|
|
SqrtMinusOne
|
|
</a>
|
|
<div class="navbar-nav flex-row flex-wrap justify-content-center">
|
|
|
|
|
|
|
|
<a class="nav-item nav-link" href="/" title="Index">
|
|
Index
|
|
</a>
|
|
|
|
<span class="nav-item navbar-text mx-1">/</span>
|
|
|
|
|
|
<a class="nav-item nav-link" href="/posts/" title="Posts">
|
|
Posts
|
|
</a>
|
|
|
|
<span class="nav-item navbar-text mx-1">/</span>
|
|
|
|
|
|
<a class="nav-item nav-link" href="/configs/readme" title="Configs">
|
|
Configs
|
|
</a>
|
|
|
|
<span class="nav-item navbar-text mx-1">/</span>
|
|
|
|
|
|
<a class="nav-item nav-link" href="/emacs-packages/" title="Emacs packages">
|
|
Emacs packages
|
|
</a>
|
|
|
|
|
|
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
<hr>
|
|
<div id="content">
|
|
<script defer language="javascript" type="text/javascript" src="/js/dynamic-toc.js"></script>
|
|
|
|
<div class="root">
|
|
<h1 id="title-small-screen">My Emacs packages</h1>
|
|
<div class="container" id="actual-content">
|
|
<h1 id="title-large-screen">My Emacs packages</h1>
|
|
<p>Following is the list of Emacs packages I authored.</p>
|
|
<p>See also <a href="/packages/">the same list with timestamps</a>, and the corresponding <a href="/packages/index.xml">RSS feed</a>. This page is somewhat inspired by <a href="https://protesilaos.com/emacs/">https://protesilaos.com/emacs/</a>, thanks Prot.</p>
|
|
<h2 id="eshell-atuin">eshell-atuin</h2>
|
|
<p>Integrate <a href="https://www.gnu.org/software/emacs/manual/html_mono/eshell.html">eshell</a> with <a href="https://github.com/atuinsh/atuin">atuin</a>.</p>
|
|
<p><code>atuin</code> stores shell history in a database, which allows for having the same history across multiple shells, sessions, and optionally across different machines. See the project page for the complete list of features.</p>
|
|
<p>This package provides functionality to store and browse eshell history in <code>atuin</code>.</p>
|
|
<ul>
|
|
<li>Package name: <code>eshell-atuin</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/eshell-atuin">https://sqrtminusone.xyz/packages/eshell-atuin</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/eshell-atuin">https://github.com/SqrtMinusOne/eshell-atuin</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/eshell-atuin">https://melpa.org/#/eshell-atuin</a></li>
|
|
</ul>
|
|
<h2 id="org-clock-agg">org-clock-agg</h2>
|
|
<p>Aggregate <a href="https://orgmode.org/manual/Clocking-Work-Time.html">org-clock</a> records and display the results in a tree form.</p>
|
|
<ul>
|
|
<li>Package name: <code>org-clock-agg</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/org-clock-agg">https://sqrtminusone.xyz/packages/org-clock-agg</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/org-clock-agg">https://github.com/SqrtMinusOne/org-clock-agg</a></li>
|
|
</ul>
|
|
<h2 id="biome">BIOME</h2>
|
|
<p>Emacs client for <a href="https://open-meteo.com/">Open Meteo</a>, an open-source weather API.</p>
|
|
<p>The package provides a bunch of <a href="https://github.com/magit/transient/">transients</a> to query the service and displays the results with formatted tables.</p>
|
|
<ul>
|
|
<li>Package name: <code>biome</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/biome">https://sqrtminusone.xyz/packages/biome</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/biome">https://github.com/SqrtMinusOne/biome</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/biome">https://melpa.org/#/biome</a></li>
|
|
<li>Backronym: Boutiful Interface to Open Meteo for Emacs</li>
|
|
</ul>
|
|
<h2 id="micromamba-dot-el">micromamba.el</h2>
|
|
<p>Emacs package for working with <a href="https://mamba.readthedocs.io/en/latest/user_guide/micromamba.html">micromamba</a> environments.</p>
|
|
<p>Essentially, it provides a subset of the functionality of <a href="https://github.com/necaris/conda.el">conda.el</a>, adapted for <code>micromamba</code> because interfaces of the two aren’t quite compatible.</p>
|
|
<ul>
|
|
<li>Package name: <code>micromamba</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/micromamba">https://sqrtminusone.xyz/packages/micromamba</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/micromamba.el">https://github.com/SqrtMinusOne/micromamba.el</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/micromamba">https://melpa.org/#/micromamba</a></li>
|
|
</ul>
|
|
<h2 id="reverso-dot-el">reverso.el</h2>
|
|
<p>A client for a service called <a href="https://www.reverso.net/">Reverso</a>; supports translation, grammar check, context and synonyms search.</p>
|
|
<p>The package uses a reverse-engineered API, but it’s been surprisingly stable.</p>
|
|
<ul>
|
|
<li>Package name: <code>reverso</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/reverso">https://sqrtminusone.xyz/packages/reverso</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/reverso.el">https://github.com/SqrtMinusOne/reverso.el</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/reverso">https://melpa.org/#/reverso</a></li>
|
|
</ul>
|
|
<h2 id="elfeed-sync">Elfeed Sync</h2>
|
|
<p>Sync <a href="https://github.com/skeeto/elfeed">elfeed</a> and <a href="https://github.com/SqrtMinusOne/elfeed-summary">elfeed-summary</a> with <a href="https://tt-rss.org/">Tiny Tiny RSS</a>.</p>
|
|
<p>This syncs the statuses of entries (read/unread) and, optionally, the feed tree of elfeed-summary. The latter is the key difference from <a href="https://github.com/fasheng/elfeed-protocol">elfeed-protocol</a>.</p>
|
|
<ul>
|
|
<li>Package name: <code>elfeed-sync</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/elfeed-sync">https://sqrtminusone.xyz/packages/elfeed-sync</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/elfeed-sync">https://github.com/SqrtMinusOne/elfeed-sync</a></li>
|
|
</ul>
|
|
<h2 id="avy-dired">avy-dired</h2>
|
|
<p>My experiment with reducing the number of keystrokes required for filesystem navigation to an absolute minimum, with <a href="https://github.com/abo-abo/avy">avy</a> and <a href="https://www.gnu.org/software/emacs/manual/html_node/emacs/Dired.html">dired</a>.</p>
|
|
<p>This is a bit flaky and will probably remain so because somehow I found that way of navigation cognitively harder than evil motions with <a href="https://github.com/Fuco1/dired-hacks/blob/master/dired-narrow.el">dired-narrow</a>. But it works.</p>
|
|
<ul>
|
|
<li>Status: <em>experimental</em></li>
|
|
<li>Package name: <code>avy-dired</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/avy-dired">https://sqrtminusone.xyz/packages/avy-dired</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/avy-dired">https://github.com/SqrtMinusOne/avy-dired</a></li>
|
|
</ul>
|
|
<h2 id="elfeed-summary">Elfeed Summary</h2>
|
|
<p>An alternative tree-based interface for <a href="https://github.com/skeeto/elfeed">elfeed</a>.</p>
|
|
<ul>
|
|
<li>Package name: <code>elfeed-summary</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/elfeed-summary">https://sqrtminusone.xyz/packages/elfeed-summary</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/elfeed-summary">https://github.com/SqrtMinusOne/elfeed-summary</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/elfeed-summary">https://melpa.org/#/elfeed-summary</a></li>
|
|
</ul>
|
|
<h2 id="password-store-completion">password-store-completion</h2>
|
|
<p>Auto-type fields from <a href="https://www.passwordstore.org/">pass</a> entries. Essentially, this is a reimplementation of <a href="https://github.com/carnager/rofi-pass">rofi-pass</a> with <code>completing-read</code> which I made after migrating to <a href="https://github.com/ch11ng/exwm">EXWM</a>.</p>
|
|
<p>It was called <code>password-store-ivy</code> before, but I’ve changed the name after I switched to vertico and added <code>completing-read</code> (+ embark integration) to the package.</p>
|
|
<ul>
|
|
<li>Package name: <code>password-store-completion</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/password-store-completion">https://sqrtminusone.xyz/packages/password-store-completion</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/password-store-completion">https://github.com/SqrtMinusOne/password-store-completion</a></li>
|
|
</ul>
|
|
<h2 id="org-journal-tags">Org Journal Tags</h2>
|
|
<p>The package extends <a href="https://github.com/bastibe/org-journal">org-journal</a> by introducing “tags” that reference a journal section or subset thereof. These tags can be later queried. The package also provides a UI with statistics about tags and things like records on this day a year ago.</p>
|
|
<ul>
|
|
<li>Package name: <code>org-journal-tags</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/org-journal-tags">https://sqrtminusone.xyz/packages/org-journal-tags</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/org-journal-tags">https://github.com/SqrtMinusOne/org-journal-tags</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/org-journal-tags">https://melpa.org/#/org-journal-tags</a></li>
|
|
</ul>
|
|
<h2 id="exwm-modeline">EXWM Modeline</h2>
|
|
<p>Display EXWM workspaces in the modeline. Supports multiple monitors.</p>
|
|
<ul>
|
|
<li>Package name: <code>exwm-modeline</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/exwm-modeline">https://sqrtminusone.xyz/packages/exwm-modeline</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/exwm-modeline">https://github.com/SqrtMinusOne/exwm-modeline</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/exwm-modeline">https://melpa.org/#/exwm-modeline</a></li>
|
|
</ul>
|
|
<h2 id="perspective-exwm">perspective-exwm</h2>
|
|
<p>A bunch of hacks & functions that make <a href="https://github.com/nex3/perspective-el">perspective.el</a> play better with <a href="https://github.com/ch11ng/exwm">EXWM</a>.</p>
|
|
<p>The package advices away certain weird interactions between EXWM frames and perspectives, such as a chance to break the current perspective when killing a floating frame. Both EXWM and perspective poke into the same domain of unconventional management of buffers and frames, so such issues arise.</p>
|
|
<p>I’m uncertain how many of these issues are reproducible outside my config or workflow, because I saw people using perspective+EXWM before I had written this package. But these were blockers for my adoption of EXWM, at the very least.</p>
|
|
<ul>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/perspective-exwm">https://sqrtminusone.xyz/packages/perspective-exwm</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/perspective-exwm.el">https://github.com/SqrtMinusOne/perspective-exwm.el</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/perspective-exwm">https://melpa.org/#/perspective-exwm</a></li>
|
|
</ul>
|
|
<h2 id="pomm">pomm</h2>
|
|
<p>Implementation of <a href="https://en.wikipedia.org/wiki/Pomodoro_Technique">Pomodoro</a> and <a href="https://www.lesswrong.com/posts/RWu8eZqbwgB9zaerh/third-time-a-better-way-to-work">Third Time</a> methods for Emacs.</p>
|
|
<ul>
|
|
<li>Package name: <code>pomm</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/pomm">https://sqrtminusone.xyz/packages/pomm</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/pomm.el">https://github.com/SqrtMinusOne/pomm.el</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/pomm">https://melpa.org/#/pomm</a></li>
|
|
<li>Backronym: Perfectly Optimized Management Methods</li>
|
|
</ul>
|
|
<h2 id="lyrics-fetcher">Lyrics Fetcher</h2>
|
|
<p>Retrieve and display song lyrics from <a href="https://genius.com/">genius.com</a> and <a href="https://music.163.com/">music.163.com</a> (thanks <a href="https://github.com/Elilif">Eli</a> for the latter). The package is primarily designed for use with <a href="https://www.gnu.org/software/emms/">EMMS</a>, for instance, to display lyrics for the current song or for one at point in the EMMS browser. However, it can be used independently.</p>
|
|
<p>Also, this is my first Emacs package.</p>
|
|
<ul>
|
|
<li>Package name: <code>lyrics-fetcher</code></li>
|
|
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/lyrics-fetcher">https://sqrtminusone.xyz/packages/lyrics-fetcher</a></li>
|
|
<li>Git repo: <a href="https://github.com/SqrtMinusOne/lyrics-fetcher.el">https://github.com/SqrtMinusOne/lyrics-fetcher.el</a></li>
|
|
<li>Package at MELPA: <a href="https://melpa.org/#/lyrics-fetcher">https://melpa.org/#/lyrics-fetcher</a></li>
|
|
</ul>
|
|
|
|
</div>
|
|
<div class="table-of-contents">
|
|
<div class="table-of-contents-text">
|
|
<b><a href="#">Table of Contents</a></b>
|
|
<nav id="TableOfContents">
|
|
<ul>
|
|
<li><a href="#eshell-atuin">eshell-atuin</a></li>
|
|
<li><a href="#org-clock-agg">org-clock-agg</a></li>
|
|
<li><a href="#biome">BIOME</a></li>
|
|
<li><a href="#micromamba-dot-el">micromamba.el</a></li>
|
|
<li><a href="#reverso-dot-el">reverso.el</a></li>
|
|
<li><a href="#elfeed-sync">Elfeed Sync</a></li>
|
|
<li><a href="#avy-dired">avy-dired</a></li>
|
|
<li><a href="#elfeed-summary">Elfeed Summary</a></li>
|
|
<li><a href="#password-store-completion">password-store-completion</a></li>
|
|
<li><a href="#org-journal-tags">Org Journal Tags</a></li>
|
|
<li><a href="#exwm-modeline">EXWM Modeline</a></li>
|
|
<li><a href="#perspective-exwm">perspective-exwm</a></li>
|
|
<li><a href="#pomm">pomm</a></li>
|
|
<li><a href="#lyrics-fetcher">Lyrics Fetcher</a></li>
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
<a id="unhide-all-button" class="hidden"><Expand></a>
|
|
<a id="hide-all-button" class="hidden"><Collapse></a>
|
|
</div>
|
|
</div>
|
|
|
|
</div><div id="footer" class="mb-5">
|
|
<hr>
|
|
<div class="container text-center">
|
|
|
|
</div>
|
|
|
|
<div class="container text-center">
|
|
|
|
|
|
<a href="https://creativecommons.org/licenses/by/4.0/legalcode" title="Licensed under CC-BY 4.0"><small>Licensed under CC-BY 4.0</small></a>
|
|
|
|
|
|
|
|
|
|
|
<a href="https://plausible.io/" title="Uses Plausible Analytics"><small>Uses Plausible Analytics</small></a>
|
|
|
|
|
|
<br>
|
|
|
|
<a href="https://sqrtminusone.xyz/" title="Pavel Korytov, 2024"><small>Pavel Korytov, 2024</small></a>
|
|
</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|