mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 16:13:03 +03:00
deploy: 58890541c4
This commit is contained in:
parent
23dab61452
commit
a399736a5f
67 changed files with 3337 additions and 3569 deletions
7
404.html
7
404.html
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -100,26 +93,26 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Specialty</th>
|
||||
<th>2.3.5 Mathematical and Software Support For Computer Systems, Complexes and Computer Networks</th>
|
||||
<th style="text-align: left">Specialty</th>
|
||||
<th style="text-align: left">2.3.5 Mathematical and Software Support For Computer Systems, Complexes and Computer Networks</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Supervisor</td>
|
||||
<td>Ivan I. Kholod</td>
|
||||
<td style="text-align: left">Supervisor</td>
|
||||
<td style="text-align: left">Ivan I. Kholod</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Department</td>
|
||||
<td>Department of Information Systems</td>
|
||||
<td style="text-align: left">Department</td>
|
||||
<td style="text-align: left">Department of Information Systems</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Faculty</td>
|
||||
<td>Faculty of Computer Science and Technology</td>
|
||||
<td style="text-align: left">Faculty</td>
|
||||
<td style="text-align: left">Faculty of Computer Science and Technology</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Dissertation title</td>
|
||||
<td>Examination of Application of Federated Learning For Text Analysis in Recommender Systems</td>
|
||||
<td style="text-align: left">Dissertation title</td>
|
||||
<td style="text-align: left">Examination of Application of Federated Learning For Text Analysis in Recommender Systems</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -130,22 +123,22 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Specialty</th>
|
||||
<th>09.04.04 Software Engineering</th>
|
||||
<th style="text-align: left">Specialty</th>
|
||||
<th style="text-align: left">09.04.04 Software Engineering</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Department</td>
|
||||
<td>Department of Software Engineering and Computer Applications</td>
|
||||
<td style="text-align: left">Department</td>
|
||||
<td style="text-align: left">Department of Software Engineering and Computer Applications</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Faculty</td>
|
||||
<td>Faculty of Computer Science and Technology</td>
|
||||
<td style="text-align: left">Faculty</td>
|
||||
<td style="text-align: left">Faculty of Computer Science and Technology</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Thesis title</td>
|
||||
<td>Application of Text Analysis Methods to Recommend Educational Trajectories</td>
|
||||
<td style="text-align: left">Thesis title</td>
|
||||
<td style="text-align: left">Application of Text Analysis Methods to Recommend Educational Trajectories</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -156,22 +149,22 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Specialty</th>
|
||||
<th>09.03.04 Software Engineering</th>
|
||||
<th style="text-align: left">Specialty</th>
|
||||
<th style="text-align: left">09.03.04 Software Engineering</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Department</td>
|
||||
<td>Department of Software Engineering and Computer Applications</td>
|
||||
<td style="text-align: left">Department</td>
|
||||
<td style="text-align: left">Department of Software Engineering and Computer Applications</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Faculty</td>
|
||||
<td>Faculty of Computer Science and Technology</td>
|
||||
<td style="text-align: left">Faculty</td>
|
||||
<td style="text-align: left">Faculty of Computer Science and Technology</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Thesis title</td>
|
||||
<td>Development of the Software of Generation of Data Accounting System Mockups</td>
|
||||
<td style="text-align: left">Thesis title</td>
|
||||
<td style="text-align: left">Development of the Software of Generation of Data Accounting System Mockups</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/categories/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -210,12 +203,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>xrdb</td>
|
||||
<td style="text-align: left">xrdb</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -284,12 +277,12 @@
|
|||
</span></span></code></pre></div><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>xhost</td>
|
||||
<td style="text-align: left">xhost</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -437,14 +430,14 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>fish</td>
|
||||
<td>An alternative non POSIX-compliant shell</td>
|
||||
<td style="text-align: left">fish</td>
|
||||
<td style="text-align: left">An alternative non POSIX-compliant shell</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -476,12 +469,12 @@
|
|||
</span></span></code></pre></div><table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>dt-colorscripts</td>
|
||||
<td style="text-align: left">dt-colorscripts</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -546,12 +539,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>nushell-bin</td>
|
||||
<td style="text-align: left">nushell-bin</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -560,14 +553,14 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>starship-bin</td>
|
||||
<td>my prompt of choice</td>
|
||||
<td style="text-align: left">starship-bin</td>
|
||||
<td style="text-align: left">my prompt of choice</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -656,15 +649,15 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>tmux</td>
|
||||
<td style="text-align: left">tmux</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>python-tmuxp</td>
|
||||
<td style="text-align: left">python-tmuxp</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -704,12 +697,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>xclip</td>
|
||||
<td style="text-align: left">xclip</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -743,12 +736,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>alacritty</td>
|
||||
<td style="text-align: left">alacritty</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -829,14 +822,14 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>bottom-bin</td>
|
||||
<td>resource monitor</td>
|
||||
<td style="text-align: left">bottom-bin</td>
|
||||
<td style="text-align: left">resource monitor</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -861,102 +854,102 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>ncurses</td>
|
||||
<td>Provides stuff like <code>clear</code></td>
|
||||
<td style="text-align: left">ncurses</td>
|
||||
<td style="text-align: left">Provides stuff like <code>clear</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>exa</td>
|
||||
<td><code>ls</code> replacement, written in Rust</td>
|
||||
<td style="text-align: left">exa</td>
|
||||
<td style="text-align: left"><code>ls</code> replacement, written in Rust</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>bat</td>
|
||||
<td><code>cat</code> clone with syntax highlighting</td>
|
||||
<td style="text-align: left">bat</td>
|
||||
<td style="text-align: left"><code>cat</code> clone with syntax highlighting</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>htop</td>
|
||||
<td>Interactive process viewer</td>
|
||||
<td style="text-align: left">htop</td>
|
||||
<td style="text-align: left">Interactive process viewer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>nethogs</td>
|
||||
<td>A tool to group processed by used bandwidth</td>
|
||||
<td style="text-align: left">nethogs</td>
|
||||
<td style="text-align: left">A tool to group processed by used bandwidth</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>osync</td>
|
||||
<td>rsync wrapper</td>
|
||||
<td style="text-align: left">osync</td>
|
||||
<td style="text-align: left">rsync wrapper</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>neofetch</td>
|
||||
<td>Fetch system info</td>
|
||||
<td style="text-align: left">neofetch</td>
|
||||
<td style="text-align: left">Fetch system info</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>fzf</td>
|
||||
<td>fuzzy finder</td>
|
||||
<td style="text-align: left">fzf</td>
|
||||
<td style="text-align: left">fuzzy finder</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>p7zip</td>
|
||||
<td>archiver</td>
|
||||
<td style="text-align: left">p7zip</td>
|
||||
<td style="text-align: left">archiver</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>password-store</td>
|
||||
<td>CLI password manager</td>
|
||||
<td style="text-align: left">password-store</td>
|
||||
<td style="text-align: left">CLI password manager</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>zip</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">zip</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>unzip</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">unzip</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>jmtpfs</td>
|
||||
<td>A tool to mount MTP devices (e.g. Android)</td>
|
||||
<td style="text-align: left">jmtpfs</td>
|
||||
<td style="text-align: left">A tool to mount MTP devices (e.g. Android)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tokei</td>
|
||||
<td>Count lines of code</td>
|
||||
<td style="text-align: left">tokei</td>
|
||||
<td style="text-align: left">Count lines of code</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sshfs</td>
|
||||
<td>Mount stuff over SSH</td>
|
||||
<td style="text-align: left">sshfs</td>
|
||||
<td style="text-align: left">Mount stuff over SSH</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>lftp</td>
|
||||
<td>File transfer</td>
|
||||
<td style="text-align: left">lftp</td>
|
||||
<td style="text-align: left">File transfer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>git-lfs</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">git-lfs</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>glibc-locales</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">glibc-locales</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>direnv</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">direnv</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>jless-bin</td>
|
||||
<td>JSON viewer</td>
|
||||
<td style="text-align: left">jless-bin</td>
|
||||
<td style="text-align: left">JSON viewer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>megacmd</td>
|
||||
<td>mega.nz client</td>
|
||||
<td style="text-align: left">megacmd</td>
|
||||
<td style="text-align: left">mega.nz client</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ncdu</td>
|
||||
<td>disk usage analyzer</td>
|
||||
<td style="text-align: left">ncdu</td>
|
||||
<td style="text-align: left">disk usage analyzer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>openssl</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">openssl</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -988,16 +981,16 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Variable</th>
|
||||
<th>Description</th>
|
||||
<th>Default value</th>
|
||||
<th style="text-align: left">Variable</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
<th style="text-align: left">Default value</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>TIMEOUT_MIN</code></td>
|
||||
<td>Default timeout</td>
|
||||
<td>60</td>
|
||||
<td style="text-align: left"><code>TIMEOUT_MIN</code></td>
|
||||
<td style="text-align: left">Default timeout</td>
|
||||
<td style="text-align: left">60</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -1095,57 +1088,57 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th style="text-align: left">Package</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>yadm</td>
|
||||
<td style="text-align: left">yadm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gnupg</td>
|
||||
<td style="text-align: left">gnupg</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>git</td>
|
||||
<td style="text-align: left">git</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>which</td>
|
||||
<td style="text-align: left">which</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>starship</td>
|
||||
<td style="text-align: left">starship</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>atuin</td>
|
||||
<td style="text-align: left">atuin</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>vim</td>
|
||||
<td style="text-align: left">vim</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>tmux</td>
|
||||
<td style="text-align: left">tmux</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>emacs</td>
|
||||
<td style="text-align: left">emacs</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>make</td>
|
||||
<td style="text-align: left">make</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>clang</td>
|
||||
<td style="text-align: left">clang</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>ripgrep</td>
|
||||
<td style="text-align: left">ripgrep</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>cmake</td>
|
||||
<td style="text-align: left">cmake</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>gperf</td>
|
||||
<td style="text-align: left">gperf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>iproute2</td>
|
||||
<td style="text-align: left">iproute2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>wakatime-cli</td>
|
||||
<td style="text-align: left">wakatime-cli</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -548,41 +541,41 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>patchelf</td>
|
||||
<td>A program to modify existsing ELF executables</td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">patchelf</td>
|
||||
<td style="text-align: left">A program to modify existsing ELF executables</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>glibc</td>
|
||||
<td>A lot of stuff, including ELF interpeter and <code>ldd</code></td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">glibc</td>
|
||||
<td style="text-align: left">A lot of stuff, including ELF interpeter and <code>ldd</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>tor-client</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">tor-client</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>torsocks</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">torsocks</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>vnstat</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">vnstat</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>nss-certs</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">nss-certs</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -590,26 +583,26 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>openvpn</td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">openvpn</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>openvpn-update-resolve-conf</td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">openvpn-update-resolve-conf</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>openresolv</td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">openresolv</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>system</td>
|
||||
<td>vpnc</td>
|
||||
<td style="text-align: left">system</td>
|
||||
<td style="text-align: left">vpnc</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -789,14 +782,14 @@ Also not necessary now. Just <code>herd stop vpn</code> and <code>sudo pkill vpn
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Note</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Note</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>TODO</td>
|
||||
<td>Package this for Guix</td>
|
||||
<td style="text-align: left">TODO</td>
|
||||
<td style="text-align: left">Package this for Guix</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/configs/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -12,42 +12,42 @@
|
|||
<link>https://sqrtminusone.xyz/configs/console/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/console/</guid>
|
||||
<description>No matter from which side you approach penguins, more always come from behind
A friend of mine Colors Noweb function to get colors.
(let ((color (or (my/color-value name)))) (if (&gt; quote 0) (concat &#34;\&#34;&#34; color &#34;\&#34;&#34;) color)) (let ((val (if (ct-light-p (my/color-value name)) (my/color-value &#39;black) (my/color-value &#39;white)))) (if (eq quote 1) (concat &#34;\&#34;&#34; val &#34;\&#34;&#34;) val)) (setq-local org-confirm-babel-evaluate nil) .profile Environment export QT_QPA_PLATFORMTHEME=&#34;qt5ct&#34; export QT_AUTO_SCREEN_SCALE_FACTOR=0 Set ripgrep config path</description>
|
||||
<description><blockquote>
<p>No matter from which side you approach penguins, more always come from behind</p>
</blockquote>
<ul>
<li>A friend of mine</li>
</ul>
<h2 id="colors">Colors</h2>
<p>Noweb function to get colors.</p>
<p><a id="code-snippet--get-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">color</span> (<span style="color:#008000">or</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:#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></pr</description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Desktop</title>
|
||||
<link>https://sqrtminusone.xyz/configs/desktop/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/desktop/</guid>
|
||||
<description>My general desktop environment configuration.
Parts prefixed with (OFF) are not used, but kept for historic purposes. For some reason GitHub&rsquo;s org renderer ignores TODO status, hence such a prefix. Round brackets instead of square ones to prevent GitHub&rsquo;s org renderer from screwing up.
References:
A few cases of literate configuration. A few interesting ways in which literate configuration is used in this file. Some remarks Removed features:
Feature Last commit rofi-buku e22476b0cc6315e104e5ce4de5559a61c830c429 Global customization Colors I used to define color codes here (see previous version of the file), now I just get colors from the current Emacs theme.</description>
|
||||
<description><p>My general desktop environment configuration.</p>
<p>Parts prefixed with (OFF) are not used, but kept for historic purposes. For some reason GitHub&rsquo;s org renderer ignores TODO status, hence such a prefix. Round brackets instead of square ones to prevent GitHub&rsquo;s org renderer from screwing up.</p>
<p>References:</p>
<ul>
<li><a href="https://sqrtminusone.xyz/posts/2022-02-12-literate/">A few cases of literate configuration</a>. A few interesting ways in which literate configuration is used in this file.</li>
</ul>
<h2 id="some-remarks">Some remarks</h2>
<p>Removed features:</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Emacs config</title>
|
||||
<link>https://sqrtminusone.xyz/configs/emacs/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/emacs/</guid>
|
||||
<description>One day we won&rsquo;t hate one another, no young boy will march to war and I will clean up my Emacs config. But that day isn&rsquo;t today.
Me, &lt;2021-05-27 Thu 17:35&gt; in commit 93a0573. Adapted from The Dark Element - &ldquo;The Pallbearer Walks Alone&rdquo;. T_T Introduction My configuration of GNU Emacs, an awesome text editor piece of software that can do almost anything.
At the moment of writing this, that &ldquo;almost anything&rdquo; includes:</description>
|
||||
<description><blockquote>
<p>One day we won&rsquo;t hate one another, no young boy will march to war and I will clean up my Emacs config. But that day isn&rsquo;t today.</p>
</blockquote>
<ul>
<li>Me, <span class="timestamp-wrapper"><span class="timestamp">&lt;2021-05-27 Thu 17:35&gt; </span></span> in commit 93a0573. Adapted from <a href="https://www.youtube.com/watch?v=pIdBinlW40E">The Dark Element - &ldquo;The Pallbearer Walks Alone&rdquo;</a>. T_T</li>
</ul>
<h2 id="introduction">Introduction</h2>
<p>My configuration of <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>, an awesome <del>text editor</del> piece of software that can do almost anything.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Guix</title>
|
||||
<link>https://sqrtminusone.xyz/configs/guix/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/guix/</guid>
|
||||
<description>GNU Guix is (1) a transactional package manager and (2) a GNU/Linux distribution.
My personal selling points are declarative package configuration and transactional upgrades.
References:
Official help System Crafters wiki Pjotr Prins&rsquo; Guix notes Davil Wilson&rsquo;s YouTube series Profiles A profile is a way to group Guix packages. Amongst its advantages, profiles can be defined by manifests, which in turn can be stored in VCS.
References:
Guix Profiles in Practice Activate profiles A script to activate guix profiles.</description>
|
||||
<description><p><a href="https://guix.gnu.org/">GNU Guix</a> is (1) a transactional package manager and (2) a GNU/Linux distribution.</p>
<p>My personal selling points are declarative package configuration and transactional upgrades.</p>
<p>References:</p>
<ul>
<li><a href="https://guix.gnu.org/en/help/">Official help</a></li>
<li><a href="https://wiki.systemcrafters.cc/guix">System Crafters wiki</a></li>
<li><a href="https://gitlab.com/pjotrp/guix-notes">Pjotr Prins&rsquo; Guix notes</a></li>
<li><a href="https://www.youtube.com/watch?v=iBaqOK75cho&amp;list=PLEoMzSkcN8oNxnj7jm5V2ZcGc52002pQU">Davil Wilson&rsquo;s YouTube series</a></li>
</ul>
<h2 id="profiles">Profiles</h2>
<p>A profile is a way to group Guix packages. Amongst its advantages, profiles can be defined by manifests, which in turn can be stored in VCS.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Mail</title>
|
||||
<link>https://sqrtminusone.xyz/configs/mail/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/mail/</guid>
|
||||
<description>:TOC: :include all :depth 3
My email configration. Currently I use lieer to fetch emails from Gmail, davmail &amp; offlineimap to fetch emails from MS Exchange, notmuch to index, msmtp to send emails. Also using notmuch frontend from Emacs.
My problem with any particular mail setup was that I use Gmail labels quite extensively, and handling these over IMAP is rather awkward. Notmuch seems to be the only software that provides the same first-class support for labels.</description>
|
||||
<description><p>:TOC: :include all :depth 3</p>
<p>My email configration. Currently I use <a href="https://github.com/gauteh/lieer">lieer</a> to fetch emails from Gmail, <a href="http://davmail.sourceforge.net/">davmail</a> &amp; <a href="http://www.offlineimap.org/">offlineimap</a> to fetch emails from MS Exchange, <a href="https://notmuchmail.org/">notmuch</a> to index, <a href="https://marlam.de/msmtp/">msmtp</a> to send emails. Also using notmuch frontend from Emacs.</p>
<p>My problem with any particular mail setup was that I use Gmail labels quite extensively, and handling these over IMAP is rather awkward. Notmuch seems to be the only software that provides the same first-class support for labels.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>My dotfiles</title>
|
||||
<link>https://sqrtminusone.xyz/configs/readme/</link>
|
||||
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/configs/readme/</guid>
|
||||
<description>These are my GNU/Linux configuration files. View at GitHub.
I use the literate configuration strategy via Emacs&rsquo; Org Mode wherever possible. It has its pros and cons, but I find it pretty nice to keep the configs interweaved with comments in a handful of files.
The files themselves are managed and deployed via yadm, although I use Org Mode for things like config templating.
My current GNU/Linux distribution is GNU Guix.</description>
|
||||
<description><figure><img src="https://sqrtminusone.xyz/ox-hugo/works-on-my-machine.svg">
</figure>

<p>These are my GNU/Linux configuration files. <a href="https://github.com/SqrtMinusOne/dotfiles">View at GitHub</a>.</p>
<p>I use the <a href="https://leanpub.com/lit-config/read">literate configuration</a> strategy via Emacs&rsquo; <a href="https://orgmode.org/">Org Mode</a> wherever possible. It has its pros and cons, but I find it pretty nice to keep the configs interweaved with comments in a handful of files.</p>
<p>The files themselves are managed and deployed via <a href="https://yadm.io/">yadm</a>, although I use Org Mode for things like config templating.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -94,12 +87,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>python-lieer</td>
|
||||
<td style="text-align: left">python-lieer</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -136,12 +129,12 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>offlineimap</td>
|
||||
<td style="text-align: left">offlineimap</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -177,15 +170,15 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>notmuch</td>
|
||||
<td style="text-align: left">notmuch</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>parallel</td>
|
||||
<td style="text-align: left">parallel</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -226,62 +219,62 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>tag</th>
|
||||
<th>folder</th>
|
||||
<th style="text-align: left">tag</th>
|
||||
<th style="text-align: left">folder</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>inbox</td>
|
||||
<td>INBOX</td>
|
||||
<td style="text-align: left">inbox</td>
|
||||
<td style="text-align: left">INBOX</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sent</td>
|
||||
<td>Sent</td>
|
||||
<td style="text-align: left">sent</td>
|
||||
<td style="text-align: left">Sent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>spam</td>
|
||||
<td>Junk</td>
|
||||
<td style="text-align: left">spam</td>
|
||||
<td style="text-align: left">Junk</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>trash</td>
|
||||
<td>Trash</td>
|
||||
<td style="text-align: left">trash</td>
|
||||
<td style="text-align: left">Trash</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital</td>
|
||||
<td>Job_Digital</td>
|
||||
<td style="text-align: left">job.digital</td>
|
||||
<td style="text-align: left">Job_Digital</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital.docs</td>
|
||||
<td>Job_Digital.Docs</td>
|
||||
<td style="text-align: left">job.digital.docs</td>
|
||||
<td style="text-align: left">Job_Digital.Docs</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital.support</td>
|
||||
<td>Job_Digital.Support</td>
|
||||
<td style="text-align: left">job.digital.support</td>
|
||||
<td style="text-align: left">Job_Digital.Support</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital.superservice</td>
|
||||
<td>Job_Digital.Superservice</td>
|
||||
<td style="text-align: left">job.digital.superservice</td>
|
||||
<td style="text-align: left">Job_Digital.Superservice</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital.applicants</td>
|
||||
<td>Job_Digital.Applicants</td>
|
||||
<td style="text-align: left">job.digital.applicants</td>
|
||||
<td style="text-align: left">Job_Digital.Applicants</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.digital.testers</td>
|
||||
<td>Job_Digital.Testers</td>
|
||||
<td style="text-align: left">job.digital.testers</td>
|
||||
<td style="text-align: left">Job_Digital.Testers</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>job.moevm</td>
|
||||
<td>Job_Moevm</td>
|
||||
<td style="text-align: left">job.moevm</td>
|
||||
<td style="text-align: left">Job_Moevm</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>etu</td>
|
||||
<td>Etu</td>
|
||||
<td style="text-align: left">etu</td>
|
||||
<td style="text-align: left">Etu</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>etu.grad-school</td>
|
||||
<td>Etu.Grad_School</td>
|
||||
<td style="text-align: left">etu.grad-school</td>
|
||||
<td style="text-align: left">Etu.Grad_School</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -408,12 +401,12 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>msmtp</td>
|
||||
<td style="text-align: left">msmtp</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -450,12 +443,12 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>emacs-notmuch</td>
|
||||
<td style="text-align: left">emacs-notmuch</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -524,26 +517,26 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Root tag</th>
|
||||
<th>Prefix</th>
|
||||
<th>Keybinding description</th>
|
||||
<th style="text-align: left">Root tag</th>
|
||||
<th style="text-align: left">Prefix</th>
|
||||
<th style="text-align: left">Keybinding description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>main</td>
|
||||
<td>m</td>
|
||||
<td><a href="mailto:thexcloud@gmail.com">thexcloud@gmail.com</a></td>
|
||||
<td style="text-align: left">main</td>
|
||||
<td style="text-align: left">m</td>
|
||||
<td style="text-align: left"><a href="mailto:thexcloud@gmail.com">thexcloud@gmail.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>progin</td>
|
||||
<td>p</td>
|
||||
<td><a href="mailto:progin6304@gmail.com">progin6304@gmail.com</a></td>
|
||||
<td style="text-align: left">progin</td>
|
||||
<td style="text-align: left">p</td>
|
||||
<td style="text-align: left"><a href="mailto:progin6304@gmail.com">progin6304@gmail.com</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>pvkorytov</td>
|
||||
<td>v</td>
|
||||
<td><a href="mailto:pvkorytov@etu.ru">pvkorytov@etu.ru</a></td>
|
||||
<td style="text-align: left">pvkorytov</td>
|
||||
<td style="text-align: left">v</td>
|
||||
<td style="text-align: left"><a href="mailto:pvkorytov@etu.ru">pvkorytov@etu.ru</a></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -551,31 +544,31 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Prefix</th>
|
||||
<th>Name</th>
|
||||
<th style="text-align: left">Tag</th>
|
||||
<th style="text-align: left">Prefix</th>
|
||||
<th style="text-align: left">Name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>inbox</td>
|
||||
<td>i</td>
|
||||
<td>inbox</td>
|
||||
<td style="text-align: left">inbox</td>
|
||||
<td style="text-align: left">i</td>
|
||||
<td style="text-align: left">inbox</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>unread</td>
|
||||
<td>u</td>
|
||||
<td>unread</td>
|
||||
<td style="text-align: left">unread</td>
|
||||
<td style="text-align: left">u</td>
|
||||
<td style="text-align: left">unread</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>sent</td>
|
||||
<td>s</td>
|
||||
<td>sent</td>
|
||||
<td style="text-align: left">sent</td>
|
||||
<td style="text-align: left">s</td>
|
||||
<td style="text-align: left">sent</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>a</td>
|
||||
<td>all mail</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left">a</td>
|
||||
<td style="text-align: left">all mail</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -617,6 +610,7 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">sign</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">encrypt</span>))))
|
||||
</span></span></code></pre></div><h3 id="tuning-signature">Tuning signature</h3>
|
||||
<p>Edit <span class="timestamp-wrapper"><span class="timestamp"><2024-08-19 Mon></span></span>: Apparently this was a feature, not a bug. Disabling this.</p>
|
||||
<p>By default, <code>message.el</code> inserts the signature at the bottom of the message, like this:</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><message text>
|
||||
</span></span><span style="display:flex;"><span>
|
||||
|
|
@ -640,8 +634,9 @@ Remove <code>TAG</code> from emails which are outside the matching <code>PATH</c
|
|||
</span></span><span style="display:flex;"><span>> Stuff
|
||||
</span></span></code></pre></div><p>So here I modifiy the citation function to insert the signature like in the second example for <del>certain cases</del>.</p>
|
||||
<p>Edit <span class="timestamp-wrapper"><span class="timestamp"><2022-10-27 Thu></span></span>: for consistency’s sake, I’ll make the signature on the top for all cases.</p>
|
||||
<p>Edit <span class="timestamp-wrapper"><span class="timestamp"><2024-08-19 Mon></span></span>: see above</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/message-insert-signature-need-on-top</span> ()
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#800">t</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#800">nil</span>)
|
||||
</span></span></code></pre></div><p>Then advice the <code>notmuch-mua-reply</code> function:</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/message-maybe-fix-signature</span> (<span style="color:#008000">&rest</span> <span style="color:#19177c">_</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">when</span> (<span style="color:#19177c">my/message-insert-signature-need-on-top</span>)
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -149,13 +142,13 @@
|
|||
<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-ivy">password-store-ivy</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 <a href="https://github.com/abo-abo/swiper">Ivy</a> which I made after migrating to <a href="https://github.com/ch11ng/exwm">EXWM</a>. I used to use the package with <a href="https://github.com/tumashu/ivy-posframe">ivy-posframe</a>, but the latter turned out to be unnecessary.</p>
|
||||
<p>I might archive this if I switch to a different completion framework (or even ditch the WM), which is why I’m not submitting it anywhere. But the package is pretty simple.</p>
|
||||
<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-ivy</code></li>
|
||||
<li>Homepage: <a href="https://sqrtminusone.xyz/packages/password-store-ivy">https://sqrtminusone.xyz/packages/password-store-ivy</a></li>
|
||||
<li>Git repo: <a href="https://github.com/SqrtMinusOne/password-store-ivy">https://github.com/SqrtMinusOne/password-store-ivy</a></li>
|
||||
<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>
|
||||
|
|
@ -215,7 +208,7 @@
|
|||
<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-ivy">password-store-ivy</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>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang=""><head>
|
||||
<meta name="generator" content="Hugo 0.131.0">
|
||||
<meta name="generator" content="Hugo 0.134.1">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
|
|
@ -20,13 +20,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
413
index.xml
413
index.xml
|
|
@ -39,51 +39,51 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Flag</th>
|
||||
<th>atuin field (see <code>help atuin search</code>)</th>
|
||||
<th>Required</th>
|
||||
<th style="text-align: left">Flag</th>
|
||||
<th style="text-align: left">atuin field (see <code>help atuin search</code>)</th>
|
||||
<th style="text-align: left">Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>%t</td>
|
||||
<td><code>time</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%t</td>
|
||||
<td style="text-align: left"><code>time</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%c</td>
|
||||
<td><code>command</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%c</td>
|
||||
<td style="text-align: left"><code>command</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%e</td>
|
||||
<td><code>exit</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%e</td>
|
||||
<td style="text-align: left"><code>exit</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%d</td>
|
||||
<td><code>duration</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%d</td>
|
||||
<td style="text-align: left"><code>duration</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%i</td>
|
||||
<td><code>directory</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%i</td>
|
||||
<td style="text-align: left"><code>directory</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%u</td>
|
||||
<td><code>user</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%u</td>
|
||||
<td style="text-align: left"><code>user</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%h</td>
|
||||
<td><code>host</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%h</td>
|
||||
<td style="text-align: left"><code>host</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%r</td>
|
||||
<td><code>relativetime</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%r</td>
|
||||
<td style="text-align: left"><code>relativetime</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -188,66 +188,66 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Comment</th>
|
||||
<th>Customization variables</th>
|
||||
<th style="text-align: left">Name</th>
|
||||
<th style="text-align: left">Comment</th>
|
||||
<th style="text-align: left">Customization variables</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Category</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Category</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Org file</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Org file</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Outline path</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tags</td>
|
||||
<td>Sorted alphabetically</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Tags</td>
|
||||
<td style="text-align: left">Sorted alphabetically</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Headline</td>
|
||||
<td>Last item of the outline path</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Headline</td>
|
||||
<td style="text-align: left">Last item of the outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Day</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-day-format</code></td>
|
||||
<td style="text-align: left">Day</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-day-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Week</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-week-format</code></td>
|
||||
<td style="text-align: left">Week</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-week-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Month</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-month-format</code></td>
|
||||
<td style="text-align: left">Month</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-month-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TODO keyword</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">TODO keyword</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Is done</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Is done</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Selected props</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-properties</code></td>
|
||||
<td style="text-align: left">Selected props</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-properties</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -2785,46 +2785,46 @@ To mark such entries as read, run <code>M-x elfeed-sync-read-ttrss-old<
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Keybinding</th>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Keybinding</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>RET</code></td>
|
||||
<td><code>elfeed-summary--action</code></td>
|
||||
<td>Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
<td style="text-align: left"><code>RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>M-RET</code></td>
|
||||
<td><code>elfeed-summary--action-show-read</code></td>
|
||||
<td>Open thing under the cursor, but always include read items</td>
|
||||
<td style="text-align: left"><code>M-RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-show-read</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor, but always include read items</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>q</code></td>
|
||||
<td>&hellip;</td>
|
||||
<td>Quit the summary buffer</td>
|
||||
<td style="text-align: left"><code>q</code></td>
|
||||
<td style="text-align: left">&hellip;</td>
|
||||
<td style="text-align: left">Quit the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r</code></td>
|
||||
<td><code>elfeed-summary--refresh</code></td>
|
||||
<td>Refresh the summary buffer</td>
|
||||
<td style="text-align: left"><code>r</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--refresh</code></td>
|
||||
<td style="text-align: left">Refresh the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>R</code></td>
|
||||
<td><code>elfeed-summary-update</code></td>
|
||||
<td>Run update for elfeed feeds</td>
|
||||
<td style="text-align: left"><code>R</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-update</code></td>
|
||||
<td style="text-align: left">Run update for elfeed feeds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>u</code></td>
|
||||
<td><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td>Toggle showing only unread entries</td>
|
||||
<td style="text-align: left"><code>u</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td style="text-align: left">Toggle showing only unread entries</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>U</code></td>
|
||||
<td><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td>Mark everything in the entry under the cursor as read</td>
|
||||
<td style="text-align: left"><code>U</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td style="text-align: left">Mark everything in the entry under the cursor as read</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -3145,39 +3145,44 @@ assigned to group with the least amount of members.</li>
|
|||
</item>
|
||||
|
||||
<item>
|
||||
<title>password-store-ivy</title>
|
||||
<link>https://sqrtminusone.xyz/packages/password-store-ivy/</link>
|
||||
<title>password-store-completion</title>
|
||||
<link>https://sqrtminusone.xyz/packages/password-store-completion/</link>
|
||||
<pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://sqrtminusone.xyz/packages/password-store-ivy/</guid>
|
||||
<guid>https://sqrtminusone.xyz/packages/password-store-completion/</guid>
|
||||
<content type="html">
|
||||
<p>A <a href="https://www.passwordstore.org/">pass</a> frontend based on <a href="https://github.com/abo-abo/swiper#ivy">Ivy</a>, made primarily to use with <a href="https://github.com/ch11ng/exwm">EXWM</a> and <a href="https://github.com/tumashu/ivy-posframe">ivy-posframe</a>. Types fields from entries.</p>
|
||||
<p>Also take a look at Nicolas Petton&rsquo;s <a href="https://github.com/NicolasPetton/pass">pass</a>, <code>password-store-ivy</code> is designed as complementary to the Nicolas&rsquo; package.</p>
|
||||
<p>This package is made with Ivy because I need some fine-tuning like actions and turning off sorting in some completions, and Ivy happens to be the completion system I&rsquo;m using now.</p>
|
||||
<p>A completion-based pass frontend inspired by <a href="https://github.com/carnager/rofi-pass">rofi-pass</a>. Integrates with <a href="https://github.com/abo-abo/swiper">Ivy</a> or <a href="https://github.com/oantolin/embark">Embark</a>.</p>
|
||||
<p>The main purpose is typing passwords with <code>xdotool</code> (useful in <a href="https://github.com/emacs-exwm/exwm">EXWM</a>).</p>
|
||||
<p>Also take a look at Nicolas Petton&rsquo;s <a href="https://github.com/NicolasPetton/pass">pass</a>. <code>password-store-completion</code> is designed as complementary to Nicolas&rsquo; package.</p>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<p>As the package isn’t yet available anywhere but in this repository, you can clone the repository, add it to the load-path and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-ivy</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">&#34;SqrtMinusOne/password-store-ivy&#34;</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:after</span> (<span style="color:#19177c">exwm</span>))
|
||||
</span></span></code></pre></div><p>This package types stuff with <code>xdotool</code>, so you need to have that available in your <code>$PATH</code>.</p>
|
||||
<h2 id="usage">Usage</h2>
|
||||
<p>As the package isn&rsquo;t yet available anywhere but in this repository, you can clone the repository, add it to the load-path, and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-completion</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">&#34;SqrtMinusOne/password-store-completion&#34;</span>))
|
||||
</span></span></code></pre></div><p><code>xdotool</code> has to be available in <code>$PATH</code>.</p>
|
||||
<p>For Ivy integration:</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">require</span> <span style="color:#19177c">&#39;password-store-ivy</span>)
|
||||
</span></span></code></pre></div><p>Also be sure to load the main package before Ivy.</p>
|
||||
<p>For Embark integration:</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">require</span> <span style="color:#19177c">&#39;password-store-embark</span>)
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">password-store-embark-mode</span>)
|
||||
</span></span></code></pre></div><h2 id="usage">Usage</h2>
|
||||
<p>Emacs&rsquo; built-in <a href="https://www.gnu.org/software/emacs/manual/html_node/auth/The-Unix-password-store.html">password store</a> integration has to be set up.</p>
|
||||
<p>The only command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<p>For Ivy integration, the command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<ul>
|
||||
<li><code>M-a</code>. Perform autotype</li>
|
||||
<li><code>M-p</code>. Type password</li>
|
||||
<li><code>M-u</code>. Type username</li>
|
||||
<li><code>M-U</code>. Type url</li>
|
||||
<li><code>M-f</code>. Select a field to type</li>
|
||||
<li><code>M-a</code>: Perform autotype</li>
|
||||
<li><code>M-p</code>: Type password</li>
|
||||
<li><code>M-u</code>: Type username</li>
|
||||
<li><code>M-U</code>: Type URL</li>
|
||||
<li><code>M-f</code>: Select a field to type</li>
|
||||
</ul>
|
||||
<p>For other completion frameworks, run <code>M-x password-store-completion</code>. If Embark integration is enabled, the same actions are added.</p>
|
||||
<h2 id="customization">Customization</h2>
|
||||
<p>There are a few parameters that control delays:</p>
|
||||
<p>The following parameters control delays:</p>
|
||||
<ul>
|
||||
<li><code>password-store-ivy-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-ivy-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
<li><code>password-store-completion-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-completion-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
</ul>
|
||||
<p>There is also <code>password-store-ivy-sequences</code> that determines the sequence of actions <code>password-store-ivy</code> performs.</p>
|
||||
<p>It is an alist with the following required keys (corresponding to the basic actions):</p>
|
||||
<p><code>password-store-completion-sequences</code> determines the steps of sequences. It is an alist; the keys correspond to the default sequences:</p>
|
||||
<ul>
|
||||
<li><code>autotype</code></li>
|
||||
<li><code>password</code></li>
|
||||
|
|
@ -3186,12 +3191,12 @@ assigned to group with the least amount of members.</li>
|
|||
</ul>
|
||||
<p>The values are lists of the following elements:</p>
|
||||
<ul>
|
||||
<li><code>wait</code>. Wait for <code>password-store-ivy-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait &lt;milliseconds&gt;)</code>. Wait for <code>&lt;milliseconds&gt;</code>.</li>
|
||||
<li><code>(key &lt;key&gt;)</code>. Type <code>&lt;key&gt;</code>.</li>
|
||||
<li><code>(field &lt;field&gt;)</code>. Type <code>&lt;field&gt;</code> of entry.</li>
|
||||
<li><code>wait</code>: Wait for <code>password-store-completion-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait &lt;milliseconds&gt;)</code>: Wait for <code>&lt;milliseconds&gt;</code></li>
|
||||
<li><code>(key &lt;key&gt;)</code>: Type <code>&lt;key&gt;</code></li>
|
||||
<li><code>(field &lt;field&gt;)</code>: Type <code>&lt;field&gt;</code> of entry</li>
|
||||
</ul>
|
||||
<p>For example, the starting values:</p>
|
||||
<p>The default value is as follows:</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:#666">&#39;</span>((<span style="color:#19177c">autotype</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;username&#34;</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">key</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;Tab&#34;</span>)
|
||||
|
|
@ -3200,13 +3205,19 @@ assigned to group with the least amount of members.</li>
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">password</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#19177c">secret</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">username</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;username&#34;</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">url</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;url&#34;</span>))))
|
||||
</span></span></code></pre></div><p>In addition to the global override, sequences can be overriden per-entry with a field called <code>sequence-&lt;name&gt;</code>, where <code>&lt;name&gt;</code> is a key of <code>password-store-ivy-sequences</code>.</p>
|
||||
<p>For example, here is an override to press <code>Tab</code> twice:</p>
|
||||
</span></span></code></pre></div><p>Sequences can also be overridden in a particular entry with a field called <code>sequence-&lt;name&gt;</code>, where <code>&lt;name&gt;</code> is a key of <code>password-store-completion-sequences</code>.</p>
|
||||
<p>For example, to press <code>Tab</code> twice in the <code>autotype</code> sequence:</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>&lt;pass&gt;
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: &lt;url&gt;
|
||||
</span></span><span style="display:flex;"><span>sequence-autotype: (wait (field . &#34;username&#34;) (key . &#34;Tab&#34;) (key . &#34;Tab&#34;) (field . secret) (key . &#34;Return&#34;))
|
||||
</span></span></code></pre></div>
|
||||
</span></span></code></pre></div><p>Or, create a custom sequence:</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>&lt;pass&gt;
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: &lt;url&gt;
|
||||
</span></span><span style="display:flex;"><span>sequence-doubletab: (wait (field . &#34;username&#34;) (key . &#34;Tab&#34;) (key . &#34;Tab&#34;) (field . secret) (key . &#34;Return&#34;))
|
||||
</span></span></code></pre></div><p>Custom sequences can be run in the field selection interface (<code>M-f</code> in Ivy, <code>M-x embark-act f</code> in Embark).</p>
|
||||
|
||||
</content>
|
||||
</item>
|
||||
|
||||
|
|
@ -3355,14 +3366,14 @@ assigned to group with the least amount of members.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>sunwait</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">sunwait</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -3370,14 +3381,14 @@ assigned to group with the least amount of members.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>dateutils</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">dateutils</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -3500,24 +3511,24 @@ assigned to group with the least amount of members.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>block1</th>
|
||||
<th>glyph</th>
|
||||
<th>block2</th>
|
||||
<th style="text-align: left"></th>
|
||||
<th style="text-align: left">block1</th>
|
||||
<th style="text-align: left">glyph</th>
|
||||
<th style="text-align: left">block2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>foreground</td>
|
||||
<td>F1</td>
|
||||
<td>B2</td>
|
||||
<td>F2</td>
|
||||
<td style="text-align: left">foreground</td>
|
||||
<td style="text-align: left">F1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
<td style="text-align: left">F2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>background</td>
|
||||
<td>B1</td>
|
||||
<td>B1</td>
|
||||
<td>B2</td>
|
||||
<td style="text-align: left">background</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -3820,31 +3831,31 @@ timestamps by their date.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Set operation</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Set operation</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Union</strong></td>
|
||||
<td>old ∪ new</td>
|
||||
<td>Add records of the new query to the displayed records</td>
|
||||
<td style="text-align: left"><strong>Union</strong></td>
|
||||
<td style="text-align: left">old ∪ new</td>
|
||||
<td style="text-align: left">Add records of the new query to the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Intersection</strong></td>
|
||||
<td>old ∩ new</td>
|
||||
<td>Leave only those records that are both displayed and in the new query</td>
|
||||
<td style="text-align: left"><strong>Intersection</strong></td>
|
||||
<td style="text-align: left">old ∩ new</td>
|
||||
<td style="text-align: left">Leave only those records that are both displayed and in the new query</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference from current</strong></td>
|
||||
<td>old \ new</td>
|
||||
<td>Exclude records of the new query from the displayed records</td>
|
||||
<td style="text-align: left"><strong>Difference from current</strong></td>
|
||||
<td style="text-align: left">old \ new</td>
|
||||
<td style="text-align: left">Exclude records of the new query from the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference to current</strong></td>
|
||||
<td>new \ old</td>
|
||||
<td>Exclude displayed records from ones of the new query</td>
|
||||
<td style="text-align: left"><strong>Difference to current</strong></td>
|
||||
<td style="text-align: left">new \ old</td>
|
||||
<td style="text-align: left">Exclude displayed records from ones of the new query</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -4540,70 +4551,70 @@ interval = 1
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>3rd party integrations</th>
|
||||
<th>Control method (1)</th>
|
||||
<th>Persistent history</th>
|
||||
<th>Persistent state</th>
|
||||
<th>Notifications</th>
|
||||
<th style="text-align: left">Package</th>
|
||||
<th style="text-align: left">3rd party integrations</th>
|
||||
<th style="text-align: left">Control method (1)</th>
|
||||
<th style="text-align: left">Persistent history</th>
|
||||
<th style="text-align: left">Persistent state</th>
|
||||
<th style="text-align: left">Notifications</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td>-</td>
|
||||
<td>transient.el</td>
|
||||
<td>CSV</td>
|
||||
<td>+</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">transient.el</td>
|
||||
<td style="text-align: left">CSV</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td>Org Mode!</td>
|
||||
<td>via Org commands</td>
|
||||
<td>via Org mode</td>
|
||||
<td>-</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td style="text-align: left">Org Mode!</td>
|
||||
<td style="text-align: left">via Org commands</td>
|
||||
<td style="text-align: left">via Org mode</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>custom delimited format?</td>
|
||||
<td>+, but saving on-demand</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">custom delimited format?</td>
|
||||
<td style="text-align: left">+, but saving on-demand</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>notifications.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">notifications.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>message + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">message + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td>-</td>
|
||||
<td>mode-line icon</td>
|
||||
<td>+</td>
|
||||
<td>-</td>
|
||||
<td>sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">mode-line icon</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td>GTK panel</td>
|
||||
<td>CLI</td>
|
||||
<td>-</td>
|
||||
<td>-, but the program is independent of Emacs</td>
|
||||
<td>GTK notifications</td>
|
||||
<td style="text-align: left"><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td style="text-align: left">GTK panel</td>
|
||||
<td style="text-align: left">CLI</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-, but the program is independent of Emacs</td>
|
||||
<td style="text-align: left">GTK notifications</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -112,46 +105,46 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Keybinding</th>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Keybinding</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>RET</code></td>
|
||||
<td><code>elfeed-summary--action</code></td>
|
||||
<td>Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
<td style="text-align: left"><code>RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>M-RET</code></td>
|
||||
<td><code>elfeed-summary--action-show-read</code></td>
|
||||
<td>Open thing under the cursor, but always include read items</td>
|
||||
<td style="text-align: left"><code>M-RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-show-read</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor, but always include read items</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>q</code></td>
|
||||
<td>…</td>
|
||||
<td>Quit the summary buffer</td>
|
||||
<td style="text-align: left"><code>q</code></td>
|
||||
<td style="text-align: left">…</td>
|
||||
<td style="text-align: left">Quit the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r</code></td>
|
||||
<td><code>elfeed-summary--refresh</code></td>
|
||||
<td>Refresh the summary buffer</td>
|
||||
<td style="text-align: left"><code>r</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--refresh</code></td>
|
||||
<td style="text-align: left">Refresh the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>R</code></td>
|
||||
<td><code>elfeed-summary-update</code></td>
|
||||
<td>Run update for elfeed feeds</td>
|
||||
<td style="text-align: left"><code>R</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-update</code></td>
|
||||
<td style="text-align: left">Run update for elfeed feeds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>u</code></td>
|
||||
<td><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td>Toggle showing only unread entries</td>
|
||||
<td style="text-align: left"><code>u</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td style="text-align: left">Toggle showing only unread entries</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>U</code></td>
|
||||
<td><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td>Mark everything in the entry under the cursor as read</td>
|
||||
<td style="text-align: left"><code>U</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td style="text-align: left">Mark everything in the entry under the cursor as read</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -111,51 +104,51 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Flag</th>
|
||||
<th>atuin field (see <code>help atuin search</code>)</th>
|
||||
<th>Required</th>
|
||||
<th style="text-align: left">Flag</th>
|
||||
<th style="text-align: left">atuin field (see <code>help atuin search</code>)</th>
|
||||
<th style="text-align: left">Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>%t</td>
|
||||
<td><code>time</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%t</td>
|
||||
<td style="text-align: left"><code>time</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%c</td>
|
||||
<td><code>command</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%c</td>
|
||||
<td style="text-align: left"><code>command</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%e</td>
|
||||
<td><code>exit</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%e</td>
|
||||
<td style="text-align: left"><code>exit</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%d</td>
|
||||
<td><code>duration</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%d</td>
|
||||
<td style="text-align: left"><code>duration</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%i</td>
|
||||
<td><code>directory</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%i</td>
|
||||
<td style="text-align: left"><code>directory</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%u</td>
|
||||
<td><code>user</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%u</td>
|
||||
<td style="text-align: left"><code>user</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%h</td>
|
||||
<td><code>host</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%h</td>
|
||||
<td style="text-align: left"><code>host</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%r</td>
|
||||
<td><code>relativetime</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%r</td>
|
||||
<td style="text-align: left"><code>relativetime</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/packages/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
@ -92,7 +85,7 @@
|
|||
|
||||
<li><a href="https://sqrtminusone.xyz/packages/elfeed-summary/">2022-03-26 | elfeed-summary</a></li>
|
||||
|
||||
<li><a href="https://sqrtminusone.xyz/packages/password-store-ivy/">2022-02-13 | password-store-ivy</a></li>
|
||||
<li><a href="https://sqrtminusone.xyz/packages/password-store-completion/">2022-02-13 | password-store-completion</a></li>
|
||||
|
||||
<li><a href="https://sqrtminusone.xyz/packages/org-journal-tags/">2022-02-06 | org-journal-tags</a></li>
|
||||
|
||||
|
|
|
|||
|
|
@ -39,51 +39,51 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Flag</th>
|
||||
<th>atuin field (see <code>help atuin search</code>)</th>
|
||||
<th>Required</th>
|
||||
<th style="text-align: left">Flag</th>
|
||||
<th style="text-align: left">atuin field (see <code>help atuin search</code>)</th>
|
||||
<th style="text-align: left">Required</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>%t</td>
|
||||
<td><code>time</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%t</td>
|
||||
<td style="text-align: left"><code>time</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%c</td>
|
||||
<td><code>command</code></td>
|
||||
<td><strong>+</strong></td>
|
||||
<td style="text-align: left">%c</td>
|
||||
<td style="text-align: left"><code>command</code></td>
|
||||
<td style="text-align: left"><strong>+</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%e</td>
|
||||
<td><code>exit</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%e</td>
|
||||
<td style="text-align: left"><code>exit</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%d</td>
|
||||
<td><code>duration</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%d</td>
|
||||
<td style="text-align: left"><code>duration</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%i</td>
|
||||
<td><code>directory</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%i</td>
|
||||
<td style="text-align: left"><code>directory</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%u</td>
|
||||
<td><code>user</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%u</td>
|
||||
<td style="text-align: left"><code>user</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%h</td>
|
||||
<td><code>host</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%h</td>
|
||||
<td style="text-align: left"><code>host</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>%r</td>
|
||||
<td><code>relativetime</code></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">%r</td>
|
||||
<td style="text-align: left"><code>relativetime</code></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -188,66 +188,66 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Comment</th>
|
||||
<th>Customization variables</th>
|
||||
<th style="text-align: left">Name</th>
|
||||
<th style="text-align: left">Comment</th>
|
||||
<th style="text-align: left">Customization variables</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Category</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Category</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Org file</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Org file</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Outline path</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tags</td>
|
||||
<td>Sorted alphabetically</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Tags</td>
|
||||
<td style="text-align: left">Sorted alphabetically</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Headline</td>
|
||||
<td>Last item of the outline path</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Headline</td>
|
||||
<td style="text-align: left">Last item of the outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Day</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-day-format</code></td>
|
||||
<td style="text-align: left">Day</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-day-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Week</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-week-format</code></td>
|
||||
<td style="text-align: left">Week</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-week-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Month</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-month-format</code></td>
|
||||
<td style="text-align: left">Month</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-month-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TODO keyword</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">TODO keyword</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Is done</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Is done</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Selected props</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-properties</code></td>
|
||||
<td style="text-align: left">Selected props</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-properties</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -797,46 +797,46 @@ To mark such entries as read, run <code>M-x elfeed-sync-read-ttrss-old<
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Keybinding</th>
|
||||
<th>Command</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Keybinding</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><code>RET</code></td>
|
||||
<td><code>elfeed-summary--action</code></td>
|
||||
<td>Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
<td style="text-align: left"><code>RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor (a feed, search, or a group). If there is at least one unread item, it will show only unread items.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>M-RET</code></td>
|
||||
<td><code>elfeed-summary--action-show-read</code></td>
|
||||
<td>Open thing under the cursor, but always include read items</td>
|
||||
<td style="text-align: left"><code>M-RET</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-show-read</code></td>
|
||||
<td style="text-align: left">Open thing under the cursor, but always include read items</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>q</code></td>
|
||||
<td>&hellip;</td>
|
||||
<td>Quit the summary buffer</td>
|
||||
<td style="text-align: left"><code>q</code></td>
|
||||
<td style="text-align: left">&hellip;</td>
|
||||
<td style="text-align: left">Quit the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>r</code></td>
|
||||
<td><code>elfeed-summary--refresh</code></td>
|
||||
<td>Refresh the summary buffer</td>
|
||||
<td style="text-align: left"><code>r</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--refresh</code></td>
|
||||
<td style="text-align: left">Refresh the summary buffer</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>R</code></td>
|
||||
<td><code>elfeed-summary-update</code></td>
|
||||
<td>Run update for elfeed feeds</td>
|
||||
<td style="text-align: left"><code>R</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-update</code></td>
|
||||
<td style="text-align: left">Run update for elfeed feeds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>u</code></td>
|
||||
<td><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td>Toggle showing only unread entries</td>
|
||||
<td style="text-align: left"><code>u</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary-toggle-only-unread</code></td>
|
||||
<td style="text-align: left">Toggle showing only unread entries</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>U</code></td>
|
||||
<td><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td>Mark everything in the entry under the cursor as read</td>
|
||||
<td style="text-align: left"><code>U</code></td>
|
||||
<td style="text-align: left"><code>elfeed-summary--action-mark-read</code></td>
|
||||
<td style="text-align: left">Mark everything in the entry under the cursor as read</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -1157,39 +1157,44 @@ assigned to group with the least amount of members.</li>
|
|||
</item>
|
||||
|
||||
<item>
|
||||
<title>password-store-ivy</title>
|
||||
<link>https://sqrtminusone.xyz/packages/password-store-ivy/</link>
|
||||
<title>password-store-completion</title>
|
||||
<link>https://sqrtminusone.xyz/packages/password-store-completion/</link>
|
||||
<pubDate>Sun, 13 Feb 2022 00:00:00 +0000</pubDate>
|
||||
|
||||
<guid>https://sqrtminusone.xyz/packages/password-store-ivy/</guid>
|
||||
<guid>https://sqrtminusone.xyz/packages/password-store-completion/</guid>
|
||||
<content type="html">
|
||||
<p>A <a href="https://www.passwordstore.org/">pass</a> frontend based on <a href="https://github.com/abo-abo/swiper#ivy">Ivy</a>, made primarily to use with <a href="https://github.com/ch11ng/exwm">EXWM</a> and <a href="https://github.com/tumashu/ivy-posframe">ivy-posframe</a>. Types fields from entries.</p>
|
||||
<p>Also take a look at Nicolas Petton&rsquo;s <a href="https://github.com/NicolasPetton/pass">pass</a>, <code>password-store-ivy</code> is designed as complementary to the Nicolas&rsquo; package.</p>
|
||||
<p>This package is made with Ivy because I need some fine-tuning like actions and turning off sorting in some completions, and Ivy happens to be the completion system I&rsquo;m using now.</p>
|
||||
<p>A completion-based pass frontend inspired by <a href="https://github.com/carnager/rofi-pass">rofi-pass</a>. Integrates with <a href="https://github.com/abo-abo/swiper">Ivy</a> or <a href="https://github.com/oantolin/embark">Embark</a>.</p>
|
||||
<p>The main purpose is typing passwords with <code>xdotool</code> (useful in <a href="https://github.com/emacs-exwm/exwm">EXWM</a>).</p>
|
||||
<p>Also take a look at Nicolas Petton&rsquo;s <a href="https://github.com/NicolasPetton/pass">pass</a>. <code>password-store-completion</code> is designed as complementary to Nicolas&rsquo; package.</p>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<p>As the package isn’t yet available anywhere but in this repository, you can clone the repository, add it to the load-path and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-ivy</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">&#34;SqrtMinusOne/password-store-ivy&#34;</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:after</span> (<span style="color:#19177c">exwm</span>))
|
||||
</span></span></code></pre></div><p>This package types stuff with <code>xdotool</code>, so you need to have that available in your <code>$PATH</code>.</p>
|
||||
<h2 id="usage">Usage</h2>
|
||||
<p>As the package isn&rsquo;t yet available anywhere but in this repository, you can clone the repository, add it to the load-path, and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-completion</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">&#34;SqrtMinusOne/password-store-completion&#34;</span>))
|
||||
</span></span></code></pre></div><p><code>xdotool</code> has to be available in <code>$PATH</code>.</p>
|
||||
<p>For Ivy integration:</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">require</span> <span style="color:#19177c">&#39;password-store-ivy</span>)
|
||||
</span></span></code></pre></div><p>Also be sure to load the main package before Ivy.</p>
|
||||
<p>For Embark integration:</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">require</span> <span style="color:#19177c">&#39;password-store-embark</span>)
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">password-store-embark-mode</span>)
|
||||
</span></span></code></pre></div><h2 id="usage">Usage</h2>
|
||||
<p>Emacs&rsquo; built-in <a href="https://www.gnu.org/software/emacs/manual/html_node/auth/The-Unix-password-store.html">password store</a> integration has to be set up.</p>
|
||||
<p>The only command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<p>For Ivy integration, the command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<ul>
|
||||
<li><code>M-a</code>. Perform autotype</li>
|
||||
<li><code>M-p</code>. Type password</li>
|
||||
<li><code>M-u</code>. Type username</li>
|
||||
<li><code>M-U</code>. Type url</li>
|
||||
<li><code>M-f</code>. Select a field to type</li>
|
||||
<li><code>M-a</code>: Perform autotype</li>
|
||||
<li><code>M-p</code>: Type password</li>
|
||||
<li><code>M-u</code>: Type username</li>
|
||||
<li><code>M-U</code>: Type URL</li>
|
||||
<li><code>M-f</code>: Select a field to type</li>
|
||||
</ul>
|
||||
<p>For other completion frameworks, run <code>M-x password-store-completion</code>. If Embark integration is enabled, the same actions are added.</p>
|
||||
<h2 id="customization">Customization</h2>
|
||||
<p>There are a few parameters that control delays:</p>
|
||||
<p>The following parameters control delays:</p>
|
||||
<ul>
|
||||
<li><code>password-store-ivy-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-ivy-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
<li><code>password-store-completion-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-completion-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
</ul>
|
||||
<p>There is also <code>password-store-ivy-sequences</code> that determines the sequence of actions <code>password-store-ivy</code> performs.</p>
|
||||
<p>It is an alist with the following required keys (corresponding to the basic actions):</p>
|
||||
<p><code>password-store-completion-sequences</code> determines the steps of sequences. It is an alist; the keys correspond to the default sequences:</p>
|
||||
<ul>
|
||||
<li><code>autotype</code></li>
|
||||
<li><code>password</code></li>
|
||||
|
|
@ -1198,12 +1203,12 @@ assigned to group with the least amount of members.</li>
|
|||
</ul>
|
||||
<p>The values are lists of the following elements:</p>
|
||||
<ul>
|
||||
<li><code>wait</code>. Wait for <code>password-store-ivy-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait &lt;milliseconds&gt;)</code>. Wait for <code>&lt;milliseconds&gt;</code>.</li>
|
||||
<li><code>(key &lt;key&gt;)</code>. Type <code>&lt;key&gt;</code>.</li>
|
||||
<li><code>(field &lt;field&gt;)</code>. Type <code>&lt;field&gt;</code> of entry.</li>
|
||||
<li><code>wait</code>: Wait for <code>password-store-completion-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait &lt;milliseconds&gt;)</code>: Wait for <code>&lt;milliseconds&gt;</code></li>
|
||||
<li><code>(key &lt;key&gt;)</code>: Type <code>&lt;key&gt;</code></li>
|
||||
<li><code>(field &lt;field&gt;)</code>: Type <code>&lt;field&gt;</code> of entry</li>
|
||||
</ul>
|
||||
<p>For example, the starting values:</p>
|
||||
<p>The default value is as follows:</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:#666">&#39;</span>((<span style="color:#19177c">autotype</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;username&#34;</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">key</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;Tab&#34;</span>)
|
||||
|
|
@ -1212,13 +1217,19 @@ assigned to group with the least amount of members.</li>
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">password</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#19177c">secret</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">username</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;username&#34;</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">url</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">&#34;url&#34;</span>))))
|
||||
</span></span></code></pre></div><p>In addition to the global override, sequences can be overriden per-entry with a field called <code>sequence-&lt;name&gt;</code>, where <code>&lt;name&gt;</code> is a key of <code>password-store-ivy-sequences</code>.</p>
|
||||
<p>For example, here is an override to press <code>Tab</code> twice:</p>
|
||||
</span></span></code></pre></div><p>Sequences can also be overridden in a particular entry with a field called <code>sequence-&lt;name&gt;</code>, where <code>&lt;name&gt;</code> is a key of <code>password-store-completion-sequences</code>.</p>
|
||||
<p>For example, to press <code>Tab</code> twice in the <code>autotype</code> sequence:</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>&lt;pass&gt;
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: &lt;url&gt;
|
||||
</span></span><span style="display:flex;"><span>sequence-autotype: (wait (field . &#34;username&#34;) (key . &#34;Tab&#34;) (key . &#34;Tab&#34;) (field . secret) (key . &#34;Return&#34;))
|
||||
</span></span></code></pre></div>
|
||||
</span></span></code></pre></div><p>Or, create a custom sequence:</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>&lt;pass&gt;
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: &lt;url&gt;
|
||||
</span></span><span style="display:flex;"><span>sequence-doubletab: (wait (field . &#34;username&#34;) (key . &#34;Tab&#34;) (key . &#34;Tab&#34;) (field . secret) (key . &#34;Return&#34;))
|
||||
</span></span></code></pre></div><p>Custom sequences can be run in the field selection interface (<code>M-f</code> in Ivy, <code>M-x embark-act f</code> in Embark).</p>
|
||||
|
||||
</content>
|
||||
</item>
|
||||
|
||||
|
|
@ -1321,31 +1332,31 @@ timestamps by their date.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Set operation</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Set operation</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Union</strong></td>
|
||||
<td>old ∪ new</td>
|
||||
<td>Add records of the new query to the displayed records</td>
|
||||
<td style="text-align: left"><strong>Union</strong></td>
|
||||
<td style="text-align: left">old ∪ new</td>
|
||||
<td style="text-align: left">Add records of the new query to the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Intersection</strong></td>
|
||||
<td>old ∩ new</td>
|
||||
<td>Leave only those records that are both displayed and in the new query</td>
|
||||
<td style="text-align: left"><strong>Intersection</strong></td>
|
||||
<td style="text-align: left">old ∩ new</td>
|
||||
<td style="text-align: left">Leave only those records that are both displayed and in the new query</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference from current</strong></td>
|
||||
<td>old \ new</td>
|
||||
<td>Exclude records of the new query from the displayed records</td>
|
||||
<td style="text-align: left"><strong>Difference from current</strong></td>
|
||||
<td style="text-align: left">old \ new</td>
|
||||
<td style="text-align: left">Exclude records of the new query from the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference to current</strong></td>
|
||||
<td>new \ old</td>
|
||||
<td>Exclude displayed records from ones of the new query</td>
|
||||
<td style="text-align: left"><strong>Difference to current</strong></td>
|
||||
<td style="text-align: left">new \ old</td>
|
||||
<td style="text-align: left">Exclude displayed records from ones of the new query</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -1654,70 +1665,70 @@ interval = 1
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>3rd party integrations</th>
|
||||
<th>Control method (1)</th>
|
||||
<th>Persistent history</th>
|
||||
<th>Persistent state</th>
|
||||
<th>Notifications</th>
|
||||
<th style="text-align: left">Package</th>
|
||||
<th style="text-align: left">3rd party integrations</th>
|
||||
<th style="text-align: left">Control method (1)</th>
|
||||
<th style="text-align: left">Persistent history</th>
|
||||
<th style="text-align: left">Persistent state</th>
|
||||
<th style="text-align: left">Notifications</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td>-</td>
|
||||
<td>transient.el</td>
|
||||
<td>CSV</td>
|
||||
<td>+</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">transient.el</td>
|
||||
<td style="text-align: left">CSV</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td>Org Mode!</td>
|
||||
<td>via Org commands</td>
|
||||
<td>via Org mode</td>
|
||||
<td>-</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td style="text-align: left">Org Mode!</td>
|
||||
<td style="text-align: left">via Org commands</td>
|
||||
<td style="text-align: left">via Org mode</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>custom delimited format?</td>
|
||||
<td>+, but saving on-demand</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">custom delimited format?</td>
|
||||
<td style="text-align: left">+, but saving on-demand</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>notifications.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">notifications.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>message + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">message + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td>-</td>
|
||||
<td>mode-line icon</td>
|
||||
<td>+</td>
|
||||
<td>-</td>
|
||||
<td>sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">mode-line icon</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td>GTK panel</td>
|
||||
<td>CLI</td>
|
||||
<td>-</td>
|
||||
<td>-, but the program is independent of Emacs</td>
|
||||
<td>GTK notifications</td>
|
||||
<td style="text-align: left"><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td style="text-align: left">GTK panel</td>
|
||||
<td style="text-align: left">CLI</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-, but the program is independent of Emacs</td>
|
||||
<td style="text-align: left">GTK notifications</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -152,66 +145,66 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Name</th>
|
||||
<th>Comment</th>
|
||||
<th>Customization variables</th>
|
||||
<th style="text-align: left">Name</th>
|
||||
<th style="text-align: left">Comment</th>
|
||||
<th style="text-align: left">Customization variables</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>Category</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Category</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Org file</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Org file</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Outline path</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Tags</td>
|
||||
<td>Sorted alphabetically</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Tags</td>
|
||||
<td style="text-align: left">Sorted alphabetically</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Headline</td>
|
||||
<td>Last item of the outline path</td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Headline</td>
|
||||
<td style="text-align: left">Last item of the outline path</td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Day</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-day-format</code></td>
|
||||
<td style="text-align: left">Day</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-day-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Week</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-week-format</code></td>
|
||||
<td style="text-align: left">Week</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-week-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Month</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-month-format</code></td>
|
||||
<td style="text-align: left">Month</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-month-format</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>TODO keyword</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">TODO keyword</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Is done</td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td style="text-align: left">Is done</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Selected props</td>
|
||||
<td></td>
|
||||
<td><code>org-clock-agg-properties</code></td>
|
||||
<td style="text-align: left">Selected props</td>
|
||||
<td style="text-align: left"></td>
|
||||
<td style="text-align: left"><code>org-clock-agg-properties</code></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -178,31 +171,31 @@ timestamps by their date.</li>
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Command</th>
|
||||
<th>Set operation</th>
|
||||
<th>Description</th>
|
||||
<th style="text-align: left">Command</th>
|
||||
<th style="text-align: left">Set operation</th>
|
||||
<th style="text-align: left">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><strong>Union</strong></td>
|
||||
<td>old ∪ new</td>
|
||||
<td>Add records of the new query to the displayed records</td>
|
||||
<td style="text-align: left"><strong>Union</strong></td>
|
||||
<td style="text-align: left">old ∪ new</td>
|
||||
<td style="text-align: left">Add records of the new query to the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Intersection</strong></td>
|
||||
<td>old ∩ new</td>
|
||||
<td>Leave only those records that are both displayed and in the new query</td>
|
||||
<td style="text-align: left"><strong>Intersection</strong></td>
|
||||
<td style="text-align: left">old ∩ new</td>
|
||||
<td style="text-align: left">Leave only those records that are both displayed and in the new query</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference from current</strong></td>
|
||||
<td>old \ new</td>
|
||||
<td>Exclude records of the new query from the displayed records</td>
|
||||
<td style="text-align: left"><strong>Difference from current</strong></td>
|
||||
<td style="text-align: left">old \ new</td>
|
||||
<td style="text-align: left">Exclude records of the new query from the displayed records</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><strong>Difference to current</strong></td>
|
||||
<td>new \ old</td>
|
||||
<td>Exclude displayed records from ones of the new query</td>
|
||||
<td style="text-align: left"><strong>Difference to current</strong></td>
|
||||
<td style="text-align: left">new \ old</td>
|
||||
<td style="text-align: left">Exclude displayed records from ones of the new query</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
|
||||
<title>password-store-ivy</title>
|
||||
<title>password-store-completion</title>
|
||||
<meta name="description" content="Freedom is a state of mind">
|
||||
<meta name="author" content='SqrtMinusOne'>
|
||||
|
||||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -74,45 +67,50 @@
|
|||
<script defer language="javascript" type="text/javascript" src="/js/dynamic-toc.js"></script>
|
||||
<div class="root">
|
||||
<h1 id="title-small-screen">
|
||||
password-store-ivy
|
||||
password-store-completion
|
||||
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=password-store-ivy&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=password-store-completion&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||||
|
||||
</h1>
|
||||
<div class="container" id="actual-content">
|
||||
<h1 id="title-large-screen" class="dotfiles-title">
|
||||
password-store-ivy
|
||||
password-store-completion
|
||||
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=password-store-ivy&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=password-store-completion&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||||
|
||||
</h1>
|
||||
<p>A <a href="https://www.passwordstore.org/">pass</a> frontend based on <a href="https://github.com/abo-abo/swiper#ivy">Ivy</a>, made primarily to use with <a href="https://github.com/ch11ng/exwm">EXWM</a> and <a href="https://github.com/tumashu/ivy-posframe">ivy-posframe</a>. Types fields from entries.</p>
|
||||
<p>Also take a look at Nicolas Petton’s <a href="https://github.com/NicolasPetton/pass">pass</a>, <code>password-store-ivy</code> is designed as complementary to the Nicolas’ package.</p>
|
||||
<p>This package is made with Ivy because I need some fine-tuning like actions and turning off sorting in some completions, and Ivy happens to be the completion system I’m using now.</p>
|
||||
<p>A completion-based pass frontend inspired by <a href="https://github.com/carnager/rofi-pass">rofi-pass</a>. Integrates with <a href="https://github.com/abo-abo/swiper">Ivy</a> or <a href="https://github.com/oantolin/embark">Embark</a>.</p>
|
||||
<p>The main purpose is typing passwords with <code>xdotool</code> (useful in <a href="https://github.com/emacs-exwm/exwm">EXWM</a>).</p>
|
||||
<p>Also take a look at Nicolas Petton’s <a href="https://github.com/NicolasPetton/pass">pass</a>. <code>password-store-completion</code> is designed as complementary to Nicolas’ package.</p>
|
||||
<h2 id="installation">Installation</h2>
|
||||
<p>As the package isn’t yet available anywhere but in this repository, you can clone the repository, add it to the load-path and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-ivy</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">"SqrtMinusOne/password-store-ivy"</span>)
|
||||
</span></span><span style="display:flex;"><span> <span style="color:#008000">:after</span> (<span style="color:#19177c">exwm</span>))
|
||||
</span></span></code></pre></div><p>This package types stuff with <code>xdotool</code>, so you need to have that available in your <code>$PATH</code>.</p>
|
||||
<h2 id="usage">Usage</h2>
|
||||
<p>As the package isn’t yet available anywhere but in this repository, you can clone the repository, add it to the load-path, and require the package. My preferred way is <code>use-package</code> with <code>straight</code>:</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">password-store-completion</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">"SqrtMinusOne/password-store-completion"</span>))
|
||||
</span></span></code></pre></div><p><code>xdotool</code> has to be available in <code>$PATH</code>.</p>
|
||||
<p>For Ivy integration:</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">require</span> <span style="color:#19177c">'password-store-ivy</span>)
|
||||
</span></span></code></pre></div><p>Also be sure to load the main package before Ivy.</p>
|
||||
<p>For Embark integration:</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">require</span> <span style="color:#19177c">'password-store-embark</span>)
|
||||
</span></span><span style="display:flex;"><span>(<span style="color:#19177c">password-store-embark-mode</span>)
|
||||
</span></span></code></pre></div><h2 id="usage">Usage</h2>
|
||||
<p>Emacs’ built-in <a href="https://www.gnu.org/software/emacs/manual/html_node/auth/The-Unix-password-store.html">password store</a> integration has to be set up.</p>
|
||||
<p>The only command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<p>For Ivy integration, the command is <code>M-x password-store-ivy</code>, which invokes Ivy to select an entry from the pass database. Available commands in the selection buffer:</p>
|
||||
<ul>
|
||||
<li><code>M-a</code>. Perform autotype</li>
|
||||
<li><code>M-p</code>. Type password</li>
|
||||
<li><code>M-u</code>. Type username</li>
|
||||
<li><code>M-U</code>. Type url</li>
|
||||
<li><code>M-f</code>. Select a field to type</li>
|
||||
<li><code>M-a</code>: Perform autotype</li>
|
||||
<li><code>M-p</code>: Type password</li>
|
||||
<li><code>M-u</code>: Type username</li>
|
||||
<li><code>M-U</code>: Type URL</li>
|
||||
<li><code>M-f</code>: Select a field to type</li>
|
||||
</ul>
|
||||
<p>For other completion frameworks, run <code>M-x password-store-completion</code>. If Embark integration is enabled, the same actions are added.</p>
|
||||
<h2 id="customization">Customization</h2>
|
||||
<p>There are a few parameters that control delays:</p>
|
||||
<p>The following parameters control delays:</p>
|
||||
<ul>
|
||||
<li><code>password-store-ivy-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-ivy-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
<li><code>password-store-completion-initial-wait</code> controls the initial delay before starting to type a sequence (in milliseconds)</li>
|
||||
<li><code>password-store-completion-delay</code> controls the delay between typing characters (in milliseconds)</li>
|
||||
</ul>
|
||||
<p>There is also <code>password-store-ivy-sequences</code> that determines the sequence of actions <code>password-store-ivy</code> performs.</p>
|
||||
<p>It is an alist with the following required keys (corresponding to the basic actions):</p>
|
||||
<p><code>password-store-completion-sequences</code> determines the steps of sequences. It is an alist; the keys correspond to the default sequences:</p>
|
||||
<ul>
|
||||
<li><code>autotype</code></li>
|
||||
<li><code>password</code></li>
|
||||
|
|
@ -121,12 +119,12 @@
|
|||
</ul>
|
||||
<p>The values are lists of the following elements:</p>
|
||||
<ul>
|
||||
<li><code>wait</code>. Wait for <code>password-store-ivy-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait <milliseconds>)</code>. Wait for <code><milliseconds></code>.</li>
|
||||
<li><code>(key <key>)</code>. Type <code><key></code>.</li>
|
||||
<li><code>(field <field>)</code>. Type <code><field></code> of entry.</li>
|
||||
<li><code>wait</code>: Wait for <code>password-store-completion-initial-wait</code> milliseconds</li>
|
||||
<li><code>(wait <milliseconds>)</code>: Wait for <code><milliseconds></code></li>
|
||||
<li><code>(key <key>)</code>: Type <code><key></code></li>
|
||||
<li><code>(field <field>)</code>: Type <code><field></code> of entry</li>
|
||||
</ul>
|
||||
<p>For example, the starting values:</p>
|
||||
<p>The default value is as follows:</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:#666">'</span>((<span style="color:#19177c">autotype</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span>
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">"username"</span>)
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">key</span> <span style="color:#666">.</span> <span style="color:#ba2121">"Tab"</span>)
|
||||
|
|
@ -135,13 +133,19 @@
|
|||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">password</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#19177c">secret</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">username</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">"username"</span>)))
|
||||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">url</span> <span style="color:#666">.</span> (<span style="color:#19177c">wait</span> (<span style="color:#19177c">field</span> <span style="color:#666">.</span> <span style="color:#ba2121">"url"</span>))))
|
||||
</span></span></code></pre></div><p>In addition to the global override, sequences can be overriden per-entry with a field called <code>sequence-<name></code>, where <code><name></code> is a key of <code>password-store-ivy-sequences</code>.</p>
|
||||
<p>For example, here is an override to press <code>Tab</code> twice:</p>
|
||||
</span></span></code></pre></div><p>Sequences can also be overridden in a particular entry with a field called <code>sequence-<name></code>, where <code><name></code> is a key of <code>password-store-completion-sequences</code>.</p>
|
||||
<p>For example, to press <code>Tab</code> twice in the <code>autotype</code> sequence:</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><pass>
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: <url>
|
||||
</span></span><span style="display:flex;"><span>sequence-autotype: (wait (field . "username") (key . "Tab") (key . "Tab") (field . secret) (key . "Return"))
|
||||
</span></span></code></pre></div>
|
||||
</span></span></code></pre></div><p>Or, create a custom sequence:</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><pass>
|
||||
</span></span><span style="display:flex;"><span>username: thexcloud@gmail.com
|
||||
</span></span><span style="display:flex;"><span>url: <url>
|
||||
</span></span><span style="display:flex;"><span>sequence-doubletab: (wait (field . "username") (key . "Tab") (key . "Tab") (field . secret) (key . "Return"))
|
||||
</span></span></code></pre></div><p>Custom sequences can be run in the field selection interface (<code>M-f</code> in Ivy, <code>M-x embark-act f</code> in Embark).</p>
|
||||
|
||||
</div>
|
||||
<div class="table-of-contents">
|
||||
<div class="table-of-contents-text">
|
||||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -197,70 +190,70 @@ interval = 1
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Package</th>
|
||||
<th>3rd party integrations</th>
|
||||
<th>Control method (1)</th>
|
||||
<th>Persistent history</th>
|
||||
<th>Persistent state</th>
|
||||
<th>Notifications</th>
|
||||
<th style="text-align: left">Package</th>
|
||||
<th style="text-align: left">3rd party integrations</th>
|
||||
<th style="text-align: left">Control method (1)</th>
|
||||
<th style="text-align: left">Persistent history</th>
|
||||
<th style="text-align: left">Persistent state</th>
|
||||
<th style="text-align: left">Notifications</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td>-</td>
|
||||
<td>transient.el</td>
|
||||
<td>CSV</td>
|
||||
<td>+</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/SqrtMinusOne/pomm.el">pomm.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">transient.el</td>
|
||||
<td style="text-align: left">CSV</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td>Org Mode!</td>
|
||||
<td>via Org commands</td>
|
||||
<td>via Org mode</td>
|
||||
<td>-</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/marcinkoziej/org-pomodoro/tree/master">org-pomodoro</a></td>
|
||||
<td style="text-align: left">Org Mode!</td>
|
||||
<td style="text-align: left">via Org commands</td>
|
||||
<td style="text-align: left">via Org mode</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>custom delimited format?</td>
|
||||
<td>+, but saving on-demand</td>
|
||||
<td>alert.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/TatriX/pomidor/">pomidor</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">custom delimited format?</td>
|
||||
<td style="text-align: left">+, but saving on-demand</td>
|
||||
<td style="text-align: left">alert.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>notifications.el + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/baudtack/pomodoro.el/">pomodoro.el</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">notifications.el + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td>-</td>
|
||||
<td>self-cooked interactive buffer</td>
|
||||
<td>-</td>
|
||||
<td>-</td>
|
||||
<td>message + sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/konr/tomatinho/">tomatinho</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">self-cooked interactive buffer</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">message + sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td>-</td>
|
||||
<td>mode-line icon</td>
|
||||
<td>+</td>
|
||||
<td>-</td>
|
||||
<td>sounds</td>
|
||||
<td style="text-align: left"><a href="https://github.com/ferfebles/redtick">redtick</a></td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">mode-line icon</td>
|
||||
<td style="text-align: left">+</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">sounds</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td>GTK panel</td>
|
||||
<td>CLI</td>
|
||||
<td>-</td>
|
||||
<td>-, but the program is independent of Emacs</td>
|
||||
<td>GTK notifications</td>
|
||||
<td style="text-align: left"><a href="https://github.com/abo-abo/gtk-pomodoro-indicator">gtk-pomodoro-indicator</a></td>
|
||||
<td style="text-align: left">GTK panel</td>
|
||||
<td style="text-align: left">CLI</td>
|
||||
<td style="text-align: left">-</td>
|
||||
<td style="text-align: left">-, but the program is independent of Emacs</td>
|
||||
<td style="text-align: left">GTK notifications</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
@ -215,14 +208,14 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>sunwait</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">sunwait</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -230,14 +223,14 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>dateutils</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">dateutils</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -360,24 +353,24 @@
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>block1</th>
|
||||
<th>glyph</th>
|
||||
<th>block2</th>
|
||||
<th style="text-align: left"></th>
|
||||
<th style="text-align: left">block1</th>
|
||||
<th style="text-align: left">glyph</th>
|
||||
<th style="text-align: left">block2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>foreground</td>
|
||||
<td>F1</td>
|
||||
<td>B2</td>
|
||||
<td>F2</td>
|
||||
<td style="text-align: left">foreground</td>
|
||||
<td style="text-align: left">F1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
<td style="text-align: left">F2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>background</td>
|
||||
<td>B1</td>
|
||||
<td>B1</td>
|
||||
<td>B2</td>
|
||||
<td style="text-align: left">background</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -18,13 +18,6 @@
|
|||
<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>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/posts/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -2140,14 +2140,14 @@ I&rsquo;ve seen a couple of cases where people would swap their username and
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>sunwait</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">sunwait</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -2155,14 +2155,14 @@ I&rsquo;ve seen a couple of cases where people would swap their username and
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Category</th>
|
||||
<th>Guix dependency</th>
|
||||
<th style="text-align: left">Category</th>
|
||||
<th style="text-align: left">Guix dependency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>desktop-polybar</td>
|
||||
<td>dateutils</td>
|
||||
<td style="text-align: left">desktop-polybar</td>
|
||||
<td style="text-align: left">dateutils</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
@ -2285,24 +2285,24 @@ I&rsquo;ve seen a couple of cases where people would swap their username and
|
|||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>block1</th>
|
||||
<th>glyph</th>
|
||||
<th>block2</th>
|
||||
<th style="text-align: left"></th>
|
||||
<th style="text-align: left">block1</th>
|
||||
<th style="text-align: left">glyph</th>
|
||||
<th style="text-align: left">block2</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>foreground</td>
|
||||
<td>F1</td>
|
||||
<td>B2</td>
|
||||
<td>F2</td>
|
||||
<td style="text-align: left">foreground</td>
|
||||
<td style="text-align: left">F1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
<td style="text-align: left">F2</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>background</td>
|
||||
<td>B1</td>
|
||||
<td>B1</td>
|
||||
<td>B2</td>
|
||||
<td style="text-align: left">background</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B1</td>
|
||||
<td style="text-align: left">B2</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
|
|
|||
|
|
@ -191,7 +191,7 @@
|
|||
|
||||
|
||||
<url>
|
||||
<loc>https://sqrtminusone.xyz/packages/password-store-ivy/</loc>
|
||||
<loc>https://sqrtminusone.xyz/packages/password-store-completion/</loc>
|
||||
<lastmod>2022-02-13T00:00:00+00:00</lastmod>
|
||||
|
||||
|
||||
|
|
|
|||
BIN
stats/all.png
BIN
stats/all.png
Binary file not shown.
|
Before Width: | Height: | Size: 121 KiB After Width: | Height: | Size: 121 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 62 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 67 KiB |
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/elfeed/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,14 +13,14 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2022-09-16-vosk/</link>
|
||||
<pubDate>Fri, 16 Sep 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-09-16-vosk/</guid>
|
||||
<description>Edit &lt;2022-10-13 Thu&gt;: Just a couple of days after this post, OpenAI released a speech recognition model called Whisper, which is so much better than anything I&rsquo;ve ever seen before. I&rsquo;ve decided to leave this post as it is, but check the Emacs config for the updated version.
In my experience, finding something in a podcast is particularly troublesome. For example, occasionally I want to refer to some line in the podcast to make an org-roam node, e.</description>
|
||||
<description><p><strong>Edit <span class="timestamp-wrapper"><span class="timestamp">&lt;2022-10-13 Thu&gt;</span></span>:</strong> Just a couple of days after this post, OpenAI released a speech recognition model called <a href="https://openai.com/blog/whisper/">Whisper</a>, which is so much better than anything I&rsquo;ve ever seen before. I&rsquo;ve decided to leave this post as it is, but check the <a href="https://sqrtminusone.xyz/configs/emacs/#podcast-transcripts">Emacs config</a> for the updated version.</p>
<p>In my experience, finding something in a podcast is particularly troublesome. For example, occasionally I want to refer to some line in the podcast to make an <a href="https://github.com/org-roam/org-roam">org-roam</a> node, e.g. I want to check that I got that part right.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>My EMMS and elfeed setup</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2021-09-07-emms/</link>
|
||||
<pubDate>Wed, 08 Sep 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-09-07-emms/</guid>
|
||||
<description>Intro This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.
Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.
The respective emacs packages, elfeed and EMMS, proved somewhat tricky to set up, i.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<figure><img src="https://sqrtminusone.xyz/images/emms/emms-screenshot.png">
</figure>

