From 41bd0ad58e44244fe67cb36e066d4bb68738516f Mon Sep 17 00:00:00 2001 From: Christian Cleberg Date: Fri, 29 Mar 2024 01:30:23 -0500 Subject: massive re-write from org-publish to weblorg --- content/blog/2022-06-16-terminal-lifestyle.org | 211 +++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 content/blog/2022-06-16-terminal-lifestyle.org (limited to 'content/blog/2022-06-16-terminal-lifestyle.org') diff --git a/content/blog/2022-06-16-terminal-lifestyle.org b/content/blog/2022-06-16-terminal-lifestyle.org new file mode 100644 index 0000000..f96a10a --- /dev/null +++ b/content/blog/2022-06-16-terminal-lifestyle.org @@ -0,0 +1,211 @@ +#+title: A Terminal Lifestyle +#+date: 2022-06-16 +#+description: Explaining how I live my digital life mostly in the console/terminal. +#+filetags: :linux: + +* Text-Based Simplicity +I've detailed my views on web-based minimalism and related topics in +other posts throughout the years; e.g., JavaScript/CSS bloat slowing +down websites that are essentially a text document. However, I have +never really expanded beyond talking about the web and describing how I +focus on minimizing distractions in other digital environments. + +This post is going to set the baseline for how I /try/ to live my +digital life. It does not necessarily get into my physical life, which +is often harder to control and contain all the noise in our modern +world. + +While there are new things to do every day in our digital world, I find +that keeping a core set of values and interests can ground you and keep +you mindful of /why/ you are participating in the digital world. For +example, if - at your core - you have no interest in what strangers +think about random topics, it would be unwise to start participating in +social media. However, I am someone who has been dragged in by effective +advertising to participate in communities that I realize I do not care +for. + +I won't dive much further into explaining the philosophy of all this, +but I will link a few helpful articles that may pique your interest if +you're in search of more meaningful experiences: + +- [[https://en.wikipedia.org/wiki/Mindfulness][Mindfulness]] +- [[https://en.wikipedia.org/wiki/Minimalism][Minimalism]] +- [[https://en.wikipedia.org/wiki/Stoicism][Stoicism]] + +* Living Life in the Terminal +My personal approach to reducing digital distractions and increasing my +focus on the task at hand is to use a terminal for as much as I possibly +can. + +Most days, this means that I have a few tabs open constantly in my +terminal: + +1. A web browser +2. A chat client +3. An email client +4. An RSS feed reader +5. A local shell for navigating my computer's files +6. A remote shell for managing servers and other machines + +Beyond this, I rarely open other tabs or GUI applications, unless +absolutely necessary. If you look, you may be surprised what can be +accomplished in the terminal. + +For example, I have moved my music and entertainment downloads to the +terminal, along with my device VPN connections. I am exploring options +for moving my RSS subscriptions to something like +[[https://newsboat.org/][Newsboat]], so that I can read my daily +articles without all the fuss. + +Now that we have some examples out of the way, let's dive into the +specifics. + +** Browsing the Web +I'm going to start off with a hard topic for those who prefer to live in +the terminal: web browsing. This task is made hard mostly by websites +and web apps that require JavaScript to run. The other difficult part is +that if you're using a text-based browser, that means images won't load +(hopefully that's obvious). + +I am using [[https://lynx.invisible-island.net][Lynx]], a text-based +browser that runs quickly and easily in the terminal. Lynx allows me to +browser most websites by simply typing =g= and then typing in the URL I +want. + +#+caption: Lynx +[[https://img.cleberg.net/blog/20220616-terminal-lifestyle/lynx.png]] + +If you need a search engine while in Lynx, I recommend +[[https://lite.duckduckgo.com/lite/][DuckDuckGo (Lite)]], which allows +you to search the web using their text-only interface. + +#+caption: DuckDuckGo !Lite +[[https://img.cleberg.net/blog/20220616-terminal-lifestyle/ddg.png]] + +Eventually, you will run into websites that don't work (or are just too +ugly and messy) in a text-only mode, and you'll be forced to switch over +to a GUI browser to look at that site. Personally, I don't mind this as +it doesn't happen as often as I thought it would. + +The only time I need to do this is when I want to browse an +image/video-focused webpage or if I need to log in to a site, and it +doesn't support a text-only login page. For example, I am able to easily +log in to [[https://sr.ht][Sourcehut]] in lynx. + +** Chatting with Friends +After web browsing activities, my main form of terminal communication is +Matrix. I use the [[https://docs.mau.fi/gomuks/][gomuks]] client +currently. + +This was incredibly easy to install on macOS (but I will need to see if +it'll be just as easy on Linux when my new laptop arrives): + +#+begin_src sh +brew install gomuks +#+end_src + +Once you launch gomuks, it will sync and require your username and +password to login. After doing so, the only problem I ran into was +verifying my gomuks client so that I could participate in rooms with +E2EE. + +Finally, I was able to verify the session by opening the Element desktop +app (I assume you can do this in the browser and mobile app too, but I'm +not sure) and manually verifying myself with this process: + +1. Open the Element desktop app +2. Open a room I was a member of +3. Open the =Room Info= pane +4. Open the =People= menu and search for myself +5. Click on my profile name +6. Click on the session link under the =Security= section and follow the + prompts to manually verify the session + +Overall, I like gomuks and am able to enjoy all the features I was using +in Element. The only hiccup I have occurred is manually downloading +images to view them, which can be annoying. + +#+caption: gomuks +[[https://img.cleberg.net/blog/20220616-terminal-lifestyle/gomuks.png]] + +** Email +Moving email to the terminal has been the hardest of the tasks for me. +Unlike web browsing, where I can simply decide to not look at a website +that does not work in the terminal, I cannot simply ignore emails sent +to me. + +Personally, I am experimenting with [[https://neomutt.org/][neomutt]] as +a potential email client. + +However, this requires a *TON** of configuration and tweaking to get +right. Even when I was able to set up neomutt, configure my email +account, and customize a few personal preferences, a lot of emails still +do not display correctly (mostly due to HTML and images). + +I won't get into the details of configuring =neomutt=; I mostly followed +this blog post: +[[https://gideonwolfe.com/posts/workflow/neomutt/intro/][Email in the +Terminal: Configuring Neomutt]]. + +Finally, I have yet to figure out how to connect my GPG keys to +=neomutt=, but that's a problem for another day. + +** RSS Feed Reader +I have just started using [[https://newsboat.org/][Newsboat]] to read +articles in my terminal and have found quick success with it. + +I'll show you a quick screenshot first: + +#+caption: Newsboat +[[https://img.cleberg.net/blog/20220616-terminal-lifestyle/newsboat.png]] + +The configuration was super easy for this app; I simply installed the +app, created a file for URLs, and imported my OPML subscriptions that I +had exported out of my old feed reader: + +#+begin_src sh +brew install newsboat +#+end_src + +#+begin_src sh +touch ~/.newsboat/urls +#+end_src + +#+begin_src sh +newsboat -i=my_subscriptions.opml +#+end_src + +** Writing & Programming +Unfortunately, the weak link in my terminal-based environment right now +is my grasp of the possibilities of editing files within a shell. + +I am used to the easy extensions found in VSCodium and Kate, so I am +slowly learning how to mold the default editing tools to my needs. +Currently, this means I am using =nano= with the following +configuration: + +#+begin_src config +set breaklonglines +set autoindent +set linenumbers +set tabstospaces +set tabsize 2 +set fill 80 +#+end_src + +This configuration allows nano to automatically hard-wrap lines at 80 +characters, autoindent the wrapped lines (if the previous line was +indented), use 2 spaces per tab, and display line numbers within each +file I open. + +I am currently looking to see if =vim= or =emacs= would be more useful +for my current needs, but I'm not in any rush, so I don't expect to find +an answer anytime soon. + +With my current life demands, I am not programming at the moment and +have not explored the best terminal set-up for programming. However, I +have seen many peers find success configuring =vim= and =emacs=, so +that's where I will start when I pick my projects back up. + +#+caption: nano +[[https://img.cleberg.net/blog/20220616-terminal-lifestyle/nano.png]] -- cgit v1.2.3-70-g09d2