<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>software &amp;mdash; The Psalms</title>
    <link>https://bilge.world/tag:software</link>
    <description>A &lt;a href=&#34;https://davidblue.wtf/db.vcf&#34;&gt;narcoleptic yokel&lt;/a&gt; on software and culture.</description>
    <pubDate>Wed, 29 Apr 2026 00:27:24 +0000</pubDate>
    <image>
      <url>https://i.snap.as/iTL3WJk.png</url>
      <title>software &amp;mdash; The Psalms</title>
      <link>https://bilge.world/tag:software</link>
    </image>
    <item>
      <title>How to Fuck Text</title>
      <link>https://bilge.world/text-fuck?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Fuck Banner&#xA;&#xA;A guide to digital text fuckery (largely on Apple Platforms) from one of the world’s foremost authorities.&#xA;&#xA;!--more--&#xA;&#xA;audio controls&#xA;  source src=&#34;https://davidblue.wtf/audio/text-fuck.mp3&#34;&#xA;/audio&#xA;&#xA;My project to properly document Bluetooth keyboard support on iPhone has given me a new reverence for accessibility, generally, which might come as a hypocritical statement at the beginning of such a piece, but I did explicitly ask you if you felt this subject was anti-accessibility before I officially embarked upon writing This Post. I don&#39;t consider the answer - a very weak &#34;no&#34; - to be an all-encompassing excuse, whatsoever. If you feel this post&#39;s existence has the potential to do real harm, contact me and I will straight up take it down. I dare you. Since I consider myself a genuine authority on Text Fucking, however, I am going to do my best to main unapologetic language when expressing opinions in orbit of the matter. You can trust me, I think.&#xA;&#xA;It’s already as good a place as any, editorially, to initiate the goddamned “good vs. evil” discussion because we could very easily find ourselves sincerely addressing the class implications of Text Fucking, otherwise. I want to offer myself, fully, as your test target and/or guinea pig, if you will. If you’re looking for a phone number upon which to set the sights of any of the methodologies shared here (or otherwise, for that matter,) here is mine: +1 (573) 823-4380. If you’re on a mobile device, definitely try out this link to my full contact card, and consider this brief list of some other potential targets of mine:&#xA;&#xA;Telegram&#xA;Email &#xA;Twitter&#xA;Mastodon&#xA;Discord&#xA;Everywhere...&#xA;&#xA;I won’t share any of your identifying information anywhere, nor will I respond unless you ask, but I guarantee I will be utterly delighted to receive any volume of Fuckery in any inbox you’re capable of sending it to because I have been so at the half-dozen or so message strings I’ve received over the past few weeks. Even if you somehow manage to find a means of undelighting me, that would be a far better scenario for all involved parties than my catching word you used one of my shortcuts to send Mein Kampf to a prayer request line or some shit. I promise it will always be more fun to shoot for constructive disruption over edgy bullshit, especially in this New Age when nothing is certain and nobody is talking. As much as the person who wrote the Yelp! review, below, would’ve loved to advocate for contribution to the noise for the simple sake of it, he’s fucking dead.&#xA;&#xA;Discerning Yelp Connoisseur&#xA;&#xA;Hopefully, we’re now free to get specific. Here’s my definition from the “Text Fucking” entry in The Psalms wiki:&#xA;&#xA;text fucking&#xA;Text Fucking verb&#xA;a.) hardcore text manipulation.&#xA;b.) destruction of usable digital text.&#xA;&#xA;Text Fuckery noun&#xA;the discipline of text fucking.&#xA;&#xA;Text Fuckery noun&#xA;the output... the result of the verb.&#xA;&#xA;disruption&#xA;&#xA;I might also append an esp. in either neutral or constructive applications. Again, a Zalgoed Tweet every once in a while is funny, but mass spamming strangers in peer-to-peer spaces is not. Not funny in any sense. To draw a medium parallel with audio - as I will several times in this guide, you’ll find - genuinely disruptive text manipulation is like choosing to push your pirate radio out on the volunteer-run community station’s frequency instead of the corporate-owned hits channel’s. Any sense you might be doing something worthwhile dramatically vanishes and the possibility of accomplishing something a bit original, even, is nullified in the womb.&#xA;&#xA;gm2&#xA;&#xA;I won’t say Text Fucking is an art. Indeed, perhaps it is anti-art. It is a discipline, nearly. At least enough so that I believe this Post is worth it. Like most disciplines, it can be used for your particular definitions of “good” and/or “bad.” I would like to think most of my use over the years has been toward my own of “good,” but - as per the unsearchable nature of Fucked Text, generally - this is not easily verifiable or citable. Regardless of my performance, however, I genuinely believe Text Fucking can be an endeavor that leads to more “positive” outcomes, whoever you may be. As I did, you might find yourself with a greater appreciation of and a desire to learn more about those individuals and organizations working in the Accessible Technology industry, ever toward a more inclusive digital future. It’s my hope that the weaponization of such an otherwise banal part of life might empower you with the simple fact of your capabilities, even if you don’t ever choose to actually implement them in a single instance.&#xA;&#xA;audio controls&#xA;  source src=&#34;https://github.com/extratone/bilge/raw/main/audio/Voice%20Notes/textfucker.mp3&#34;&#xA;/audio&#xA;&#xA;History&#xA;&#xA;As detailed in the audio account embedded above, I believe my Text Fucking career began somewhere around the 7th grade, at 13-14 years old. It was my second or third time flunking MS02 - the Microsoft Office II course - taken on fairly outdated school desktop machines in the 2007-2008 era, all running Windows XP. Because of some inexplicable ability to simply do what I was told, I would spend class periods trying to create the largest possible text file in Notepad by copying and pasting huge, exponentially growing globs. Eventually, I did crash a machine at least once. Though it could very well be simply the self-exaggerated recollection of preteendom, I even remember crashing the school server with one of those files. They were ginormous for plaintext.&#xA;&#xA;https://twitter.com/NeoYokel/status/1495487495622045699&#xA;&#xA;My Text Fucking reached its peak proliferation in the Drywall Era, when I first discovered the magic of Zalgo Text. The original generator at eemo.net has been replaced by an exact duplicate at eeemo.net. I have actually managed to successfully duplicate it on my own NeoCities website, as well. You might say that this original Zalgo Generator is The Original Text Fucking Tool. It can still generate quantities of fucked digital text information that will Fuck Shit Up on any social network, and as far as I can tell, the entire program is contained within a single HTML file.&#xA;&#xA;iframe style=&#34;border: 0; width: 100%; height: 120px;&#34; src=&#34;https://bandcamp.com/EmbeddedPlayer/album=3533156466/size=large/bgcol=fff4e6/linkcol=00006b/tracklist=false/artwork=small/track=549558740/transparent=true/&#34; seamlessa href=&#34;https://ihadtopee.bandcamp.com/album/suburban-anarchy&#34;Suburban Anarchy by Drywall/a/iframe&#xA;&#xA;As Drywall’s first and second albums - Hamura and Suburban Anarchy, respectively - were studies in audio clipping), I felt strongly at the time that Zalgo Text was the digital text equivalent, though there were others. The latter’s most wildly-entitled track, “Í£Í†Ì„Ì“Ì‡Ì¿Í›ÍÍŽÍÍ¬Ìƒ&amp;ÍÌµÍ‡Ì Ì¥ÌªÌ„ÌÍŒÍ¯Ì“​$​Ì¯Ì»Ì£ÍšÍ’Ì‰ÌÍ‘,” does not actually include any Zalgo text in its title’s final form, on Bandcamp, yet I think we can agree it is thoroughly Fucked. Beyond The Rails was my cringey “label” name, directly describing, technically, the matter of clipping audio. Indeed, Zalgo Text goes beyond the “rails” of text input/display fields reliably, depending on the intensity of the configuration you’re using to create it. &#xA;&#xA;https://twitter.com/NeoYokel/status/1493041887279734784&#xA;&#xA;When iMovie for iPhone first became available, making actual video editing and creation possible on iPhone OS in the iPhone 4 era, I took advantage of a very particular - but extremely powerful - function that was originally allowed creators on YouTube’s iOS app. It’s very hard to describe without being able to show, but it allowed for the rapid addition of tags to any video via an autocomplete-ish feature, up to the full tag limit. The series of Drywall videos that were essentially just vlogs shot from our high school lunch table - entitled Men and Women of The Armed Forces, This is What You are Fighting For (MAWOTAFTIWYAFF) - were all thoroughly tagged this way.&#xA;&#xA;https://www.youtube.com/watch?v=-5eMO8PJJp4&#xA;&#xA;The most notable event in my personal text history, though, happened on Mastodon - as much does these days, if you weren’t aware. I was posting about Zalgo text’s creation when its actual creator, Dave Higgins - with whom I’d unknowingly been mutuals for some time, apparently - replied:&#xA;&#xA;iframe src=&#34;https://octodon.social/@DaveHiggins/102565065494333224/embed&#34; class=&#34;mastodon-embed&#34; style=&#34;max-width: 100%; border: 0&#34; width=&#34;400&#34; allowfullscreen=&#34;allowfullscreen&#34;/iframe&#xA;&#xA;If there is a living God/Ultimate Sage/Premiere Authority/Professor of Text Fucking, surely it is they, so to have a conversation with them was quite an honor, especially to be able to call them father, of sorts. I continue to pursue this discipline in a largely automated way, as we’ll discuss in depth. It’s not an especially practical or beneficial one, no, but it is mine. (And Dave Higgins’, to be fair.)&#xA;&#xA;Apps&#xA;&#xA;The core necessity of any good Text Fucker is a robust text editing and/or word processing application. Zalgo text is a real bitch for Electron apps like my dearest Typora, unfortunately. On iOS, this summation also applies to Obsidian, I’m afraid. I recommend native apps like Drafts (big surprise) - which astonishingly has its very own native Zalgo action as developer Greg’s gift to me! - and Bear (no less of a surprise.) In terms of default configuration intensity, the Drafts action hits the sweet spot out of the box.&#xA;&#xA;https://twitter.com/draftsapp/status/1492645727729766400&#xA;&#xA;If you don’t believe me, here are some more particularly robust text editors on iOS:&#xA;&#xA;Kodex&#xA;Koder&#xA;Taio&#xA;Typewriter&#xA;Runestone (Beta)&#xA;&#xA;If that’s not enough for you, I suggest perusing Brett Terpstra’s iTextEditors Wiki.&#xA;&#xA;I have previously reviewed two wonderful Text Fucking iOS apps on this blog: UniChar and Zalgo Generator. There’s now a macOS version of the latter which is particularly powerful - or at least has particularly powerful implications. There are a few more to be discovered, though:&#xA;&#xA;TextcraftIcon&#xA;&#xA;Textcraft&#xA;&#xA;Textcraft, by Aviary and Mast creator, Shihab Meboob, has become my goto Text Fucking app - even above Zalgo Generator, I’m somewhat sad to say - on both iOS and macOS.&#xA;&#xA;Textcraft for macOS&#xA;&#xA;Textcraft offers a customizable list of 90 live “transformations” to the text you’re entering. Here’s a directly-quoted list of use cases from the app’s press kit:&#xA;&#xA;For a casual tweeter who wants to TyPe LiKe ThIs with minimal effort. &#xA;For an influencer needing to add hashtags before all of their words in a massive word cloud sentence before uploading to Instagram.&#xA;For the coder/designer needing to strip HTML or encode/decode strings in Base64.&#xA;For the blogger wanting fancy text in bubbles, squares, cursive, or stylised differently on their website.&#xA;For the website designer who wants to add underscores between all words for use in code, or change the format between cases.&#xA;For the journalist who wants to redact or underline some text.&#xA;For the cryptographer who wants to convert strings to SHA128 and SHA256.&#xA;&#xA;In my personal use, I’ve noticed it’s by far the quickest way to add m   u   l   t   i   p   l   e       c   h   a   r   a   c   t   e   r       s   p   a   c   e   s I’ve ever come across, all enabled by the app’s one-touch-to-copy function. As I said in my App Store review, the iOS app weighs in at a featherweight 3.7 MB and a reasonable $4.99 one-time purchase fee, which is high value for someone like me.&#xA;&#xA;TextExpanderIcon&#xA;&#xA;TextExpander&#xA;&#xA;Another cross-platform application - this one extending to Windows, too - TextExpander has very recently (and quite swiftly) become an integral part of my day-to-day creative life. It’s used by professionals at companies with “thousands of people,” supposedly, to “expand” any sort of text, set off scripts (on macOS,) and paste fill in-able templates. These functions are divided into “snippets” as part of “snippet groups.” In fact, I’ve created a dedicated snippet group to accompany this guide. You can view all my TextExpander snippets in this GitHub Repository.&#xA;&#xA;TextFuckSnippetGroup&#xA;&#xA;It’s not much just yet, but if you “subscribe” to my dedicated Text Fuck snippet group from your own account, you’ll be treated to whatever I come up with in the future, delivered to your devices in real time. ^5] The great pro of TextExpander is its target pro usergroup, for which it is built to be reliable and very powerful. It enables quick macros for strings as short as ⁌•-¬䷂☃︎𝄫𝄢⟫L𝔒’⌤⌄∔×−฿🄕𝄢 up to [entire book chapters. It also has more complex functions, likely the most relevant to our use of which being clipboard insertion anywhere within a snippet. Crucial to the strong Text Fucker, this function has high potential for multiplied volume. One might set up a snippet that duplicates the clipboard’s content nine times on new lines and attach the macro \9. &#xA;&#xA;COMIN DINE&#xA;&#xA;Automation&#xA;&#xA;Debatably, my personal history with automation began with the release of IFTT (now IFTTT) somewhere around 2010-2011. Once it was integrated with Twitter and Evernote, I set it to save all of my Twitter favorites in separate, tagged Evernotes. The result was quite tremendous, as you might imagine, and is partially immortalized in my current Twitter Raindrop collection. Tremendous, but not in a Text Fucking sense. Sometime just after high school, though, I configured an IFTT recipe that posted “WHEN IM COMIN DINE IN MY FOREIGN AND IM ROLLIN ONE DEEP THAT SHOULD TELL YA BOUT ME” across my social networks, every morning at 6:10 AM.&#xA;&#xA;https://twitter.com/NeoYokel/status/1492783081593483266&#xA;&#xA;It was in the same era that one of my handful of lifetime genius ideas came to me: it occurred to me that I could automate the Drywall Tumblr page entirely by signing up its “post via email” address for all the spam lists I could find. The result is axiomatic. It is also Text Fucking, emphatically. Though I certainly didn’t know it by the name “automation,” then - nor did I associate the term with anything digital, really - contemporary personal automation enables virtually infinite Text Fucking possibilities. No longer does one have to manually copy the entirety of a huge Wikipedia page in order to break their friend’s phone for 5 days - now, they need only configure a native app on their cellular telephone to send the whole of the Spy Kids 3 screenplay, for instance, to said friend, in the background, even, as they continue scrolling through the Ticking App.&#xA;&#xA;Of course, while the means of distributing Text Fuckery have gotten vastly more robust, capable, and sophisticated, so too have the terminals by which intended targets experience the Fuckery. The friend’s handset and elemental carrier plan in our example may very well be perfectly capable of receiving an entire film script, line-by-line, also in the background, perhaps even without the target ever noticing or suffering a single consequence. &#xA;&#xA;Siri Shortcuts&#xA;&#xA;TextFuckShortcuts&#xA;&#xA;A standalone method of general Text Fuckery on iOS is achieved through its relatively “new” personal automation system, Siri Shortcuts. In fact, Apple includes what I would define as a genuine Text Fucker™ of a shortcut in its default shortcuts gallery, called “All the Single Ladies ASCII” which can be used to create rather adorable text snippets like this:&#xA;&#xA;(••)&#xA;&lt;)   )╯DAVID BLUE&#xA; /    \ &#xA;&#xA;  (••)&#xA; \(   (  WROTE&#xA;  /    \&#xA;&#xA; (•_•)&#xA;&lt;)   )╯THIS.&#xA; /    \&#xA;&#xA;Through a Reddit thread I’ve never been able to find again, I discovered a method of randomizing strings of text that led to the creation of the Shortcuts you see at the bottom of this section, all with native actions (aside from the outputs of those with specific services.) If you’re willing to splurge on the whole 3.3mb, free (for macOS, iPadOS, and iOS) Actions app, you can accomplish the same task, but much more quickly and with less resource consumption. I think you can spare the space.[ ^3]&#xA;&#xA;Perhaps the best place to start would be with the most documented (and perhaps most unique) Text Fucking Siri Shortcut I have to offer you. “The Fastest Route to Twitter Jail” in fact details the workings of my Twitter Jail shortcut, which uses Tweetbot’s shortcuts actions to send 310 Tweets of random text in less than four minutes to an account of your specification. &#xA;&#xA;Random Text ⇨ Clipboard&#xA;&#xA;If you’re new to Shorcuts entirely, what you see above will result in a string of random text copied to your clipboard, so that you can paste it whereever you might “need” to. Notably, I’ve been extremely lazy with the strings, despite having the absolute best app for creating them on my iPhone. I’d suggest you download it and play around yourself. As I said in my review, UniChar is a beautiful celebration of the diversity of Unicode. If what I’m talking about isn’t straightforward-sounding to you, let me know! I absolutely will sit down and build something just for you.&#xA; &#xA;RandomTextAction&#xA;&#xA;Text-Fucking Siri Shortcuts with Actions&#xA;&#xA;These three shortcuts require the Actions app, but the single action used across all of them - called Random Text - is one that works across all platforms. &#xA;&#xA;Random Characters ⇨ Clipboard&#xA;Random Characters ⇨ Mastodon&#xA;Random Characters ⇨ Tumblr&#xA;&#xA;Text-Fucking Siri Shortcuts with Toolbox Pro, Actions, and Aviary&#xA;&#xA;Here are three shortcuts that may or may not be useful to you, each using Shihab Meboob’s Aviary to Tweet images en masse. The third also requires you have LookUp and a populated collection.&#xA;&#xA;Tweet Symbol Images&#xA;Tweet Color Images&#xA;Tweet Vocabulary Images&#xA;&#xA;Native Text-Fucking Siri Shortcuts&#xA;&#xA;Random Text ⇨ Twitter (Tweetbot)&#xA;Random Text ⇨ Twitter II&#xA;Random Text ⇨ Clipboard&#xA;Random Text ⇨ Drafts&#xA;Random Text ⇨ Mastodon&#xA;Random Text ⇨ Tumblr&#xA;Random Text ⇨ WordPress&#xA;&#xA;Text Case Icon&#xA;&#xA;Text Case&#xA;&#xA;Christopher R Hannah’s Text Case is by far the most modern of all the dedicated text manipulation applications I have to share with you. Available (separately) on both macOS and iOS, it’s a “flow”-based, Siri Shortcuts-resembling text formatting app with some very powerful functions. &#xA;&#xA;TextCase&#xA;&#xA;I know that’s basically word-for-word what anyone else’s had to say about it since its debut, four years ago... I apologize for the redundancy, but the way it works is extremely hard to describe in a way that makes any sense, especially just with a few video clips and/or static images.[ ^4] &#xA;&#xA;MLADraft Shortcut&#xA;&#xA;Without being able to share my own “flows” (unfortunately,) all I can share with you is this Siri Shortcut which is called from this Drafts action to reformat selected text (or the entire contents of the current draft) into proper MLA Title format before amending the results to a specific draft. I also created and published a shortcut called “Speak Word Count” which uses Text Case’s Word Count “format” and Siri Speech Synthesis to speak aloud the word count of either the current selection (from the share sheet) or the contents currently in the system clipboard.&#xA;&#xA;Fuck Shortcut&#xA;&#xA;I’ve also created Fuck - a Siri Shortcut with three of my favorite Text Case formattings so far in succession: “Mocking Spongebob” (ick,) “Upside Down,” and “Clap Case.” It acts upon - and replaces - any text you’ve copied to the clipboard. Here’s an example:&#xA;&#xA;ᴉ┴ 👏 ∀ɔʇs 👏 nԀou 👏  👏  👏 ∀up 👏 ɹƎd˥ɐɔǝs 👏  👏  👏 ∀u⅄ 👏 ┴Ǝx┴ 👏 ⅄On’Λǝ 👏 ɔoԀIǝp 👏 ┴o 👏 ʇɥǝ 👏 ɔlᴉdqo∀ɹp&#xA;&#xA;Dwafts&#xA;&#xA;Drafts&#xA;&#xA;Though I already mentioned Drafts’ Zalgo action earlier, the app worth its own heading, here, because it’s what enabled me to generate the text images embedded in this Post with a single keyboard shortcut. The magic is not in fact happening within Drafts, but rather in the Siri Shortcuts it calls and provides text for. These two are customized for me (so you’ll need to delete the actions you don’t want/need,) but will faithfully reproduce the style of the images you’ve seen as configured for Toolbox Pro users.&#xA;&#xA;DraftsImage&#xA;DraftsImageSmall&#xA;&#xA;If you plan to leave the titles the same, you might just directly install their corresponding actions: DraftsImage and DraftsImageSmall. There are a few actions from other creators I have yet to mention. Tim Nahumck’s Text Modifier action - as pictured in the screenshot embedded below - is a handy one, as is Greg’s own Unicode Fun. He also published Emojify and Fake Wordle, which I find hilarious.&#xA;&#xA;Text Modifier Drafts Action&#xA;&#xA;Single Page, All of Unicode&#xA;&#xA;Other Tools&#xA;&#xA;Thanks to Taro Yabuki’s project to display all graphical unicode characters in a single page, I created and uploaded a PDF of them all, hosted on my NeoCities. If you have trouble viewing it there, you should be able to download it from this iCloud Drive share link. There’s quite a myriad of available “weird text” tools available on the open web, found easily with the most basic bitch search engine queries. MegaCoolTest.com is an old favorite of mine that functions a lot like Textcraft, come to think of it. &#xA;&#xA;I originally intended to thoroughly test some of the results found when searching the App Store for “weird text,” but they’re far too numerous and - for the most part - far too janky to be worthwhile.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/text-fuck&#34;Discuss.../a&#xA;&#xA;---&#xA;&#xA;#software #spectacle&#xA;&#xA;1] Whaddya think‽‽‽ [Should I write a book‽‽‽&#xA;[2] I say “new” here because of how many users genuinely have never encountered the concept, whatsoever, even going on five years since Workflow was made native.&#xA;[3] A few of the single images embedded in this Post are larger than that.&#xA;[4] Nevertheless, I shall do my best to remain ashamed of my redundant inadequacy.&#xA;5] If you find yourself trying it out, you may as well check out my main Snippet Group, [Extratext, which is documented here. &#xA;6] You might be interested to hear how human Siri Voice 2 sounds [attempting to read the title aloud.&#xA;[7] It just now occurred to me that the series title wasn’t exactly gender-inclusive, but the series, itself, wasn’t actually of any value, anyway.&#xA;8] I’ve also duplicated this one [on my NeoCities.]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/zeOD3AWR.png" alt="Fuck Banner"/></p>