<p>This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.</p>
<p>Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/emacs/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,77 +13,77 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2023-11-11-index/</link>
|
||||
<pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2023-11-11-index/</guid>
|
||||
<description>The post describes a Johnny.Decimal-inspired filesystem structure, declared in an org file and synchronized across machines. Different folders are available on different machines.
Intro My filesystem is, shall we say, not the most orderly place.
It&rsquo;s been somewhat messy, and messy in different ways across my three machines. For instance, my laptop had work projects in ~/Code/Job, my work machine had just ~/Code, and so forth.
Strangely, I couldn&rsquo;t find and existing solution to that problem.</description>
|
||||
<description><div class="abstract">
<p>The post describes a Johnny.Decimal-inspired filesystem structure, declared in an org file and synchronized across machines. Different folders are available on different machines.</p>
</div>
<h2 id="intro">Intro</h2>
<p>My filesystem is, shall we say, not the most orderly place.</p>
<center>
<iframe src="https://emacs.ch/@sqrtminusone/110514686718545191/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="500" allowfullscreen="allowfullscreen"></iframe><script src="https://emacs.ch/embed.js" async="async"></script>
</center>
<p>It&rsquo;s been somewhat messy, and messy in different ways across my three machines. For instance, my laptop had work projects in <code>~/Code/Job</code>, my work machine had just <code>~/Code</code>, and so forth.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>916 days of Emacs</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2023-04-13-emacs/</link>
|
||||
<pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2023-04-13-emacs/</guid>
|
||||
<description>Poof I made my free-time disappear
- Ellis Kenyő, on being called an "elisp mage" Little did I know on the fateful day of [2020-10-09 Fri], when I had installed GNU Emacs. I wasn&rsquo;t thinking about the ethical aspects of free software, the aesthetics of Lisp, or these other things with which an occasional layperson might explain how an almost half a century old program can still be in active use.</description>
|
||||
<description><style>
 .quote-title {
 margin-left: 24px;
 }
