content/blog/2022-06-16-terminal-lifestyle.org
202 lines · 7897 bytes
1#+date: <2022-06-16 Thu 00:00:00>
2#+title: Methodical Use of Terminal Applications for Task Management
3#+description: Detailed procedures for reducing digital interruptions and increasing efficiency through terminal-based utilities for web browsing, communication, electronic mail, RSS feeds, and programming tasks.
4#+slug: terminal-lifestyle
5#+filetags: :terminal:lifestyle:productivity:
6
7* Text-Based Simplicity
8
9I've detailed my views on web-based minimalism and related topics in
10other posts throughout the years; e.g., JavaScript/CSS bloat slowing
11down websites that are essentially a text document. However, I have
12never really expanded beyond talking about the web and describing how I
13focus on minimizing distractions in other digital environments.
14
15This post is going to set the baseline for how I /try/ to live my
16digital life. It does not necessarily get into my physical life, which
17is often harder to control and contain all the noise in our modern
18world.
19
20While there are new things to do every day in our digital world, I find
21that keeping a core set of values and interests can ground you and keep
22you mindful of /why/ you are participating in the digital world. For
23example, if - at your core - you have no interest in what strangers
24think about random topics, it would be unwise to start participating in
25social media. However, I am someone who has been dragged in by effective
26advertising to participate in communities that I realize I do not care
27for.
28
29I won't dive much further into explaining the philosophy of all this,
30but I will link a few helpful articles that may pique your interest if
31you're in search of more meaningful experiences:
32
33- [[https://en.wikipedia.org/wiki/Mindfulness][Mindfulness]]
34- [[https://en.wikipedia.org/wiki/Minimalism][Minimalism]]
35- [[https://en.wikipedia.org/wiki/Stoicism][Stoicism]]
36
37* Living Life in the Terminal
38
39My personal approach to reducing digital distractions and increasing my
40focus on the task at hand is to use a terminal for as much as I possibly
41can.
42
43Most days, this means that I have a few tabs open constantly in my
44terminal:
45
461. A web browser
472. A chat client
483. An email client
494. An RSS feed reader
505. A local shell for navigating my computer's files
516. A remote shell for managing servers and other machines
52
53Beyond this, I rarely open other tabs or GUI applications, unless
54absolutely necessary. If you look, you may be surprised what can be
55accomplished in the terminal.
56
57For example, I have moved my music and entertainment downloads to the
58terminal, along with my device VPN connections. I am exploring options
59for moving my RSS subscriptions to something like
60[[https://newsboat.org/][Newsboat]], so that I can read my daily
61articles without all the fuss.
62
63Now that we have some examples out of the way, let's dive into the
64specifics.
65
66** Browsing the Web
67
68I'm going to start off with a hard topic for those who prefer to live in
69the terminal: web browsing. This task is made hard mostly by websites
70and web apps that require JavaScript to run. The other difficult part is
71that if you're using a text-based browser, that means images won't load
72(hopefully that's obvious).
73
74I am using [[https://lynx.invisible-island.net][Lynx]], a text-based
75browser that runs quickly and easily in the terminal. Lynx allows me to
76browser most websites by simply typing =g= and then typing in the URL I
77want.
78
79If you need a search engine while in Lynx, I recommend
80[[https://lite.duckduckgo.com/lite/][DuckDuckGo (Lite)]], which allows
81you to search the web using their text-only interface.
82
83Eventually, you will run into websites that don't work (or are just too
84ugly and messy) in a text-only mode, and you'll be forced to switch over
85to a GUI browser to look at that site. Personally, I don't mind this as
86it doesn't happen as often as I thought it would.
87
88The only time I need to do this is when I want to browse an
89image/video-focused webpage or if I need to log in to a site, and it
90doesn't support a text-only login page. For example, I am able to easily
91log in to [[https://sr.ht][Sourcehut]] in lynx.
92
93** Chatting with Friends
94
95After web browsing activities, my main form of terminal communication is
96Matrix. I use the [[https://docs.mau.fi/gomuks/][gomuks]] client
97currently.
98
99This was incredibly easy to install on macOS (but I will need to see if
100it'll be just as easy on Linux when my new laptop arrives):
101
102#+begin_src sh
103brew install gomuks
104#+end_src
105
106Once you launch gomuks, it will sync and require your username and
107password to login. After doing so, the only problem I ran into was
108verifying my gomuks client so that I could participate in rooms with
109E2EE.
110
111Finally, I was able to verify the session by opening the Element desktop
112app (I assume you can do this in the browser and mobile app too, but I'm
113not sure) and manually verifying myself with this process:
114
1151. Open the Element desktop app
1162. Open a room I was a member of
1173. Open the =Room Info= pane
1184. Open the =People= menu and search for myself
1195. Click on my profile name
1206. Click on the session link under the =Security= section and follow the
121 prompts to manually verify the session
122
123Overall, I like gomuks and am able to enjoy all the features I was using
124in Element. The only hiccup I have occurred is manually downloading
125images to view them, which can be annoying.
126
127** Email
128
129Moving email to the terminal has been the hardest of the tasks for me.
130Unlike web browsing, where I can simply decide to not look at a website
131that does not work in the terminal, I cannot simply ignore emails sent
132to me.
133
134Personally, I am experimenting with [[https://neomutt.org/][neomutt]] as
135a potential email client.
136
137However, this requires a *TON* of configuration and tweaking to get
138right. Even when I was able to set up neomutt, configure my email
139account, and customize a few personal preferences, a lot of emails still
140do not display correctly (mostly due to HTML and images).
141
142I won't get into the details of configuring =neomutt=; I mostly followed
143this blog post:
144[[https://gideonwolfe.com/posts/workflow/neomutt/intro/][Email in the
145Terminal: Configuring Neomutt]].
146
147Finally, I have yet to figure out how to connect my GPG keys to
148=neomutt=, but that's a problem for another day.
149
150** RSS Feed Reader
151
152I have just started using [[https://newsboat.org/][Newsboat]] to read
153articles in my terminal and have found quick success with it.
154
155The configuration was super easy for this app; I simply installed the
156app, created a file for URLs, and imported my OPML subscriptions that I
157had exported out of my old feed reader:
158
159#+begin_src sh
160brew install newsboat
161#+end_src
162
163#+begin_src sh
164touch ~/.newsboat/urls
165#+end_src
166
167#+begin_src sh
168newsboat -i=my_subscriptions.opml
169#+end_src
170
171** Writing & Programming
172
173Unfortunately, the weak link in my terminal-based environment right now
174is my grasp of the possibilities of editing files within a shell.
175
176I am used to the easy extensions found in VSCodium and Kate, so I am
177slowly learning how to mold the default editing tools to my needs.
178Currently, this means I am using =nano= with the following
179configuration:
180
181#+begin_src config
182set breaklonglines
183set autoindent
184set linenumbers
185set tabstospaces
186set tabsize 2
187set fill 80
188#+end_src
189
190This configuration allows nano to automatically hard-wrap lines at 80
191characters, autoindent the wrapped lines (if the previous line was
192indented), use 2 spaces per tab, and display line numbers within each
193file I open.
194
195I am currently looking to see if =vim= or =emacs= would be more useful
196for my current needs, but I'm not in any rush, so I don't expect to find
197an answer anytime soon.
198
199With my current life demands, I am not programming at the moment and
200have not explored the best terminal set-up for programming. However, I
201have seen many peers find success configuring =vim= and =emacs=, so
202that's where I will start when I pick my projects back up.