<h2 id="a-guide-to-digital-text-fuckery-largely-on-apple-platforms-from-one-of-the-world-s-foremost-authorities" id="a-guide-to-digital-text-fuckery-largely-on-apple-platforms-from-one-of-the-world-s-foremost-authorities">A guide to digital text fuckery (largely on Apple Platforms) from one of the world’s foremost authorities.</h2>



<p><audio controls="">
  <source src="https://davidblue.wtf/audio/text-fuck.mp3">
</audio></p>

<p>My <a href="https://uikeycommand.com">project to properly document Bluetooth keyboard support on iPhone</a> has given me a new reverence for accessibility, generally, which might come as a hypocritical statement at the beginning of such a piece, but I <em>did</em> <a href="https://mastodon.social/@DavidBlue/107589034582138302">explicitly ask you</a> if you felt this subject was anti-accessibility before I officially embarked upon writing This Post. I don&#39;t consider the answer – a very weak “no” – to be an all-encompassing excuse, whatsoever. If you feel this post&#39;s existence has the potential to do real harm, <a href="https://davidblue.wtf/db.vcf">contact me</a> and I <em>will</em> straight up take it down. I dare you. Since I consider myself a genuine authority on Text Fucking, however, I am going to do my best to main unapologetic language when expressing opinions in orbit of the matter. You can trust me, I think.</p>

<p>It’s already as good a place as any, editorially, to initiate the goddamned “<em>good vs. evil</em>” discussion because we could very easily find ourselves sincerely addressing the class implications of Text Fucking, otherwise. I want to offer myself, fully, as your test target and/or guinea pig, if you will. If you’re looking for a phone number upon which to set the sights of any of the methodologies shared here (or otherwise, for that matter,) here is mine: <strong>+1 (573) 823-4380</strong>. If you’re on a mobile device, definitely try out <a href="https://davidblue.wtf/db.vcf">this link to my full contact card</a>, and consider this brief list of some other potential targets of mine:</p>
<ul><li><a href="https://t.me/extratone">Telegram</a></li>
<li><a href="mailto:davidblue@extratone.com">Email</a></li>
<li><a href="https://twitter.com/NeoYokel">Twitter</a></li>
<li><a href="https://mastodon.social/@DavidBlue">Mastodon</a></li>
<li><a href="https://discord.gg/0b9KQUKP858b0iZF">Discord</a></li>
<li><a href="https://raindrop.io/davidblue/social-directory-21059174"><em>Everywhere</em></a>...</li></ul>

<p>I won’t share any of your identifying information anywhere, nor will I respond unless you ask, but I <em>guarantee</em> I <em>will</em> be utterly delighted to receive any volume of Fuckery in any inbox you’re capable of sending it to because I have been so at the half-dozen or so message strings I’ve received over the past few weeks. Even if you somehow manage to find a means of <em>un</em>delighting me, that would be a far better scenario for all involved parties than my catching word you used one of my shortcuts to send <em>Mein Kampf</em> to a prayer request line or some shit. I promise it will always be more fun to shoot for <em>constructive disruption</em> over edgy bullshit, especially in this New Age when nothing is certain and nobody is talking. As much as the person who wrote the Yelp! review, below, would’ve loved to advocate for contribution to the noise for the simple sake of it, he’s fucking dead.</p>

<p><img src="https://i.snap.as/K2E9UV7S.png" alt="Discerning Yelp Connoisseur"/></p>

<p>Hopefully, we’re now free to get specific. Here’s my definition from <a href="https://github.com/extratone/bilge/wiki/Text-Fucking">the “Text Fucking” entry</a> in <a href="https://github.com/extratone/bilge/wiki"><em>The Psalms</em> wiki</a>:</p>

<p><strong>text fucking</strong>
1. <strong>Text Fucking</strong> <em>verb</em>
a.) hardcore text manipulation.
b.) destruction of usable digital text.</p>
<ol><li><p><strong>Text Fuckery</strong> <em>noun</em>
the discipline of text fucking.</p></li>

<li><p><strong>Text Fuckery</strong> <em>noun</em>
the output... the <em>result</em> of the verb.</p></li></ol>

<p>disruption</p>

<p>I might also append an esp. in either neutral or constructive applications. Again, a Zalgoed Tweet every once in a while is funny, but mass spamming strangers in peer-to-peer spaces is not. Not funny in any sense. To draw a medium parallel with audio – as I will several times in this guide, you’ll find – genuinely disruptive text manipulation is like choosing to push your pirate radio out on the volunteer-run community station’s frequency instead of the corporate-owned hits channel’s. Any sense you might be doing something worthwhile dramatically vanishes and the possibility of accomplishing something a bit <em>original</em>, even, is nullified in the womb.</p>

<p><img src="https://i.snap.as/Cu9MC89q.png" alt="gm2"/></p>

<p>I won’t say Text Fucking is an art. Indeed, perhaps it is anti-art. It <em>is</em> a discipline, nearly. At least enough so that I believe this Post is worth it[^1]. Like most disciplines, it can be used for your particular definitions of “good” and/or “bad.” I would like to think most of my use over the years has been toward my own of “good,” but – as per the unsearchable nature of Fucked Text, generally – this is not easily verifiable or citable. Regardless of my performance, however, I genuinely believe Text Fucking can be an endeavor that leads to more “positive” outcomes, whoever you may be. As I did, you might find yourself with a greater appreciation of and a desire to learn more about those individuals and organizations working in the Accessible Technology industry, ever toward a more inclusive digital future. It’s my hope that the weaponization of such an otherwise banal part of life might empower you with the simple fact of your capabilities, even if you don’t ever choose to actually implement them in a single instance.</p>

<p><audio controls="">
  <source src="https://github.com/extratone/bilge/raw/main/audio/Voice%20Notes/textfucker.mp3">
</audio></p>

<h2 id="history" id="history">History</h2>

<p>As detailed in the audio account embedded above, I believe my Text Fucking career began somewhere around the 7th grade, at 13-14 years old. It was my second or third time flunking MS02 – the Microsoft Office II course – taken on fairly outdated school desktop machines in the 2007-2008 era, all running Windows XP. Because of some inexplicable ability to simply do what I was told, I would spend class periods trying to create the largest possible text file in Notepad by copying and pasting huge, exponentially growing globs. Eventually, I did crash a machine at least once. Though it could very well be simply the self-exaggerated recollection of preteendom, I even remember crashing the school server with one of those files. They were ginormous for plaintext.</p>

<p><blockquote class="twitter-tweet"><p lang="en" dir="ltr">if you don’t think Z̸͔͈̮̠̓͋ͧ̚̕͞͡a̡̨͇̳̹̯̞̓ͦͨ͢͡͝l̞̭̻̃̚͠҉͙g̩͒̀͗̾͏̶͇̮͍̋̄̀̄ͬo is the digital text form of audio clipping, I want you to call me right now. +1 (573) 823-4380</p>&mdash; David Blue ※ (ɥ̶͇͖͉̠̰̟͔̒́̆ͧ͋̀̀ ????) (@NeoYokel) <a href="https://twitter.com/NeoYokel/status/1495487495622045699?ref_src=twsrc%5Etfw">February 20, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p>My Text Fucking reached its peak proliferation in <a href="https://drywallmusic.tumblr.com">the Drywall Era</a>, when I first discovered the magic of Zalgo Text. The original generator at eemo.net has been replaced by an exact duplicate at <a href="http://eeemo.net">eeemo.net</a>. I have actually managed to successfully duplicate it <a href="https://davidblue.wtf/zalgo/">on my own NeoCities website</a>, as well. You might say that this original Zalgo Generator is The Original Text Fucking Tool. It can still generate quantities of fucked digital text information that <em>will</em> Fuck Shit Up on any social network, and as far as I can tell, the entire program is contained within <a href="https://davidblue.wtf/zalgo/index.html">a single HTML file</a>.</p>

<iframe style="border: 0; width: 100%; height: 120px;" src="https://bandcamp.com/EmbeddedPlayer/album=3533156466/size=large/bgcol=fff4e6/linkcol=00006b/tracklist=false/artwork=small/track=549558740/transparent=true/">&lt;a href=&#34;https://ihadtopee.bandcamp.com/album/suburban-anarchy&#34;&gt;Suburban Anarchy by Drywall&lt;/a&gt;</iframe>

<p>As Drywall’s first and second albums – <a href="https://ihadtopee.bandcamp.com/album/hamura"><em>Hamura</em></a> and <a href="https://ihadtopee.bandcamp.com/album/suburban-anarchy"><em>Suburban Anarchy</em></a>, respectively – were studies in <a href="https://en.m.wikipedia.org/wiki/Clipping_(audio)">audio clipping</a>, I felt strongly at the time that Zalgo Text was the digital text equivalent, though there were others. The latter’s most wildly-entitled track, “Í£Í†Ì„Ì“Ì‡Ì¿Í›ÍÍŽÍÍ¬Ìƒ&amp;ÍÌµÍ‡Ì Ì¥ÌªÌ„ÌÍŒÍ¯Ì“​$​Ì¯Ì»Ì£ÍšÍ’Ì‰ÌÍ‘,” does not actually include any Zalgo text in its title’s final form, <a href="https://ihadtopee.bandcamp.com/track/-">on Bandcamp</a>[^6], yet I think we can agree it is thoroughly Fucked. <em>Beyond The Rails</em> was my cringey “label” name, directly describing, technically, the matter of clipping audio. Indeed, Zalgo Text goes beyond the “rails” of text input/display fields reliably, depending on the intensity of the configuration you’re using to create it.</p>

<p><blockquote class="twitter-tweet"><p lang="und" dir="ltr">?́́ ̷͢?́?͜?̛<br>͏̸?̢҉<br>̶͟?͝͡<br>̢͝?͜?̛?̴<br>͟͠?̶͡<br>̀?̀<br>́?̛</p>&mdash; David Blue ※ (ɥ̶͇͖͉̠̰̟͔̒́̆ͧ͋̀̀ ????) (@NeoYokel) <a href="https://twitter.com/NeoYokel/status/1493041887279734784?ref_src=twsrc%5Etfw">February 14, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p>When <a href="https://apps.apple.com/us/app/imovie/id377298193">iMovie for iPhone</a> first became available, making actual video editing and creation possible on iPhone OS in the iPhone 4 era, I took advantage of a very particular – but extremely powerful – function that was originally allowed creators on YouTube’s iOS app. It’s very hard to describe without being able to show, but it allowed for the rapid addition of tags to any video via an autocomplete-ish feature, up to the full tag limit. The series of Drywall videos that were essentially just vlogs shot from our high school lunch table – entitled <em>Men and Women of The Armed Forces, This is What You are Fighting For</em>[^7] (MAWOTAFTIWYAFF) – were all thoroughly tagged this way.</p>

<p><iframe allow="monetization" class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F-5eMO8PJJp4%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D-5eMO8PJJp4&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F-5eMO8PJJp4%2Fhqdefault.jpg&key=d932fa08bf1f47efbbe54cb3d746839f&type=text%2Fhtml&schema=youtube" width="640" height="360" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></p>

<p>The most notable event in my personal text history, though, happened on Mastodon – as much does these days, if you weren’t aware. I was <a href="https://mastodon.social/@DavidBlue/102564857843257870">posting about Zalgo text’s creation</a> when <strong>its actual creator</strong>, Dave Higgins – with whom I’d unknowingly been mutuals for some time, apparently – <a href="https://octodon.social/@DaveHiggins/102565065494333224">replied</a>:</p>

<iframe src="https://octodon.social/@DaveHiggins/102565065494333224/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400" allowfullscreen="allowfullscreen"></iframe>

<p>If there is a living God/Ultimate Sage/Premiere Authority/Professor of Text Fucking, surely it is they, so to have a conversation with them was quite an honor, especially to be able to <a href="https://mastodon.social/@DavidBlue/102565952197076202">call them father</a>, of sorts. I continue to pursue this discipline in a largely automated way, as we’ll discuss in depth. It’s not an especially practical or beneficial one, no, but it is mine. (And Dave Higgins’, to be fair.)</p>

<h2 id="apps" id="apps">Apps</h2>

<p>The core necessity of any good Text Fucker is a robust text editing and/or word processing application. Zalgo text is a real bitch for Electron apps like my dearest <a href="https://typora.io">Typora</a>, unfortunately. On iOS, this summation also applies to <a href="https://obsidian.md">Obsidian</a>, I’m afraid. I recommend native apps like <a href="https://apps.apple.com/us/app/drafts/id1435957248">Drafts</a> (big surprise) – which astonishingly has <a href="https://actions.getdrafts.com/a/1vM"><strong>its very own native Zalgo action</strong></a> as developer Greg’s <a href="https://twitter.com/draftsapp/status/1492645727729766400">gift to me</a>! – and <a href="https://apps.apple.com/us/app/bear-markdown-notes/id1016366447">Bear</a> (no less of a surprise.) In terms of default configuration intensity, the Drafts action hits the sweet spot out of the box.</p>

<p><blockquote class="twitter-tweet"><p lang="und" dir="ltr">N̡̥̬̆͏͊҉̷̧̧o҉̗͖̣ͨ̽͝͏͗̀̿̕t̡̰͢ t͋o̬̟̙ h̲̲̹̓̑ͨạ̸̧̡̨ͯ̋̊r̶̛̩͍̖̹ͥ̽͜d̲̙ͬ?̶̛̱͉̓  <a href="https://t.co/2W0ZJTtkbV">https://t.co/2W0ZJTtkbV</a></p>&mdash; Drafts (@draftsapp) <a href="https://twitter.com/draftsapp/status/1492645727729766400?ref_src=twsrc%5Etfw">February 12, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p>If you don’t believe me, here are some more particularly robust text editors on iOS:</p>
<ul><li><a href="https://apps.apple.com/us/app/kodex/id1038574481">Kodex</a></li>
<li><a href="https://apps.apple.com/us/app/koder-code-editor/id1447489375">Koder</a></li>
<li><a href="https://apps.apple.com/us/app/taio-markdown-text-actions/id1527036273">Taio</a></li>
<li><a href="https://apps.apple.com/us/app/typewriter-for-markdown/id1556419263">Typewriter</a></li>
<li><a href="https://testflight.apple.com/join/Q6S1cuCd">Runestone</a> (Beta)</li></ul>

<p>If that’s not enough for you, I suggest perusing <a href="https://brettterpstra.com/ios-text-editors">Brett Terpstra’s iTextEditors Wiki</a>.</p>

<p>I have previously reviewed two wonderful Text Fucking iOS apps on this blog: <a href="https://bilge.world/unichar-for-ios-app-review"><strong>UniChar</strong></a> and <a href="https://bilge.world/zalgo-generator-ios-app-review"><strong>Zalgo Generator</strong></a>. There’s now <a href="https://apps.apple.com/us/app/zalgo-generator/id1304137527">a macOS version of the latter</a> which is particularly powerful – or at least has particularly powerful implications. There are a few more to be discovered, though:</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153724474-6a64b3d3-cb87-428e-81d6-a900746f9886.png" alt="TextcraftIcon"/></p>

<h3 id="textcraft" id="textcraft">Textcraft</h3>

<p><a href="https://apps.apple.com/us/app/textcraft/id1546719359"><strong>Textcraft</strong></a>, by <a href="https://apps.apple.com/us/app/aviary-for-twitter/id1522043420">Aviary</a> and <a href="https://apps.apple.com/us/app/mast-for-mastodon/id1437429129">Mast</a> creator, <a href="https://apps.apple.com/us/developer/shihab-mehboob/id1533949185">Shihab Meboob</a>, has become my goto Text Fucking app – even above <a href="https://apps.apple.com/us/app/zalgo-generator/id1304137527">Zalgo Generator</a>, I’m somewhat sad to say – on both iOS and macOS.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153737944-46db7da5-6d85-41da-abd1-78a54bb58b99.png" alt="Textcraft for macOS"/></p>

<p>Textcraft offers a customizable list of 90 live “transformations” to the text you’re entering. Here’s a directly-quoted list of use cases from the app’s press kit:</p>
<ul><li>For a casual tweeter who wants to TyPe LiKe ThIs with minimal effort.</li>
<li>For an influencer needing to add hashtags before all of their words in a massive word cloud sentence before uploading to Instagram.</li>
<li>For the coder/designer needing to strip HTML or encode/decode strings in Base64.</li>
<li>For the blogger wanting fancy text in bubbles, squares, cursive, or stylised differently on their website.</li>
<li>For the website designer who wants to add underscores between all words for use in code, or change the format between cases.</li>
<li>For the journalist who wants to redact or underline some text.</li>
<li>For the cryptographer who wants to convert strings to SHA128 and SHA256.</li></ul>

<p>In my personal use, I’ve noticed it’s by far the quickest way to add m   u   l   t   i   p   l   e       c   h   a   r   a   c   t   e   r       s   p   a   c   e   s I’ve ever come across, all enabled by the app’s one-touch-to-copy function. As I said in <a href="https://tilde.town/~extratone/appreviews/textcraft">my App Store review</a>, the iOS app weighs in at a featherweight 3.7 MB and a reasonable $4.99 one-time purchase fee, which is high value for someone like me.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153726269-6d8cee5d-116b-4b28-99a0-91842e502456.png" alt="TextExpanderIcon"/></p>

<h3 id="textexpander" id="textexpander">TextExpander</h3>

<p>Another cross-platform application – this one <a href="https://textexpander.com/download">extending to Windows</a>, too – TextExpander has very recently (and quite swiftly) become an integral part of my day-to-day creative life. It’s used by professionals at companies with “thousands of people,” supposedly, to “expand” any sort of text, set off scripts (on macOS,) and paste fill in-able templates. These functions are divided into “<a href="https://textexpander.com/learn/getting-started">snippets</a>” as part of “<a href="https://textexpander.com/learn/getting-started/getting-started-for-admin">snippet groups</a>.” In fact, I’ve created <a href="https://app.textexpander.com/public/12c50fb2360617d3cc66d757cf26383b"><strong>a dedicated snippet group to accompany this guide</strong></a>. You can view all my TextExpander snippets in <a href="https://github.com/extratone/TextExpander">this GitHub Repository</a>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153726468-25b5a5a9-0381-4720-b1e7-c7fb2ef357d9.png" alt="TextFuckSnippetGroup"/></p>

<p>It’s not much just yet, but if you “<a href="https://app.textexpander.com/public/12c50fb2360617d3cc66d757cf26383b">subscribe</a>” to my dedicated Text Fuck snippet group from your own account, you’ll be treated to whatever I come up with in the future, delivered to your devices in real time.[ ^5] The great pro of TextExpander is its target pro usergroup, for which it is built to be reliable and very powerful. It enables quick macros for strings as short as ⁌•-¬䷂☃︎𝄫𝄢⟫L𝔒’⌤⌄∔×−฿🄕𝄢 up to <a href="https://bilge.world/blimps-burden-chapter-6">entire book chapters</a>. It also has more complex functions, likely the most relevant to our use of which being clipboard insertion anywhere within a snippet. Crucial to the strong Text Fucker, this function has high potential for multiplied volume. One might set up a snippet that duplicates the clipboard’s content nine times on new lines and attach the macro <code>\9</code>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154876382-95749054-1a47-4dec-9e4d-0c2e1229f79e.png" alt="COMIN DINE"/></p>

<h2 id="automation" id="automation">Automation</h2>

<p>Debatably, my personal history with automation began with the release of IFTT (now <a href="https://apps.apple.com/us/app/ifttt-automation-workflow/id660944635">IFTTT</a>) somewhere around 2010-2011. Once it was integrated with Twitter and Evernote, I set it to save all of my Twitter favorites in separate, tagged Evernotes. The result was quite tremendous, as you might imagine, and is partially immortalized in my current <a href="https://raindrop.io/davidblue/twitter-13759854">Twitter Raindrop collection</a>. Tremendous, but not in a Text Fucking sense. Sometime just after high school, though, I configured an IFTT recipe that posted “WHEN IM COMIN DINE IN MY FOREIGN AND IM ROLLIN ONE DEEP THAT SHOULD TELL YA BOUT ME” across my social networks, every morning at 6:10 AM.</p>

<p><blockquote class="twitter-tweet"><p lang="en" dir="ltr">holy fuck this is disturbing. <a href="https://t.co/7a96mgYELI">https://t.co/7a96mgYELI</a> <a href="https://t.co/fr9dorHtsO">pic.twitter.com/fr9dorHtsO</a></p>&mdash; David Blue ※ (ɥ̶͇͖͉̠̰̟͔̒́̆ͧ͋̀̀ ????) (@NeoYokel) <a href="https://twitter.com/NeoYokel/status/1492783081593483266?ref_src=twsrc%5Etfw">February 13, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p>It was in the same era that one of my handful of lifetime genius ideas came to me: it occurred to me that I could automate <a href="https://drywallmusic.tumblr.com">the Drywall Tumblr page</a> entirely by signing up its “post via email” address for all the spam lists I could find. The result is axiomatic. It is also Text Fucking, emphatically. Though I certainly didn’t know it by the name “automation,” then – nor did I associate the term with anything digital, really – contemporary personal automation enables virtually infinite Text Fucking possibilities. No longer does one have to manually copy the entirety of a huge Wikipedia page in order to break their friend’s phone for 5 days – now, they need only configure a native app on their cellular telephone to send <a href="https://routinehub.co/shortcut/10919">the whole of the <em>Spy Kids 3</em> screenplay</a>, for instance, to said friend, in the background, even, as they continue scrolling through the Ticking App.</p>

<p>Of course, while the means of <em>distributing</em> Text Fuckery have gotten vastly more robust, capable, and sophisticated, so too have the terminals by which intended targets <em>experience</em> the Fuckery. The friend’s handset and elemental carrier plan in our example may very well be perfectly capable of receiving an entire film script, line-by-line, also in the background, perhaps even without the target ever noticing or suffering a single consequence.</p>

<h3 id="siri-shortcuts" id="siri-shortcuts">Siri Shortcuts</h3>

<p><img src="https://user-images.githubusercontent.com/43663476/153750918-ca0c5eb6-0d91-4d7f-b70b-550f0f44c528.png" alt="TextFuckShortcuts"/></p>

<p>A standalone method of general Text Fuckery on iOS is achieved through its relatively “new”[^2] personal automation system, Siri Shortcuts. In fact, Apple includes what I would define as a genuine Text Fucker™ of a shortcut in its default shortcuts gallery, called “<a href="https://www.icloud.com/shortcuts/51392bf23f104b93baf72000955ed334">All the Single Ladies ASCII</a>” which can be used to create rather adorable text snippets like this:</p>

<pre><code class="language-txt">(•_•)
&lt;)   )╯DAVID BLUE
 /    \ 

  (•_•)
 \(   (&gt; WROTE
  /    \

 (•_•)
&lt;)   )╯THIS.
 /    \
</code></pre>