</style>
<blockquote>
<p>Poof I made my free-time disappear</p>
</blockquote>
<p class="quote-title">- <a href="https://elken.dev">Ellis Kenyő</a>, on being called an "elisp mage"
<p>Little did I know on the fateful day of <strong><span class="timestamp-wrapper"><span class="timestamp">[2020-10-09 Fri]</span></span></strong>, when I had installed <a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>. I wasn&rsquo;t thinking about the <a href="https://www.gnu.org/philosophy/philosophy.html">ethical aspects</a> of free software, the <a href="https://www.webofstories.com/play/marvin.minsky/44">aesthetics of Lisp</a>, or these other things with which an occasional layperson might explain how an almost <a href="https://www.jwz.org/doc/emacs-timeline.html">half a century old</a> program can still be in <a href="https://emacsconf.org/2022/talks/survey/">active use</a>.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Running Gource with Emacs</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2023-01-02-gource/</link>
|
||||
<pubDate>Mon, 02 Jan 2023 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2023-01-02-gource/</guid>
|
||||
<description>Gource is a program that draws an animated graph of users changing the repository over time.
Although it can work without extra effort (just run gource in a git repo), there are some tweaks that can be done:
Gource supports using custom pictures for users. Gravatar is an obvious place to get these. Occasionally, the same people have different names and/or emails in history.
It may happen when people use forges like GitLab or just have different settings on different machines.</description>
|
||||
<description><figure><img src="https://sqrtminusone.xyz/images/gource/gource.png">
</figure>

