trying to fix

This commit is contained in:
Chris Cochrun 2022-01-03 12:41:35 -06:00
parent fa407dfeb6
commit e013d7569e
22945 changed files with 447936 additions and 0 deletions

View file

@ -0,0 +1,32 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! </p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> family for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=1+Corinthians+2%3A14&version=NIV'>1 Corinthians 2:14</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=hosea+7%3A5&version=NIV'>Hosea 7:5</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1 @@
This is Toby Sumpter with your CrossPolitic Daily News Brief for Friday, March 26, 2021. Today you will hear David Bahnsen argue that New York City is resilient, Oral Roberts University Mens Basketball is in the news, former Drag Queen Story Hour President arrested, and the 9th Circuit Federal Court says the 2nd Amendment only [&#8230;]

View file

@ -0,0 +1,36 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST:
- <a href='https://www.biblegateway.com/passage/?search=Numbers+27&version=ESV'>Numbers 27</a></p>
<p>- Video: <a href='https://www.youtube.com/watch?v=q5QEH9bH8AU'>Deuteronomy Overview</a> </p>
<p>- Join us on a trip to Israel! Find out more at <a href='https://www.mydgroup.org/israel'>mydgroup.org/israel</a>! Be sure to fill out the interest form (not a commitment) today! Well send you more info on the trip so you can decide if its a good fit for you! </p>
<p>
</p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>
<p> </p>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/dzplf-0RJDE" width="480" alt="thumbnail" title="Easily Setup Your Wacom Tablet Under Linux" /></p>The Linux Wacom tablet drivers are absolutely amazing but do require a little of configuring to get your tablet working exactly the way that it should be, luckily the process is actually fairly simple<br /><br />==========Support The Channel==========<br />► $100 Linode Credit: https://brodierobertson.xyz/linode<br />► Patreon: https://brodierobertson.xyz/patreon<br />► Paypal: https://brodierobertson.xyz/paypal<br />► Liberachat: https://brodierobertson.xyz/liberachat<br />► Amazon USA: https://brodierobertson.xyz/amazonusa<br /><br />==========Resources==========<br />Wacom Tablet Arch Wiki: https://wiki.archlinux.org/title/wacom_tablet<br />Wacom Drivers: https://github.com/linuxwacom/input-wacom<br /><br />=========Video Platforms==========<br />🎥 Odysee: https://brodierobertson.xyz/odysee<br />🎥 Podcast: https://techovertea.xyz/youtube<br />🎮 Gaming: https://brodierobertson.xyz/youtube<br /><br />==========Social Media==========<br />🎤 Discord: https://brodierobertson.xyz/discord<br />🎤 Matrix Space: https://brodierobertson.xyz/matrix<br />🐦 Twitter: https://brodierobertson.xyz/twitter<br />🌐 Mastodon: https://brodierobertson.xyz/mastodon<br />🖥️ GitHub: https://brodierobertson.xyz/github<br /><br />==========Time Stamps==========<br />0:00 Introduction<br />1:06 What It Installs<br />2:32 Usage<br />3:54 Issues<br />8:36 Want This To Be Good<br />9:53 Outro<br /><br />==========Credits==========<br />🎨 Channel Art:<br />All my art has was created by Supercozman<br />https://twitter.com/Supercozman<br />https://www.instagram.com/supercozman_draws/<br /><br />🎵 Ending music<br />Music from https://filmmusic.io<br />"Basic Implosion" by Kevin MacLeod (https://incompetech.com)<br />License: CC BY (http://creativecommons.org/licenses/by/4.0/)<br /><br />DISCLOSURE: Wherever possible I use referral links, which means if you click one of the links in this video or description and make a purchase I may receive a small commission or other compensation.<br />...<br />https://www.youtube.com/watch?v=dzplf-0RJDE

View file

@ -0,0 +1,29 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>!
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> family for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='http://thebiblerecap.com/asl'>The Bible Recap in ASL!</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/h7I_oD8U30s" width="480" alt="thumbnail" title="Live! 2021 HP Envy x360 w/ Ryzen 7 5700U - Can It Linux Unboxing?" /></p>In this live episode we unbox the HP Envy x360 w/ a dominating Ryzen 7 5700U and ask the question...can it Linux? <br /><br /><br />Hanging out with Michael Tunnell from Hardware Addicts, TWiL and DL.<br /><br /><br />DasGeek Channel is a proud member of the Destination Linux Network! Head to https://destinationlinux.network to find more amazing content! <br /><br />Support the Channel: www.dasgeekcommunity.com<br /><br />Support the channel on Patreon<br />https://www.patreon.com/dasgeek<br /><br /><br />Special thanks to my Patrons! : Bradley D, Jackie Moore, Michel V, Mike K, Scott R, Peter K, Jill Bryant, Josh, CubicleNate, Steve L, Bob A, SpazzyC, Michael C, Jeremy G, Gert B, David M, Mattias E, Sean Davis.<br /><br />Head to Digital Ocean do.co/dln for a 60 day $100 credit.<br /><br />Amazon Affiliate: Just purchase any item on Amazon using this link and you support the channel and pay the same price! https://amzn.to/2HiUNyD<br /><br />Get DasGeek Swag<br />https://signaturegraphics.store/collections/das-geek<br /><br /><br />Social:<br />Twitter: @dasgeekchannel<br />dasgeek@mastodon.social<br />Web: http://www.dasgeekcommunity.com<br />Github: https://github.com/dasgeekchannel<br /><br />Podcast: Destination Linux - http://destinationlinux.org/<br />...<br />https://www.youtube.com/watch?v=h7I_oD8U30s

View file

@ -0,0 +1,4 @@
<p>Aaron Seigo joins us to discuss the Kolab project, open sources genuine answer to Microsoft Exchange and other groupware solutions. We also discuss the Roundcube projects fundraiser & possible integration with Kolab.</p>
<p>Plus our Virtual LUG reviews Ubuntu 15.04, and we discuss whats so desktop focused about Ubuntu 15.10 & much, much more!</p><p><a href="https://jupitersignal.memberful.com/checkout?plan=52946" rel="payment">Support LINUX Unplugged</a></p>

View file

@ -0,0 +1,181 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="By Pedro Delfino" />
<title>Getting Started on Nyxt Hacking: Episode 1</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<style type="text/css">
a.sourceLine { display: inline-block; line-height: 1.25; }
a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }
a.sourceLine:empty { height: 1.2em; position: absolute; }
.sourceCode { overflow: visible; }
code.sourceCode { white-space: pre; position: relative; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
code.sourceCode { white-space: pre-wrap; }
a.sourceLine { text-indent: -1em; padding-left: 1em; }
}
pre.numberSource a.sourceLine
{ position: relative; }
pre.numberSource a.sourceLine:empty
{ position: absolute; }
pre.numberSource a.sourceLine::before
{ content: attr(data-line-number);
position: absolute; left: -5em; text-align: right; vertical-align: baseline;
border: none; pointer-events: all;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
a.sourceLine::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">Getting Started on Nyxt Hacking: Episode 1</h1>
<p class="author">By Pedro Delfino</p>
</header>
<h1 id="the-series">The series</h1>
<p>Hacking is an art and Nyxt hacking is one of its kind. Nyxt could be defined as Minecraft for web browsing in the sense that it is an open world. Being a fully computable environment, the constraints are much more on the hacker's creativity than in the system itself.</p>
<p>Some Nyxt users have already done impressive work. For instance, the <a href="https://github.com/atlas-engineer/nyxt/blob/master/documents/EXTENSIONS.org">extensions</a> and config files exposèd in <a href="https://discourse.atlas.engineer/t/casually-showing-off-my-config/74">discourse's Configuration Exposè</a>.</p>
<p>Unfortunately, not all users are that independent and knowledgeable. Thus, this article has a beginner friendly approach. It assumes zero to little knowledge in the Nyxt universe, which involves the Nyxt source code itself, Common Lisp, SBCL, and Emacs. However, it does assume prior knowledge of Nyxt as a Graphical User Interface (GUI) user. Hence, the reader needs to have basic understanding on how to execute commands and navigate using Nyxt.</p>
<p>In case you haven't reached that level, it is easy to catch-up. Start Nyxt, look for the &quot;Tutorial&quot; button on the starting page. Or click on the Execute icon (𝄘) and type &quot;Tutorial&quot;. Then, read the tutorial, especially the first half.</p>
<p>This is the first article of a five component series. The debutant writing describes a bookmarklet which is going to be incorporated to the system using the REPL built-in on Nyxt. In the second episode, the same bookmarklet is going to be built but using SBCL straight from the command line. In the third article, again, the same bookmarklet will be added but using Emacs powered with Slime and Vim powered with Vlime. The objective of the first three articles is to isolate some variables and introduce newcommers to the multiple ways and environments available to tweak Nyxt.</p>
<p>In the four article of the series, a command (instead of bookmarklet-command) will be constructed to achieve the same result of the bookmarklet. This version will be more <em>lispy</em> than the previous <em>javascripty</em> ones. And, finally, in the fifth and last article, a mode will be made to achieve the same goal intended in previous articles.</p>
<p>All the five constructions described in the articles will be under the same challenge: hacking YouTube videos so that they can be played at a faster speed than what is allowed by YouTube's GUI.</p>
<p>Why using YouTube as a guinea pig? Well, firstly, because it fulfills the definition of what is a <a href="http://www.paulgraham.com/gba.html">hack</a>:</p>
<blockquote>
<p>It's called a hack when you do something in an ugly way. But when you do something so clever that you somehow beat the system, that's also called a hack. Paul Graham</p>
</blockquote>
<p>Secondly, because many new Nyxt users have problems loading videos. This is so common that the Manual has Troubleshooting entry about it. Thus, let's show that it is indeed possible to watch YouTube videos in Nyxt and even hack them. Thirdly, because YouTube is a strong platform and we need more Davids beating up big tech Goliaths from the web. Hopefully, this article shows Nyxt could be a sling! Last but not least, because this was my own very <a href="https://discourse.atlas.engineer/t/almost-hacking-youtube-videos-speed-on-nyxt/117">first</a> hack as a Nyxt user :)</p>
<h1 id="bookmarklets-are-historical-hacks">Bookmarklets are historical hacks</h1>
<p>The funny part about a bookmarklet to hack Youtube is that bookmarklets themselves look like historical hacks. According to <a href="https://en.wikipedia.org/wiki/Bookmarklet">Wikipedia</a>, bookmarklets are a bookmark stored in a web browser that contains JavaScript commands adding new features to the browser. Hence, bookmarklets are JavaScripts code stored as either the URL of a bookmark or as a hyperlink on a web page. For this tutorial, the former application is the case.</p>
<p>Regardless of whether bookmarklet utilities are stored as bookmarks or hyperlinks, they add &quot;one-click&quot; functions to a browser or web page. When executed, a bookmarklet performs one of a wide variety of operations, such as running a search query or extracting data from a table. For example, clicking on a bookmarklet after selecting text on a webpage could run a Internet search on the selected text and display a search engine results page.</p>
<h1 id="time-for-action">Time for action</h1>
<p>Now, it is time to really start the fun. Follow the instructions below:</p>
<ol>
<li><p>Load a YouTube video such as this <a href="https://www.youtube.com/watch?v=SVteSEjKytw">one</a>. To do that just <code>execute-command</code>, call <code>set-url</code>. Then insert the string &quot;<a href="https://www.youtube.com/watch?v=SVteSEjKytw" class="uri">https://www.youtube.com/watch?v=SVteSEjKytw</a>&quot; and press &quot;Enter&quot;.</p></li>
<li><p>Notice that Youtube's webpage shows possibles speeds of reproduction on the <em>Settings</em>. The <em>playback speeds</em> available are: 0.25, 0.5, 0.75, Normal, 1.25, 1.5, 1.75, and 2.0. The default is <em>Normal</em>.</p></li>
<li><p>Open the inspector. To do that <code>execute-command</code>, call <code>open-inspector</code>. Click on the <em>Console</em> button.</p></li>
<li><p>Now, insert this code snippet of Javascript in the inspector's <em>Console</em>:</p></li>
</ol>
<div class="sourceCode" id="cb1"><pre class="sourceCode javascript"><code class="sourceCode javascript"><a class="sourceLine" id="cb1-1" data-line-number="1">(<span class="kw">function</span>() <span class="op">{</span></a>
<a class="sourceLine" id="cb1-2" data-line-number="2"> <span class="kw">const</span> rate <span class="op">=</span> <span class="at">prompt</span>(<span class="st">&#39;Set the new playback rate&#39;</span><span class="op">,</span> <span class="fl">2.5</span>)<span class="op">;</span></a>
<a class="sourceLine" id="cb1-3" data-line-number="3"> <span class="cf">if</span> (rate <span class="op">!=</span> <span class="kw">null</span>) <span class="op">{</span></a>
<a class="sourceLine" id="cb1-4" data-line-number="4"> <span class="kw">const</span> video <span class="op">=</span></a>
<a class="sourceLine" id="cb1-5" data-line-number="5"> <span class="va">document</span>.<span class="at">getElementsByTagName</span>(<span class="st">&#39;video&#39;</span>)[<span class="dv">0</span>]<span class="op">;</span></a>
<a class="sourceLine" id="cb1-6" data-line-number="6"> <span class="va">video</span>.<span class="at">playbackRate</span> <span class="op">=</span> <span class="at">parseFloat</span>(rate)<span class="op">;</span></a>
<a class="sourceLine" id="cb1-7" data-line-number="7"> <span class="op">}}</span>)()<span class="op">;</span></a></code></pre></div>
<p>This JS code is a self executing anonymous function that, first, prompts the user for data (a new playback rate) and then uses the answer to set the new playback rate for the video.</p>
<ol>
<li><p>Do some tests with numbers. For instance, test inputting the (decimal) number of the beast: 0.666. After pressing enter and playing the video, you will notice the youtuber is speaking slower than usual.</p></li>
<li><p>Now, let's get into the real transgression. Let's play videos in a faster speed than the one allowed by YouTube. Thus, try inputting values beyond 2, such as 2.5, 3, or 4. For some videos, 4 is the final threshold due to audio quality. After this value, the sound is muted but the video will be running at faster speeds. In other videos, such as the example we are using, it is possible to use higher values, such as 10x. But, unless you have super powers, it is pretty impossible to understand at this rate.</p></li>
</ol>
<p>As you probably realized, you have just hacked YouTube's UI. Now, you have a more granular speed control and you have new upper bound limits.</p>
<h1 id="the-nyxt-repl">The Nyxt REPL</h1>
<p>Nyxt is a fully computable environment. Thus, it includes a Common Lisp REPL (Read Eval Print Loop) which is a powerful tool behaving as as a &quot;shell language&quot; and the cornerstone of <a href="https://en.wikipedia.org/wiki/Interactive_programming">interactive programming</a>.</p>
<p>In the REPL, it is possible to do arithmetic operations such as</p>
<div class="sourceCode" id="cb2" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb2-1" data-line-number="1"><span class="op">&gt;</span> (<span class="op">+</span> <span class="dv">1</span> <span class="dv">2</span>)</a>
<a class="sourceLine" id="cb2-2" data-line-number="2"><span class="dv">3</span></a></code></pre></div>
<p><img src="../static/image/article/getting-started-nyxt-hacking-episode-1-nyxt-repl-math.png" /></p>
<p>Moreover, Nyxt's GUI REPL has all of Nyxt's APIs available for client use. Hence, beyond just doing arithmetic functions, users can also change the name of commands. Or create new ones!</p>
<p>In order to use the Common Lisp REPL with Nyxt's files loaded, press <code>execute-command</code> and choose <code>lisp-repl</code>. Try inserting some arithmetic expressions. And remember that Lisp uses <a href="https://en.wikipedia.org/wiki/Polish_notation">Polish Notation</a>. It feels a bit weird, but it is quite handy because you do not need to repeat operators. For instance, <code>(1+2+3+4+5)</code> in most programming languages becomes <code>(+ 1 2 3 4 5)</code> in polish notation, among other benefits.</p>
<p>For this tutorial, we are going to convert the Javascript code mentioned above into a bookmarklet command. Consequently, we will need a macro called <code>define-bookmarklet-command</code>. This macro receives three arguments: (i) the name of the bookmarklet; (ii) a string with its documentation; and (iii) the Javascript code.</p>
<p>Specifically, this means:</p>
<div class="sourceCode" id="cb3" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb3-1" data-line-number="1"></a>
<a class="sourceLine" id="cb3-2" data-line-number="2">(define-bookmarklet-command hack-youtube-speed </a>
<a class="sourceLine" id="cb3-3" data-line-number="3"> <span class="st">&quot;Tweak YouTube videos&#39; speed beyond the UI options and limits.&quot;</span> </a>
<a class="sourceLine" id="cb3-4" data-line-number="4"> <span class="st">&quot;(function() {</span></a>
<a class="sourceLine" id="cb3-5" data-line-number="5"><span class="st"> const rate = prompt(&#39;Set the new playback rate&#39;, 2.5);</span></a>
<a class="sourceLine" id="cb3-6" data-line-number="6"><span class="st"> if (rate != null) {</span></a>
<a class="sourceLine" id="cb3-7" data-line-number="7"><span class="st"> const video =</span></a>
<a class="sourceLine" id="cb3-8" data-line-number="8"><span class="st"> document.getElementsByTagName(&#39;video&#39;)[0];</span></a>
<a class="sourceLine" id="cb3-9" data-line-number="9"><span class="st"> video.playbackRate = parseFloat(rate);</span></a>
<a class="sourceLine" id="cb3-10" data-line-number="10"><span class="st"> }})();&quot;</span>)</a>
<a class="sourceLine" id="cb3-11" data-line-number="11"></a></code></pre></div>
<p>Decomposing what was written, <code>define-bookmarklet-command</code> is a macro being invoked. The first argument is <code>hack-youtube-speed</code> which is the name of our new command. Next, there is a documentation string explaining what the command does. Finally, the Javascript code is passed as a string argument to the macro function call.</p>
<p>It must be highlighted that macros are a powerful and famous part of Lisp languages. But it is a complex topic, since there are whole <a href="https://en.wikipedia.org/wiki/On_Lisp">books</a> only about it. What you need to know is that macros extend the syntax of the Common Lisp language.</p>
<p>Now, the <em>grand finale</em> is inserting this new bookmarlet command in Nyxt. To do that, you need to evaluate the expression in the REPL.</p>
<p><img src="../static/image/article/getting-started-nyxt-hacking-episode-1-nyxt-repl-bookmarklet.png" /></p>
<p>After being evalued, it becomes part of the Lisp image running Nyxt. Consequently, the new command will be listed as one of the options available to be executed. You can find it pressing <code>execute-command</code> and searching for <code>hack-youtube-speed</code>.</p>
<p>Summing up, instead of opening the console, writing the pure 5 lines of Javascript snippet, et cetera, you can just execute the newborn command and choose the preferred speed. Congratulations, you have just extended Nyxt's commands a little bit! :)</p>
<h1 id="make-it-persistent-across-sessions">Make it persistent across sessions</h1>
<p>You learned how to test JS code on the console and wrap it into a new command for Nyxt. However, this new command is not persistent across sessions yet. Therefore, if you close Nyxt and re-open it, you will not find the command created among the options.</p>
<p>In order to fix this, you should insert the new bookmarklet command definition in your init files. Having a file with definitions about your configurations is a common approach in classic text editors <a href="https://en.wikipedia.org/wiki/Vim_(text_editor)">Vim</a> and <a href="https://en.wikipedia.org/wiki/Emacs">Emacs</a>, great inspirations for Nyxt.</p>
<p>Your Nyxt init file will probably be in a folder like <code>$HOME/.config/nyxt</code>. But you do not need to guess or even find it manually. Nyxt itself is capable of identifying precisely where the file is.</p>
<p>Using the Nyxt REPL again, evaluate the following expression:</p>
<pre><code>&gt; (expand-path *init-file-path*)
</code></pre>
<p>In my case, the REPL returns: <code>/home/pedro/.config/nyxt/init.lisp</code>. Your result will be slightly different. Decomposing the s-expression evaluated by the REPL, <code>expand-path</code> is a function being called with <code>*init-file-path*</code> being the argument received by the function. In Common Lisp notation, the use of asterisks embracing words (such as <code>*word*</code>) is a convention to indicate global variables.</p>
<p>After finding the file location, you need to edit it to append the newly created command. You can use whatever editor you want for this action. But, guess what? You can use Nyxt :)</p>
<p>As said before, it is a fully computable environment. Thus, just execute command <code>open-new-editor-with-file</code>, add the bookmarklet command definition discussed before to the file:</p>
<div class="sourceCode" id="cb5" data-org-language="lisp"><pre class="sourceCode commonlisp"><code class="sourceCode commonlisp"><a class="sourceLine" id="cb5-1" data-line-number="1">(define-bookmarklet-command hack-youtube-speed </a>
<a class="sourceLine" id="cb5-2" data-line-number="2"> <span class="st">&quot;Tweak YouTube videos&#39; speed beyond the UI options and limits.&quot;</span> </a>
<a class="sourceLine" id="cb5-3" data-line-number="3"> <span class="st">&quot;(function() {</span></a>
<a class="sourceLine" id="cb5-4" data-line-number="4"><span class="st"> const rate = prompt(&#39;Set the new playback rate&#39;, 2.5);</span></a>
<a class="sourceLine" id="cb5-5" data-line-number="5"><span class="st"> if (rate != null) {</span></a>
<a class="sourceLine" id="cb5-6" data-line-number="6"><span class="st"> const video =</span></a>
<a class="sourceLine" id="cb5-7" data-line-number="7"><span class="st"> document.getElementsByTagName(&#39;video&#39;)[0];</span></a>
<a class="sourceLine" id="cb5-8" data-line-number="8"><span class="st"> video.playbackRate = parseFloat(rate);</span></a>
<a class="sourceLine" id="cb5-9" data-line-number="9"><span class="st"> }})();&quot;</span>)</a></code></pre></div>
<p>Then, save the changes with <code>editor-write-file</code>. Now, close Nyxt and re-start it. Finally, execute command and start typing <code>hack...</code>. Soon, you will find the newly created command. Voialà, your creation is now persistent across sessions! This is possible because every time Nyxt starts, the init file is evaluated with the definitions being incorporated into the Nyxt Lisp image.</p>
<p>Actually, tweaking with the init file is so strongly tied to the Nyxt user experience that there is even a command for this purpose: <code>edit-user-file-with-external-editor</code>. This will open the Nyxt init file using your preferred editor. This information was postponed so that another pratical example of interaction with the REPL could be taught via the evaluation of <code>(expand-path *init-file-path*)</code>.</p>
<p>Exceptionally, in case something does not work with <code>edit-user-file-with-external-editor</code>, you can simply open your favorite editor and change the <code>init</code> file.</p>
<h1 id="the-next-episode">The next episode</h1>
<p>In the next episode of the series, we are going to have a lower level approach, tweaking to do exactly the same but in a different environment, using the command line interface running the SBCL prompt. Stay tunned and may the power of Nyxt be with you!</p>
<h1 id="disclaimer">Disclaimer</h1>
<p>There are multiple ways to do certain things in Nyxt and to use certain tools. To make things simple, this will be an opinionated series of articles aiming for beginner friendliness. It is a jungle trail, but you can always go into the wild.</p>
<p>Emacs is a particularly sensitive topic. Currently, most Nyxt hackers end up using Emacs (or Vim). However, Emacs has a steep learning curve. Thus, the series will offer explanations with and without Emacs. For now, if you want to become a serious Nyxt hacker, take Emacs as your main tool. Hopefully, in the future, Nyxt will offer a tailor-made embedded Lisp REPL and editor.</p>
</body>
</html>

View file

@ -0,0 +1,18 @@
<p>Raw link: <a href="https://www.youtube.com/watch?v=g7iF11qamh8">https://www.youtube.com/watch?v=g7iF11qamh8</a></p>
<p>In this video I showcase the Emacs front-end to the <code>notmuch</code> program.
Notmuch is a tool that indexes and searches through a local maildir
directory, while its Emacs interface is a powerful tool for handling
email correspondence, mailing lists, etc.</p>
<p>Notmuch only indexes and searches mail. To actually fetch and send mail
you need other programs. I document everything at length in my dotemacs
and I also share my exact configurations for all those tools:
<a href="https://protesilaos.com/emacs/dotemacs">https://protesilaos.com/emacs/dotemacs</a>.</p>
<p>Everything is part of my dotfiles repository:
<a href="https://gitlab.com/protesilaos/dotfiles">https://gitlab.com/protesilaos/dotfiles</a>.</p>

View file

@ -0,0 +1 @@
<table> <tr><td> <a href="https://www.reddit.com/r/unixporn/comments/qywcbh/gnome_improved_popos_gnome_rice_macos_flavoured/"> <img src="https://preview.redd.it/y62ydn3dny081.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=e0652d664821834ad39fe0995df343f0daff143d" alt="[Gnome] Improved PopOs gnome rice (MacOS flavoured) Suggestions appreciated ^^" title="[Gnome] Improved PopOs gnome rice (MacOS flavoured) Suggestions appreciated ^^" /> </a> </td><td> &#32; submitted by &#32; <a href="https://www.reddit.com/user/edgardiez777"> /u/edgardiez777 </a> <br/> <span><a href="https://i.redd.it/y62ydn3dny081.png">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/unixporn/comments/qywcbh/gnome_improved_popos_gnome_rice_macos_flavoured/">[comments]</a></span> </td></tr></table>

View file

@ -0,0 +1 @@
<p>Jesus is our priest, our atoning sacrificeand our brother? In this episode, join Tim, Jon, and special guest the Rev. Amy Peeler, Ph.D., as they discuss the book of Hebrews and how the many characteristics of God found in this epistle set him apart as wholly other and also form our identities as his followers.</p><p><a href="https://bibleproject.com/podcasts/the-bible-project-podcast/">View full show notes from this episode →</a></p><p>Timestamps </p><ul><li>Part one (0:00-13:15)</li><li>Part two (13:15-28:20)</li><li>Part three (28:20-38:30)</li><li>Part four (38:30-51:30)</li><li>Part five (51:30-end)</li></ul><p>Referenced Resources</p><ul><li>Interested in more? Check out <a href="https://bibleproject.com/tim-mackie/">Tims library here.</a></li><li>Amy L. B. Peeler, <i>You Are My Son: The Family of God in the Epistle to the Hebrews</i></li><li>Amy L. B. Peeler and Patrick Gray, <i>Hebrews: An Introduction and Study Guide</i></li><li><i>Madison N. Pierce, Divine Discourse in the Epistle to the Hebrews: The Recontextualization of Spoken Quotations of Scripture</i></li></ul><p>Show Music </p><ul><li>“Defender (Instrumental)” by TENTS</li><li>“Into the Past” by CYGN</li><li>“Cycles” by SwuM</li><li>“Surrender” by Pilgrim</li></ul><p>Show produced by Dan Gummel and Cooper Peltz. Show notes by Lindsey Ponder. </p><p>Powered and distributed by Simplecast.</p>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/KD-B3zwyV5I" width="480" alt="thumbnail" title="Myth as Science and Prehistoric Knowledge: Hamlet's Mill" /></p>Known history is less than 1% of the time humans have inhabited earth, and thus most of our past survives only in the partial evidence of myth, genetics and badly decayed archaeological remains. In particular, mythology is not just a collection of arbitrary stories, but as the authors of Hamlet's Mill argue, it is a long-lost theoretical language used to store astronomical and scientific knowledge.<br /><br /> While we all know that myth can store relevant information in a memorable format, it can also embed very specific details of a preexisting system of knowledge also attested in archaeoastronomy, even in well-known sites like Stonehenge, the "neolithic calculator" which shows astronomical knowledge far more precise than that of any average person of today.<br /><br /> The reason the earliest philosophical and religious mythology seems absurd or opaque to us is partially because it is speaking in a jargon which has been lost, like alchemy or primeval sciences. In the right context, we can see a long tradition of knowledge preserved from at least the Stone Age.<br /><br />Correction: I mentioned that an Indian Vedic Nakshatra was analogous to a lunar phase, but this isn't accurate (I was adlibbing). It is a region of the sky the moon transits through.<br /><br />I also when talking about Stonehenge said that 56 divided by 3 is about ~2.9. Lol. Obviously mispoke. I meant 56 divided by 19.<br /><br />0:00:00 Issuing and Extension on Human Prehistory<br />0:02:24 An Argument from Plausibility for R*ddit Soyentists<br />0:05:17 Constant Emergence of Civilization<br />0:06:31 Myth as the Science of Prehistory<br />0:07:44 I hate Hamlet's Mill.<br />0:10:12 Which came first: the Planets or the Gods?<br />0:11:50 Astronomical Myths in India and the Vedic Tradition<br />0:15:28 On Al-Biruni and his bad pronunciation<br />0:18:00 Mythology as technical language<br />0:20:40 Hamlet's Mill and the Precession of the Equinox<br />0:23:15 Hamlet and his story and Cosmic Mill<br />0:27:15 Hyperdiffusionism<br />0:30:24 Donations https://donate.notrelated.xyz<br />0:31:21 On podcast length and density again<br />0:33:15 Why .ogg instead of .mp3?<br />0:36:08 Thor Heyerdahl<br />0:38:40 The Polynesian discovery of America, physical and genetic evidence<br />0:43:16 Aboriginal Australians discover America in prehistory.<br />0:50:20 On Denisovans and Homo erectus<br />0:51:55 Diversion on Solutreans in Europe<br />0:53:50 On alchemy and technical language<br />0:56:19 Hipparchus and Babylonian astronomy<br />0:57:25 Ancient Memes we use every day<br />0:59:50 How many degrees are in a circle?<br />1:01:20 Babylonian Math https://www.youtube.com/playlist?list=PLIljB45xT85CdeBmQZ2QiCEnPQn5KQ6ov<br />1:03:51 Full development of science in prehistory<br />1:04:25 Panini's Ashtadhyayi and its deductive predecessors<br />1:06:52 The Memory Code by Lynne Kelly<br />1:08:41 The Cosmos and Ancient Astronomy<br />1:09:49 Stonehenge as a Neolithic Calculator<br />1:12:<br />...<br />https://www.youtube.com/watch?v=KD-B3zwyV5I

View file

@ -0,0 +1,4 @@
<p>Remotely bricking Android devices, the new Plasma is looking great, first hands on with the new XPS 13 Sputnik, more btrfs woes & hacking Popeys system.</p>
<p>Plus Kernel.orgs big change, building your own local Steam repository & more!</p><p><a href="https://jupitersignal.memberful.com/checkout?plan=52946" rel="payment">Support LINUX Unplugged</a></p>

View file

@ -0,0 +1,39 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
</p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=Exodus+1&version=ESV'>Exodus 1</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=2+Chronicles+30&version=ESV'>2 Chronicles 30</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=matthew+8%3A28-34&version=ESV'>Matthew 8:28-34</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=matthew+6%3A26&version=ESV'>Matthew 6:26</a></p>
<p>- <a href='https://www.biblegateway.com/passage/?search=isaiah+42%3A3&version=ESV'>Isaiah 42:3</a></p>
<p>- Want Tara-Leigh to speak at your event? Click <a href='https://www.taraleighcobble.com/speaking'>here</a> for more info! </p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1,17 @@
<p>What does it mean that humans are created in the image of God? In this episode, the guys discuss the biblical theme of the image of God and its implications for Jesus followers. As humans, we bear the image of God, but what is the purpose of this for uswhat is the purpose for God? Creating images of gods was a fairly familiar concept in the ancient world, but representing the image of God, not through a statue or idol but through your very being, has profound significance.</p>
<p>In the first part of the episode (01:31-13:58), the guys talk about Genesis 1. This passage tells us that humans were created in Gods image and then given the task to rule over creation. Compared to the Babylonian creation myth, the biblical story of creation gives a worldview and social order that is pretty unique.</p>
<p>In the second part of the episode (14:14-26:10), Tim and Jon talk about the purpose behind God creating humans in his image. After God creates Adam and Eve, he tasks them with subduing creation? What does this mean? How should we be “subduing” Gods creation?</p>
<p>In the final part of the episode (26:26-44:50), the guys talk about the ancient context of creating images of gods. What were images of gods in the ancient world? Statues or idols were viewed as a special connection to the god they represented. This is true of humans too. Humans are the realization of Gods presencehis temple on earth. Gods rule here on earth is not through elite kings, it is through humans multiplying, gardening, and making neighborhoods.</p>
<p>Video:<br />
This episode is designed to accompany our video called, &quot;Image of God.&quot; You can view it on our youtube channel here: https://www.youtube.com/watch?v=YbipxLDtY8c&amp;t=2s</p>
<p>References:<br />
The Babylonian Creation Story (Enuma elish) from Grand Valley State University<br />
http://faculty.gvsu.edu/websterm/Enuma_Elish.html</p>
<p>The Historical Roots of Our Ecological Crisis by Lynn White, Jr.<br />
https://www.uvm.edu/~gflomenh/ENV-NGO-PA395/articles/Lynn-White.pdf</p>
<p>Scripture References:<br />
Genesis 1-2</p>
<p>Show Music:<br />
Defender Instrumental by Rosasharn Music<br />
Blue Skies by Unwritten Stories<br />
Flooded Meadows by Unwritten Stories</p>

View file

@ -0,0 +1 @@
<!-- SC_OFF --><div class="md"><p>I&#39;m trying to use <a href="https://github.com/wandersoncferreira/code-review">wandersoncferreira/code-review</a> to do GitHub code reviews from Emacs. As a review author, I&#39;d like to reply to comments reviewers have made. If I &lt;RET&gt; on such a comment in the *Code Review* buffer, I get a new buffer where I can write my own comment. I do C-c C-c when I&#39;m done. My comments then shows up in the *Code Review* buffer. But how do I submit my comments to GitHub. I have tried a number of M-x calls but non of them is working for me. How do I submit my comment replies? I really like the package by the way, It&#39;s great to be able to do code reviews from inside Emacs.</p> </div><!-- SC_ON --> &#32; submitted by &#32; <a href="https://www.reddit.com/user/mickesp"> /u/mickesp </a> <br/> <span><a href="https://www.reddit.com/r/emacs/comments/r5krcy/reply_to_comments_in_code_review_using/">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/emacs/comments/r5krcy/reply_to_comments_in_code_review_using/">[comments]</a></span>

View file

@ -0,0 +1,31 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=numbers+15%3A30-31&version=ESV'>Numbers 15:30-31</a> </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=Genesis+30%3A1&version=ESV'>Genesis 30:1</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1,54 @@
<p>On this weeks episode of DLN Xtend we talk about choice and how users come to make the decisions they do in their hardware and software.</p>
<p>00:00 Introductions<br>
09:04 Jason&#39;s Back<br>
15:37 It&#39;s alright to use Nano<br>
20:20 Ideas for an old Computer<br>
25:18 Host Related Interest<br>
41:02 Wrap Up</p>
<p>What Matt has been listening too (from Introductions)<br>
-<a href="https://ff7.ocremix.org" rel="nofollow">https://ff7.ocremix.org</a> (Son of Chaos Favorite song)</p>
<p>Linux for Everyone<br>
Jasons first podcast in a while <br>
-<a href="https://discourse.destinationlinux.network/t/episode-37-legionnaire/2394" rel="nofollow">https://discourse.destinationlinux.network/t/episode-37-legionnaire/2394</a><br>
-<a href="https://www.youtube.com/watch?v=g3o1s4FIIFs" rel="nofollow">https://www.youtube.com/watch?v=g3o1s4FIIFs</a> coreboot **</p>
<p>It&#39;s alright to use Nano<br>
-<a href="https://destinationlinux.org/episode-183/" rel="nofollow">https://destinationlinux.org/episode-183/</a></p>
<p>Ideas for an old Computer (community topic)<br>
-<a href="https://discourse.destinationlinux.network/t/ideas-for-old-computer/2311" rel="nofollow">https://discourse.destinationlinux.network/t/ideas-for-old-computer/2311</a></p>
<p>Nate </p>
<ul>
<li>Fusion 360 on Linux</li>
</ul>
<p>Wendy- Adventures in RawTherapee</p>
<ul>
<li><a href="http://www.rawtherapee.com" rel="nofollow">www.rawtherapee.com</a></li>
</ul>
<p>Matt<br>
-Elive - <a href="https://www.elivecd.org" rel="nofollow">https://www.elivecd.org</a><br>
-Game- Blades of Time -<a href="https://store.steampowered.com/app/208670/Blades_of_Time/" rel="nofollow">https://store.steampowered.com/app/208670/Blades_of_Time/</a></p>
<p>Wrap Up</p>
<p>Join us in the DLN Community:<br>
Discourse: <a href="https://discourse.destinationlinux.network/" rel="nofollow">https://discourse.destinationlinux.network/</a><br>
Telegram: <a href="https://destinationlinux.org/telegram" rel="nofollow">https://destinationlinux.org/telegram</a><br>
Mumble: <a href="https://destinationlinux.network/mumble/" rel="nofollow">https://destinationlinux.network/mumble/</a><br>
Discord: <a href="https://destinationlinux.org/discord" rel="nofollow">https://destinationlinux.org/discord</a> servers to continue the discussion!</p>
<p>Contact info<br>
Matt (Twitter @MattDLN)<br>
Wendy (<a href="https://dlnxtend.com/wendy" rel="nofollow">https://dlnxtend.com/wendy</a>) (Instagram @Linux_and_Lifts)<br>
Nate (cubiclenate.com)</p>
<p>YouTube Version: <a href="https://youtu.be/NsgLLoZr8SU" rel="nofollow">https://youtu.be/NsgLLoZr8SU</a></p>

View file

@ -0,0 +1,33 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
</p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=Exodus+20&version=ESV'>Exodus 20</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>
<p> </p>

View file

@ -0,0 +1 @@
Post Talk Conversation w/ Sheriff Wheeler at the FLF Rally 

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/wps1eLyXlzc" width="480" alt="thumbnail" title="My New Just Works™ Linux Distro (its Artix btw)" /></p>Why I switched to Artix Linux, because it Just Works™<br /><br />₿💰💵💲Help Support the Channel by Donating Crypto💲💵💰₿<br /><br />Monero<br />45F2bNHVcRzXVBsvZ5giyvKGAgm6LFhMsjUUVPTEtdgJJ5SNyxzSNUmFSBR5qCCWLpjiUjYMkmZoX9b3cChNjvxR7kvh436<br /><br />Bitcoin<br />3MMKHXPQrGHEsmdHaAGD59FWhKFGeUsAxV<br /><br />Ethereum<br />0xeA4DA3F9BAb091Eb86921CA6E41712438f4E5079<br /><br />Litecoin<br />MBfrxLJMuw26hbVi2MjCVDFkkExz8rYvUF<br /><br />Dash<br />Xh9PXPEy5RoLJgFDGYCDjrbXdjshMaYerz<br /><br />Zcash<br />t1aWtU5SBpxuUWBSwDKy4gTkT2T1ZwtFvrr<br /><br />Chainlink<br />0x0f7f21D267d2C9dbae17fd8c20012eFEA3678F14<br /><br />Bitcoin Cash<br />qz2st00dtu9e79zrq5wshsgaxsjw299n7c69th8ryp<br /><br />Etherum Classic<br />0xeA641e59913960f578ad39A6B4d02051A5556BfC<br /><br />USD Coin<br />0x0B045f743A693b225630862a3464B52fefE79FdB<br /><br />Subscribe to my YouTube channel http://goo.gl/9U10Wz<br />and be sure to click that notification bell so you know when new videos are released.<br />...<br />https://www.youtube.com/watch?v=wps1eLyXlzc

View file

@ -0,0 +1,4 @@
<p>If youre like me, you <i>hate</i> dealing with text outside of Emacs. Even those of us who spend as much time as we can inside Emacs have to interact with other applications. In my case, thats mostly Safari. The problem with Safari is that its architecture doesnt allow extensions that will call Emacs to edit text fields the way, say, Firefox does.</p>
<p>MacOS, of course, recognizes many of the Emacs keybindings but you can do much better. For many years, Ive used the operating systems ability to assign keys to editing functions to <a href="http://irreal.org/blog/?p=259">install a fairly comprehensive set of Emacs editing keybindings</a> but while that helps with muscle memory, its not really like editing with Emacs. Ive long wished for a way of popping into Emacs to edit the text fields from other apps.</p>
<p>Now, happily, my wish has been answered. Take a look at <a href="https://www.youtube.com/watch?v=jYUKYpXL6rI">this video</a> by dmgerman that demonstrates his <a href="https://github.com/dmgerman/editWithEmacs.spoon">Edit with emacs Everywhere</a> package. It provides just what youd want: if youre in any text field in any Mac application, you can press a key sequence to put up an Emacs buffer in which you can edit the text in the field and then return the edited text to the calling app. The important thing here is that youre not just using Emacs keybindings but using Emacs itself with all its power. Perfect!</p>
<p>The package depends on <a href="https://www.hammerspoon.org/">Hammerspoon</a> to mediate with the OS. Its easy to install and, of course, is more generally useful but even if it werent, giving us the ability to edit <i>all</i> text fields with Emacs is worth the price of admission.</p>

View file

@ -0,0 +1,2 @@
<p>We take a look at some of the coolest technologies coming out of the Plasma desktop &amp; finally a open source router you and your family can use. Then we share some of our favorite ncurses terminal based applications, you might just be surprised at how modern these terminal apps are!</p><p><a href="https://jupitersignal.memberful.com/checkout?plan=52946" rel="payment">Support LINUX Unplugged</a></p>

View file

@ -0,0 +1,4 @@
<p>Brent sits down with Peter Adams, professional photographer and former founder and CTO of several internet-technology startups in New York and Silicon Valley. We explore his photography project &quot;Faces of Open Source&quot;, his history in the dot-com bubble era, how he came to love open source, and more.</p>
<p>Brunch with Brent: Peter Adams Part 2 comes out this Friday.</p><p>Special Guest: Peter Adams.</p><p>Links:</p><ul><li><a href="http://www.facesofopensource.com/" title="Faces of Open Source" rel="nofollow">Faces of Open Source</a></li><li><a href="http://www.peteradamsphoto.com/" title="Peter Adams Photography" rel="nofollow">Peter Adams Photography</a></li><li><a href="https://conferences.oreilly.com/oscon/oscon-or" title="OSCON - Open Source Software Conference, Portland OR" rel="nofollow">OSCON - Open Source Software Conference, Portland OR</a></li><li><a href="https://www.icp.org/" title="International Center of Photography, New York" rel="nofollow">International Center of Photography, New York</a></li></ul>

View file

@ -0,0 +1 @@
<p><img src="https://thumbnails.lbry.com/2RZ3h1y-EPE" width="480" alt="thumbnail" title="Floating Applets: The Making Of (Devlog!)" /></p>Stay in the loop: https://t.me/veggeroblog<br /><br /><br /><br />If you want to help me make these videos:<br />Patreon: https://www.patreon.com/niccolove<br />Liberapay: https://liberapay.com/niccolove<br />Paypal: https://paypal.me/niccolove<br /><br />My website is https://niccolo.venerandi.com and if you want to contact me, my telegram handle is [at] veggero.<br /><br />Background music by:<br />After The Fall - https://www.youtube.com/channel/UCGQErWWbH15OMutnpM2vW7w<br />KaizanBlu - https://www.youtube.com/channel/UCUtxQO1jg3bJcRjBWnYAzmw<br />Low FM - https://www.youtube.com/channel/UC831upHpo4t748vRdHSWDmA<br />Idyllic - https://www.youtube.com/watch?v=8QgbdivnDDs&t=92s<br />Evol - https://www.youtube.com/watch?v=F-dDQmDVNzk&t=4s<br />...<br />https://www.youtube.com/watch?v=2RZ3h1y-EPE

View file

@ -0,0 +1,29 @@
<p>SHOW NOTES: </p>
<p>- All the info you need to START is on our <a href='http://www.thebiblerecap.com'>website</a>! Seriously, go there.
- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus perks!</p>
<p>- Get your <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>TBR merch</a></p>
<p>- <a href='http://thebiblerecap.com/contact'>Show credits</a></p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- Join <a href='http://wwww.patreon.com/thebiblerecap'>Patreon</a> to receive additional perks!</p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>

View file

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="By André A. Gomes" />
<title>diff-mode lets you track changes</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">diff-mode lets you track changes</h1>
<p class="author">By André A. Gomes</p>
</header>
<p>Modes keep springing up like mushrooms in Nyxt. If you've paid attention to our <a href="https://nyxt.atlas.engineer/article/the-thin-line-between-users-and-collaborators.org">latest article</a>, it should come as no surprise.</p>
<p>Diff mode does what you expect, if you're familiar with tools such as GNU diff. In short, it compares two web pages!</p>
<h1 id="how-to-use-it">How to Use It?</h1>
<p>Firstly we need two buffers. Let's say that we'd like to compare an older Wikipedia article with its most up-to-date version. From the buffer corresponding to the oldest piece of information, we can call <code>diff</code> from the minibuffer.</p>
<p><img src="../static/image/article/diff-invoke.png" /></p>
<p>Then, we choose the current buffer, which already appears at the top.</p>
<p><img src="../static/image/article/diff-old-buffer.png" /></p>
<p>Now, we choose the other buffer, corresponding to the latest piece of information. If that's the last buffer you have visited, it should again appear at the top.</p>
<p><img src="../static/image/article/diff-new-buffer.png" /></p>
<p>And tada!</p>
<p><img src="../static/image/article/diff-wiki-output.png" /></p>
<p>Notice that the order in which we provided the buffers does play a role!</p>
<p>Let me show you another example. You might be aware that Nyxt <a href="https://nyxt.atlas.engineer/article/next-nyxt-rename.org">changed its name recently</a>. Let's compare its Github README before and after.</p>
<p><img src="../static/image/article/diff-github-output.png" /></p>
<h1 id="future-work">Future Work</h1>
<p>As you can imagine, any two bits of valid HTML can be compared against each other. This means web buffers, HTML files, or HTML tags can be provided. It will also be possible to display the diff side-by-side, rather by line-by-line as you saw above.</p>
<p>If you have ideas, complaints or any comments don't hesitate to get in touch!</p>
</body>
</html>

View file

@ -0,0 +1 @@
<table> <tr><td> <a href="https://www.reddit.com/r/unixporn/comments/r2wu81/qtile_just_upgraded_from_i3gaps/"> <img src="https://preview.redd.it/ife1x4qo80281.png?width=640&amp;crop=smart&amp;auto=webp&amp;s=21736818e512c95dd92d683fe9c2360fab0c8794" alt="[qtile] Just upgraded from i3-gaps" title="[qtile] Just upgraded from i3-gaps" /> </a> </td><td> &#32; submitted by &#32; <a href="https://www.reddit.com/user/NotMacias"> /u/NotMacias </a> <br/> <span><a href="https://i.redd.it/ife1x4qo80281.png">[link]</a></span> &#32; <span><a href="https://www.reddit.com/r/unixporn/comments/r2wu81/qtile_just_upgraded_from_i3gaps/">[comments]</a></span> </td></tr></table>

View file

@ -0,0 +1,11 @@
<p><iframe loading="lazy" title="Destination Linux EP13 - AJ Reissig" width="800" height="450" src="https://www.youtube.com/embed/IWFMmFfITzs?feature=oembed" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></p>
<p>Welcome to Destination Linux Episode 13 with guest AJ Reissig for 03-24-17</p>
<p><span style="text-decoration: underline;"><b>News</b></span></p>
<p><a href="http://mate-desktop.org/blog/2017-03-13-mate-1-18-released/">Mate 1.18 Released</a></p>
<p><a href="http://www.techspot.com/news/68553-microsoft-now-blocks-windows-7-81-updates-kaby.html">Microsoft now blocks Windows 7 and 8.1 updates on Kaby Lake, Ryzen systems</a></p>
<p><a href="http://news.softpedia.com/news/wine-2-4-has-fixes-for-aliens-vs-predator-the-next-big-thing-and-nvidia-gpus-514042.shtml">Wine 2.4 Has Fixes for Aliens vs. Predator, The Next BIG Thing, and Nvidia GPUs</a></p>
<p><span style="text-decoration: underline;"><b>YouTube Corner</b></span></p>
<p><a href="http://ajreissig.com/">AJ Reissig</a></p>
<p><a href="https://www.youtube.com/c/ajreissig">AJ Reissig Youtube Channel</a></p>
<p>Thanks for Watching</p>
<p>&nbsp;</p>

View file

@ -0,0 +1,11 @@
<p class="deck">The origins of the "under God" terms in The Pledge of Allegiance</p>
<p class="text">One Nation Under Graham</p>
<p class="text">America, not unlike many countries shaped by biblical religion &ndash; from Israel to Ireland, has a history of politicians and preachers making abundant use of apocalyptic rhetoric. More than a decade ago Charles Mathewes and Christopher McKnight (no relation) put together a string of exceptional essays on various periods in American history illustrating this abundance. Their book, with the oddly misspelled title, is called <em><strong><a href="https://amzn.to/3lyJsjS" class="">Prophesies of Godlessness</a></strong></em> (which is a noun in their writing &ndash; it&rsquo;s a verb with that &ldquo;s&rdquo; &ndash; never mind). It should be read by anyone who studies political rhetoric making use of apocalyptic, which unfortunately a recent book didn&rsquo;t.</p>
<p class="text">The book that didn&rsquo;t is by Jonathan D. Redding, called <em><strong><a href="https://amzn.to/2YHcS63" class="">One Nation Under Graham: Apocalyptic Rhetoric and American Exceptionalism</a></strong></em>. Redding&rsquo;s book is a slice of American history. The slice is Billy Graham in several respects: his apocalyptic rhetoric, which is as American and Graham as it gets; his American exceptionalism if not patriotic nationalism; his anti-communism; his relation to presidents (Eisenhower, Kennedy, Johnson, Nixon, Carter, Reagan, George H.W. Bush, Clinton, George W. Bush, Obama, and Trump); and especially Graham&rsquo;s advocacy for &ldquo;under God&rdquo; being added in 1954 (under Eisenhower) to the Pledge of Allegiance. The decisive sermon was by George Docherty, but he was rooting his sermon and style at the time in Billy Graham&rsquo;s anti-communism American exceptionalism that could only stave off communism if Americans would be born again, get right with God, and commit to being a God-honoring Christian nation.</p>
<blockquote class="text">Scot McKnight is the author of a recent book called &ldquo;To You All ...</blockquote><p class="more"><a href="https://www.christianitytoday.com/scot-mcknight/2021/october/one-nation-under-graham.html">Continue reading</a>...</p>
<p><br /><a href="https://rss.beaconads.com/click.php?z=1289806&k=c779018782158d93282944b4f7dd4d03&a=190300&c=92033608" target="_blank"><img src="https://rss.beaconads.com/img.php?z=1289806&k=c779018782158d93282944b4f7dd4d03&a=190300&c=92033608" border="0" alt="" /></a></p>
10

View file

@ -0,0 +1,82 @@
<p>SHOW NOTES:
Thanks for listening! Weve posted some helpful info for you in our show notes below!</p>
<p> </p>
<p>PODCAST BASICS:
</p>
<p>- Subscribe where you listen!</p>
<p>- Check out the details on our <a href='http://www.thebiblerecap.com'>website
</a></p>
<p>- Get the<a href='https://www.bible.com/app'> Bible app</a> (free)
</p>
<p>- Follow our<a href='https://www.bible.com/reading-plans/5-chronological'> Bible reading plan</a></p>
<p>- Check out our customized <a href='https://www.theconnextion.com/tlcdgroup/index.cfm'>journal</a></p>
<p>- Join our <a href='https://www.patreon.com/thebiblerecap'>PATREON</a> community for bonus fun! </p>
<p> </p>
<p>MERCH: Get your<a href='https://www.theconnextion.com/tlcdgroup/index.cfm'> TBR merch</a>! Weve got t-shirts, coffee mugs, tote bags, phone wallets, and stickers! </p>
<p> </p>
<p>FROM TODAYS PODCAST: </p>
<p>- <a href='https://www.biblegateway.com/passage/?search=deuteronomy+29%3A4&version=ESV'>Deuteronomy 29:4</a></p>
<p> </p>
<p>SOCIALS:</p>
<p>The Bible Recap:<a href='https://instagram.com/thebiblerecap'> Instagram</a> |<a href='https://www.facebook.com/thebiblerecap'> Facebook</a> |<a href='https://twitter.com/thebiblerecap'> Twitter</a> | <a href='http://pinterest.com/thebiblerecap'>Pinterest</a></p>
<p>D-Group:<a href='https://instagram.com/mydgroup/'> Instagram</a> |<a href='https://www.facebook.com/ilovemydgroup'> Facebook</a> |<a href='https://mobile.twitter.com/mydgroup'> Twitter</a> | <a href='http://pinterest.com/ilovemydgroup'>Pinterest</a></p>
<p>TLC:<a href='https://instagram.com/taraleighcobble'> Instagram</a> |<a href='https://www.facebook.com/taraleighcobble'> Facebook</a> |<a href='https://twitter.com/taraleighcobble'> Twitter</a></p>
<p> </p>
<p>D-GROUP:
The Bible Recap is brought to you by<a href='https://www.mydgroup.org/'> D-Group</a> - an international network of discipleship and accountability groups that meet weekly in homes and churches:<a href='https://www.mydgroup.org/map'> Find or start one near you today</a>!</p>
<p> </p>
<p>TBR TEAM:
</p>
<p>Written and Hosted by: <a href='http://taraleighcobble.com'>Tara-Leigh Cobble</a></p>
<p>Content Manager: <a href='http://mydgroup.org'>Courtney Vaughan
</a></p>
<p>Podcast Operations: <a href='http://mydgroup.org'>Callie Summers
</a></p>
<p>Website Management: <a href='http://mydgroup.org'>Joelle Smith</a></p>
<p>Sound Engineer: <a href='http://thebiblerecap.com'>Allison Congden</a></p>
<p>Content Design: <a href='http://misswyolene.com'>Morgan Young
</a></p>
<p>Social Media Management: <a href='http://thebiblerecap.com'>Sarah Yocum</a></p>
<p>Journal Design: <a href='https://brittneyhmurray.weebly.com/'>Brittney Murray</a></p>
<p>Logo Design: <a href='mailto:landonhwade@gmail.com'>Landon Wade</a></p>
<p> </p>
<p>Available on:<a href='https://itunes.apple.com/us/podcast/the-bible-recap/id1440833267'> iTunes</a> |<a href='https://open.spotify.com/show/2lWv2RlsyMSMzerbAb1uOx'> Spotify</a> |<a href='https://www.google.com/podcasts?feed=aHR0cHM6Ly93d3cuaXZvb3guY29tL3RoZS1iaWJsZS1yZWNhcF9mZ19mMTYzNzgzNF9maWx0cm9fMS54bWw'> Google</a> |<a href='https://www.stitcher.com/podcast/dgroup/the-bible-recap?refid=stpr'> Stitcher</a> |<a href='https://thebiblerecap.podbean.com/'> Podbean</a> | <a href='https://play.google.com/music/m/Ivmpjo6234pwcvclpwxzlklglpm?t=The_Bible_Recap'>Google Play</a> | <a href='http://youtube.com/c/TheBibleRecap'>YouTube
</a></p>
<p> </p>
<p>WEBSITE:
<a href='http://www.thebiblerecap.com'>Thebiblerecap.com</a></p>

View file

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="By Pedro Delfino" />
<title>Newsletter #1</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header>
<h1 class="title">Newsletter #1</h1>
<p class="author">By Pedro Delfino</p>
</header>
<h1 id="intro">Intro</h1>
<p>Hello hackers!</p>
<p>Welcome to our second newsletter. This is a historical moment for the Nyxt project, we are happy to announce the release of <a href="https://nyxt.atlas.engineer/application/demeter.org">Demeter</a>: a feed reader built on top of Nyxt!</p>
<p>The team has been trying to make the project financially self-sustainable. As stated in the article <a href="https://nyxt.atlas.engineer/article/sustainable-open-source.org">Towards Open Source Sustainability</a>, the main strategy from Atlas Engineer is to keep Nyxt free by all means, but sell applications based on it.</p>
<p>Demeter has been for sale since last Friday. Currently, under a promotional price of USD 10 for a one-year license. Despite no official communication about its launch until now, three sales already happened. And counting! :)</p>
<h1 id="new-features-since-the-previous-newsletter-09212021">New features since the previous newsletter (09/21/2021)</h1>
<ul>
<li>New <code>repeat-times</code> command;</li>
<li>Command <code>define-scheme</code> has been extended;</li>
<li>Arbitrary HTML is now allowed in mode formatting;</li>
<li>We can count <a href="https://nyxt.atlas.engineer/application/demeter.org">Demeter</a> as a super upper new (paid) <em>feature</em> :)</li>
</ul>
<h1 id="new-articles">New articles</h1>
<ul>
<li><a href="https://nyxt.atlas.engineer/article/sustainable-open-source.org">Towards Open Source Sustainability</a></li>
<li><a href="https://nyxt.atlas.engineer/article/getting-started-on-nyxt-hacking-1-bookmarklet.org">Getting started on Nyxt hacking: Episode 1</a></li>
<li><a href="https://nyxt.atlas.engineer/article/nyxt-versus-plugins.org">&quot;Why should I use Nyxt if I can use Vimium?&quot;</a></li>
</ul>
<h1 id="announcements">Announcements</h1>
<ul>
<li>Beyond the launch of the <a href="https://nyxt.atlas.engineer/application/demeter.org">Demeter</a> feed reader, <a href="https://nyxt.atlas.engineer/article/release-2.2.1.org">Version 2.2.1</a> was also released.</li>
<li>Also, a new t-shirt with a joke on text editors was added to the Nyxt</li>
</ul>
<p>Store. If you are a <a href="https://store.nyxt.atlas.engineer/listing/choose-your-weapon-9283?product=2">MS Notepad fan</a>, maybe you should skip it :)</p>
<h1 id="interesting-reads">Interesting reads</h1>
<ul>
<li>The team loved this article, it really captures Nyxt's ideals: <a href="https://thesephist.com/posts/browser/">The web browser as a tool of thought</a></li>
<li>The fight against fake news is a hard one and we plan to have Nyxt as an ally. Until features for that are built, we can learn from the attempt of others: <a href="https://www.washingtonpost.com/technology/2021/09/29/youtube-ban-joseph-mercola/">YouTube is banning prominent anti-vaccine activists and blocking all anti-vaccine content</a></li>
<li>Despite the kind of &quot;Business Insider&quot; title, you can learn something from the author's wise words: <a href="https://www.simplethread.com/20-things-ive-learned-in-my-20-years-as-a-software-engineer/">20 Things Ive Learned in my 20 Years as a Software Engineer</a></li>
</ul>
<p>Cheers!</p>
<p>Nyxt team</p>
</body>
</html>

View file

@ -0,0 +1,627 @@
<p>Just published version <code>0.13.0</code> of the Modus themes. The release notes
are reproduced below. This is the largest release to date and also the
first one since the themes were incorporated in upstream Emacs.</p>
<p>Packages may take a while to get the update, so please be patient.
<a href="https://protesilaos.com/contact/">Contact me</a> in case something is
amiss.</p>
<hr />
<h2>Modus Operandi and Modus Vivendi version 0.13.0</h2>
<p>By Protesilaos Stavrou <a href="mailto:info@protesilaos.com">info@protesilaos.com</a> on 2020-10-08</p>
<p>This entry documents the changes since version 0.12.0 (2020-08-26).
There have been around 150 commits in the meantime, making this the
largest release to date (though sheer volume should not be conflated
with quality, of which there is plenty).</p>
<p>As always, everything described herein conforms with the overarching
accessibility objective of the themes for a minimum contrast ratio of
7:1 between background and foreground values in their given combinations
(conformance with the WCAG AAA standard).</p>
<h2>Overview</h2>
<ol>
<li>
<p>There is a new Info manual that documents the customisation options
as well as every other piece of information pertinent to the themes.
You will find it in the Info pages inside of Emacs. Or browse it
online: <a href="https://protesilaos.com/emacs/modus-themes">https://protesilaos.com/emacs/modus-themes</a>.</p>
</li>
<li>
<p>New customisation options grant users more power to further adapt the
active theme to their preferences.</p>
</li>
<li>
<p>Extended coverage for even more faces and face groups, adding to the
already comprehensive list of directly supported ones.</p>
</li>
<li>
<p>Lots of tweaks to improve the use of colour and avoid exaggerations
(well, “exaggerations” is relative, since the prior state was already
carefully designed).</p>
</li>
<li>
<p>A new page hosts all pictures that demo the themes across a wide
range of scenaria: <a href="https://protesilaos.com/emacs/modus-themes-pictures">https://protesilaos.com/emacs/modus-themes-pictures</a>.</p>
</li>
<li>
<p>Similarly, the change log also has its own dedicated web page:
<a href="https://protesilaos.com/emacs/modus-themes-changelog">https://protesilaos.com/emacs/modus-themes-changelog</a>.</p>
</li>
</ol>
<h2>New customisation options</h2>
<p>Note that all customisation options are documented at length in the new
Info manual. What is offered here is not necessarily exhaustive.</p>
<h3>Diff styles</h3>
<p>Symbol names (“choice” type):</p>
<ul>
<li>modus-operandi-theme-diffs</li>
<li>modus-vivendi-theme-diffs</li>
</ul>
<p>Possible values:</p>
<ol>
<li>nil (default)</li>
<li>desaturated</li>
<li>fg-only</li>
</ol>
<p>DEPRECATED (“boolean” type):</p>
<ul>
<li>modus-operandi-theme-subtle-diffs</li>
<li>modus-vivendi-theme-subtle-diffs</li>
</ul>
<p>This option supersedes older ones while retaining their functionality.</p>
<p>The default remains unaltered, meaning that the diffs will use fairly
prominent colour-coded combinations for the various elements (e.g. green
text on an unambiguously green backdrop).</p>
<p>A <code>desatured</code> value will tone down the default aesthetic, giving a less
vibrant feel.</p>
<p>While <code>fg-only</code> removes almost all coloured backgrounds, opting to apply
colour only to the relevant text (this was the case with the
now-deprecated options). There are some exceptions, like word-wise or
“refined” diffs, which still use coloured backgrounds to convey their
meaning.</p>
<h3>Modeline styles</h3>
<p>Symbol names (“choice” type):</p>
<ul>
<li>modus-operandi-theme-mode-line</li>
<li>modus-vivendi-theme-mode-line</li>
</ul>
<p>Possible values:</p>
<ol>
<li>nil (default)</li>
<li>3d</li>
<li>moody</li>
</ol>
<p>DEPRECATED (“boolean” type):</p>
<ul>
<li>modus-operandi-theme-3d-modeline</li>
<li>modus-vivendi-theme-3d-modeline</li>
</ul>
<p>The default modeline continues to be a two-dimensional rectangle with a
border around it. Active and inactive modelines use different colour
combinations for their main background and foreground.</p>
<p>Option <code>3d</code> produces an effect similar to what you get in a generic
Emacs session, where the active modeline has a pseudo three-dimensional
effect applied to it. This option offers the same functionality as that
of the deprecated variables.</p>
<p>Option <code>moody</code> is designed specifically for use with the Moody library,
though it can also be used without it. Instead of implementing a box
effect, it applies an overline and underline instead, while also toning
down the inactive modeline.</p>
<p>Thanks to Nicolas De Jaeghere for the feedback and code samples in issue
80: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/80">https://gitlab.com/protesilaos/modus-themes/-/issues/80</a></p>
<h3>Headline styles</h3>
<p>Symbol names (“alist” type):</p>
<ul>
<li>modus-operandi-theme-headings</li>
<li>modus-vivendi-theme-headings</li>
</ul>
<p>DEPRECATED (“boolean” type):</p>
<ul>
<li>modus-operandi-theme-rainbow-headings</li>
<li>modus-operandi-theme-section-headings</li>
<li>modus-vivendi-theme-rainbow-headings</li>
<li>modus-vivendi-theme-section-headings</li>
</ul>
<p>Possible values, which can be specified for each heading level (examples
further below):</p>
<ol>
<li>nil (default fallback option—covers all heading levels)</li>
<li>t (default style for a single heading, when the fallback differs)</li>
<li>no-bold</li>
<li>line</li>
<li>line-no-bold</li>
<li>rainbow</li>
<li>rainbow-line</li>
<li>rainbow-line-no-bold</li>
<li>highlight</li>
<li>highlight-no-bold</li>
<li>rainbow-highlight</li>
<li>rainbow-highlight-no-bold</li>
<li>section</li>
<li>section-no-bold</li>
<li>rainbow-section</li>
<li>rainbow-section-no-bold</li>
</ol>
<p>This supersedes and greatly expands upon what the deprecated variables
once offered. It is now possible to (i) benefit from more stylistic
choices, and (ii) apply them on a per-level basis.</p>
<p>As always, the defaults remain in tact: headings are just rendered in a
bold weight and their colours are not too saturated to offer a plain
text impression that relies on typography to convey its meaning.</p>
<p>The info manual explains the details. A few examples:</p>
<pre><code>;; Per-level styles (t means everything else)
(setq modus-operandi-theme-headings
'((1 . highlight)
(2 . line)
(t . rainbow-line-no-bold)))
;; Uniform style for all levels
(setq modus-operandi-theme-headings
'((t . rainbow-line-no-bold)))
;; Default style for level 1, while others differ
(setq modus-operandi-theme-headings
'((1 . t)
(2 . line)
(t . rainbow-line-no-bold)))
</code></pre>
<p>Thanks to Adam Spiers for the feedback in issue 81:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/81">https://gitlab.com/protesilaos/modus-themes/-/issues/81</a>. Also thanks
to Nicolas De Jaeghere for helping refine relevant stylistic choices:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/90">https://gitlab.com/protesilaos/modus-themes/-/issues/90</a>.</p>
<h3>No link underlines</h3>
<p>Symbol names (“boolean” type):</p>
<ul>
<li>modus-operandi-theme-no-link-underline</li>
<li>modus-vivendi-theme-no-link-underline</li>
</ul>
<p>Possible values:</p>
<ol>
<li>nil (default)</li>
<li>t</li>
</ol>
<p>By default, the themes apply an underline effect to links, symbolic
links, and buttons. Users can now disable this style by setting the new
option to <code>t</code>.</p>
<p>Thanks to Utkarsh Singh for the feedback in issue 94:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/94">https://gitlab.com/protesilaos/modus-themes/-/issues/94</a></p>
<h3>No mixed fonts</h3>
<p>Symbol names (“boolean” type):</p>
<ul>
<li>modus-operandi-theme-no-mixed-fonts</li>
<li>modus-vivendi-theme-no-mixed-fonts</li>
</ul>
<p>Possible values:</p>
<ol>
<li>nil (default)</li>
<li>t</li>
</ol>
<p>By default, the themes configure some spacing-sensitive faces, such as
Org tables and code blocks, to always inherit from the <code>fixed-pitch</code>
face (documented in the manual). This is to ensure that those
constructs remain monospaced when users opt for something like the
built-in <code>M-x variable-pitch-mode</code>. Otherwise the layout would break.</p>
<p>The obvious downside with this theme design is that users need to
explicitly configure the font family of <code>fixed-pitch</code> in order to apply
their desired typeface (how to do this is also covered in the manual).
That may be something they do not want to do. Hence this option to
disable any kind of font mixing done by the active theme. Set it to
<code>t</code>.</p>
<h2>Support for new faces or face groups</h2>
<ul>
<li>awesome-tray</li>
<li>binder</li>
<li>cperl-mode</li>
<li>eldoc-highlight-function-argument</li>
<li>erc escaped colour sequences</li>
<li>eshell-syntax-highlighting</li>
<li>flycheck-color-mode-line</li>
<li>isearch regexp groups (Emacs version &gt;= 28)</li>
<li>mpdel</li>
<li>objed</li>
<li>org 9.4 new faces: <code>org-headline-todo</code> and <code>org-table-header</code></li>
<li>racket-mode</li>
<li>typescript-mode</li>
</ul>
<p>Thanks to:</p>
<ul>
<li>
<p>Damien Cassou for reporting the issue with mpdel:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/99">https://gitlab.com/protesilaos/modus-themes/-/issues/99</a></p>
</li>
<li>
<p>Dario Gjorgjevski for reporting the issue with erc:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/92">https://gitlab.com/protesilaos/modus-themes/-/issues/92</a></p>
</li>
<li>
<p>Markus Beppler for contributing the patch for cperl-mode:
<a href="https://gitlab.com/protesilaos/modus-themes/-/merge_requests/11">https://gitlab.com/protesilaos/modus-themes/-/merge_requests/11</a></p>
</li>
<li>
<p>User “Moesasji” for reporting the issue with objed:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/79">https://gitlab.com/protesilaos/modus-themes/-/issues/79</a></p>
</li>
</ul>
<h2>Refinements to existing faces</h2>
<ul>
<li>
<p>calfw applies colours and styles in a way that makes it consistent
with the rest of the themes metaphors.</p>
</li>
<li>
<p>diredfl makes more considerate use of colour. We still apply colour
everywhere (the whole point of this package) but make sure to avoid
exaggerations.</p>
</li>
<li>
<p>doom-modeline-battery-error face fits better with the rest of the
design.</p>
</li>
<li>
<p>elfeed search buffers use less intense colours, while still keeping
all elements fairly distinct. The intent is to avoid a “rainbow
effect” in such a dense interface.</p>
</li>
<li>
<p>elfeed read and unread items are more distinct.</p>
</li>
<li>
<p>git commit and vc log edit messages benefit from refined colour
combinations for their various constructs. The commits summary is
now rendered in a bold weight, to better convey the idea that this is
a quasi heading element.</p>
</li>
<li>
<p>gnus heading colours are more consistent. All information remains
clearly distinct, but we now avoid using colours that are on opposite
sides of the colour spectrum. Basically to keep things distinct
without going over the top.</p>
</li>
<li>
<p>gnus read and unread items are easier to tell apart. Thanks to user
“Nick” for reporting the issue:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/97">https://gitlab.com/protesilaos/modus-themes/-/issues/97</a>.</p>
</li>
<li>
<p>help-argument-name has a distinct foreground colour, so that it is
easier to spot it in “<em>Help</em>” buffers. Its slant is also controlled
by the active themes customisation option for slanted constructs (nil
by default—check the manual).</p>
</li>
<li>
<p>helpful-heading now is consistent with other heading styles. Thanks
to Nicolas De Jaeghere for reporting the issue:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/90">https://gitlab.com/protesilaos/modus-themes/-/issues/90</a>.</p>
</li>
<li>
<p>icomplete, ido, orderless are all tweaked to work better under various
circumstances.</p>
</li>
<li>
<p>info-menu-star uses a red colour to make it easier to select a menu
entry by estimating its number. This face applies to every third
element and is a nice little extra to have.</p>
</li>
<li>
<p>info quoted strings are configured to always render in <code>fixed-pitch</code>,
in line with the themes design for mixed fonts (remember to check the
relevant customisation option).</p>
</li>
<li>
<p>line numbers work properly with <code>text-scale-adjust</code>. Thanks to user
“jixiuf” for reporting the issue:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/98">https://gitlab.com/protesilaos/modus-themes/-/issues/98</a>.</p>
</li>
<li>
<p>line-number-current-line no longer applies a bold weight to its text.
This is to avoid a certain “jump effect” while moving between lines,
where the affected numbers grow and shrink in weight as the line
changes (once you see it, you will know what I mean).</p>
</li>
<li>
<p>line-number-major-tick and line-number-minor-tick do use a bold weight
because they are fixed on the scale. Their colours are also improved
to better complement their intended role (these faces are for Emacs 27
or higher).</p>
</li>
<li>
<p>magit-diff-file-heading-selection, magit-diff-hunk-heading-selection
use more appropriate colour combinations.</p>
</li>
<li>
<p>markdown blockquotes and org quote blocks use a different foreground,
which is colder than the previous one. Just to make sure that they
are not mistaken for inline code.</p>
</li>
<li>
<p>message headers use less exaggerated colour combinations. The
differences are fairly minor.</p>
</li>
<li>
<p>message-mml no longer uses a green foreground, as that could
potentially cause confusion with quoted text in some cases. A unique,
albeit less saturated, foreground is used instead.</p>
</li>
<li>
<p>message-separator uses a more neutral colour combination, while
retaining its overall uniqueness within its context (i.e. mail
composition).</p>
</li>
<li>
<p>modeline colours are refined to improve the contrast between active
and inactive states.</p>
</li>
<li>
<p>mu4e-replied-face has a new colour that accounts for colour distance
relative to its context. Thanks to Shreyas Ragavan for reporting the
issue: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/69">https://gitlab.com/protesilaos/modus-themes/-/issues/69</a>.</p>
</li>
<li>
<p>org agenda date and structure no longer behave like headings in other
Org buffers. Instead, they have their own styles to better perform
their intended function and to avoid exaggerations.</p>
</li>
<li>
<p>org agenda dimmed to-do items (which have blocked sub-items) are no
longer assigned a subtle grey background colour. They are instead
rendered with a bold weight and a subtle grey foreground to minimise
distractions. Thanks to Roman Rudakov for reporting this in issue
101: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/101">https://gitlab.com/protesilaos/modus-themes/-/issues/101</a>.</p>
</li>
<li>
<p>org agenda clocked items are configured to extend their background to
the edge of the window. Otherwise they are cut off at the last text
character, which creates inconsistencies while using tags: a tag is
placed to the right so the background extends further than without
them. Based again on the feedback of Roman Rudakov in issue 101:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/101">https://gitlab.com/protesilaos/modus-themes/-/issues/101</a>.</p>
</li>
<li>
<p>org agenda current time no longer uses a background. A bold weight
and a blue foreground are applied instead. The intent is to keep
things clean. This is also covered by Roman Rudakovs feedback in
issue 101: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/101">https://gitlab.com/protesilaos/modus-themes/-/issues/101</a>.</p>
</li>
<li>
<p>org-checkbox-statistics-done, org-checkbox-statistics-todo inherit
from org-done and org-todo respectively, instead of defining their own
properties.</p>
</li>
<li>
<p>org drawers and their data now use <code>fixed-pitch</code> in the interest of
consistency with other metadata-like faces. Thanks (yet again!) to
Nicolas De Jaeghere for reporting the issue:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/91">https://gitlab.com/protesilaos/modus-themes/-/issues/91</a>.</p>
</li>
<li>
<p>org-footnote underlines will now always use the same colour, instead
of applying the one of other coloured constructs (e.g. when the
footnote is inline and part of the text is rendered as verbatim).</p>
</li>
<li>
<p>org-meta-line is less prominent and, thus, more consistent with other
metadata-related constructs.</p>
</li>
<li>
<p>org-roam faces are updated to match the current state of the upstream
project. The main colour of org-roam links is now different than that
of standard links in an attempt to differentiate between the two (due
to their unique semantics). If this is not desired, you can evaluate
the following:</p>
<pre><code>(setq org-roam-link-use-custom-faces nil)
</code></pre>
</li>
<li>
<p>org-todo, org-done, as well as relevant faces such as priorities and
statistics are reviewed to work better with all heading combinations.
Though please read the next section about “adaptive headings”, as such
workarounds will no longer be necessary for future stable releases of
Org.</p>
</li>
<li>
<p>selectrum uses different styles than before to account for its unique
property of overlaying matching characters on top of the current
lines background. We want to avoid scenaria where matches are
difficult to discern and the current line is not clear.</p>
</li>
<li>
<p>vc modeline states benefit from improved colour choices. Just minor
adjustments to account for the review of the base modeline colours.</p>
</li>
<li>
<p>vterm base colours now are variants of gray to ensure that some tools,
such as zsh suggestions work properly. Thanks to user “jixiuf” for
reporting this issue and suggesting a possible solution:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/93">https://gitlab.com/protesilaos/modus-themes/-/issues/93</a>.</p>
</li>
</ul>
<h2>Contributions to the wider community</h2>
<p>Sometimes the themes reveal bugs in other packages. It is of paramount
importance that we report those to the upstream developers, try to help
them reproduce the issue, and, where possible, support them in tracing
the problems root cause.</p>
<p>Four such cases during this release:</p>
<ol>
<li>
<p>Adaptive Org headings. Solved upstream and documented on my website:
<a href="https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/">https://protesilaos.com/codelog/2020-09-24-org-headings-adapt/</a>.
Reported and discussed on the themes issue tracker:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/37">https://gitlab.com/protesilaos/modus-themes/-/issues/37</a>.</p>
</li>
<li>
<p>Alignment of Org tags with proportional fonts. Ongoing thread:
<a href="https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00415.html">https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00415.html</a>.
Reported and discussed on the themes issue tracker:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/85">https://gitlab.com/protesilaos/modus-themes/-/issues/85</a>.</p>
</li>
<li>
<p>Org priority cookie has extra space. Ongoing thread:
<a href="https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00696.html">https://lists.gnu.org/archive/html/emacs-orgmode/2020-09/msg00696.html</a>.
Reported and discussed on the themes issue tracker, with feedback
from Roman Rudakov:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/95">https://gitlab.com/protesilaos/modus-themes/-/issues/95</a>.</p>
</li>
<li>
<p>Company overlay pop-up misaligns items. Reported upstream and
acknowledged as a known issue that occurs in certain cases:
<a href="https://github.com/company-mode/company-mode/issues/1010">https://github.com/company-mode/company-mode/issues/1010</a>.
Discussion on the themes issue tracker, with feedback from Iris
Garcia: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/96">https://gitlab.com/protesilaos/modus-themes/-/issues/96</a>.</p>
</li>
</ol>
<h2>Miscellaneous</h2>
<ul>
<li>
<p>Belatedly (by about 2 weeks) pushed tag for version 0.12.0. Thanks to
Alex Griffin for bringing this to my attention:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/89">https://gitlab.com/protesilaos/modus-themes/-/issues/89</a></p>
</li>
<li>
<p>Fixed a bug with how some older customisation options were declared as
obsolete. Thanks to Tassilo Horn for noticing and reporting the
problem: <a href="https://gitlab.com/protesilaos/modus-themes/-/issues/88">https://gitlab.com/protesilaos/modus-themes/-/issues/88</a>.</p>
</li>
<li>
<p>Fixed a misplaced optional prefix argument in the manual for how to
switch themes using a custom function. Thanks to Manuel Uberti for
catching this omission of mine and reporting it:
<a href="https://gitlab.com/protesilaos/modus-themes/-/issues/84">https://gitlab.com/protesilaos/modus-themes/-/issues/84</a>.</p>
</li>
<li>
<p>Silenced the Elisp package linter for a spurious error on a single
eldoc face. Thanks to Steve Purcell for the guidance:
<a href="https://github.com/purcell/package-lint/issues/187">https://github.com/purcell/package-lint/issues/187</a>.</p>
</li>
<li>
<p>Defined two new dedicated background colours for exceptional cases.
These are intended for internal use in very special circumstances.</p>
</li>
<li>
<p>Reword GuixSD to “Guix System” in the list of package formats
currently available.</p>
</li>
<li>
<p>Reviewed the main blue colours for both themes. While the changes are
practically impossible to discern upon first sight, the process was
far from straightforward. A complete report documents the minutia:
<a href="https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/">https://protesilaos.com/codelog/2020-09-14-modus-themes-review-blues/</a>.</p>
</li>
<li>
<p>Reviewed the “active” palette subset, typically used in the modelines.
No report was necessary for those, as the changes were fairly simple.</p>
</li>
<li>
<p>Reviewed the “intense” background colour that comes into effect when
users opt for the customisation option for intense paren-match styles
(check the manual). Both the hue and the saturation have been changed
to better conform with the intended function of this particular entry.</p>
</li>
<li>
<p>Reviewed the fringe-specific accented backgrounds. Commit 7316e3320
contains tables that compare the relative luminance of old and new
values.</p>
</li>
<li>
<p>Improved the advice for setting fonts using <code>set-face-attribute</code>. The
information is in the manual and is also available as a blog entry:
<a href="https://protesilaos.com/codelog/2020-09-05-emacs-note-mixed-font-heights/">https://protesilaos.com/codelog/2020-09-05-emacs-note-mixed-font-heights/</a>.</p>
</li>
<li>
<p>Rewrote an expression as “(or x y)” instead of “(if x x y)” in one
place. Just goes to show that tweaking the code is also part of the
deal.</p>
</li>
<li>
<p>Abstracted and simplified heading level properties by using bespoke
theme faces. Makes it easier to keep things consistent across the
various face groups.</p>
</li>
<li>
<p>Same principle as above for diff-related styles.</p>
</li>
<li>
<p>Users who prefer to do things their own way or who just wish to
contribute code to the Modus themes may wish to read my “Notes for
aspiring Emacs theme developers”:
<a href="https://protesilaos.com/codelog/2020-08-28-notes-emacs-theme-devs/">https://protesilaos.com/codelog/2020-08-28-notes-emacs-theme-devs/</a>.</p>
</li>
</ul>
<p>This has been yet another period of intense work: reviewing faces and
applying colours is never easy, adding new customisation options is
always tricky, and documenting everything takes a lot of time (unless
you do all of those on a whimsy, which hopefully is not the case here).</p>
<p>Thanks again to everyone who helped improve the themes!</p>