<p>Through a Reddit thread I’ve never been able to find again, I discovered a method of randomizing strings of text that led to the creation of the Shortcuts you see at the bottom of this section, all with native actions (aside from the outputs of those with specific services.) If you’re willing to splurge on the whole 3.3mb, free (for macOS, iPadOS, and iOS) <a href="https://apps.apple.com/us/app/actions/id1586435171"><strong>Actions app</strong></a>, you can accomplish the same task, but much more quickly and with less resource consumption. I think you can spare the space.[ ^3]</p>

<p>Perhaps the best place to start would be with the most documented (and perhaps most unique) Text Fucking Siri Shortcut I have to offer you. “<a href="https://bilge.world/twitter-jail">The Fastest Route to Twitter Jail</a>” in fact details the workings of <a href="https://routinehub.co/shortcut/11086/"><strong>my Twitter Jail shortcut</strong></a>, which uses <a href="http://bilge.world/tweetbot-6-ios-review">Tweetbot</a>’s shortcuts actions to send 310 Tweets of random text in less than four minutes to an account of your specification.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153768899-51ed409f-7fef-46d0-978f-8a5fc19ad5f7.png" alt="Random Text ⇨ Clipboard"/></p>

<p>If you’re new to Shorcuts entirely, what you see above will result in a string of random text copied to your clipboard, so that you can paste it whereever you might “need” to. Notably, I’ve been extremely lazy with the strings, despite having <a href="https://apps.apple.com/us/app/unichar-unicode-keyboard/id880811847">the absolute best app for creating them</a> on my iPhone. I’d suggest you download it and play around yourself. As I said in <a href="http://bilge.world/unichar-for-ios-app-review">my review</a>, UniChar is a beautiful celebration of the diversity of Unicode. If what I’m talking about isn’t straightforward-sounding to you, <a href="https://davidblue.wtf/db.vcf">let me know</a>! I absolutely <em>will</em> sit down and build something just for you.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153781368-a58bbb73-5675-48d6-9317-3538701a27d1.png" alt="RandomTextAction"/></p>

<h4 id="text-fucking-siri-shortcuts-with-actions" id="text-fucking-siri-shortcuts-with-actions">Text-Fucking Siri Shortcuts with Actions</h4>

<p>These three shortcuts require <a href="https://apps.apple.com/us/app/actions/id1586435171">the Actions app</a>, but the single action used across all of them – called <code>Random Text</code> – is one that works across all platforms.</p>
<ul><li><a href="https://www.icloud.com/shortcuts/ed9216202df4481d9ae001b0531384c2">Random Characters ⇨ Clipboard</a></li>
<li><a href="https://www.icloud.com/shortcuts/af64b43604334d21ad5a6668471b828f">Random Characters ⇨ Mastodon</a></li>
<li><a href="https://www.icloud.com/shortcuts/399a857145e34d8b94b994fa3f9ca300">Random Characters ⇨ Tumblr</a></li></ul>

<h4 id="text-fucking-siri-shortcuts-with-toolbox-pro-actions-and-aviary" id="text-fucking-siri-shortcuts-with-toolbox-pro-actions-and-aviary">Text-Fucking Siri Shortcuts with Toolbox Pro, Actions, and Aviary</h4>

<p>Here are three shortcuts that may or may not be useful to you, each using Shihab Meboob’s <a href="https://apps.apple.com/us/app/aviary-for-twitter/id1522043420">Aviary</a> to Tweet images en masse. The third also requires you have <a href="https://apps.apple.com/us/app/lookup-english-dictionary/id872564448">LookUp</a> and a populated collection.</p>
<ul><li><a href="https://www.icloud.com/shortcuts/a328611ebcab4f8ba271c0f89e3a7025">Tweet Symbol Images</a></li>
<li><a href="https://www.icloud.com/shortcuts/192008f53ad74860b1de1d7adccedb69">Tweet Color Images</a></li>
<li><a href="https://www.icloud.com/shortcuts/7417bf83a7a349099e1a50b1b091285b">Tweet Vocabulary Images</a></li></ul>

<h4 id="native-text-fucking-siri-shortcuts" id="native-text-fucking-siri-shortcuts">Native Text-Fucking Siri Shortcuts</h4>
<ul><li><a href="https://www.icloud.com/shortcuts/0873152dee3e4d32828cd28bcbc1be06">Random Text ⇨ Twitter</a> (<a href="https://apps.apple.com/us/app/tweetbot-6-for-twitter/id1527500834">Tweetbot</a>)</li>
<li><a href="https://www.icloud.com/shortcuts/21ab008699ce44dabc9f9a249fc6f881">Random Text ⇨ Twitter II</a></li>
<li><a href="https://www.icloud.com/shortcuts/3bfc10474a254aec8a0f8f89da96d198">Random Text ⇨ Clipboard</a></li>
<li><a href="https://www.icloud.com/shortcuts/f550febfa39b465b88217e1717f37548">Random Text ⇨ Drafts</a></li>
<li><a href="https://www.icloud.com/shortcuts/0e517d1438b44d3d980c8afb9891a724">Random Text ⇨ Mastodon</a></li>
<li><a href="https://www.icloud.com/shortcuts/3c38ca0a7ec9413f9c9a6f6328fb1b09">Random Text ⇨ Tumblr</a></li>
<li><a href="https://www.icloud.com/shortcuts/07668aacd5ce4e59b76dd54ffc255209">Random Text ⇨ WordPress</a></li></ul>

<p><img src="https://user-images.githubusercontent.com/43663476/154006137-74a7006f-862a-40b1-96e4-258b5b49ed2d.png" alt="Text Case Icon"/></p>

<h3 id="text-case" id="text-case">Text Case</h3>

<p>Christopher R Hannah’s <a href="https://apps.apple.com/us/app/text-case/id1492174677">Text Case</a> is by far the most modern of all the dedicated text manipulation applications I have to share with you. Available (separately) on both <a href="https://apps.apple.com/us/app/terminology-dictionary/id687798859">macOS</a> and <a href="https://apps.apple.com/us/app/text-case/id1407730596">iOS</a>, it’s a “flow”-based, Siri Shortcuts-resembling text formatting app with some very powerful functions.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154810776-5ecc4fb5-2fd3-48e3-be1b-d86287cd1965.png" alt="TextCase"/></p>

<p>I know that’s basically word-for-word what anyone else’s had to say about it since its debut, four years ago... I apologize for the redundancy, but the way it works is extremely hard to describe in a way that makes any sense, especially just with a few video clips and/or static images.[ ^4]</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154823905-90618f3b-45f4-42d0-940f-c8b04d395410.png" alt="MLADraft Shortcut"/></p>

<p>Without being able to share my own “flows” (unfortunately,) all I can share with you is <a href="https://www.icloud.com/shortcuts/6fd60faf566142b3b7d1fb0a0631fa1b">this Siri Shortcut</a> which is called from <a href="https://actions.getdrafts.com/a/1wQ">this Drafts action</a> to reformat selected text (or the entire contents of the current draft) into proper MLA Title format before amending the results to a specific draft. I also created and published a shortcut called “<a href="https://routinehub.co/shortcut/11094">Speak Word Count</a>” which uses Text Case’s Word Count “format” and <a href="https://bilge.world/siri-tts">Siri Speech Synthesis</a> to speak aloud the word count of either the current selection (from the share sheet) or the contents currently in the system clipboard.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154841943-3ba7b019-c146-4765-90b1-2f52e34f3911.png" alt="Fuck Shortcut"/></p>

<p>I’ve also created <a href="https://www.icloud.com/shortcuts/edcc737ed7304a17bb3b4d8897aae29c"><strong>Fuck</strong></a> – a Siri Shortcut with three of my favorite Text Case formattings so far in succession: “Mocking Spongebob” (ick,) “Upside Down,” and “Clap Case.” It acts upon – and replaces – any text you’ve copied to the clipboard. Here’s an example:</p>

<pre><code>ᴉ┴ 👏 ∀ɔʇs 👏 nԀou 👏  👏  👏 ∀up 👏 ɹƎd˥ɐɔǝs 👏  👏  👏 ∀u⅄ 👏 ┴Ǝx┴ 👏 ⅄On’Λǝ 👏 ɔoԀIǝp 👏 ┴o 👏 ʇɥǝ 👏 ɔlᴉdqo∀ɹp
</code></pre>

<p><img src="https://user-images.githubusercontent.com/43663476/157349288-2fff224d-05dd-4bcf-a4e3-feec486ac6fa.png" alt="Dwafts"/></p>

<h3 id="drafts" id="drafts">Drafts</h3>

<p>Though I already mentioned Drafts’ Zalgo action earlier, the app worth its own heading, here, because it’s what enabled me to generate the text images embedded in this Post with a single keyboard shortcut. The magic is not in fact happening within Drafts, but rather in the Siri Shortcuts it calls and provides text for. These two are customized for me (so you’ll need to delete the actions you don’t want/need,) but will faithfully reproduce the style of the images you’ve seen as configured for <a href="https://apps.apple.com/us/app/toolbox-pro-for-shortcuts/id1476205977">Toolbox Pro</a> users.</p>
<ul><li><a href="https://www.icloud.com/shortcuts/09d229c3b5064480a30ac784b7edd3ef">DraftsImage</a></li>
<li><a href="https://www.icloud.com/shortcuts/fa3b63050cde48e4933bac6d9b1545df">DraftsImageSmall</a></li></ul>

<p>If you plan to leave the titles the same, you might just directly install their corresponding actions: <a href="https://directory.getdrafts.com/a/1x2">DraftsImage</a> and <a href="https://directory.getdrafts.com/a/1x3">DraftsImageSmall</a>. There are a few actions from other creators I have yet to mention. Tim Nahumck’s <a href="https://actions.getdrafts.com/a/1Bg">Text Modifier</a> action – as pictured in the screenshot embedded below – is a handy one, as is Greg’s own <a href="https://actions.getdrafts.com/a/1T2">Unicode Fun</a>. He also published <a href="https://actions.getdrafts.com/a/1ly">Emojify</a> and <a href="https://actions.getdrafts.com/a/1tf">Fake Wordle</a>, which I find hilarious.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/158194647-1ecacacd-2783-44a7-b4af-2f07b6d6471d.png" alt="Text Modifier Drafts Action"/></p>

<p><img src="https://user-images.githubusercontent.com/43663476/158152225-bcad1dc9-f033-4e12-adee-6eb99935fd1d.png" alt="Single Page, All of Unicode"/></p>

<h2 id="other-tools" id="other-tools">Other Tools</h2>

<p>Thanks to <a href="https://github.com/taroyabuki">Taro Yabuki</a>’s <a href="https://github.com/taroyabuki/onepage-unicode-chars">project</a> to display all graphical unicode characters in a single page, I created and uploaded <a href="https://davidblue.wtf/tools/unicode.pdf">a PDF of them all</a>, hosted on my NeoCities. If you have trouble viewing it there, you should be able to download it from <a href="https://www.icloud.com/iclouddrive/04dxiD0KYZoebradRmjDQOaBg#unicode">this iCloud Drive share link</a>. There’s quite a myriad of available “weird text” tools available on the open web, found easily with the most basic bitch search engine queries. <a href="http://megacooltext.com">MegaCoolTest.com</a> is an old favorite of mine[^8] that functions a lot like Textcraft, come to think of it.</p>

<p>I originally intended to thoroughly test some of the results found when searching the App Store for “weird text,” but they’re far too numerous and – for the most part – far too janky to be worthwhile.</p>

<p><a href="https://remark.as/p/bilge.world/text-fuck">Discuss...</a></p>

<hr/>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:spectacle" class="hashtag"><span>#</span><span class="p-category">spectacle</span></a></p>

<p>[1] Whaddya think‽‽‽ <a href="https://twitter.com/NeoYokel/status/1492589668843634692">Should I write a book</a>‽‽‽
[2] I say “new” here because of how many users genuinely have never encountered the concept, whatsoever, even going on five years since Workflow was made native.
[3] A few of the single images embedded in this Post are larger than that.
[4] Nevertheless, I shall do my best to remain ashamed of my redundant inadequacy.
[5] If you find yourself trying it out, you may as well check out my main Snippet Group, <a href="https://app.textexpander.com/public/14093096578d4f40eeea15649f5cefbb">Extratext</a>, which is documented <a href="https://davidblue.wtf/extratext">here</a>.
[6] You might be interested to hear how human Siri Voice 2 sounds <a href="https://twitter.com/NeoYokel/status/1500149497111920642">attempting to read the title aloud</a>.
[7] It just now occurred to me that the series title wasn’t exactly gender-inclusive, but the series, itself, wasn’t actually of any value, anyway.
[8] I’ve also duplicated this one <a href="https://davidblue.wtf/cool/">on my NeoCities</a>.</p>
]]></content:encoded>
      <guid>https://bilge.world/text-fuck</guid>
      <pubDate>Thu, 06 Apr 2023 20:38:19 +0000</pubDate>
    </item>
    <item>
      <title>On Drafts&#39; Mail Integration</title>
      <link>https://bilge.world/drafts-mail-integration?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Send2Self Example in Mail&#xA;&#xA;One of the app&#39;s most universal &#39;native&#39; advantages, revisited.&#xA;&#xA;!--more--&#xA;&#xA;I&#39;ve spent more cumulative time playing with my Obsidian configuration in the past 24 hour hours than the sum of the whole I&#39;d spent doing so in the 3(?) years since I installed beta (or was it alpha?) one. While I still find it janky as hell and deeply untrustworthy - among far too many other woes - I must admit that the bulk of shear hype surrounding its existence has indeed resulted in enough developer attention to achieve some technically interesting capabilities. Naturally, most of these feel absurdly redundant in context and all rely on age-old dependencies, but... well, today I uploaded the text of my almost five-year-old Microsoft Surface Laptop 2 Review to its own dedicated Archive.org page in thirteen different formats rendered using Obsidian&#39;s (desktop-only) Pandoc integration!&#xA;&#xA;I lambaste with the sincere intent, at least, of being genuinely constructive, and I began upon this post hoping to do so and finally get around to highlighting one of Drafts&#39; most essential (and taken for granted, I suspect) powers in its entirely cross-platform, system-level integration with Mail on Apple Platforms.&#xA;&#xA;One of Drafts&#39; most immediately apparent advantages as a native iOS/iPadOS/macOS application is readily found in its integration with Mail. Though I&#39;ve personally managed to almost escape my twenties having yet to endure an email-heavy job, I still find the practice of sending topical/sacred information to myself to be the upmost reliable and direct means of retrieving it.&#xA;&#xA;As I&#39;ve configured it, within Drafts on any of its 3 platforms, all I need do is press ^M to have the text of the current Draft sent instantly to an iCloud Mail alias I use for such things. &#xA;&#xA;video controls width=&#34;520&#34; height=auto&#xA;  source src=&#34;https://user-images.githubusercontent.com/43663476/189148302-688897be-b837-4f94-b5ea-c89972516c5a.MOV&#34;&#xA;/video&#xA;&#xA;If I were sending to more folks than just myself on a regular basis, I&#39;d definitely make use of Drafts&#39; Mail Action Wizard to help simplify and solidify the process of creating a dedicated action, which almost certainly would not have the Send in Background toggle selected, as demonstrated, for the sake of giving myself a preview of outbound messages to... important folks. For macOS users, there&#39;s also a bespoke Catalyst app called Mail Assistant, which I&#39;ve yet to try.&#xA;&#xA;Formatting&#xA;&#xA;The parameters of the Mail action step can be filled with any combination of items from the original Drafts template tags array or from the relatively new set of mustache template tags.&#xA;&#xA;https://gist.github.com/extratone/8cc2cd8cc7b8e95a80f9e60b5fe71bd4&#xA;&#xA;The current version of my personal Send-to-Self action sent this example result using the format represented in the Gist embedded above. If you&#39;d like, you can wrap the body] tag (or any part of the message, actually) in double %s and select the Send as HTML toggle to have the result rendered as HTML. (See [this example.)&#xA;&#xA;Setting a Drafts Mail-to-Self-specific rule on iCloud Mail on the Web&#xA;&#xA;If - like me - you&#39;re an iCloud Mail user primarily from iOS/iPadOS, here&#39;s how to create an iCloud Mail rule for messages you&#39;ve sent yourself from Drafts:&#xA;&#xA;Visit iCloud.com/mail in your web browser and authenticate.&#xA;Open the Rules settings menu by tapping the gear icon in the upper left ⇨ Preferences ⇨ Rules.&#xA;Create a new rule with the &#34;Add rule&#34; link.&#xA;By default, the &#34;If a message...&#34; field selection should be &#34;is from.&#34; In the text entry field, enter drafts-mail@drafts5.agiletortoise.com.&#xA;By default, the &#34;Then...&#34; field selection is &#34;Move to Folder.&#34; I have personally set mine to &#34;Move to Folder and Mark as Read,&#34; but this depends on your preference. Select a folder or mailbox for Drafts messages to be moved to and click &#34;Add.&#34;&#xA;&#xA;Publishing via Email&#xA;&#xA;I&#39;ve spent a lot of time this year working on integrating Drafts with NeoCities, Write.as, and other publishing services, but - for new users, especially - Drafts&#39; mail integration offers a pathway to publishing with virtually zero configuration for those services who still offer mail-to-save/post email addresses. These include WordPress, Blogger, Write.as, LiveJournal, Evernote, Day One, Things, Todoist, and more.&#xA;&#xA;Perhaps the easiest method of setting this up would involve finding your private email address for a given service(s), pasting them in the aforementioned Mail Action Wizard, titling the action by the name of the service, and installing. There&#39;s also an Email to Myself action on the Drafts Action Directory to get you started.&#xA;&#xA;video controls width=&#34;520&#34; height=auto&#xA;  source src=&#34;https://user-images.githubusercontent.com/43663476/189246053-c53d970a-a6ea-48da-8878-116d0abf2a2b.MOV&#34;&#xA;/video&#xA;&#xA;Drag and Drop to Formatted Markdown Hyperlinks from Apple Mail&#xA;&#xA;Going the other direction, users of Apple Mail (the client) might find it pleasantly surprising that one can drag a message from Mail into Drafts in order to automatically create a markdown-formatted hyperlink that opens said message from anywhere.&#xA;&#xA;For more details, see the official &#39;Sending Mail with Drafts&#39; Integration Guide.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/drafts-mail-integration&#34;Discuss.../a&#xA;&#xA;software&#xA;]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://user-images.githubusercontent.com/43663476/189065881-56ddbc72-f397-4fe3-be57-e409668427fe.png" alt="Send2Self Example in Mail"/></p>

<h2 id="one-of-the-app-s-most-universal-native-advantages-revisited" id="one-of-the-app-s-most-universal-native-advantages-revisited">One of the app&#39;s most universal &#39;native&#39; advantages, revisited.</h2>



<p>I&#39;ve spent more cumulative time playing with my Obsidian configuration in the past 24 hour hours than the sum of the whole I&#39;d spent doing so in the 3(?) years since I installed beta (or was it alpha?) one. While I still find it <a href="https://youtu.be/Q8vkBuYJOz8">janky as hell</a> and deeply untrustworthy – among far too many other woes – I must admit that the bulk of shear hype surrounding its existence has indeed resulted in enough developer attention to achieve some technically interesting capabilities. Naturally, most of these feel absurdly redundant in context and <em>all</em> rely on age-old dependencies, but... well, today I uploaded the text of my almost five-year-old Microsoft Surface Laptop 2 Review to <a href="https://archive.org/details/microsoft-surface-laptop-2">its own dedicated Archive.org page</a> in <em>thirteen</em> different formats rendered using Obsidian&#39;s (desktop-only) <a href="https://obsidian.md/plugins?id=obsidian-pandoc">Pandoc integration</a>!</p>

<p>I lambaste with the sincere intent, at least, of being genuinely constructive, and I began upon this post hoping to do so <em>and</em> finally get around to highlighting one of Drafts&#39; most essential (and taken for granted, I suspect) powers in its entirely cross-platform, system-level integration with Mail on Apple Platforms.</p>

<p>One of Drafts&#39; most immediately apparent advantages as a <em>native</em> iOS/iPadOS/macOS application is readily found in <a href="https://docs.getdrafts.com/docs/actions/steps/system#mail">its integration with Mail</a>. Though I&#39;ve personally managed to almost escape my twenties having yet to endure an email-heavy job, I still find the practice of sending topical/sacred information to myself to be the upmost reliable and direct means of retrieving it.</p>

<p>As I&#39;ve configured it, within Drafts on any of its 3 platforms, all I need do is press <code>^M</code> to have the text of the current Draft sent instantly to an iCloud Mail alias I use for such things.</p>

<video controls="">
  <source src="https://user-images.githubusercontent.com/43663476/189148302-688897be-b837-4f94-b5ea-c89972516c5a.MOV">
</video>

<p>If I were sending to more folks than just myself on a regular basis, I&#39;d definitely make use of Drafts&#39; <a href="https://tools.getdrafts.com/wizards/mail">Mail Action Wizard</a> to help simplify and solidify the process of creating a dedicated action, which almost certainly <em>would not</em> have the <code>Send in Background</code> toggle selected, as demonstrated, for the sake of giving myself a preview of outbound messages to... important folks. For macOS users, there&#39;s also a bespoke Catalyst app called <a href="https://docs.getdrafts.com/misc/mail-assistant">Mail Assistant</a>, which I&#39;ve yet to try.</p>

<h2 id="formatting" id="formatting">Formatting</h2>

<p>The parameters of <a href="https://docs.getdrafts.com/docs/actions/steps/system#mail">the Mail action step</a> can be filled with any combination of items from <a href="https://docs.getdrafts.com/docs/actions/templates/drafts-templates">the original Drafts template tags array</a> <em>or</em> from the relatively new set of <a href="https://docs.getdrafts.com/docs/actions/templates/mustache.html">mustache template tags</a>.</p>

<p><script src="https://gist.github.com/extratone/8cc2cd8cc7b8e95a80f9e60b5fe71bd4.js"></script></p>

<p>The current version of <a href="https://directory.getdrafts.com/a/1wR">my personal Send-to-Self action</a> sent <a href="https://app.sparkmailapp.com/web-share/GFZ2OLZskkVOrDVslliHP_H7lalF_81dS00IvpJv">this example result</a> using the format represented in the Gist embedded above. If you&#39;d like, you can wrap the [body] tag (or any part of the message, actually) in double %s and select the <code>Send as HTML</code> toggle to have the result rendered as HTML. (See <a href="https://app.sparkmailapp.com/web-share/elWlx8eNRiw1nWICBT5p7eGcTs5XZsFO6-JuM1n1">this example</a>.)</p>

<p><img src="https://user-images.githubusercontent.com/43663476/190239278-4f5e7f12-37c1-4ad9-9c2e-7d7e76000f88.png" alt="Setting a Drafts Mail-to-Self-specific rule on iCloud Mail on the Web"/></p>