<p><a href="https://gource.io/">Gource</a> is a program that draws an animated graph of users changing the repository over time.</p>
<p>Although it can work without extra effort (just run <code>gource</code> in a <a href="https://git-scm.com/">git</a> repo), there are some tweaks that can be done:</p>
<ul>
<li>Gource supports using custom pictures for users. <a href="https://en.gravatar.com/">Gravatar</a> is an obvious place to get these.</li>
<li>Occasionally, the same people have different names and/or emails in history.<br />
It may happen when people use forges like <a href="https://gitlab.com/">GitLab</a> or just have different settings on different machines. It would be nice to merge these names.</li>
<li>Visualizing the history of multiple repositories (e.g. frontend and backend) requires combining multiple gource logs.</li>
</ul>
<p>So, why not try doing that with Emacs?</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Podcast transcripts with elfeed & speech recognition engine</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2022-09-16-vosk/</link>
|
||||
<pubDate>Fri, 16 Sep 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-09-16-vosk/</guid>
|
||||
<description>Edit &lt;2022-10-13 Thu&gt;: Just a couple of days after this post, OpenAI released a speech recognition model called Whisper, which is so much better than anything I&rsquo;ve ever seen before. I&rsquo;ve decided to leave this post as it is, but check the Emacs config for the updated version.
In my experience, finding something in a podcast is particularly troublesome. For example, occasionally I want to refer to some line in the podcast to make an org-roam node, e.</description>
|
||||
<description><p><strong>Edit <span class="timestamp-wrapper"><span class="timestamp">&lt;2022-10-13 Thu&gt;</span></span>:</strong> Just a couple of days after this post, OpenAI released a speech recognition model called <a href="https://openai.com/blog/whisper/">Whisper</a>, which is so much better than anything I&rsquo;ve ever seen before. I&rsquo;ve decided to leave this post as it is, but check the <a href="https://sqrtminusone.xyz/configs/emacs/#podcast-transcripts">Emacs config</a> for the updated version.</p>
<p>In my experience, finding something in a podcast is particularly troublesome. For example, occasionally I want to refer to some line in the podcast to make an <a href="https://github.com/org-roam/org-roam">org-roam</a> node, e.g. I want to check that I got that part right.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Extending elfeed with PDF viewer and subtitles fetcher</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2022-05-09-pdf/</link>
|
||||
<pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-05-09-pdf/</guid>
|
||||
<description>Intro elfeed is one of the most popular Emacs packages, and it&rsquo;s also one in which I ended up investing a lot of effort. I wrote about the EMMS integration and even made a custom frontpage to my liking.
However, sites frequently limit the amount of information shipped in the RSS feed. Oftentimes the entry doesn&rsquo;t include the entire content (of which, by the way, this blog was guilty).
Also, there&rsquo;s non-textual content, of which in this post I consider YouTube subscriptions.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p><a href="https://github.com/skeeto/elfeed">elfeed</a> is one of the most popular Emacs packages, and it&rsquo;s also one in which I ended up investing a lot of effort. I wrote about the <a href="https://sqrtminusone.xyz/posts/2021-09-07-emms/">EMMS integration</a> and even made a <a href="https://github.com/SqrtMinusOne/elfeed-summary">custom frontpage</a> to my liking.</p>
<p>However, sites frequently limit the amount of information shipped in the RSS feed. Oftentimes the entry doesn&rsquo;t include the entire content (of which, by the way, this blog was guilty).</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>A few cases of literate configuration</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2022-02-12-literate/</link>
|
||||
<pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-02-12-literate/</guid>
|
||||
<description>A post that arose from the discussion of literate configuration on the System Crafters Discord.
I am using the literate configuration strategy (based on Emacs&rsquo; Org Mode) to manage most of my configuration files. A piece of such a configuration can be as simple as an Org file, which is tangled to one or many plain-text configuration files, but it can be more.
In my opinion, a literate configuration can be more straightforward and concise than a &ldquo;normal&rdquo; one, thanks to Org Mode&rsquo;s capabilities of working with source code.</description>
|
||||
<description><p>A post that arose from the discussion of literate configuration on the <a href="https://systemcrafters.net/">System Crafters</a> Discord.</p>
<p>I am using the <a href="https://leanpub.com/lit-config">literate configuration</a> strategy (based on <a href="https://orgmode.org/">Emacs&rsquo; Org Mode</a>) to manage most of my configuration files. A piece of such a configuration can be as simple as an Org file, which is tangled to one or many plain-text configuration files, but it can be more.</p>
<p>In my opinion, a literate configuration can be more straightforward and concise than a &ldquo;normal&rdquo; one, thanks to Org Mode&rsquo;s capabilities of <a href="https://orgmode.org/manual/Working-with-Source-Code.html">working with source code</a>. So here I present a few examples from my configuration where I think this is the case:</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Using EXWM and perspective.el on multi-monitor setup</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2022-01-03-exwm/</link>
|
||||
<pubDate>Mon, 03 Jan 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-01-03-exwm/</guid>
|
||||
<description>I wrote about Emacs and i3 integration around two months ago. Shortly after however, I decided to give EXWM another try, mainly because my largest reservation - lack of performance - seems to have been resolved by updates to the native compilation since my first attempt. Or I may have lost some sensitivity to that issue. Regardless, the second dive into EXWM thus far feels successful, and I think it&rsquo;s the right time to share some of my thoughts on the subject.</description>
|
||||
<description><p>I wrote about <a href="https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/">Emacs and i3</a> integration around two months ago. Shortly after however, I decided to give EXWM another try, mainly because my largest reservation - lack of performance - seems to have been resolved by updates to the native compilation since my first attempt. Or I may have lost some sensitivity to that issue. Regardless, the second dive into EXWM thus far feels successful, and I think it&rsquo;s the right time to share some of my thoughts on the subject.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Getting a consistent set of keybindings between i3 and Emacs</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/</link>
|
||||
<pubDate>Wed, 06 Oct 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/</guid>
|
||||
<description>Intro One advantage of EXWM for an Emacs user is that EXWM gives one set of keybindings to manage both Emacs windows and X windows. In every other WM, like my preferred i3wm, two orthogonal keymaps seem to be necessary. But, as both programs are quite customizable, I want to see whether I can replicate at least some part of the EXWM goodness in i3.
But why not just use EXWM?</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p>One advantage of EXWM for an Emacs user is that EXWM gives one set of keybindings to manage both Emacs windows and X windows. In every other WM, like my preferred <a href="https://i3wm.org">i3wm</a>, two orthogonal keymaps seem to be necessary. But, as both programs are quite customizable, I want to see whether I can replicate at least some part of the EXWM goodness in i3.</p>
<p>But why not just use EXWM? One key reason is that to my taste (and perhaps on my hardware) EXWM didn&rsquo;t feel snappy enough. Also, I really like i3&rsquo;s tree-based layout structure; I feel like it fits my workflow much better than anything else I tried, including the master/stack paradigm of <a href="https://xmonad.org/">XMonad</a>, for instance.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>My EMMS and elfeed setup</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2021-09-07-emms/</link>
|
||||
<pubDate>Wed, 08 Sep 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-09-07-emms/</guid>
|
||||
<description>Intro This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.
Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.
The respective emacs packages, elfeed and EMMS, proved somewhat tricky to set up, i.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<figure><img src="https://sqrtminusone.xyz/images/emms/emms-screenshot.png">
</figure>

