aboutsummaryrefslogtreecommitdiff
path: root/blog/terminal-lifestyle
diff options
context:
space:
mode:
authorChristian Cleberg <hello@cleberg.net>2024-03-04 22:34:28 -0600
committerChristian Cleberg <hello@cleberg.net>2024-03-04 22:34:28 -0600
commit797a1404213173791a5f4126a77ad383ceb00064 (patch)
treefcbb56dc023c1e490df70478e696041c566e58b4 /blog/terminal-lifestyle
parent3db79e7bb6a34ee94935c22d7f0e18cf227c7813 (diff)
downloadcleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.gz
cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.tar.bz2
cleberg.net-797a1404213173791a5f4126a77ad383ceb00064.zip
initial migration to test org-mode
Diffstat (limited to 'blog/terminal-lifestyle')
-rw-r--r--blog/terminal-lifestyle/index.org211
1 files changed, 211 insertions, 0 deletions
diff --git a/blog/terminal-lifestyle/index.org b/blog/terminal-lifestyle/index.org
new file mode 100644
index 0000000..f96a10a
--- /dev/null
+++ b/blog/terminal-lifestyle/index.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]]