<p>If – like me – you&#39;re an iCloud Mail user primarily from iOS/iPadOS, here&#39;s how to create an iCloud Mail rule for messages you&#39;ve sent yourself from Drafts:</p>
<ol><li>Visit <a href="https://www.icloud.com/mail/">iCloud.com/mail</a> in your web browser and authenticate.</li>
<li>Open the Rules settings menu by tapping the gear icon in the upper left ⇨ Preferences ⇨ Rules.</li>
<li>Create a new rule with the “Add rule” link.</li>
<li>By default, the “If a message...” field selection should be “is from.” In the text entry field, enter <code>drafts-mail@drafts5.agiletortoise.com</code>.</li>
<li>By default, the “Then...” field selection is “Move to Folder.” I have personally set mine to “Move to Folder and Mark as Read,” but this depends on your preference. Select a folder or mailbox for Drafts messages to be moved to and click “Add.”</li></ol>

<h2 id="publishing-via-email" id="publishing-via-email">Publishing via Email</h2>

<p>I&#39;ve spent a lot of time this year working on integrating Drafts with <a href="https://bilge.world/using-drafts-with-neocities">NeoCities</a>, <a href="https://bilge.world/automating-writeas-posts">Write.as</a>, and other publishing services, but – for new users, especially – Drafts&#39; mail integration offers a pathway to publishing with virtually zero configuration for those services who still offer mail-to-save/post email addresses. These include <a href="https://wordpress.com/support/post-by-email/">WordPress</a>, <a href="https://support.google.com/blogger/answer/154172?hl=en#:~:text=Click%20Save.-,to%20post%20by%20email%3A,-Important%3A%20Anyone%20who">Blogger</a>, <a href="https://howto.write.as/publish-via-email">Write.as</a>, <a href="https://www.livejournal.com/support/faq/187.html">LiveJournal</a>, <a href="https://help.evernote.com/hc/en-us/articles/360050995914">Evernote</a>, <a href="https://dayoneapp.com/guides/tips-and-tutorials/create-entries-with-email/">Day One</a>, <a href="https://culturedcode.com/things/support/articles/2908262/">Things</a>, <a href="https://www.keepproductive.com/blog/email-tasks-into-todoist">Todoist</a>, and more.</p>

<p>Perhaps the easiest method of setting this up would involve finding your private email address for a given service(s), pasting them in the aforementioned <a href="https://tools.getdrafts.com/wizards/mail">Mail Action Wizard</a>, titling the action by the name of the service, and installing. There&#39;s also an <a href="https://actions.getdrafts.com/a/1Mr">Email to Myself action</a> on the Drafts Action Directory to get you started.</p>

<video controls="">
  <source src="https://user-images.githubusercontent.com/43663476/189246053-c53d970a-a6ea-48da-8878-116d0abf2a2b.MOV">
</video>

<h3 id="drag-and-drop-to-formatted-markdown-hyperlinks-from-apple-mail" id="drag-and-drop-to-formatted-markdown-hyperlinks-from-apple-mail">Drag and Drop to <em>Formatted</em> Markdown Hyperlinks from Apple Mail</h3>

<p>Going the other direction, users of Apple Mail (the client) might find it pleasantly surprising that one can drag a message from Mail into Drafts in order to automatically create a markdown-formatted hyperlink that opens said message from anywhere.</p>

<p>For more details, see the official <a href="https://forums.getdrafts.com/t/sending-mail-with-drafts/3597"><strong>&#39;Sending Mail with Drafts&#39; Integration Guide</strong></a>.</p>

<p><a href="https://remark.as/p/bilge.world/drafts-mail-integration">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/drafts-mail-integration</guid>
      <pubDate>Wed, 14 Sep 2022 19:11:36 +0000</pubDate>
    </item>
    <item>
      <title>Siri Shortcuts and the DJ Screw Discography</title>
      <link>https://bilge.world/dj-screw-shortcuts?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[DJ Screw Discography Shortcut Result&#xA;&#xA;The most magical configurables I&#39;ve ever created for iOS by a long way.&#xA;&#xA;!--more--&#xA;&#xA;Though I don&#39;t believe I&#39;ve ever discussed it, here, the continuance of the fandom for Houston music legend, DJ Screw, on into the 21st century is an issue I remain very invested in. I doubt you want to hear much about it, but the issue of actually obtaining audio files from the Screw collection is a worthwhile one to engage for context&#39;s sake. I was first introduced to the ~343-chapter collection by my high school best friend, who&#39;d acquired it via an ancient Pirate Bay torrent some hero set up in the early 2000s. It was complete - probably - and more or less correctly organized by chapter, but that&#39;s about it as far as reliable metadata was concerned. The results one would find elsewhere on the web, from sites like DatPiff, were hardly any better - many, in fact, were obviously sourced from that same torrent.&#xA;&#xA;DJ Screw on the iTunes Store and Apple Music&#xA;&#xA;a href=&#34;https://music.apple.com/us/artist/dj-screw/80923709?itsct=musicboxbadge&amp;amp;itscg=30200&amp;amp;app=music&amp;amp;ls=1&#34; style=&#34;display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;&#34;img src=&#34;https://tools.applemediaservices.com/api/badges/listen-on-apple-music/badge/en-us?size=250x83&amp;h=cdbcefe9e23b0310ab61b31e72e2dcdb&#34; alt=&#34;Listen on Apple Music&#34; style=&#34;border-radius: 13px; width: 250px; height: 83px;&#34;/a&#xA;&#xA;In the interim, a lot has changed about music consumption. You know this, but - as you might&#39;ve already imagined - none of the mainstream services you fuckers partake in have managed to do Robert Earl Davis III justice in the modern era. Apple Music and Spotify, both, will send you in neatly identical spirals pretty much regardless which of their pet vectors you choose to populate with His Name. As much as I&#39;ve vouched for the former, it&#39;s perhaps the worst of them all in this context - departing the marque entirely into the (respectable but... incorrect) world of non-Davis SLOWED &#39;n&#34; THOWED almost immediately.&#xA;&#xA;Perhaps one day, I&#39;ll find it within myself to tackle this issue - DJ Screw in the Щ́̇͋ͯ̋̅Σ̾̒͋ͯͭ ̊ᄂ̋̈͐İͬV̏̆̊͛̍̌Σ̆ͣͣͭ͐ͫ̆̊ ͪͬ̿̈́̑ͤ̚IͫП̎̿͑ͦ͆̚ ͣͫ͌ͨ̈Λ̃͛̓ͦͪ͒̑̽ ͛̑ͤ͊ͭƬ̒I̅͌̊̑ͧͪM̈́̓Σ̋̏͂͐͊͆ͣ, generally - but I actually have extremely wonderful, urgent news. You see, dearest archive.org was actually provided the entire, impeccably tagged Discography by actual Culture Heroes some years ago. All of it, accessible in multiple file formats, embeddable, superbly shareable! This is the most important truth I have to impart to you today, really, but - for iPhone, iPad, and Mac users, there&#39;s even more...&#xA;&#xA;iframe src=&#34;https://archive.org/details/dj-screw-discography&amp;playlist=1&amp;listheight=150&#34; width=&#34;500&#34; height=&#34;300&#34; frameborder=&#34;0&#34; webkitallowfullscreen=&#34;true&#34; mozallowfullscreen=&#34;true&#34; allowfullscreen/iframe&#xA;&#xA;Automation&#xA;&#xA;Download Random Screw Tape Shortcut&#xA;&#xA;As of right now, just two Siri Shortcuts - Download Random Screw Tape and DJ Screw Discography. The first is perhaps the most delightful - if all goes well, running it right out of the box should result in a random tape from the library downloaded in a folder of your specification (at install,) as well actual playback, in correct order, within the shortcut, itself.&#xA;&#xA;https://youtu.be/9voc7GmvvM&#xA;&#xA;This is magic, yes, but the second is true power. After picking folders at installation for 1) downloaded archive.org-sourced .zip files to live in temporarily before they are extracted and deleted and 2) your complete, correctly metatagged DJ Screw Tape library could - in theory, anyway - magically appear in a single, undoubtedly several hours-long run. I have yet to actually test the full bit myself, technically, but I can advise you to set Auto-Lock (Settings ⇨ Display &amp; Brightness ⇨ Auto-Lock) to Never, make sure you leave the Shortcut open within the Shortcuts App, itself, and give it a shot, if possible.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/dj-screw-shortcuts&#34;Discuss.../a&#xA;&#xA;#software #automation #music&#xA;&#xA;[1] I attempted to find this torrent for the sake of this post and well... The Pirate Bay looks a lot different than I remembered.&#xA;2] This is not criticism. If it was, it would be [ridiculously hypocritical.&#xA;3] If RoutineHub is struggling/you find it untrustworthy, the direct iCloud Share links are [here and here. Please contact me if you encounter any issues.]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/1ygtiLRt.png" alt="DJ Screw Discography Shortcut Result"/></p>

<h2 id="the-most-magical-configurables-i-ve-ever-created-for-ios-by-a-long-way" id="the-most-magical-configurables-i-ve-ever-created-for-ios-by-a-long-way">The most magical configurables I&#39;ve ever created for iOS by a long way.</h2>



<p>Though I don&#39;t believe I&#39;ve ever discussed it, here, the continuance of the fandom for Houston music legend, DJ Screw, on into the 21st century is an issue I remain very invested in. I doubt you want to hear much about it, but the issue of actually <em>obtaining audio files</em> from the Screw collection is a worthwhile one to engage for context&#39;s sake. I was first introduced to the ~343-chapter collection by my high school best friend, who&#39;d acquired it via an ancient Pirate Bay torrent some hero set up in the early 2000s[^1]. It was complete – probably – and more or less correctly organized <em>by chapter</em>, but that&#39;s about it as far as reliable metadata was concerned. The results one would find elsewhere on the web, from <a href="https://www.datpiff.com/mixtapes-search.php?criteria=keyword:dj+screw">sites like DatPiff</a>, were hardly any better – many, in fact, were obviously sourced from that same torrent.</p>

<p><img src="https://i.snap.as/WB5CXuSz.png" alt="DJ Screw on the iTunes Store and Apple Music"/></p>

<p><a href="https://music.apple.com/us/artist/dj-screw/80923709?itsct=music_box_badge&amp;itscg=30200&amp;app=music&amp;ls=1" style="display: inline-block; overflow: hidden; border-radius: 13px; width: 250px; height: 83px;"><img src="https://tools.applemediaservices.com/api/badges/listen-on-apple-music/badge/en-us?size=250x83&amp;h=cdbcefe9e23b0310ab61b31e72e2dcdb" alt="Listen on Apple Music" style="border-radius: 13px; width: 250px; height: 83px;"></a></p>

<p>In the interim, a lot has changed about music consumption. You know this, but – as you might&#39;ve already imagined – none of the mainstream services you fuckers partake in have managed to do Robert Earl Davis III justice in the modern era. <a href="https://music.apple.com/us/artist/dj-screw/80923709">Apple Music</a> and <a href="https://open.spotify.com/artist/6TC6ZeVdvCuBSn32h5Msul">Spotify</a>, both, will send you in neatly identical spirals pretty much regardless which of their pet vectors you choose to populate with His Name. As much as I&#39;ve vouched for the former, it&#39;s perhaps the worst of them all in this context – departing the marque entirely into the (respectable but... incorrect) world of non-Davis <em>SLOWED &#39;n” THOWED</em>[^2] almost immediately.</p>

<p>Perhaps one day, I&#39;ll find it within myself to tackle this issue – DJ Screw in the Щ́̇͋ͯ̋̅Σ̾̒͋ͯͭ ̊ᄂ̋̈͐İͬV̏̆̊͛̍̌Σ̆ͣͣͭ͐ͫ̆̊ ͪͬ̿̈́̑ͤ̚IͫП̎̿͑ͦ͆̚ ͣͫ͌ͨ̈Λ̃͛̓ͦͪ͒̑̽ ͛̑ͤ͊ͭƬ̒I̅͌̊̑ͧͪM̈́̓Σ̋̏͂͐͊͆ͣ, generally – but I actually have extremely wonderful, urgent news. You see, dearest archive.org was actually provided <a href="https://archive.org/details/dj-screw-discography"><strong>the entire, impeccably tagged Discography</strong></a> by actual Culture Heroes some years ago. All of it, accessible in multiple file formats, embeddable, superbly shareable! This is the most important truth I have to impart to you today, really, but – for iPhone, iPad, and Mac users, there&#39;s even more...</p>

<iframe src="https://archive.org/details/dj-screw-discography&amp;playlist=1&amp;list_height=150" width="500" height="300" frameborder="0" allowfullscreen=""></iframe>

<h2 id="automation" id="automation">Automation</h2>

<p><img src="https://i.snap.as/K6iHUgs0.png" alt="Download Random Screw Tape Shortcut"/></p>

<p>As of right now, just two Siri Shortcuts – <a href="https://routinehub.co/shortcut/12610"><strong>Download Random Screw Tape</strong></a> and <a href="https://routinehub.co/shortcut/12618"><strong>DJ Screw Discography</strong></a>[^3]. The first is perhaps the most delightful – if all goes well, running it right out of the box should result in a random tape from the library downloaded in a folder of your specification (at install,) as well <em>actual playback</em>, in correct order, within the shortcut, itself.</p>

<p><iframe allow="monetization" class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F9v_oc7GmvvM%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D9v_oc7GmvvM&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F9v_oc7GmvvM%2Fhqdefault.jpg&key=d932fa08bf1f47efbbe54cb3d746839f&type=text%2Fhtml&schema=youtube" width="640" height="360" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></p>

<p>This is magic, yes, but the second is <em>true power</em>. After picking folders at installation for 1) downloaded archive.org-sourced .zip files to live in temporarily before they are extracted and deleted and 2) your complete, correctly metatagged DJ Screw Tape library could – in theory, anyway – magically appear in a single, undoubtedly several hours-long run. I have yet to actually test the full bit myself, technically, but I can advise you to set Auto-Lock (<code>Settings ⇨ Display &amp; Brightness ⇨ Auto-Lock</code>) to <code>Never</code>, make sure you leave the Shortcut open within the Shortcuts App, itself, and give it a shot, if possible.</p>

<p><a href="https://remark.as/p/bilge.world/dj-screw-shortcuts">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a> <a href="https://bilge.world/tag:music" class="hashtag"><span>#</span><span class="p-category">music</span></a></p>

<p>[1] I attempted to find this torrent for the sake of this post and well... The Pirate Bay looks a lot different than I remembered.
[2] This is not criticism. If it was, it would be <a href="https://whyp.it/tracks/32290/hilary-duff-with-love-bkj4Y">ridiculously hypocritical</a>.
[3] If RoutineHub is struggling/you find it untrustworthy, the direct iCloud Share links are <a href="https://www.icloud.com/shortcuts/70ce2580d4a848fdac6fbf2f8a8f346b">here</a> and <a href="https://www.icloud.com/shortcuts/db6d17683e21435990fb87e51e92933c">here</a>. <em>Please</em> <a href="https://davidblue.wtf/db.vcf">contact me</a> if you encounter any issues.</p>
]]></content:encoded>
      <guid>https://bilge.world/dj-screw-shortcuts</guid>
      <pubDate>Sun, 07 Aug 2022 01:23:32 +0000</pubDate>
    </item>
    <item>
      <title>Quick Key Command Formatting with ksc and Siri Shortcuts</title>
      <link>https://bilge.world/ksc-shortcut?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Key Command Formatting with ksc&#xA;&#xA;!--more--&#xA;&#xA;During the course of my iPhone Keyboarding project, I managed to discover &#34;a command line tool to document and describe keyboard shortcuts in a standardized and properly formatted way&#34; called ksc. It&#39;s a Python utility that translates natural-language-formatted keyboard commands &#34;command control q&#34; into symbolized and standardized form: ⌃+⌘+Q. Though it&#39;s not of particular use to me at this point, with my now well-established Text Replacements and TextExpander Snippets, I realized - being a Python thing - that ksc might work with the iOS/iPadOS shell emulator, a-Shell, and therefore, that a Siri Shortcut for converting plain language input to formatted key commands might be a cinch, and it was!&#xA;&#xA;pip install ksc&#xA;&#xA;Requirements&#xA;&#xA;a-Shell for iOS/iPadOS (Free)&#xA;Actions for iOS/iPadOS (Also free)&#xA;ksc installed in a-Shell (Which should be as easy as pip install ksc)&#xA;&#xA;Using an Ask For Input action, my shortcut will prompt you to enter a natural language keyboard command. For the fullest explanation of supported inputs, see ksc&#39;s documentation. Your inputted command will be &#34;transformed&#34; via Actions&#39; action into &#34;dash-case&#34; and placed within a command in the following format:&#xA;&#xA;ksc -ms -p command(Pre-Transformation Text)   Transformed Text.txt&#xA;&#xA;By default, the arguments -ms and -p are included, but these are entirely optional. From said docs:&#xA;&#xA;  There are several command line options to modify the output. The -ms or&#xA;  --modifier-symbols options output the modifers as unicode symbols:&#xA;    $ ksc -ms shift command u&#xA;  ⇧⌘U&#xA;    Apple says you should include a plus sign between symbols, but I think that it looks&#xA;  ugly, so that&#39;s not the default. If you want it, add the -p or --plus-sign when&#xA;  using -ms:&#xA;    $ ksc -ms -p shift command u&#xA;  ⇧+⌘+U&#xA;&#xA;Creating a text file for each command within a-Shell may not be Best Practices, per se, but it&#39;s the simplest method I&#39;ve found of reliably retrieving text back from the app within Siri Shortcuts. That said, the above command creates a text file containing the formatted output. A Get File a-Shell action paired with a Get Text From Input native action then retrieves the file contents, which is first cleaned up via another Actions action (trimming leading and trailing whitespace) before being copied to the system clipboard.&#xA;&#xA;Download my Key Command Formatting shortcut on RoutineHub.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/ksc-shortcut&#34;Discuss.../a&#xA;&#xA;#software #automation]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/H5hUOetX.png" alt="Key Command Formatting with ksc"/></p>



<p>During the course of <a href="https://uikeycommand.com">my iPhone Keyboarding project</a>, I managed to discover “a command line tool to document and describe keyboard shortcuts in a standardized and properly formatted way” called <a href="https://github.com/kotfu/ksc">ksc</a>. It&#39;s a Python utility that translates natural-language-formatted keyboard commands “command control q” into symbolized and standardized form: <code>⌃+⌘+Q</code>. Though it&#39;s not of particular use to me at this point, with my now well-established <a href="https://bilge.world/text-replacement">Text Replacements</a> and <a href="https://app.textexpander.com/public/14093096578d4f40eeea15649f5cefbb">TextExpander Snippets</a>, I realized – being a Python thing – that ksc might work with the iOS/iPadOS shell emulator, <a href="https://apps.apple.com/us/app/a-shell/id1473805438">a-Shell</a>, and therefore, that a Siri Shortcut for converting plain language input to formatted key commands might be a cinch, and it was!</p>

<p><img src="https://i.snap.as/OrSPAgJa.png" alt="pip install ksc"/></p>

<h2 id="requirements" id="requirements">Requirements</h2>
<ol><li><a href="https://apps.apple.com/us/app/a-shell/id1473805438">a-Shell for iOS/iPadOS</a> (Free)</li>
<li><a href="https://apps.apple.com/us/app/a-shell/id1473805438">Actions for iOS/iPadOS</a> (Also free)</li>
<li><a href="https://github.com/kotfu/ksc">ksc</a> installed in a-Shell (Which should be as easy as <code>pip install ksc</code>)</li></ol>

<p>Using an <a href="https://www.matthewcassinelli.com/actions/ask-for-input/">Ask For Input</a> action, my shortcut will prompt you to enter a natural language keyboard command. For the fullest explanation of supported inputs, see <a href="https://github.com/kotfu/ksc/blob/main/README.md">ksc&#39;s documentation</a>. Your inputted command will be “transformed” via Actions&#39; action into “dash-case” and placed within a command in the following format:</p>

<pre><code>ksc -ms -p command(Pre-Transformation Text) &gt; Transformed Text.txt
</code></pre>

<p>By default, the arguments <code>-ms</code> and <code>-p</code> are included, but these are entirely optional. From said docs:</p>

<blockquote><p>There are several command line options to modify the output. The <code>-ms</code> or
<code>--modifier-symbols</code> options output the modifers as unicode symbols:</p>

<p>    $ ksc -ms shift command u
    ⇧⌘U</p>

<p>Apple says you should include a plus sign between symbols, but I think that it looks
ugly, so that&#39;s not the default. If you want it, add the <code>-p</code> or <code>--plus-sign</code> when
using <code>-ms</code>:</p>

<p>    $ ksc -ms -p shift command u
    ⇧+⌘+U</p></blockquote>

<p>Creating a text file for each command within a-Shell may not be Best Practices, per se, but it&#39;s the simplest method I&#39;ve found of reliably retrieving text back from the app within Siri Shortcuts. That said, the above command creates a text file containing the formatted output. A <code>Get File</code> a-Shell action paired with a <a href="https://www.matthewcassinelli.com/actions/get-text-from-input/">Get Text From Input</a> native action then retrieves the file contents, which is first cleaned up via another Actions action (trimming leading and trailing whitespace) before being copied to the system clipboard.</p>

<p><a href="https://routinehub.co/shortcut/12442"><strong>Download my Key Command Formatting shortcut on RoutineHub</strong></a>.</p>