<p>This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.</p>
<p>Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Replacing Jupyter Notebook with Org Mode</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2021-05-01-org-python/</link>
|
||||
<pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-05-01-org-python/</guid>
|
||||
<description>Why? Jupyter Notebook and its successor Jupyter Lab providing an interactive development environment for many programming languages are in lots of ways great pieces of software.
But while I was using the former, and then the latter, I was also an as-full-time-as-one-can-get NeoVim user. &ldquo;As one can get&rdquo; is because, of course, there is no sensible way to extend the NeoVim editing experience to the Jupyter ecosystem.
A possibility for change appeared with my discovery of Emacs not so long ago.</description>
|
||||
<description><figure><img src="https://sqrtminusone.xyz/images/org-python/org-python-screenshot.png">
</figure>

<h2 id="why">Why?</h2>
<p><a href="https://jupyter-notebook.readthedocs.io/en/stable/">Jupyter Notebook</a> and its successor <a href="https://jupyterlab.readthedocs.io/en/stable/">Jupyter Lab</a> providing an interactive development environment for many programming languages are in lots of ways great pieces of software.</p>
<p>But while I was using the former, and then the latter, I was also an as-full-time-as-one-can-get NeoVim user. &ldquo;As one can get&rdquo; is because, of course, there is no sensible way to extend the NeoVim editing experience to the Jupyter ecosystem.</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Multiple Gmail accounts & labels with Emacs</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2021-02-27-gmail/</link>
|
||||
<pubDate>Sat, 27 Feb 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-02-27-gmail/</guid>
|
||||
<description>Intro For quite some time, e-mail seemed like an anomaly in my workflow. I am a long time Gmail user, and my decade-old account has a somewhat formidable quantity of labels and filters. My messages are often assigned multiple labels, and I also like to keep only a bunch of messages in the inbox.
Although, in my opinion, Gmail web UI was and still is leagues ahead of many of its competitors and even allows keyboard-centric workflow, it&rsquo;s awkward to use with a keyboard-driven browser, and for no money on Earth I would enable browser notifications.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p>For quite some time, e-mail seemed like an anomaly in my workflow. I am a long time Gmail user, and my decade-old account has a somewhat formidable quantity of labels and filters. My messages are often assigned multiple labels, and I also like to keep only a bunch of messages in the inbox.</p>
<p>Although, in my opinion, Gmail web UI was and still is leagues ahead of many of its competitors and even allows keyboard-centric workflow, it&rsquo;s awkward to use with a keyboard-driven browser, and for no money on Earth I would enable browser notifications.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/emms/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2021-09-07-emms/</link>
|
||||
<pubDate>Wed, 08 Sep 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-09-07-emms/</guid>
|
||||
<description>Intro This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.
Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.
The respective emacs packages, elfeed and EMMS, proved somewhat tricky to set up, i.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<figure><img src="https://sqrtminusone.xyz/images/emms/emms-screenshot.png">
</figure>

<p>This is the current state of my quest to live in Emacs, at least in part of reading RSS and music.</p>
<p>Even before I lost my mind about customizing obscure keyboard-driven software, I tried Inoreader, self-hosted FreshRSS, and then newsboat from the RSS side and ncmpcpp+MPD from the audio player side. At some point, I got curious about whether I can do the same in Emacs.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/exwm/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2022-01-03-exwm/</link>
|
||||
<pubDate>Mon, 03 Jan 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-01-03-exwm/</guid>
|
||||
<description>I wrote about Emacs and i3 integration around two months ago. Shortly after however, I decided to give EXWM another try, mainly because my largest reservation - lack of performance - seems to have been resolved by updates to the native compilation since my first attempt. Or I may have lost some sensitivity to that issue. Regardless, the second dive into EXWM thus far feels successful, and I think it&rsquo;s the right time to share some of my thoughts on the subject.</description>
|
||||
<description><p>I wrote about <a href="https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/">Emacs and i3</a> integration around two months ago. Shortly after however, I decided to give EXWM another try, mainly because my largest reservation - lack of performance - seems to have been resolved by updates to the native compilation since my first attempt. Or I may have lost some sensitivity to that issue. Regardless, the second dive into EXWM thus far feels successful, and I think it&rsquo;s the right time to share some of my thoughts on the subject.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/i3wm/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/</link>
|
||||
<pubDate>Wed, 06 Oct 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-10-04-emacs-i3/</guid>
|
||||
<description>Intro One advantage of EXWM for an Emacs user is that EXWM gives one set of keybindings to manage both Emacs windows and X windows. In every other WM, like my preferred i3wm, two orthogonal keymaps seem to be necessary. But, as both programs are quite customizable, I want to see whether I can replicate at least some part of the EXWM goodness in i3.
But why not just use EXWM?</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p>One advantage of EXWM for an Emacs user is that EXWM gives one set of keybindings to manage both Emacs windows and X windows. In every other WM, like my preferred <a href="https://i3wm.org">i3wm</a>, two orthogonal keymaps seem to be necessary. But, as both programs are quite customizable, I want to see whether I can replicate at least some part of the EXWM goodness in i3.</p>
<p>But why not just use EXWM? One key reason is that to my taste (and perhaps on my hardware) EXWM didn&rsquo;t feel snappy enough. Also, I really like i3&rsquo;s tree-based layout structure; I feel like it fits my workflow much better than anything else I tried, including the master/stack paradigm of <a href="https://xmonad.org/">XMonad</a>, for instance.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/mail/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2021-02-27-gmail/</link>
|
||||
<pubDate>Sat, 27 Feb 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-02-27-gmail/</guid>
|
||||
<description>Intro For quite some time, e-mail seemed like an anomaly in my workflow. I am a long time Gmail user, and my decade-old account has a somewhat formidable quantity of labels and filters. My messages are often assigned multiple labels, and I also like to keep only a bunch of messages in the inbox.
Although, in my opinion, Gmail web UI was and still is leagues ahead of many of its competitors and even allows keyboard-centric workflow, it&rsquo;s awkward to use with a keyboard-driven browser, and for no money on Earth I would enable browser notifications.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p>For quite some time, e-mail seemed like an anomaly in my workflow. I am a long time Gmail user, and my decade-old account has a somewhat formidable quantity of labels and filters. My messages are often assigned multiple labels, and I also like to keep only a bunch of messages in the inbox.</p>
<p>Although, in my opinion, Gmail web UI was and still is leagues ahead of many of its competitors and even allows keyboard-centric workflow, it&rsquo;s awkward to use with a keyboard-driven browser, and for no money on Earth I would enable browser notifications.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/org-mode/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,14 +13,14 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2022-05-09-pdf/</link>
|
||||
<pubDate>Tue, 10 May 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-05-09-pdf/</guid>
|
||||
<description>Intro elfeed is one of the most popular Emacs packages, and it&rsquo;s also one in which I ended up investing a lot of effort. I wrote about the EMMS integration and even made a custom frontpage to my liking.
However, sites frequently limit the amount of information shipped in the RSS feed. Oftentimes the entry doesn&rsquo;t include the entire content (of which, by the way, this blog was guilty).
Also, there&rsquo;s non-textual content, of which in this post I consider YouTube subscriptions.</description>
|
||||
<description><h2 id="intro">Intro</h2>
<p><a href="https://github.com/skeeto/elfeed">elfeed</a> is one of the most popular Emacs packages, and it&rsquo;s also one in which I ended up investing a lot of effort. I wrote about the <a href="https://sqrtminusone.xyz/posts/2021-09-07-emms/">EMMS integration</a> and even made a <a href="https://github.com/SqrtMinusOne/elfeed-summary">custom frontpage</a> to my liking.</p>
<p>However, sites frequently limit the amount of information shipped in the RSS feed. Oftentimes the entry doesn&rsquo;t include the entire content (of which, by the way, this blog was guilty).</p></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>A few cases of literate configuration</title>
|
||||
<link>https://sqrtminusone.xyz/posts/2022-02-12-literate/</link>
|
||||
<pubDate>Sat, 12 Feb 2022 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2022-02-12-literate/</guid>
|
||||
<description>A post that arose from the discussion of literate configuration on the System Crafters Discord.
I am using the literate configuration strategy (based on Emacs&rsquo; Org Mode) to manage most of my configuration files. A piece of such a configuration can be as simple as an Org file, which is tangled to one or many plain-text configuration files, but it can be more.
In my opinion, a literate configuration can be more straightforward and concise than a &ldquo;normal&rdquo; one, thanks to Org Mode&rsquo;s capabilities of working with source code.</description>
|
||||
<description><p>A post that arose from the discussion of literate configuration on the <a href="https://systemcrafters.net/">System Crafters</a> Discord.</p>
<p>I am using the <a href="https://leanpub.com/lit-config">literate configuration</a> strategy (based on <a href="https://orgmode.org/">Emacs&rsquo; Org Mode</a>) to manage most of my configuration files. A piece of such a configuration can be as simple as an Org file, which is tangled to one or many plain-text configuration files, but it can be more.</p>
<p>In my opinion, a literate configuration can be more straightforward and concise than a &ldquo;normal&rdquo; one, thanks to Org Mode&rsquo;s capabilities of <a href="https://orgmode.org/manual/Working-with-Source-Code.html">working with source code</a>. So here I present a few examples from my configuration where I think this is the case:</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/org/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2021-05-01-org-python/</link>
|
||||
<pubDate>Sat, 01 May 2021 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2021-05-01-org-python/</guid>
|
||||
<description>Why? Jupyter Notebook and its successor Jupyter Lab providing an interactive development environment for many programming languages are in lots of ways great pieces of software.
But while I was using the former, and then the latter, I was also an as-full-time-as-one-can-get NeoVim user. &ldquo;As one can get&rdquo; is because, of course, there is no sensible way to extend the NeoVim editing experience to the Jupyter ecosystem.
A possibility for change appeared with my discovery of Emacs not so long ago.</description>
|
||||
<description><figure><img src="https://sqrtminusone.xyz/images/org-python/org-python-screenshot.png">
</figure>