<p><a href="https://remark.as/p/bilge.world/ksc-shortcut">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/ksc-shortcut</guid>
      <pubDate>Sat, 02 Jul 2022 06:33:12 +0000</pubDate>
    </item>
    <item>
      <title>How I Maintain a Vocabulary List in Drafts with Terminology</title>
      <link>https://bilge.world/drafts-terminology-vocabulary?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Terminology URL Scheme and Vocabulary Workspace&#xA;&#xA;!--more--&#xA;&#xA;As I wrote in my app store review of Terminology (which is not shown publicly, I’ve since learned,) I prefer it over popular dictionary apps like LookUp (which I also have and use regularly) because it allows me to add new terms that don’t show up in search results. Somehow, the idea that one might store words that don’t necessarily appear in any dictionary seems a foreign one to the creators of LookUp, which I’ve since found out to be the cause of its Siri Shortcuts actions failing on me.&#xA;&#xA;https://twitter.com/NeoYokel/status/1477323450549219328&#xA;&#xA;Terminology does support adding “custom” terms, if unintentionally, through its “notes” function. Because it’s related to Drafts (they’re from the same creator,) it was quite easy to “integrate” the two in order to form the workflow you see demonstrated in the video below.&#xA;&#xA;https://imgur.com/gallery/Q04Kxrg&#xA;&#xA;First, I use the Lookup in Terminology action paired with a keyboard shortcut (^⇧D) in Drafts to search a selected word in Terminology. There, I “like” the word and - if needed - add a definition via the notes button (immediately to the left of the heart in the upper right corner.) I’ve configured a custom button - “[Drafts-definition](terminology://x-callback-url/importAction?name=Drafts-definition&amp;shortName=Drafts&amp;description=Send%20term%20and%20full%20Markdown%20definitions%20to%20Drafts&amp;urlTemplate=drafts://create?text%3D%5B%5Bdefinitions%5D%5D%250A%5B%5Bnote%5D%5D&amp;dispatchType=0&#xA;terminology://x-callback-url/importAction?name=Drafts-definition&amp;shortName=Drafts&amp;description=Send%20term%20and%20full%20Markdown%20definitions%20to%20Drafts&amp;urlTemplate=drafts://create?text%3D%5B%5Bdefinitions%5D%5D%250A%5B%5Bnote%5D%5D&amp;dispatchType=0)” - (which you should be able to import with that hyperlink) that sends the term including its notes back to Drafts with the following configuration:&#xA;&#xA;drafts://create?text=[[definitions]]%0A[[note]]&#xA;&#xA;That button results in a new Draft in a specific format, demonstrated by this example:&#xA;&#xA;Antagonistic Vocabulary Draft Example&#xA;&#xA;I then manually add the “Vocabulary” tag to the Draft, completing the process and placing it within the parameters defined by my Vocabulary workspace, which shows only drafts with that tag, sorted alphabetically.&#xA;&#xA;Publication&#xA;&#xA;For the past few weeks, I’ve been wreaking havoc on NeoCities’ global activity feed using the action group I created on the /drafts directory of davidblue dot wtf. Specifically, the action that uploads HTML files to that directory named by the UUID of the draft. (Here’s the corresponding link for this post, for example.) With consequent draftopenurls left in the footer of each as per my current, more or less universal HTML template, I’m able to immediately open the appropriate draft locally. &#xA;&#xA;Vocabulary Index Shortcut&#xA;&#xA;In order to maintain an updated index of the whole list, I’ve created a Siri Shortcut which transforms the UUIDs of the drafts in the vocabulary workspace into markdown-formatted hyperlinks of their web-dwelling counterparts.&#xA;&#xA;Terminology Favorites List&#xA;&#xA;Even if you’ve no intention of publishing your personal vocabulary - or integrating it with Drafts - Terminology is still the dictionary app I’d recommend over any others.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/drafts-terminology-vocabulary&#34;Discuss.../a&#xA;&#xA;#configuration #software #automation]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/EQ4GSUGH.png" alt="Terminology URL Scheme and Vocabulary Workspace"/></p>



<p>As I wrote in <a href="https://tilde.town/~extratone/appreviews/terminology">my app store review of Terminology</a> (which is not shown publicly, I’ve since learned,) I prefer it over popular dictionary apps like <a href="https://apps.apple.com/us/app/lookup-english-dictionary/id872564448">LookUp</a> (which I also have and use regularly) because it allows me to <em>add new terms</em> that don’t show up in search results. Somehow, the idea that one might store words that don’t necessarily appear in any dictionary seems a foreign one to the creators of LookUp, which I’ve since found out to be the cause of <a href="https://twitter.com/NeoYokel/status/1477323450549219328">its Siri Shortcuts actions failing on me</a>.</p>

<p><blockquote class="twitter-tweet"><p lang="en" dir="ltr"><a href="https://twitter.com/lookup_ios?ref_src=twsrc%5Etfw">@lookup_ios</a> it&#39;d be so amazing if this worked. or is there another way of batch importing a list of terms to a collection? <a href="https://t.co/QBASeQzyXO">pic.twitter.com/QBASeQzyXO</a></p>&mdash; ⓓⓐⓥⓘⓓ ⓑⓛⓤⓔ (@NeoYokel) <a href="https://twitter.com/NeoYokel/status/1477323450549219328?ref_src=twsrc%5Etfw">January 1, 2022</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p><a href="https://apps.apple.com/us/app/terminology-dictionary/id687798859">Terminology</a> <em>does</em> support adding “custom” terms, if unintentionally, through its “notes” function. Because it’s related to Drafts (they’re from the same creator,) it was quite easy to “integrate” the two in order to form the workflow you see demonstrated in <a href="https://user-images.githubusercontent.com/43663476/165031796-5df78c01-faee-4fd4-84d0-f0bf95fd383f.MOV">the video below</a>.</p>

<p><iframe allow="monetization" class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fimgur.com%2Fa%2FQ04Kxrg%2Fembed%3Fpub%3Dtrue%26ref%3Dhttps%253A%252F%252Fembed.ly%26w%3D500&display_name=Imgur&url=https%3A%2F%2Fimgur.com%2Fa%2FQ04Kxrg&image=https%3A%2F%2Fi.imgur.com%2FTfdRC2K.jpg%3Ffbplay&key=d932fa08bf1f47efbbe54cb3d746839f&type=text%2Fhtml&schema=imgur" width="500" height="914" scrolling="no" title="Imgur embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></p>

<p>First, I use the <a href="https://directory.getdrafts.com/a/1CS">Lookup in Terminology action</a> paired with a keyboard shortcut (<code>^⇧D</code>) in Drafts to search a selected word in Terminology. There, I “like” the word and – if needed – add a definition via the notes button (immediately to the left of the heart in the upper right corner.) I’ve configured a custom button – “Drafts-definition” – (which you should be able to import with that hyperlink) that sends the term <em>including its notes</em> back to Drafts with the following configuration:</p>

<pre><code>drafts://create?text=[[definitions]]%0A[[note]]
</code></pre>

<p>That button results in a new Draft in a specific format, demonstrated by this example:</p>

<p><img src="https://i.snap.as/K0adnLf5.png" alt="Antagonistic Vocabulary Draft Example"/></p>

<p>I then manually add the “Vocabulary” tag to the Draft, completing the process and placing it within the parameters defined by <a href="https://directory.getdrafts.com/w/1zN">my Vocabulary workspace</a>, which shows only drafts with that tag, sorted alphabetically.</p>

<h2 id="publication" id="publication">Publication</h2>

<p>For the past few weeks, I’ve been wreaking havoc on NeoCities’ global activity feed using <a href="https://bilge.world/using-drafts-with-neocities">the action group I created</a> on <a href="https://davidblue.wtf/drafts">the /drafts directory</a> of davidblue dot wtf. Specifically, the action that uploads HTML files to that directory named by the UUID of the draft. (Here’s <a href="https://davidblue.wtf/drafts/F20BB579-E235-4F04-8BCE-22AAF15A97C2.html">the corresponding link for this post</a>, for example.) With consequent <a href="https://docs.getdrafts.com/docs/actions/templates#identifier-tags">draft<em>open</em>urls</a> left in the footer of each as per my current, more or less universal <a href="https://tilde.town/~extratone/template/1.4.txt">HTML template</a>, I’m able to immediately open the appropriate draft locally.</p>

<p><img src="https://i.snap.as/2npm338t.png" alt="Vocabulary Index Shortcut"/></p>

<p>In order to maintain <a href="https://davidblue.wtf/vocabulary">an updated index</a> of the whole list, I’ve created <a href="https://www.icloud.com/shortcuts/113f8e45729c4466860c3c7c668e939d">a Siri Shortcut</a> which transforms the UUIDs of the drafts in the vocabulary workspace into markdown-formatted hyperlinks of their web-dwelling counterparts.</p>

<p><img src="https://i.snap.as/D8GtXEd3.png" alt="Terminology Favorites List"/></p>

<p>Even if you’ve no intention of publishing your personal vocabulary – or integrating it with Drafts – Terminology is still the dictionary app I’d recommend over any others.</p>

<p><a href="https://remark.as/p/bilge.world/drafts-terminology-vocabulary">Discuss...</a></p>

<p><a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a> <a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/drafts-terminology-vocabulary</guid>
      <pubDate>Tue, 03 May 2022 06:31:51 +0000</pubDate>
    </item>
    <item>
      <title>TildeTown on iPhone with Blink Shell</title>
      <link>https://bilge.world/tildetown-iphone-blink-shell?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Blink Folder&#xA;&#xA;The ideal means of On The Go participation in The Tildeverse.&#xA;&#xA;!--more--&#xA;&#xA;audio controls&#xA;  source src=&#34;https://davidblue.wtf/audio/blink.m4a&#34;&#xA;/audio&#xA;&#xA;I was completely unaware of the Tildeverse’s origin story - documented in a Medium post by WIRED Editor-in-Chief, Paul Ford - until this year, somehow, though I knew of its existence as far back as 2018. I was living in an unairconditioned Portland apartment, then, and had found myself stuck with Linux for the first time in my adult life. Consequentially, this period of my life became my first true introduction to the Command Line - a space about which I knew no more than the layest layman. Hopping between my ten-year-old, post-corporate system’s shell and the DOS machines I was emulating on it (exploring the history of word processors, mostly,) I believe I struggled through dare I say a Rite of Computing Passage, obtaining the capability (and eventually, the muscle memory) to navigate a filesystem with cd, ls, and (on DOS) dir. It wasn’t until I came home in ‘19 that I discovered the two primary emulated Linux shells on iOS: iSH Shell and a-Shell.&#xA;&#xA;iSH Shell and a-Shell&#xA;&#xA;The former is designed to emulate Alpine Linux and has just recently added direct filesystem access via the Files app. The latter is, I’m told, quite extensible, and includes Siri Shortcuts actions that have enabled it to underpin powerful scraping shortcuts like SW-DLT - a sort of frontend for youtube-dl and now yt-dlp. Both are open source, but a-Shell is actually a fork of our subject app, now called “Blink Shell &amp; Code” in the App Store.&#xA;&#xA;bbj Out&#xA;&#xA;Blink’s tag is “a professional, desktop grade terminal for iOS.” Its landing page touts a “first class iOS experience, with software and hardware keyboard, and the full edge-to-edge experience” experience. On iPad, Blink’s heyday was well documented by the likes of Paul Miller’s 2018 article for The Verge and Fatih Arslan’s 2019 “Using the iPad Pro as my development machine.” These pieces more or less detail different use cases of the exact sort Blink was designed for - “professional” work done using an iPad as the terminal for a remote Linux/macOS machine.&#xA;&#xA;Apreche Reply&#xA;&#xA;Since I’ve apparently ended up with a primary life mission of doing stuff on my iPhone originally meant to be done on iPads, I’ve managed to find myself an active member of the Tilde.Town community - a place exclusively accessible via SSH, aside from public pages - exclusively through my iPhone 12 Pro Max. I’m not the first to use Blink to do this - note Apreche’s reply to my thread, embedded above - but I suspect I’m the first to spend significant Town Time on my fucking phone, so I thought it might be worth laying out some of the particulars I’ve learned along the way. &#xA;&#xA;It’s important to note that 99% of the use detailed in this guide/account involves the use of a paired Bluetooth keyboard.&#xA;&#xA;Blink Settings&#xA;&#xA;Locally&#xA;&#xA;First, Blink’s settings menu is accessed by typing config and/or ⌘,. Unfortunately, there’s no method of installing the entire selection of available fonts or themes - you’ll have to do so one at a time, though you can optimize the process by learning/copy-and-pasting the url scheme for the fonts/themes directories on their respective repos. I especially recommend CLRS, Man Page, and MonaLisa, but this Post is saturated with too many mocked up screenshots of Blink themes to reasonably continue that list any further.&#xA;&#xA;Local UNIX Commands in Blink-ManPage&#xA;&#xA;Compared with its fork, a-Shell, Blink’s local UNIX command list is a bit sparse. It’s accessed exclusively with TAB. Where a-Shell has pickFolder, Blink has link-files, which does effectively the same thing: the Files app is opened, prompting you to select a folder, which will become visible and accessible in the command line.&#xA;&#xA;Repository Cleaning&#xA;&#xA;Linking The Psalms’ GitHub Repository in Working Copy with link-files in Blink had profound results. I was offered a brief glance of that enhanced productivity command line evangelists always seem to be on about, if only because the files and directories were color-coded by type so distinctly. open also somehow lead to swifter previews than in Working Copy, despite that app’s brilliance.&#xA;&#xA;BaityYouTubeThumbnail&#xA;&#xA;Some other particularly intriguing standouts include say, which unfortunately does not use your preferred Siri voice to speak aloud text, but rather the oldest there is. facecam will open a manipulatable circle of your device’s front-facing camera view, as shown in the screenshot embedded above. openurl will instantly open a formally-formatted web URL in Safari, which can come in handy. pbcopy and pbpaste really do manipulate the iOS system clipboard, which I probably find more impressive than I should. code is the newest to the bunch and will open a local instance of GitHub Codespaces(?) If this is truly useful on iPad - which plenty of positive feedback on social suggests it is, to at least a few human beings - it is barely usable on iPhone, which is to be expected, really.&#xA;&#xA;Blink and Code&#xA;&#xA;Blink’s own “UNIX Command Line Tools Roundup” does an okay job of outlining the rest of the basic networking and file management commands included that act locally, though I’ve still been unable to find out what skstore does. xcall opens x-callback-URLs, though I’m still trying to figure out what the command’s options are. ed the ancient command line text editor is available, though I’ve yet to learn to use it, and uptime appears to be actually accurate? Being able to run whois locally on iPhone has its uses, especially given the aforementioned support of pbcopy. whois bilge.world | pbcopy copies The Psalms domain registry information to the iOS clipboard in a flash.&#xA;&#xA;Blink Keyboard Shortcuts&#xA;&#xA;Keyboarding&#xA;&#xA;To its credit, I think Blink’s landing page represents the most explicitly pro-keyboard literature I’ve ever seen for an iOS app. From my fairly extensive use, its Bluetooth keyboard support fully reflects these declarations, even on iPhone. Out of the list of shortcuts you see in the screenshot embedded above, Share Selection is by far the one I use most, usually to open a link from the Tilde IRC chat. If I’m lucky/accurate, double tapping said link will select all of it and only it. &#xA;&#xA;After a link is selected - which sometimes involves rotating the phone and/or zooming far out to get longer URLS in a single line - I’m able to call it up in the iOS sharesheet with ⌥U, then open it in Safari with a Siri Shortcut I’ve placed there entitled “O P E N.” Or - in the case of a direct link to a file - I could use another shortcut of mine just below it, called “DOWNLOAD,” which uses the Get Contents of URL action to download files directly to my Downloads folder in iCloud Drive. Googling a selection (⌥G) has come in handy once or twice. I tried the Stack Overflow shortcut for kicks, but was meant with an endless string of CAPTCHA requests.&#xA;&#xA;Blink Custom Key Presses&#xA;&#xA;An extraordinary feature of Blink’s which I originally misunderstood and have just begun to play with: custom key presses. In Config ⇨ Keyboard ⇨ Custom Presses, one can assign any text that can be hex encoded (Base16) to a keyboard shortcut. I’ve created a Siri Shortcut that requires the free version of GizmoPack to aid myself (and you, hopefully,) in quickly converting plain text commands to this format. In the screenshots embedded above, the shortcuts listed on the left correspond in order with the commands listed on the right. You’ll note I’ve begun to attempt assigning quick keys to my most commonly typed-out commands.&#xA;&#xA;Importing Keys in Blink Shell&#xA;&#xA;Remotes with SSH and Mosh&#xA;&#xA;If you’re entirely new to SSH as a concept, I’ve found no better introduction than Tilde.Town’s own SSH Primer. I screwed up my first attempt at obtaining a key, but Town Maintainer vilmibm kindly responded to my Twitter DM in December of last year asking to instate a new key. I can’t remember whether or not I generated it originally within Blink, but regardless, the app’s key management is as intuitive as I’ve seen. &#xA;&#xA;Blink Autocomplete&#xA;&#xA;One of my unexpected favorite bits about Blink is its autocomplete feature which applies to both “commands and hosts” as quoted from its singular mention in the docs. There very well could be a better means of typing out absurdly long filenames in other terminal emulators, but I’ve personally not come across anything remotely like this magic of Blink’s. Especially for someone newish to the command line like myself, its autocomplete occasionally borders on “intelligent autosuggestion” without actually crossing the threshold in an irritating way. Once I configured Tilde.Town as a host (with the local name Tilde.Town,) all I need do to connect is begin to type ssh T or mosh T (ssh keys == mosh keys, which I wish I knew weeks ago) and TAB to complete the full ssh Tilde.Town or mosh Tilde.Town commands.&#xA;&#xA;Adding Files App Locations in Blink&#xA;&#xA;Once you’ve connected to Town, you should take advantage of Blink’s Files app integration by adding a location at the bottom of its entry in the Hosts menu. This adds Blink to the master, root list of file providers in the app. From there, all of the Files app’s features (including drag-and-drop) will apply to Tilde.Town as long as you’re sustaining at least one connection via ssh or mosh.&#xA;&#xA;Blink File Providers&#xA;&#xA;To illustrate, here’s a wee, one-take tutorial on uploading images this way:&#xA;&#xA;Mini Tutorial: Uploading images to the Tildeverse with Blink Shell&#xA;&#xA;video controls width=&#34;360&#34; height=auto&#xA;  source src=&#34;https://user-images.githubusercontent.com/43663476/193413576-d210a0e1-7f93-4425-a217-362c2fb6650a.MOV&#34;&#xA;/video&#xA;&#xA;Novel Chat Fixed&#xA;&#xA;Chat&#xA;&#xA;The IRC client TildeTown uses is called WeeChat and - especially if it’s been as long for you as it had been for me - you might find (as I did) learning the ropes to be a bit dubitable. I’ve duplicated the full User Guide for your consideration. I got stuck at the concept of switching buffers, so my Big Pro hint is to start off running /buffer 1 followed by help. In order to display the chat even remotely readably in portrait mode on an iPhone, you’ll need to remove the buffer list by hiding it. (Try /help bar in the first buffer.) You’ll also need to zoom out a bit and set the display mode to Fill via the menus that appear with a three-finger tap anywhere on screen. To achieve the look shown in the screenshot embedded above, you’ll need to hide a few things, but I’ll come back to those specific commands in a sec.&#xA;&#xA;Assuming you intend to stay connected to Town IRC On The Go, I’d advise always starting your intended chat window with mosh, which - through a whole bunch of alchemy I’m incapable of understanding - establishes a much more flexible sort of connection that’s actually realistically dependable from within the uncertain world of a backgrounded iPhone app. Optionally, the geo command can be used to force iOS into allowing Blink a more genuine background running state with geo track. Additionally, geo current displays a nicely-formatted set of location information:&#xA;&#xA;{&#xA;  “Latitude” : 38.933988900043886,&#xA;  “AltitudeRef” : 0,&#xA;  “GPSVersion” : “2.3.0.0”,&#xA;  “DateStamp” : “2022:03:09”,&#xA;  “Altitude” : 203.0797061920166,&#xA;  “Longitude” : 92.388242309618036,&#xA;  “LongitudeRef” : “W”,&#xA;  “TimeStamp” : “14:35:13.140000”,&#xA;  “LatitudeRef” : “N”,&#xA;  “DOP” : 35&#xA;}&#xA;&#xA;As you’d expect, the persistence allowed by this feature - which does, indeed, extend to remote files access in the Files app as you move about the world - comes at a significant consumptive power and resource sacrifice. If you parse the slapdash language in the docs, the implication is that you should only need to use the geo command to make ssh connections persistent, not mosh connections. Since encountering this wording, I’ve yet to have an opportunity to explore the real world truth of this supposition because I have only my rotting legs to propel me around, these days.&#xA;&#xA;If I remember correctly, I once found a surprisingly capable (for the time and circumstances) iPhone IRC app in Colloquy’s iPhone OS offering, though it appears to have fallen far, far out of support, now. LimeChat’s iPhone app isn’t listed on the App Store anymore and its landing page proudly touts support for iOS 4 multitasking!&#xA;&#xA;  Connections are kept in 10 minutes after going to background.&#xA;&#xA;My memories of computer use from that time are ever so vague, but after just a brief junket to the era’s surviving app literature, some abyssal images within me were stirred. I suspect I tried every possible solution as I’ve always tended to, even back then, on my first generation iPhone and then my 4S. I remember Colloquy being the most tenable, but far from persistent, of course. As I recall, one could maintain a conversation as a passenger on a car trip, for instance, but remaining ambiently, eternally Logged In - as is the ancient custom of Internet Relay Chat - was too far out of reach to even be of consideration. &#xA;&#xA;To be honest, I still find the whole idea unnatural, and I’m not alone, but I can promise you that running Blink on a recent iPhone with the average American cellular connection is as close to the full WeeChat experience as is possible on a handset, today, for whatever that may be worth to you. Thanks to some incredibly helpful new TildeTown friends, its copious configurability pivoted from an insurmountable, puzzling ordeal to a never before conceived of solution. If you haven’t already, skim the actual conversation contained within the pre-header screenshot, above.&#xA;&#xA;WeeChat Configuration&#xA;&#xA;The following is the precise set of commands involved in making WeeChat look as the screenshot does, though in no particular order. As m455 pointed out, fset is the tool that lists available configurable options and their current status in a linear way. The default of the second option in the list is apparently 11, but I fiddled quite a bit to find 9 more optimum.&#xA;&#xA;fset&#xA;/set weechat.look.prefixalignmax 9&#xA;/bar hide bufflist&#xA;/bar hide fset&#xA;/bar hide title&#xA;/bar hide nicklist&#xA;/set weechat.look.buffertimeformat &#34;%M&#34;&#xA;&#xA;If you eliminate the value of the very last command (so just “”) and add /bar hide status to the list, you’ll end up with a more minimal-looking, timestamp-less experience:&#xA;&#xA;Spacedust Chat-Minimal&#xA;&#xA;If indeed there is a “reasonable” configuration for command line IRC display on a telephone in the year 2022, surely, this is it.&#xA;&#xA;Town TV&#xA;&#xA;Town Television&#xA;&#xA;Due largely to its primary market of iPad-bound developers living and working in remote Digital Ocean droplets, significant effort (I assume) has been expended in making Blink Shell one of the few iOS apps which usably supports external AirPlay displays, even, yes, on iPhone. As far as I can tell, all of the iPad options in the appearance settings menu seen below have also functioned in my tests on iPhone, casting an entirely separate set of Blink windows to my mom’s Huge Ass Samsung television in ten-eighty pee.&#xA;&#xA;Blink Appearance Settings&#xA;&#xA;If you’ve somehow found yourself this far, you’re probably looking for the keyboard shortcut⌘O, which switches your currently active cursor between the device and the external display. “You can also move windows between iPad and External Display with ⇧⌘O,” say the docs. Other considerations I’ve discovered through experiments with this: You can lock the phone with the external display running, but it won’t update, even with mosh or withgeo track. AirPlay will also cease after a period I couldn’t be bothered to determine, so if anything, this is more of an inconvenience than a feature.&#xA;&#xA;Notifications in Blink&#xA;&#xA;Other Considerations&#xA;&#xA;Blink has a URL scheme - blinkshell://run?key=YourKey]&amp;cmd= - but it’s not particularly useful, largely because it’s for the moment left [without any real documentation. I was able to create a Drafts action that runs one’s current selection as a command in Blink, but the app doesn’t appear to like it very much, if you know what I mean. Blink also integrates with iOS system notifications - as exemplified in the screenshot embedded above - and they do work consistently with mentions in town chat, even outside the app, though I’ve yet to see one including any useful information. You’ll know that something happened, maybe. Recently, the app has taken to displaying a nondescript notification every time I re-open WeeChat, even without new messages since the last time I opened it.&#xA;&#xA;Somehow, upon logging into macOS for the first time since installing all the aforementioned themes in Blink, I found the same themes available in the Mac Terminal. I’m sure there’s an explanation involving hidden iCloud Drive folders - and I can’t imagine being anything but pleasantly surprised to find oneself flush with more Terminal themes - but it’s still worth a heads up.&#xA;&#xA;Philosophically, one might declare the practice I’ve outlined here to be definitively against everything the Tildeverse is about - the small web, Linuxy stuff. Bringing this up in TildeChat a few times, I was met only with acceptance. In fact, acceptance, curiosity, and support is all I’ve been met with throughout my first few months as a townie, and I hope this Post encourages/aids more folks to come join me in this shared computer. You can find the sign-up form for TildeTown here and the corresponding GitHub Issue for this post (with a bunch more screenshots) here.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/tildetown-iphone-blink-shell&#34;Discuss.../a&#xA;&#xA;#software #configuration&#xA;&#xA;---&#xA;&#xA;1] [Blink’s icon is perhaps my most favorite of any application, ever.&#xA;2] Yes, that is my real location information and yes, I did include it intentionally. Please come kill me as soon as possible. Also, “DOR” is apparently an acronym for “[Dilution of Precision),” which is a mildly interesting measurement to read up on.&#xA;3] As [the screenshots I captured suggest, anyway. Obviously, I do not posess the means to test the true resolution display to mine eyes.]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://i.snap.as/4ik6Tmwv.png" alt="Blink Folder"/></p>

<h2 id="the-ideal-means-of-on-the-go-participation-in-the-tildeverse" id="the-ideal-means-of-on-the-go-participation-in-the-tildeverse">The ideal means of <em>On The Go</em> participation in The Tildeverse.</h2>



<p><audio controls="">
  <source src="https://davidblue.wtf/audio/blink.m4a">
</audio></p>

<p>I was completely unaware of the Tildeverse’s origin story – documented in <a href="https://medium.com/message/tilde-club-i-had-a-couple-drinks-and-woke-up-with-1-000-nerds-a8904f0a2ebf">a Medium post</a> by <em>WIRED</em> Editor-in-Chief, Paul Ford – until this year, somehow, though I knew of its existence as far back as 2018. I was living in an unairconditioned Portland apartment, then, and had found myself <em>stuck</em> with Linux for the first time in my adult life. Consequentially, this period of my life became my first true introduction to the Command Line – a space about which I knew no more than the layest layman. Hopping between my ten-year-old, post-corporate system’s shell and the DOS machines I was emulating on it (exploring the history of word processors, mostly,) I believe I struggled through dare I say a Rite of Computing Passage, obtaining the capability (and eventually, the muscle memory) to navigate a filesystem with <code>cd</code>, <code>ls</code>, and (on DOS) <code>dir</code>. It wasn’t until I came home in ‘19 that I discovered the two primary emulated Linux shells <em>on iOS</em>: <a href="https://apps.apple.com/us/app/ish-shell/id1436902243"><strong>iSH Shell</strong></a> and <a href="https://apps.apple.com/us/app/a-shell/id1473805438"><strong>a-Shell</strong></a>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157366845-a604bd4c-3ea8-46fe-85e6-930adb8ca180.png" alt="iSH Shell and a-Shell"/></p>

<p>The former is designed to emulate <a href="https://alpinelinux.org">Alpine Linux</a> and has just recently added direct filesystem access via the Files app. The latter is, I’m told, quite extensible, and includes Siri Shortcuts actions that have enabled it to underpin powerful scraping shortcuts like <a href="https://routinehub.co/shortcut/7284/">SW-DLT</a> – a sort of frontend for youtube-dl and now yt-dlp. Both are open source, but a-Shell is actually <a href="https://github.com/holzschu/a-shell">a fork</a> of our subject app, now called “<a href="https://apps.apple.com/us/app/blink-shell-code/id1594898306"><strong>Blink Shell &amp; Code</strong></a>” in the App Store.[^1]</p>

<p><img src="https://user-images.githubusercontent.com/43663476/155115271-faa55bfd-d151-4741-9a6c-e9664a457503.png" alt="bbj Out"/></p>

<p>Blink’s tag is “a professional, desktop grade terminal for iOS.” Its <a href="https://blink.sh">landing page</a> touts a “first class iOS experience, with software and hardware keyboard, and the full edge-to-edge experience” experience. On <em>iPad</em>, Blink’s heyday was well documented by the likes of <a href="https://www.theverge.com/circuitbreaker/2018/3/27/17152482/ipad-pro-web-development-setup-how-to-terminal-apps">Paul Miller’s 2018 article for <em>The Verge</em></a> and Fatih Arslan’s 2019 “<a href="https://arslan.io/2019/01/07/using-the-ipad-pro-as-my-development-machine/">Using the iPad Pro as my development machine</a>.” These pieces more or less detail different use cases of the exact sort Blink was designed for – “professional” work done using an iPad as the terminal for a remote Linux/macOS machine.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157371504-32ebbca7-81bf-43c0-a762-cdbc0ad50181.png" alt="Apreche Reply"/></p>

<p>Since I’ve <a href="https://twitter.com/NeoYokel/status/1421410673049972739">apparently</a> ended up with a primary life mission of <em>doing stuff on my iPhone originally meant to be done on iPads</em>, I’ve managed to find myself <a href="https://tilde.town/~extratone">an active member</a> of the Tilde.Town community – a place exclusively accessible via SSH, aside from <a href="https://raindrop.io/davidblue/tilde-22520136">public pages</a> – exclusively through <a href="https://github.com/extratone/jorts">my iPhone 12 Pro Max</a>. I’m not the first to use Blink to do this – note <a href="https://tilde.town/~apreche">Apreche</a>’s reply to my thread, embedded above – but I suspect I’m the first to spend significant Town Time on my <em>fucking phone</em>, so I thought it might be worth laying out some of the particulars I’ve learned along the way.</p>

<p><em>It’s important to note that 99% of the use detailed in this guide/account involves the use of a paired Bluetooth keyboard.</em></p>

<p><img src="https://user-images.githubusercontent.com/43663476/157378620-9fb29373-d49e-4519-b734-8c75caf54dad.png" alt="Blink Settings"/></p>

<h2 id="locally" id="locally">Locally</h2>

<p>First, Blink’s settings menu is accessed by typing <code>config</code> and/or <code>⌘,</code>. Unfortunately, there’s no method of installing the entire selection of available <a href="https://github.com/blinksh/fonts">fonts</a> or <a href="https://github.com/blinksh/themes">themes</a> – you’ll have to do so one at a time, though you can optimize the process by learning/copy-and-pasting the url scheme for the fonts/themes directories on their respective repos. I especially recommend <a href="https://github.com/blinksh/themes/blob/master/themes/CLRS.js">CLRS</a>, <a href="https://github.com/blinksh/themes/blob/master/themes/Man%20Page.js">Man Page</a>, and <a href="https://github.com/blinksh/themes/blob/master/themes/MonaLisa.js">MonaLisa</a>, but this Post is saturated with <em>too</em> many mocked up screenshots of Blink themes to reasonably continue that list any further.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/155014762-7b8bfc6d-d6df-418a-b43e-6d7aa56582bb.png" alt="Local UNIX Commands in Blink-ManPage"/></p>

<p>Compared with its fork, a-Shell, Blink’s local UNIX command list is a bit sparse. It’s accessed exclusively with <code>TAB</code>. Where a-Shell has <code>pickFolder</code>, Blink has <code>link-files</code>, which does effectively the same thing: the Files app is opened, prompting you to select a folder, which will become visible and accessible in the command line.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/156869875-93a67975-beb2-4a25-a855-b845514ed8b3.png" alt="Repository Cleaning"/></p>

<p>Linking <a href="https://github.com/extratone/bilge"><em>The Psalms</em>’ GitHub Repository</a> in <a href="https://apps.apple.com/us/app/working-copy-git-client/id896694807">Working Copy</a> with <code>link-files</code> in Blink had profound results. I was offered a brief glance of that enhanced productivity command line evangelists always seem to be on about, if only because the files and directories were color-coded by type so distinctly. <code>open</code> also somehow lead to swifter previews than in Working Copy, despite that app’s brilliance.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/155200832-d2d5fdcb-9538-4f3e-be46-e3b203f28f17.png" alt="BaityYouTubeThumbnail"/></p>

<p>Some other particularly intriguing standouts include <code>say</code>, which unfortunately does <em>not</em> use your preferred Siri voice to speak aloud text, but rather the oldest there is. <code>facecam</code> will open a manipulatable circle of your device’s front-facing camera view, as shown in the screenshot embedded above. <code>openurl</code> will instantly open a formally-formatted web URL in Safari, which can come in handy. <code>pbcopy</code> and <code>pbpaste</code> really do manipulate the iOS system clipboard, which I probably find more impressive than I should. <code>code</code> is the newest to the bunch and will open a local instance of GitHub Codespaces(?) If this is truly useful on iPad – which plenty of positive feedback on social suggests it is, to at least a few human beings – it is barely usable on iPhone, which is to be expected, really.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157388631-7668b9d9-22e7-4fef-8c36-1081e213c193.png" alt="Blink and Code"/></p>

<p>Blink’s own “<a href="https://docs.blink.sh/advanced/unix-roundup">UNIX Command Line Tools Roundup</a>” does an okay job of outlining the rest of the basic networking and file management commands included that act locally, though I’ve still been unable to find out what <code>skstore</code> does. <code>xcall</code> opens x-callback-URLs, though I’m <a href="https://reddit.com/r/BlinkShell/comments/ta27h9/docs_for_xcall_command">still trying to figure out</a> what the command’s options are. <code>ed</code> the ancient command line text editor is available, though I’ve yet to learn to use it, and <code>uptime</code> appears to be actually accurate? Being able to run <code>whois</code> locally on iPhone has its uses, especially given the aforementioned support of <code>pbcopy</code>. <code>whois bilge.world | pbcopy</code> copies <em>The Psalms</em> domain registry information to the iOS clipboard in a flash.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/158213859-c477ddb3-dc51-47b2-8e2f-fa0df9b339ad.png" alt="Blink Keyboard Shortcuts"/></p>

<h3 id="keyboarding" id="keyboarding">Keyboarding</h3>

<p>To its credit, I think <a href="https://blink.sh">Blink’s landing page</a> represents the most explicitly pro-keyboard literature I’ve ever seen for an iOS app. From my fairly extensive use, its Bluetooth keyboard support fully reflects these declarations, even on iPhone. Out of the list of shortcuts you see in the screenshot embedded above, <code>Share Selection</code> is by far the one I use most, usually to open a link from the Tilde IRC chat. If I’m lucky/accurate, double tapping said link will select all of it and <em>only</em> it.</p>

<p>After a link is selected – which sometimes involves rotating the phone and/or zooming far out to get longer URLS in a single line – I’m able to call it up in the iOS sharesheet with <code>⌥U</code>, then open it in Safari with a Siri Shortcut I’ve placed there entitled “<a href="https://www.icloud.com/shortcuts/52e6c820f965488b91ca4b76c99434af">O P E N</a>.” Or – in the case of a direct link to a file – I could use another shortcut of mine just below it, called “<a href="https://www.icloud.com/shortcuts/af5a886c9b044bf194dd52127a3939c3">DOWNLOAD</a>,” which uses the <a href="https://www.matthewcassinelli.com/actions/get-contents-of-url/">Get Contents of URL</a> action to download files directly to my Downloads folder in iCloud Drive. Googling a selection (⌥G) has come in handy once or twice. I tried the Stack Overflow shortcut for kicks, but was meant with an endless string of CAPTCHA requests.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/158233450-e7a2eec8-1eae-478d-ab7e-35a2dec79e25.png" alt="Blink Custom Key Presses"/></p>

<p>An extraordinary feature of Blink’s which I originally misunderstood and have just begun to play with: <strong>custom key presses</strong>. In <code>Config ⇨ Keyboard ⇨ Custom Presses</code>, one can assign any text that can be hex encoded (Base16) to a keyboard shortcut. I’ve created a Siri Shortcut that requires the free version of <a href="https://apps.apple.com/us/app/gizmopack/id1505218567">GizmoPack</a> to aid myself (and you, hopefully,) in quickly converting plain text commands to this format. In the screenshots embedded above, the shortcuts listed on the left correspond in order with the commands listed on the right. You’ll note I’ve begun to attempt assigning quick keys to my most commonly typed-out commands.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154846142-4d16aa31-ee99-4ce9-94c5-852765d7d0b7.png" alt="Importing Keys in Blink Shell"/></p>

<h2 id="remotes-with-ssh-and-mosh" id="remotes-with-ssh-and-mosh">Remotes with SSH and Mosh</h2>

<p>If you’re entirely new to SSH as a concept, I’ve found no better introduction than <a href="https://tilde.town/~extratone/wiki/getting-started/ssh.html">Tilde.Town’s own SSH Primer</a>. I screwed up my first attempt at obtaining a key, but Town Maintainer <a href="https://tilde.town/~vilmibm">vilmibm</a> kindly responded to my Twitter DM in December of last year asking to instate a new key. I can’t remember whether or not I generated it originally within Blink, but regardless, the app’s key management is as intuitive as I’ve seen.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157376845-c2adf11e-7f8c-44d1-8a37-fec0a9fabbcc.png" alt="Blink Autocomplete"/></p>

<p>One of my unexpected favorite bits about Blink is its autocomplete feature which applies to both “commands and hosts” as quoted from <a href="https://docs.blink.sh/whats-new#version-100">its singular mention in the docs</a>. There very well could be a better means of typing out absurdly long filenames in other terminal emulators, but I’ve personally not come across anything remotely like this magic of Blink’s. Especially for someone newish to the command line like myself, its autocomplete occasionally borders on “intelligent auto<em>suggestion</em>” without actually crossing the threshold in an irritating way. Once I configured Tilde.Town as a host (with the local name Tilde.Town,) all I need do to connect is begin to type <code>ssh T</code> or <code>mosh T</code> (ssh keys == mosh keys, which I wish I knew weeks ago) and <code>TAB</code> to complete the full <code>ssh Tilde.Town</code> or <code>mosh Tilde.Town</code> commands.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154846342-b9d49f30-61c4-438d-8886-0414951807f6.png" alt="Adding Files App Locations in Blink"/></p>

<p>Once you’ve connected to Town, you should take advantage of <a href="https://docs.blink.sh/advanced/files-app">Blink’s Files app integration</a> by adding a location at the bottom of its entry in the Hosts menu. This adds Blink to the master, root list of file providers in the app. From there, all of the Files app’s features (including drag-and-drop) will apply to Tilde.Town as long as you’re sustaining at least one connection via ssh or mosh.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154846662-df10d713-6f54-46d2-8fb9-d1f77d42b14e.png" alt="Blink File Providers"/></p>

<p>To illustrate, here’s a wee, one-take tutorial on uploading images this way:</p>

<h3 id="mini-tutorial-uploading-images-to-the-tildeverse-with-blink-shell-https-user-images-githubusercontent-com-43663476-193413576-d210a0e1-7f93-4425-a217-362c2fb6650a-mov" id="mini-tutorial-uploading-images-to-the-tildeverse-with-blink-shell-https-user-images-githubusercontent-com-43663476-193413576-d210a0e1-7f93-4425-a217-362c2fb6650a-mov">Mini Tutorial: <a href="https://user-images.githubusercontent.com/43663476/193413576-d210a0e1-7f93-4425-a217-362c2fb6650a.MOV">Uploading images to the Tildeverse with Blink Shell</a></h3>

<video controls="">
  <source src="https://user-images.githubusercontent.com/43663476/193413576-d210a0e1-7f93-4425-a217-362c2fb6650a.MOV">
</video>

<p><img src="https://i.snap.as/mz8lgDFt.png" alt="Novel Chat Fixed"/></p>

<h2 id="chat" id="chat">Chat</h2>

<p>The IRC client TildeTown uses is called <a href="https://weechat.org">WeeChat</a> and – especially if it’s been as long for you as it had been for me – you might find (as I did) learning the ropes to be a bit dubitable. I’ve <a href="https://tilde.town/~extratone/manual/weechat/">duplicated the full User Guide</a> for your consideration. I got stuck at the concept of switching buffers, so my Big Pro hint is to start off running <code>/buffer 1</code> followed by <code>help</code>. In order to display the chat even remotely readably in portrait mode on an iPhone, you’ll need to remove the buffer list by hiding it. (Try <code>/help bar</code> in the first buffer.) You’ll also need to zoom out a bit and set the display mode to <code>Fill</code> via the menus that appear with a <em>three-finger</em> tap anywhere on screen. To achieve the look shown in the screenshot embedded above, you’ll need to hide a few things, but I’ll come back to those specific commands in a sec.</p>

<p>Assuming you intend to stay connected to Town IRC <em>On The Go</em>, I’d advise always starting your intended chat window with mosh, which – through <a href="https://docs.blink.sh/advanced/advanced-mosh">a whole bunch of alchemy</a> I’m incapable of understanding – establishes a much more flexible sort of connection that’s actually realistically dependable from within the uncertain world of a backgrounded iPhone app. Optionally, <a href="https://docs.blink.sh/advanced/advanced-ssh#persistent-ssh-connections-with-blink">the <code>geo</code> command</a> can be used to force iOS into allowing Blink a more genuine background running state with <code>geo track</code>. Additionally, <code>geo current</code> displays a nicely-formatted set of location information:[^2]</p>

<pre><code class="language-json">{
  “Latitude” : 38.933988900043886,
  “AltitudeRef” : 0,
  “GPSVersion” : “2.3.0.0”,
  “DateStamp” : “2022:03:09”,
  “Altitude” : 203.0797061920166,
  “Longitude” : 92.388242309618036,
  “LongitudeRef” : “W”,
  “TimeStamp” : “14:35:13.140000”,
  “LatitudeRef” : “N”,
  “DOP” : 35
}
</code></pre>

<p>As you’d expect, the persistence allowed by this feature – which does, indeed, extend to remote files access in the Files app as you move about the world – comes at a significant consumptive power and resource sacrifice. If you parse the slapdash language in the docs, the implication is that you should only need to use the <code>geo</code> command to make <em>ssh</em> connections persistent, not mosh connections. Since encountering this wording, I’ve yet to have an opportunity to explore the real world truth of this supposition because I have only my rotting legs to propel me around, these days.</p>

<p>If I remember correctly, I once found a surprisingly capable (for the time and circumstances) iPhone IRC app in <a href="https://apps.apple.com/us/app/colloquy-irc-client/id302000478">Colloquy’s iPhone OS offering</a>, though it appears to have fallen far, far out of support, now. LimeChat’s iPhone app isn’t listed on the App Store anymore and <a href="http://limechat.net/iphone/">its landing page</a> proudly touts support for <em>iOS 4 multitasking</em>!</p>

<blockquote><p>Connections are kept in 10 minutes after going to background.</p></blockquote>

<p>My memories of computer use from that time are ever so vague, but after just a brief junket to the era’s surviving app literature, some abyssal images within me were stirred. I suspect I tried every possible solution as I’ve always tended to, even back then, on my first generation iPhone and then my 4S. I remember Colloquy being the most tenable, but far from persistent, of course. As I recall, one could maintain a conversation as a passenger on a car trip, for instance, but remaining ambiently, eternally <em>Logged In</em> – as is the ancient custom of Internet Relay Chat – was too far out of reach to even be of consideration.</p>

<p>To be honest, I still find the whole idea unnatural, and I’m not alone, but I can promise you that <strong>running Blink on a recent iPhone with the average American cellular connection is as close to the full WeeChat experience as is possible on a handset, today</strong>, for whatever that may be worth to you. Thanks to some incredibly helpful new TildeTown friends, its copious configurability pivoted from an insurmountable, puzzling ordeal to a never before conceived of solution. If you haven’t already, skim the actual conversation contained within the pre-header screenshot, above.</p>

<h4 id="weechat-configuration" id="weechat-configuration">WeeChat Configuration</h4>

<p>The following is the precise set of commands involved in making WeeChat look as the screenshot does, though in no particular order. As <a href="https://tilde.town/~m455">m455</a> pointed out, <code>fset</code> is the tool that lists available configurable options and their current status in a linear way. The default of the second option in the list is apparently <code>11</code>, but I fiddled quite a bit to find <code>9</code> more optimum.</p>
<ul><li><code>fset</code></li>
<li><code>/set weechat.look.prefix_align_max 9</code></li>
<li><code>/bar hide bufflist</code></li>
<li><code>/bar hide fset</code></li>
<li><code>/bar hide title</code></li>
<li><code>/bar hide nicklist</code></li>
<li><code>/set weechat.look.buffer_time_format &#34;%M&#34;</code></li></ul>

<p>If you eliminate the value of the very last command (so just “”) and add <code>/bar hide status</code> to the list, you’ll end up with a more minimal-looking, timestamp-less experience:</p>

<p><img src="https://i.snap.as/FhjqlFV1.png" alt="Spacedust Chat-Minimal"/></p>

<p>If indeed there is a “reasonable” configuration for command line IRC display on a telephone in the year 2022, surely, this is it.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157794243-413146bf-d004-4502-8ecd-b9bde2c10437.jpeg" alt="Town TV"/></p>

<h2 id="town-television" id="town-television">Town Television</h2>

<p>Due largely to its primary market of iPad-bound developers living and working in remote Digital Ocean droplets, significant effort (I assume) has been expended in making Blink Shell one of the few iOS apps which <em>usably</em> supports external AirPlay displays, even, yes, on iPhone. As far as I can tell, all of the iPad options in the appearance settings menu seen below have also functioned in my tests on iPhone, casting an entirely separate set of Blink windows to my mom’s <a href="https://www.samsung.com/us/support/televisions-home-theater/televisions/qled-4k-tvs/t-model-line-up-2020">Huge Ass Samsung television</a> in ten-eighty pee.[^3]</p>

<p><img src="https://user-images.githubusercontent.com/43663476/157918199-c9007d31-cb39-4e18-9e2d-e10ac3c93974.png" alt="Blink Appearance Settings"/></p>

<p>If you’ve somehow found yourself this far, you’re probably looking for the keyboard shortcut<code>⌘O</code>, which <strong>switches your currently active cursor between the device and the external display</strong>. “You can also move windows between iPad and External Display with <code>⇧⌘O</code>,” say <a href="https://docs.blink.sh/basics/tips-and-tricks#display-what-is-blink-window">the docs</a>. Other considerations I’ve discovered through experiments with this: You can lock the phone with the external display running, but it won’t update, even with mosh or with<code>geo track.</code> AirPlay will also cease after a period I couldn’t be bothered to determine, so if anything, this is more of an inconvenience than a feature.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/158088240-a0f27c3c-1782-4323-bfc5-2c280d3c98e9.png" alt="Notifications in Blink"/></p>

<h2 id="other-considerations" id="other-considerations">Other Considerations</h2>

<p>Blink has a URL scheme – <code>blinkshell://run?key=[YourKey]&amp;cmd=</code> – but it’s not particularly useful, largely because it’s for the moment left <a href="https://reddit.com/r/BlinkShell/comments/swzphf/url_scheme_documentation/">without any real documentation</a>. I was able to create a Drafts action that runs one’s current selection as a command in Blink, but the app doesn’t appear to like it very much, if you know what I mean. Blink also integrates with iOS system notifications – as exemplified in the screenshot embedded above – and they <em>do</em> work consistently with mentions in town chat, even outside the app, though I’ve yet to see one including any useful information. You’ll know that <em>something</em> happened, maybe. Recently, the app has taken to displaying a nondescript notification every time I re-open WeeChat, even without new messages since the last time I opened it.</p>

<p>Somehow, upon logging into macOS for the first time since installing all the aforementioned themes in Blink, I found the same themes available in the Mac Terminal. I’m sure there’s an explanation involving hidden iCloud Drive folders – and I can’t imagine being anything but pleasantly surprised to find oneself flush with more Terminal themes – but it’s still worth a heads up.</p>

<p>Philosophically, one might declare the practice I’ve outlined here to be definitively against everything the Tildeverse is about – the small web, Linuxy stuff. Bringing this up in TildeChat a few times, I was met only with acceptance. In fact, acceptance, curiosity, and support is <em>all</em> I’ve been met with throughout my first few months as a townie, and I hope this Post encourages/aids more folks to come join me in this shared computer. You can find the sign-up form for TildeTown <a href="https://cgi.tilde.town/users/signup">here</a> and the corresponding GitHub Issue for this post (with a bunch more screenshots) <a href="https://github.com/extratone/bilge/issues/307">here</a>.</p>

<p><a href="https://remark.as/p/bilge.world/tildetown-iphone-blink-shell">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a></p>

<hr/>

<p>[1] <a href="https://tilde.town/~extratone/icons/blink.png">Blink’s icon</a> is perhaps my most favorite of any application, ever.
[2] Yes, that is my real location information and yes, I did include it intentionally. Please come kill me as soon as possible. Also, “DOR” is apparently an acronym for “<a href="https://en.m.wikipedia.org/wiki/Dilution_of_precision_(navigation)">Dilution of Precision</a>,” which is a mildly interesting measurement to read up on.
[3] As <a href="https://github.com/extratone/bilge/issues/307#issuecomment-1065429898">the screenshots I captured suggest</a>, anyway. Obviously, I do not posess the means to test the true resolution display to mine eyes.</p>
]]></content:encoded>
      <guid>https://bilge.world/tildetown-iphone-blink-shell</guid>
      <pubDate>Mon, 14 Mar 2022 01:47:53 +0000</pubDate>
    </item>
    <item>
      <title>Run Siri Shortcuts with Hyperlinks</title>
      <link>https://bilge.world/run-siri-shortcuts-with-hyperlinks?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[Shortcuts Run Links&#xA;&#xA;Imagine running shortcuts from anywhere you can place a link.&#xA;&#xA;!--more--&#xA;&#xA;There seemed to be a bit of confusion regarding a shortcut I posted on RoutineHub a few days ago entitled “Generate Shortcuts Run Links List,” so I thought I’d attempt to overview how I’ve come to use Shortcuts’ URL scheme as my primary method of calling shortcuts across both iOS and macOS.&#xA;&#xA;The basis of the whole shit is shortcuts://run-shortcut?name= and shortcuts://x-callback-url/run-shortcut?name=. Using these along with URL-encoded shortcuts titles (for those containing a space,) we can create links that will run shortcuts from anywhere on iOS or macOS as hyperlinks. These days, this is how I run most of my even semi-regular-use shortcuts, largely from my first Dot in Iconfactory’s Tot.&#xA;&#xA;Tot&#xA;&#xA;With a few exceptions, all the links you see in the above screenshot above “Drafts Instrument Panel” are shortcuts run links of the same type. Most of these, I typed out by hand with a TextExpander snippet. Here’s what the mess looks like underneath:&#xA;&#xA;Tot Code&#xA;&#xA;I had a bit of an issue creating the shortcut, itself. Though Shortcuts includes a native URL Encode action, I couldn’t seem to get it to reliably generate URL-encoded shortcuts names, which is why I inserted the Text Case action, instead.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/run-siri-shortcuts-with-hyperlinks&#34;Discuss.../a&#xA;&#xA;#automation #software #configuration]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://user-images.githubusercontent.com/43663476/155768732-03ca73a9-9b18-414f-ae86-a27bbe01ce04.png" alt="Shortcuts Run Links"/></p>

<h2 id="imagine-running-shortcuts-from-anywhere-you-can-place-a-link" id="imagine-running-shortcuts-from-anywhere-you-can-place-a-link">Imagine running shortcuts from anywhere you can place a link.</h2>



<p>There seemed to be a bit of confusion regarding a shortcut I posted on RoutineHub a few days ago entitled “<a href="https://routinehub.co/shortcut/11143"><strong>Generate Shortcuts Run Links List</strong></a>,” so I thought I’d attempt to overview how I’ve come to use Shortcuts’ URL scheme as my primary method of calling shortcuts across both iOS and macOS.</p>

<p>The basis of the whole shit is <code>shortcuts://run-shortcut?name=</code> and <code>shortcuts://x-callback-url/run-shortcut?name=</code>. Using these along with URL-encoded shortcuts titles (for those containing a space,) we can create links that will run shortcuts from anywhere on iOS or macOS as hyperlinks. These days, this is how I run most of my even semi-regular-use shortcuts, largely from my first Dot in Iconfactory’s <a href="https://apps.apple.com/us/app/tot-pocket/id1498235191">Tot</a>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/155801898-e6c74cee-c26a-458c-a915-c3f969c6f3fd.png" alt="Tot"/></p>

<p>With a few exceptions, all the links you see in the above screenshot above “Drafts Instrument Panel” are shortcuts run links of the same type. Most of these, I typed out by hand with <a href="https://app.textexpander.com/public/14093096578d4f40eeea15649f5cefbb">a TextExpander snippet</a>. Here’s what the mess looks like underneath:</p>

<p><img src="https://user-images.githubusercontent.com/43663476/155803031-436d36a3-c0be-4da1-9df4-72a9d6e8e350.png" alt="Tot Code"/></p>

<p>I had a bit of an issue creating the shortcut, itself. Though Shortcuts includes a native <a href="https://www.matthewcassinelli.com/actions/url-encode/">URL Encode action</a>, I couldn’t seem to get it to reliably generate URL-encoded shortcuts names, which is why I inserted the <a href="https://apps.apple.com/us/app/text-case/id1492174677">Text Case</a> action, instead.</p>

<p><a href="https://remark.as/p/bilge.world/run-siri-shortcuts-with-hyperlinks">Discuss...</a></p>

<p><a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a> <a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/run-siri-shortcuts-with-hyperlinks</guid>
      <pubDate>Fri, 04 Mar 2022 17:10:47 +0000</pubDate>
    </item>
    <item>
      <title>Windows Eternal Drafts Theme</title>
      <link>https://bilge.world/windows-eternal?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[WindowsEternal-iPadPro&#xA;&#xA;I believe I have finally manifested the Drafts interpretation of Winders users’ dreams.&#xA;&#xA;!--more--&#xA;&#xA;If you still follow me on Twitter, you’ve seen me posting a lot of mockups and links related to Agile Tortoise’s Drafts, lately. I know it probably seems like a phase - and I suppose it is, technically - but I’ve actually been using this darned application for the entirety of my adult life. It’s just that I’ve only recently (read: since 2020 or so) returned to Drafts as my primary text living space from Bear for what I’m sure you’ll regard as silly reasons. In terms of themes for Drafts, I’ve already hit you with one based on this very blog and “Windows Iowa” - both of which have faired far better than I would’ve ever expected on the Drafts Directory.&#xA;&#xA;Switching&#xA;&#xA;SwitchingLandscape&#xA;&#xA;Now, though, I would like to present “Windows Eternal” - a celebratory theme of ye olde Winders™ Aesthetic, based on one of my very favorite themes for Telegram Messenger for iOS.&#xA;&#xA;Telegram Theme&#xA;&#xA;I’m actually not sure what it was called originally, but I’ve archived the Telegram theme as Windows Eternal, too.&#xA;&#xA;WindowsEternalTelegramLandscape&#xA;&#xA;WindowsEternalTelegram&#xA;&#xA;If you or someone you know might remember who the original creator was, please do get in touch because they absolutely deserve to be credited here and elsewhere.&#xA;&#xA;Windows Eternal Portrait Clean&#xA;&#xA;Details&#xA;&#xA;If you’re interested, the full source of Windows Eternal is publicly available, though I would recommend using the “Open in Theme Builder” button on its Drafts Directory page to view the details visually, especially if you’re a Drafts user who’s never tried it. You’ll note that I made heavy use of #327c7d (that darkish green color) as often as possible along with #bfc0c1 (the main gray) and #000DA6 (the main bright blue.)&#xA;&#xA;Buttons&#xA;&#xA;Drafts Directory Link &#xA;GitHub Issue&#xA;Source&#xA;Tilde (More screenshots)&#xA;Telegram Theme&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/windows-eternal&#34;Discuss.../a&#xA;&#xA;#software #configuration]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://user-images.githubusercontent.com/43663476/154896941-f15cfe59-dd8f-4310-b4be-fe55ee4e4bc7.PNG" alt="WindowsEternal-iPadPro"/></p>

<h2 id="i-believe-i-have-finally-manifested-the-drafts-interpretation-of-winders-users-dreams" id="i-believe-i-have-finally-manifested-the-drafts-interpretation-of-winders-users-dreams">I believe I have finally manifested the Drafts interpretation of Winders users’ dreams.</h2>



<p>If you still follow me <a href="https://twitter.com/NeoYokel">on Twitter</a>, you’ve seen me posting a lot of mockups and links related to Agile Tortoise’s <a href="https://apps.apple.com/us/app/drafts/id1435957248">Drafts</a>, lately. I know it probably seems like a phase – and I suppose it is, technically – but I’ve actually been using this darned application for the entirety of my adult life. It’s just that I’ve only recently (read: since 2020 or so) returned to Drafts as my primary text living space from Bear for what I’m sure you’ll regard as <a href="https://beta.bear.app/t/the-line-width-slider-any-chance-i-ll-see-it-again/1945/8">silly reasons</a>. In terms of themes for Drafts, I’ve already hit you with <a href="https://actions.getdrafts.com/t/1km">one based on this very blog</a> and “<a href="https://actions.getdrafts.com/t/1kY">Windows Iowa</a>” – both of which have faired far better than I would’ve ever expected on <a href="https://actions.getdrafts.com/theme_definitions?order=popular">the Drafts Directory</a>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154833948-c5c271a9-ab72-4998-a84d-e2aeb5972f5c.png" alt="Switching"/></p>

<p><img src="https://user-images.githubusercontent.com/43663476/154834066-b9aa651e-d71c-49a9-99ed-971f43ecce2e.png" alt="SwitchingLandscape"/></p>

<p>Now, though, I would like to present “<a href="https://actions.getdrafts.com/t/1wT"><strong>Windows Eternal</strong></a>” – a celebratory theme of ye olde Winders™ Aesthetic, based on one of my very favorite themes for Telegram Messenger for iOS.</p>

<h2 id="telegram-theme" id="telegram-theme">Telegram Theme</h2>

<p>I’m actually not sure what it was called originally, but I’ve archived the Telegram theme as <a href="https://t.me/addtheme/windowseternal">Windows Eternal</a>, too.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154834629-444dc630-4789-4a9b-9698-e7652294baaa.png" alt="WindowsEternalTelegramLandscape"/></p>

<p><img src="https://user-images.githubusercontent.com/43663476/154834642-0fc9b9eb-23cc-431d-8496-d9d9b6981677.png" alt="WindowsEternalTelegram"/></p>

<p>If you or someone you know might remember who the original creator was, please do <a href="https://davidblue.wtf/db.vcf">get in touch</a> because they absolutely deserve to be credited here and elsewhere.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154839440-4c97c59a-526a-4f48-bbac-251a8f553996.png" alt="Windows Eternal Portrait Clean"/></p>

<h2 id="details" id="details">Details</h2>

<p>If you’re interested, <a href="https://github.com/extratone/drafts/blob/main/Themes/Windows%20Eternal.json">the full source of Windows Eternal</a> is publicly available, though I would recommend using the “Open in Theme Builder” button on its <a href="https://actions.getdrafts.com/t/1wT">Drafts Directory page</a> to view the details visually, especially if you’re a Drafts user who’s never tried it. You’ll note that I made heavy use of <code>#327c7d</code> (that darkish green color) as often as possible along with <code>#bfc0c1</code> (the main gray) and <code>#000DA6</code> (the main bright blue.)</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154840096-495a527f-642b-422e-bcdd-91ca442d85d9.png" alt="Buttons"/></p>
<ul><li><a href="https://actions.getdrafts.com/t/1wT"><strong>Drafts Directory Link</strong></a></li>
<li><a href="https://github.com/extratone/drafts/issues/26">GitHub Issue</a></li>
<li><a href="https://github.com/extratone/drafts/blob/main/Themes/Windows%20Eternal.json">Source</a></li>
<li><a href="https://tilde.town/~extratone/windowseternal">Tilde</a> (More screenshots)</li>
<li><a href="https://t.me/addtheme/windowseternal">Telegram Theme</a></li></ul>

<p><a href="https://remark.as/p/bilge.world/windows-eternal">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/windows-eternal</guid>
      <pubDate>Sun, 20 Feb 2022 11:17:58 +0000</pubDate>
    </item>
    <item>
      <title>The Fastest Route to Twitter Jail</title>
      <link>https://bilge.world/twitter-jail?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[TwitterJail&#xA;&#xA;My new Twitter Jail Siri Shortcut marks a milestone in Social Foolery.&#xA;&#xA;!--more--&#xA;&#xA;I graduated high school in 2012. Back then, TweetDeck was still a standalone desktop client that allowed one to post with just the ENTER or return key. I&#39;d made it part of the Drywall Prime Directive to generally keep @ihadtopee in Twitter Jail as much as possible, which meant pounding my way into it ASAP, daily. This was often my very first task upon returning home from school. All memories - much less computing memories - are quite obscured from that era, but I wouldn&#39;t be surprised if I was spending a cumulative 45 minutes every school day punishing the fuck out of my first flat generation w/keypad Apple Keyboard to TweetDeck in Windows 7.&#xA;&#xA;https://twitter.com/TWlTTER_JAIL/status/746295481123274752&#xA;&#xA;It&#39;s not that automating Tweets wasn&#39;t possible in that era - I&#39;d been posting WHEN IM COMIN DINE IN MY FOREIGN AND IM ROLLIN ONE DEEP THAT SHOULD TELL YA BOUT ME across all my social accounts every morning at 0610 since Freshman year via IFTT (now IFTTT) - but doing so at any sustained rate required actual knowledge. &#xA;&#xA;https://www.youtube.com/watch?v=4qyHYslaQx4&#xA;&#xA;Today, even an rube like myself can whip up a Siri Shortcut capable of jailing a user account in less than four minutes from nill - what appears to be a statically-set rate limit of 310 Tweets in that time. Mind you, we&#39;re talking about entirely on-device processing here, and - in case you weren&#39;t aware - the device I&#39;m referring to is my fucking cellular phone.&#xA;&#xA;TwitterJailTimeline&#xA;&#xA;Twitter Jail technically requires three apps - two of which are ridiculously small, 100% Apple cross-platform, and entirely free - and the third represents simply the most refined and delightful means anyone has ever interacted with The Bird Site.&#xA;&#xA;Requirements&#xA;&#xA;Actions - Free across all platforms and just 3.3mb to download!&#xA;Tweetbot (You might also try Aviary if you absolutely cannot bring yourself to pay a subscription fee, ever.) &#xA;Data Jar (More or less optional.)&#xA;&#xA;Upon installation, you&#39;ll be asked 1.) to set the default number of repeats (Tweets) per run. Obviously, I&#39;d recommend ~310 to optimize your jailing. 2.) To specify which Tweetbot-authenticated user account you&#39;d like to get jailed, and 3.) which &#34;key path&#34; (jar) you&#39;d like to store the URLs of said Tweets in. The third is almost certainly useless and entirely optional (just delete the Data Jar action,) but... you never know when... you might need... those URLs.&#xA;&#xA;Depending on your device (to some extent, I&#39;d imagine,) proceeding to run the shortcut shouldn&#39;t take long. It randomly generates 91 characters text from a string (which you should also feel empowered to customize/add to,) Tweets them from your specified account, and stores the URLs of those Tweets in the jar you may or may not have specified.&#xA;&#xA;You might expect me to express envy of any youths reading, but I absolutely feel none. All I can do is encourage you to fucking try Mastodon for God&#39;s sake and your own.&#xA;&#xA;Twitter Jail macOS&#xA;&#xA;Update: macOS Version Published&#xA;&#xA;I’ve created a macOS version of Twitter Jail which also requires the Actions app but substitutes Aviary for Tweetbot given the former’s native Siri Shortcuts action does not require the app to open for each Tweet. &#xA;&#xA;1] It&#39;s actually still available from [various sources - including the Mac App Store - but has fallen way, way out of support.&#xA;&#xA;#automation #software #configuration]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://user-images.githubusercontent.com/43663476/153813676-efbe3e23-d830-4239-940b-922c9bcb35b0.png" alt="TwitterJail"/></p>

<h2 id="my-new-twitter-jail-siri-shortcut-marks-a-milestone-in-social-foolery" id="my-new-twitter-jail-siri-shortcut-marks-a-milestone-in-social-foolery">My new Twitter Jail Siri Shortcut marks a milestone in Social Foolery.</h2>



<p>I graduated high school in 2012. Back then, TweetDeck was still a standalone desktop client[^1] that allowed one to post with just the <code>ENTER</code> or <code>return</code> key. I&#39;d made it part of the <a href="https://iowa.neocities.org">Drywall Prime Directive</a> to generally keep <a href="https://twitter.com/ihadtopee">@ihadtopee</a> in <a href="https://www.urbandictionary.com/define.php?term=TwitterJail">Twitter Jail</a> as much as possible, which meant pounding my way into it ASAP, daily. This was often my very first task upon returning home from school. All memories – much less computing memories – are quite obscured from that era, but I wouldn&#39;t be surprised if I was spending a cumulative 45 minutes every school day punishing the fuck out of my first flat generation w/keypad Apple Keyboard to TweetDeck in Windows 7.</p>

<p><blockquote class="twitter-tweet"><p lang="en" dir="ltr">Who&#39;s up grinding?</p>&mdash; T W I T T E R  JAIL (@TWlTTER_JAIL) <a href="https://twitter.com/TWlTTER_JAIL/status/746295481123274752?ref_src=twsrc%5Etfw">June 24, 2016</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script></p>

<p>It&#39;s not that automating Tweets wasn&#39;t possible in that era – I&#39;d been posting WHEN IM COMIN DINE IN MY FOREIGN AND IM ROLLIN ONE DEEP THAT SHOULD TELL YA BOUT ME across all my social accounts every morning at 0610 since Freshman year via IFTT (now IFTTT) – but doing so at any sustained rate required actual <em>knowledge</em>.</p>

<p><iframe allow="monetization" class="embedly-embed" src="//cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2F4qyHYslaQx4%3Ffeature%3Doembed&display_name=YouTube&url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D4qyHYslaQx4&image=https%3A%2F%2Fi.ytimg.com%2Fvi%2F4qyHYslaQx4%2Fhqdefault.jpg&key=d932fa08bf1f47efbbe54cb3d746839f&type=text%2Fhtml&schema=youtube" width="640" height="360" scrolling="no" title="YouTube embed" frameborder="0" allow="autoplay; fullscreen" allowfullscreen="true"></iframe></p>

<p>Today, even an rube like myself can whip up <a href="https://routinehub.co/shortcut/11086/"><strong>a Siri Shortcut</strong></a> capable of jailing a user account in <em>less than four minutes</em> from nill – what appears to be a statically-set rate limit of 310 Tweets in that time. Mind you, we&#39;re talking about entirely <em>on-device</em> processing here, and – in case you weren&#39;t aware – the device I&#39;m referring to is my fucking cellular phone.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153808840-473464ae-2922-45a9-a27b-46d0b7f3a247.png" alt="TwitterJailTimeline"/></p>

<p><a href="https://routinehub.co/shortcut/11086/"><strong>Twitter Jail</strong></a> technically requires three apps – two of which are ridiculously small, 100% Apple cross-platform, and entirely free – and the third represents simply <a href="https://bilge.world/tweetbot-6-ios-review">the most refined and delightful means</a> anyone has ever interacted with The Bird Site.</p>

<h3 id="requirements" id="requirements">Requirements</h3>
<ul><li><a href="https://apps.apple.com/us/app/actions/id1586435171"><strong>Actions</strong></a> – Free across all platforms and just 3.3mb to download!</li>
<li><a href="https://apps.apple.com/us/app/tweetbot-6-for-twitter/id1527500834">Tweetbot</a> (You might also try <a href="https://apps.apple.com/us/app/aviary-for-twitter/id1522043420">Aviary</a> if you absolutely cannot bring yourself to pay a subscription fee, ever.)</li>
<li><a href="https://apps.apple.com/us/app/data-jar/id1453273600">Data Jar</a> (More or less optional.)</li></ul>

<p>Upon installation, you&#39;ll be asked 1.) to set the default number of repeats (Tweets) per run. Obviously, I&#39;d recommend ~310 to optimize your jailing. 2.) To specify which Tweetbot-authenticated user account you&#39;d like to get jailed, and 3.) which “key path” (jar) you&#39;d like to store the URLs of said Tweets in. The third is almost certainly useless and entirely optional (just delete the Data Jar action,) but... you never know when... you might need... those URLs.</p>

<p>Depending on your device (to some extent, I&#39;d imagine,) proceeding to run the shortcut shouldn&#39;t take long. It randomly generates 91 characters text from a string (which you should also feel empowered to customize/add to,) Tweets them from your specified account, and stores the URLs of those Tweets in the jar you may or may not have specified.</p>

<p>You might expect me to express envy of any youths reading, but I absolutely feel none. All I can do is encourage you to <a href="https://mastodon.social/invite/hca7L5sY">fucking try Mastodon</a> for God&#39;s sake and your own.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/154838012-2deb774f-6f02-4627-b8dd-f16286968621.png" alt="Twitter Jail macOS"/></p>

<h2 id="update-macos-version-published" id="update-macos-version-published">Update: macOS Version Published</h2>

<p>I’ve created <a href="https://routinehub.co/shortcut/11135"><strong>a macOS version of Twitter Jail</strong></a> which also requires <a href="https://apps.apple.com/us/app/actions/id1586435171">the Actions app</a> but substitutes <a href="https://apps.apple.com/us/app/aviary-for-twitter/id1522043420">Aviary</a> for Tweetbot given the former’s native Siri Shortcuts action does not require the app to open for each Tweet.</p>

<p>[1] It&#39;s actually still available from <a href="https://downloads.digitaltrends.com/tweetdeck/windows">various sources</a> – <a href="https://apps.apple.com/us/app/tweetdeck-by-twitter/id485812721">including the Mac App Store</a> – but has fallen way, way out of support.</p>

<p><a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a> <a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/twitter-jail</guid>
      <pubDate>Mon, 14 Feb 2022 08:35:27 +0000</pubDate>
    </item>
    <item>
      <title>Using Drafts with NeoCities</title>
      <link>https://bilge.world/using-drafts-with-neocities?pk_campaign=rss-feed</link>
      <description>&lt;![CDATA[DraftsxNeoCities&#xA;&#xA;A Drafts Action Group for interacting with WebDAV-enabled sites.&#xA;&#xA;!--more--&#xA;&#xA;audio controls&#xA;  source src=&#34;https://davidblue.wtf/audio/draftsandneocities.mp3&#34;&#xA;/audio&#xA;&#xA;Thanks to recent learning, I have managed to manifest one of my alltime fantasy integrations: I have tied Drafts and NeoCities together directly via my NeoCities Action Group, which uses Drafts&#39; native WebDAV support to (technically) interact with any website based on the protocol. I created it largely to interact with NeoCities over iOS, but frankly I was already doing so more effectively than the Action Group will ever offer with the iOS app Koder. It’s odd and a bit out of support, but incredibly useful and supported all the way back to iOS 9. Unfortunately, many of its functions - like deleting remote files, for instance - will result in a crash on modern devices. Also unfortunate - I’m afraid my Action Group doesn’t offer solutions to these problems. On iOS, it’s limited in function to pushing files to your WebDAV server and then opening them in a web browser. &#xA;&#xA;NeoCitiesActionGroup&#xA;&#xA;It wasn&#39;t as simple as HTML encoding the draft] content with percentage signs, either. In order to produce [satisfactory results, I had to wrap every output in a very custom HTML template which I would very much encourage you to personalize before using (considering especially that it includes my personalized footer links and colors.) You can view that template in full here. To be honest, I can’t quite recall where I found the original, but it was probably either included with a native Drafts action or found among Stephen Millard’s TAD library.&#xA;&#xA;toDraft-UUID&#xA;&#xA;The most reliable means of identifying, pushing, and retrieving a draft from a WebDAV site (that I found, anyway,) is by using its Universally unique identifier (UUID) in its pathname. An apt example: the draft I’m currently whittling on, enumerated 7247282E-340B-4890-A2F7-0481AF31321E. The action above - Draft to /drafts as UUID.html - will push the contents of your current draft to /drafts/the Draft’s UUID.html. (That&#39;s how I created the example.) &#xA;&#xA;NeoCitiesActionGroup-Viewedonmacos&#xA;&#xA;I&#39;ve done my best to color code the actions based on the potential &#34;severity&#34; of their result, but the way they display will depend almost entirely on which particular Drafts theme you&#39;re using at the moment. Nevertheless, blue/green indicate the &#34;safest&#34; actions - like the ones that simply open a link to a draft you&#39;ve already pushed - and yellow/orange/red actions involve pushing/manipulating files at the root of your site.&#xA;&#xA;Below is the full documentation of each of the actions (and the separators, even,) including individual install links, though I would very much recommend you install the whole bit. You&#39;ll need to edit each action and replace davidblue.wtf with your own URL(s) unless you&#39;d like to try and attempt my absolutely gargantuan NeoCities password.&#xA;&#xA;NeoCities Action Group&#xA;&#xA;Root&#xA;Type: Separator&#xA;Keyboard Shortcut:   &#xA;Icon:   &#xA;Colour: none  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 0  &#xA;Unique ID: 69B625EC-D9E2-41B7-9767-3532666E7C97  &#xA;Description:  &#xA;&#xA;Push Draft to Root as HTML&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: 383-keyhole  &#xA;Colour: orange  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 81C89DC8-F26E-4644-87D7-BF454B345C24  &#xA;Description:  &#xA;Push the current draft to the /drafts directory as an HTML file by the draft’s safetitle.&#xA;&#xA;Draft to Root as UUID.html&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: binary  &#xA;Colour: yellow  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: ABAA6A02-806F-4B45-BEA6-E9D5F8D32236  &#xA;Description:  &#xA;Push the current draft to the root directory as an HTML file titled by its UUID.&#xA;&#xA;Draft to Root as Text Timestamp&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: alarm  &#xA;Colour: orange  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: EFF08ADA-81B6-49C3-B132-5DB477A95685  &#xA;Description:  &#xA;Push the current draft to the root directory as a .txt file titled by timestamp.&#xA;&#xA;Draft to /{title} as index.html&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: indent  &#xA;Colour: red  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 15401CFC-114E-429C-B747-054E19C46911  &#xA;Description:  &#xA;Push the current draft to /NeoCities as index.html&#xA;&#xA;Open /{title}&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: idea  &#xA;Colour: green  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 34630C90-6180-4394-A296-C2A5018DFEFB  &#xA;Description:  &#xA;Open /drafts/[Current Draft UUID].html.&#xA;&#xA;/path&#xA;Type: Separator&#xA;Keyboard Shortcut:   &#xA;Icon:   &#xA;Colour: none  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 0  &#xA;Unique ID: 6F0BE49F-3B6F-49AF-ABA7-04BA7F437C1A  &#xA;Description:  &#xA;&#xA;Push Draft to /drafts as HTML&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: 383-keyhole  &#xA;Colour: orange  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 34A59A1C-95A8-42A9-9C23-677E9731EFC8  &#xA;Description:  &#xA;Push the current draft to the /drafts directory as an HTML file by the draft’s safe_title.&#xA;&#xA;Draft to /drafts as UUID.html&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: binary  &#xA;Colour: none  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 9C9FCDA8-687C-475A-8213-A8185CEFEE4D  &#xA;Description:  &#xA;Push the current draft to the /drafts directory as an HTML file titled by its UUID.&#xA;&#xA;Open pushed /drafts file by UUID.&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: idea  &#xA;Colour: green  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: BADE45C1-AEC4-46A6-B4BE-7B88B2357C04  &#xA;Description:  &#xA;Open /drafts/[Current Draft UUID].html.&#xA;&#xA;Draft to /drafts/{title} as index.html&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: indent  &#xA;Colour: violet  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 5555699A-B3A6-432D-9A20-ECA78F6A5D88  &#xA;Description:  &#xA;Push the current draft to drafts/NeoCities as index.html&#xA;&#xA;Open /drafts/{title}&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: idea  &#xA;Colour: green  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 1E5CB9D6-B8FE-4934-8AEC-E795A651C45A  &#xA;Description:  &#xA;Open /drafts/{title}&#xA;&#xA;Draft to Specified Path as index.html&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: signs-alt  &#xA;Colour: orange  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 2  &#xA;Unique ID: A7D5BE00-36D3-4E08-9058-7923571189AA  &#xA;Description:  &#xA;Push Draft to specified directory as index.html.&#xA;&#xA;/[input]/index.html&#xA;&#xA;Misc&#xA;Type: Separator&#xA;Keyboard Shortcut:   &#xA;Icon:   &#xA;Colour: none  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 0  &#xA;Unique ID: 06296787-B9EE-4759-9B9C-5F994CAA894A  &#xA;Description:  &#xA;&#xA;Push clipboard .txt to clipboard/timestamp&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: clipboard-content  &#xA;Colour: blue  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 98AF9E4B-1D48-4F95-8D2D-C879FE16BE40  &#xA;Description:  &#xA;Push contents of the clipboard to the /clipboard directory as a .txt file.&#xA;&#xA;Open NeoCities Workspace&#xA;Type: Action  &#xA;Keyboard Shortcut: ⇧⌃N  &#xA;Icon: cat-face  &#xA;Colour: gray  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 1  &#xA;Unique ID: 4B8E95CE-F6A3-4F53-88CB-B01C8398A990  &#xA;Description:  &#xA;Open workspace entitled “NeoCities.”&#xA;&#xA;NeoCities list / (macOS-Only)&#xA;Type: Action  &#xA;Keyboard Shortcut:   &#xA;Icon: directions-merge  &#xA;Colour: gray  &#xA;Confirm to Run: false  &#xA;Notifications: All  &#xA;Log Level: All  &#xA;Number of Steps: 2  &#xA;Unique ID: 898038F4-E5E4-4BDA-B15A-D2ED2D388D82  &#xA;Description:  &#xA;Calls a shortcut entitled “NeoCitiesRoot” with a Run Shell Script action containing the following:&#xA;&#xA;neocities list /&#xA;&#xA;Can only be run on macOS and requires the NeoCities CLI.&#xA;&#xA;a href=&#34;https://remark.as/p/bilge.world/using-drafts-with-neocities&#34;Discuss.../a&#xA;&#xA;#software #configuration #automation]]&gt;</description>
      <content:encoded><![CDATA[<p><img src="https://user-images.githubusercontent.com/43663476/152070046-41f84855-408d-44c2-bfaa-8b038331d9a6.png" alt="DraftsxNeoCities"/></p>

<h2 id="a-drafts-action-group-for-interacting-with-webdav-enabled-sites" id="a-drafts-action-group-for-interacting-with-webdav-enabled-sites">A Drafts Action Group for interacting with WebDAV-enabled sites.</h2>



<p><audio controls="">
  <source src="https://davidblue.wtf/audio/draftsandneocities.mp3">
</audio></p>

<p>Thanks to recent learning, I have managed to manifest one of my alltime fantasy integrations: I have tied Drafts and NeoCities together directly via <a href="https://actions.getdrafts.com/g/1uF"><strong>my NeoCities Action Group</strong></a>, which uses <a href="https://docs.getdrafts.com/docs/actions/steps/services#webdav">Drafts&#39; native WebDAV support</a> to (technically) interact with any website based on the protocol. I created it largely to interact with NeoCities over iOS, but frankly I was already doing so more effectively than the Action Group will ever offer with the iOS app <a href="https://apps.apple.com/us/app/koder-code-editor/id1447489375">Koder</a>. It’s odd and a bit out of support, but incredibly useful and supported all the way back to iOS 9. Unfortunately, many of its functions – like deleting remote files, for instance – will result in a crash on modern devices. Also unfortunate – I’m afraid my Action Group doesn’t offer solutions to these problems. On iOS, it’s limited in function to pushing files to your WebDAV server and then opening them in a web browser.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/152169590-518d1043-c02b-49a1-9f19-76699362ab96.png" alt="NeoCitiesActionGroup"/></p>

<p>It wasn&#39;t as simple as HTML encoding the [draft] content with percentage signs, either. In order to produce <a href="https://davidblue.wtf/drafts/A350D578-1CFA-4B5A-8655-74F6B3AD72AE.html">satisfactory results</a>, I had to wrap every output in a very custom HTML template which I would very much encourage you to personalize before using (considering especially that it includes my personalized footer links and <a href="http://bilge.world/colophon">colors</a>.) You can view that template in full <a href="https://davidblue.wtf/drafts/8700B562-8716-489A-B554-641549B6B3E5.html">here</a>. To be honest, I can’t quite recall where I found the original, but it was probably either included with a native Drafts action or found among <a href="https://www.thoughtasylum.com/tadpole">Stephen Millard’s TAD library</a>.</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153755878-5b40147a-040b-4e8f-83ae-ce187d40ec0d.png" alt="toDraft-UUID"/></p>

<p>The most reliable means of identifying, pushing, and retrieving a draft from a WebDAV site (that I found, anyway,) is by using its <a href="https://en.m.wikipedia.org/wiki/Universally_unique_identifier">Universally unique identifier</a> (UUID) in its pathname. An apt example: <a href="https://davidblue.wtf/drafts/7247282E-340B-4890-A2F7-0481AF31321E.html">the draft I’m currently whittling on</a>, enumerated <code>7247282E-340B-4890-A2F7-0481AF31321E</code>. The action above – <a href="https://actions.getdrafts.com/a/1ve">Draft to /drafts as UUID.html</a> – will push the contents of your current draft to /drafts/<code>the Draft’s UUID</code>.html. (That&#39;s how I created the example.)</p>

<p><img src="https://user-images.githubusercontent.com/43663476/153760436-80095f77-6d9a-4325-8b09-e871bb812bb2.png" alt="NeoCitiesActionGroup-Viewedonmacos"/></p>

<p>I&#39;ve done my best to color code the actions based on the potential “severity” of their result, but the way they display will depend almost entirely on which particular <a href="https://actions.getdrafts.com/theme_definitions?order=updated">Drafts theme</a> you&#39;re using at the moment. Nevertheless, blue/green indicate the “safest” actions – like the ones that simply <a href="https://actions.getdrafts.com/a/1vc">open a link to a draft you&#39;ve already pushed</a> – and yellow/orange/red actions involve <a href="https://actions.getdrafts.com/a/1v9">pushing/manipulating files at the root of your site</a>.</p>

<p>Below is the full documentation of each of the actions (and the separators, even,) including individual install links, though I would very much recommend you install <a href="https://actions.getdrafts.com/g/1uF">the whole bit</a>. You&#39;ll need to edit each action and replace <code>davidblue.wtf</code> with your own URL(s) unless you&#39;d like to try and attempt my absolutely gargantuan NeoCities password.</p>

<h2 id="neocities-action-group" id="neocities-action-group">NeoCities Action Group</h2>

<h3 id="root" id="root">Root</h3>

<p><strong>Type:</strong> Separator
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong><br/>
<strong>Colour:</strong> none<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 0<br/>
<strong>Unique ID:</strong> 69B625EC-D9E2-41B7-9767-3532666E7C97<br/>
<strong>Description:</strong></p>

<h3 id="push-draft-to-root-as-html-https-actions-getdrafts-com-a-1v9" id="push-draft-to-root-as-html-https-actions-getdrafts-com-a-1v9"><a href="https://actions.getdrafts.com/a/1v9">Push Draft to Root as HTML</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> 383-keyhole<br/>
<strong>Colour:</strong> orange<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 81C89DC8-F26E-4644-87D7-BF454B345C24<br/>
<strong>Description:</strong><br/>
Push the current draft to the /drafts directory as an HTML file by the draft’s <code>safe_title</code>.</p>

<h3 id="draft-to-root-as-uuid-html-https-actions-getdrafts-com-a-1v0" id="draft-to-root-as-uuid-html-https-actions-getdrafts-com-a-1v0"><a href="https://actions.getdrafts.com/a/1v0">Draft to Root as UUID.html</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> binary<br/>
<strong>Colour:</strong> yellow<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> ABAA6A02-806F-4B45-BEA6-E9D5F8D32236<br/>
<strong>Description:</strong><br/>
Push the current draft to the root directory as an HTML file titled by its UUID.</p>

<h3 id="draft-to-root-as-text-timestamp-https-actions-getdrafts-com-a-1va" id="draft-to-root-as-text-timestamp-https-actions-getdrafts-com-a-1va"><a href="https://actions.getdrafts.com/a/1va">Draft to Root as Text Timestamp</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> alarm<br/>
<strong>Colour:</strong> orange<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> EFF08ADA-81B6-49C3-B132-5DB477A95685<br/>
<strong>Description:</strong><br/>
Push the current draft to the root directory as a .txt file titled by timestamp.</p>

<h3 id="draft-to-title-as-index-html-https-actions-getdrafts-com-a-1vb" id="draft-to-title-as-index-html-https-actions-getdrafts-com-a-1vb"><a href="https://actions.getdrafts.com/a/1vb">Draft to /{title} as index.html</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> indent<br/>
<strong>Colour:</strong> red<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 15401CFC-114E-429C-B747-054E19C46911<br/>
<strong>Description:</strong><br/>
Push the current draft to /NeoCities as index.html</p>

<h3 id="open-title-https-actions-getdrafts-com-a-1vc" id="open-title-https-actions-getdrafts-com-a-1vc"><a href="https://actions.getdrafts.com/a/1vc">Open /{title}</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> idea<br/>
<strong>Colour:</strong> green<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 34630C90-6180-4394-A296-C2A5018DFEFB<br/>
<strong>Description:</strong><br/>
Open /drafts/[Current Draft UUID].html.</p>

<h3 id="path" id="path">/path</h3>

<p><strong>Type:</strong> Separator
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong><br/>
<strong>Colour:</strong> none<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 0<br/>
<strong>Unique ID:</strong> 6F0BE49F-3B6F-49AF-ABA7-04BA7F437C1A<br/>
<strong>Description:</strong></p>

<h3 id="push-draft-to-drafts-as-html-https-actions-getdrafts-com-a-1vd" id="push-draft-to-drafts-as-html-https-actions-getdrafts-com-a-1vd"><a href="https://actions.getdrafts.com/a/1vd">Push Draft to /drafts as HTML</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> 383-keyhole<br/>
<strong>Colour:</strong> orange<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 34A59A1C-95A8-42A9-9C23-677E9731EFC8<br/>
<strong>Description:</strong><br/>
Push the current draft to the /drafts directory as an HTML file by the draft’s <code>safe_title</code>.</p>

<h3 id="draft-to-drafts-as-uuid-html-https-actions-getdrafts-com-a-1ve" id="draft-to-drafts-as-uuid-html-https-actions-getdrafts-com-a-1ve"><a href="https://actions.getdrafts.com/a/1ve">Draft to /drafts as UUID.html</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> binary<br/>
<strong>Colour:</strong> none<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 9C9FCDA8-687C-475A-8213-A8185CEFEE4D<br/>
<strong>Description:</strong><br/>
Push the current draft to the /drafts directory as an HTML file titled by its UUID.</p>

<h3 id="open-pushed-drafts-file-by-uuid-https-actions-getdrafts-com-a-1vf" id="open-pushed-drafts-file-by-uuid-https-actions-getdrafts-com-a-1vf"><a href="https://actions.getdrafts.com/a/1vf">Open pushed /drafts file by UUID.</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> idea<br/>
<strong>Colour:</strong> green<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> BADE45C1-AEC4-46A6-B4BE-7B88B2357C04<br/>
<strong>Description:</strong><br/>
Open /drafts/[Current Draft UUID].html.</p>

<h3 id="draft-to-drafts-title-as-index-html-https-actions-getdrafts-com-a-1vg" id="draft-to-drafts-title-as-index-html-https-actions-getdrafts-com-a-1vg"><a href="https://actions.getdrafts.com/a/1vg">Draft to /drafts/{title} as index.html</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> indent<br/>
<strong>Colour:</strong> violet<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 5555699A-B3A6-432D-9A20-ECA78F6A5D88<br/>
<strong>Description:</strong><br/>
Push the current draft to drafts/NeoCities as index.html</p>

<h3 id="open-drafts-title-https-actions-getdrafts-com-a-1vh" id="open-drafts-title-https-actions-getdrafts-com-a-1vh"><a href="https://actions.getdrafts.com/a/1vh">Open /drafts/{title}</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> idea<br/>
<strong>Colour:</strong> green<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 1E5CB9D6-B8FE-4934-8AEC-E795A651C45A<br/>
<strong>Description:</strong><br/>
Open /drafts/{title}</p>

<h3 id="draft-to-specified-path-as-index-html-https-actions-getdrafts-com-a-1vi" id="draft-to-specified-path-as-index-html-https-actions-getdrafts-com-a-1vi"><a href="https://actions.getdrafts.com/a/1vi">Draft to Specified Path as index.html</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> signs-alt<br/>
<strong>Colour:</strong> orange<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 2<br/>
<strong>Unique ID:</strong> A7D5BE00-36D3-4E08-9058-7923571189AA<br/>
<strong>Description:</strong><br/>
Push Draft to specified directory as index.html.</p>

<p>/[input]/index.html</p>

<h3 id="misc" id="misc">Misc</h3>

<p><strong>Type:</strong> Separator
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong><br/>
<strong>Colour:</strong> none<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 0<br/>
<strong>Unique ID:</strong> 06296787-B9EE-4759-9B9C-5F994CAA894A<br/>
<strong>Description:</strong></p>

<h3 id="push-clipboard-txt-to-clipboard-timestamp-https-actions-getdrafts-com-a-1vj" id="push-clipboard-txt-to-clipboard-timestamp-https-actions-getdrafts-com-a-1vj"><a href="https://actions.getdrafts.com/a/1vj">Push clipboard .txt to clipboard/timestamp</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> clipboard-content<br/>
<strong>Colour:</strong> blue<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 98AF9E4B-1D48-4F95-8D2D-C879FE16BE40<br/>
<strong>Description:</strong><br/>
Push contents of the clipboard to the /clipboard directory as a .txt file.</p>

<h3 id="open-neocities-workspace-https-actions-getdrafts-com-a-1vk" id="open-neocities-workspace-https-actions-getdrafts-com-a-1vk"><a href="https://actions.getdrafts.com/a/1vk">Open NeoCities Workspace</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong> ⇧⌃N<br/>
<strong>Icon:</strong> cat-face<br/>
<strong>Colour:</strong> gray<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 1<br/>
<strong>Unique ID:</strong> 4B8E95CE-F6A3-4F53-88CB-B01C8398A990<br/>
<strong>Description:</strong><br/>
Open workspace entitled “NeoCities.”</p>

<h3 id="neocities-list-macos-only-https-actions-getdrafts-com-a-1vl" id="neocities-list-macos-only-https-actions-getdrafts-com-a-1vl"><a href="https://actions.getdrafts.com/a/1vl">NeoCities list / (macOS-Only)</a></h3>

<p><strong>Type:</strong> Action<br/>
<strong>Keyboard Shortcut:</strong><br/>
<strong>Icon:</strong> directions-merge<br/>
<strong>Colour:</strong> gray<br/>
<strong>Confirm to Run:</strong> false<br/>
<strong>Notifications:</strong> All<br/>
<strong>Log Level:</strong> All<br/>
<strong>Number of Steps:</strong> 2<br/>
<strong>Unique ID:</strong> 898038F4-E5E4-4BDA-B15A-D2ED2D388D82<br/>
<strong>Description:</strong><br/>
Calls a shortcut entitled “NeoCitiesRoot” with a <code>Run Shell Script</code> action containing the following:</p>

<p><code>neocities list /</code></p>

<p>Can only be run on macOS and requires the NeoCities CLI.</p>

<p><a href="https://remark.as/p/bilge.world/using-drafts-with-neocities">Discuss...</a></p>

<p><a href="https://bilge.world/tag:software" class="hashtag"><span>#</span><span class="p-category">software</span></a> <a href="https://bilge.world/tag:configuration" class="hashtag"><span>#</span><span class="p-category">configuration</span></a> <a href="https://bilge.world/tag:automation" class="hashtag"><span>#</span><span class="p-category">automation</span></a></p>
]]></content:encoded>
      <guid>https://bilge.world/using-drafts-with-neocities</guid>
      <pubDate>Sun, 13 Feb 2022 15:38:41 +0000</pubDate>
    </item>
  </channel>
</rss>