<h2 id="why">Why?</h2>
<p><a href="https://jupyter-notebook.readthedocs.io/en/stable/">Jupyter Notebook</a> and its successor <a href="https://jupyterlab.readthedocs.io/en/stable/">Jupyter Lab</a> providing an interactive development environment for many programming languages are in lots of ways great pieces of software.</p>
<p>But while I was using the former, and then the latter, I was also an as-full-time-as-one-can-get NeoVim user. &ldquo;As one can get&rdquo; is because, of course, there is no sensible way to extend the NeoVim editing experience to the Jupyter ecosystem.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
|
|
@ -19,13 +19,6 @@
|
|||
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="https://sqrtminusone.xyz/tags/orgmode/index.xml" title="SqrtMinusOne" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||||
|
||||
</head>
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@
|
|||
<link>https://sqrtminusone.xyz/posts/2023-11-11-index/</link>
|
||||
<pubDate>Sat, 11 Nov 2023 00:00:00 +0000</pubDate>
|
||||
<guid>https://sqrtminusone.xyz/posts/2023-11-11-index/</guid>
|
||||
<description>The post describes a Johnny.Decimal-inspired filesystem structure, declared in an org file and synchronized across machines. Different folders are available on different machines.
Intro My filesystem is, shall we say, not the most orderly place.
It&rsquo;s been somewhat messy, and messy in different ways across my three machines. For instance, my laptop had work projects in ~/Code/Job, my work machine had just ~/Code, and so forth.
Strangely, I couldn&rsquo;t find and existing solution to that problem.</description>
|
||||
<description><div class="abstract">
<p>The post describes a Johnny.Decimal-inspired filesystem structure, declared in an org file and synchronized across machines. Different folders are available on different machines.</p>
</div>
<h2 id="intro">Intro</h2>
<p>My filesystem is, shall we say, not the most orderly place.</p>
<center>
<iframe src="https://emacs.ch/@sqrtminusone/110514686718545191/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="500" allowfullscreen="allowfullscreen"></iframe><script src="https://emacs.ch/embed.js" async="async"></script>
</center>
<p>It&rsquo;s been somewhat messy, and messy in different ways across my three machines. For instance, my laptop had work projects in <code>~/Code/Job</code>, my work machine had just <code>~/Code</code>, and so forth.</p></description>
|
||||
</item>
|
||||
</channel>
|
||||
</rss>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue