1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
+++
date = 2022-06-16
title = "A Terminal Lifestyle"
description = "A detailed description on how I'm living my digital life in the terminal."
+++
## 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:
- [Mindfulness](https://en.wikipedia.org/wiki/Mindfulness)
- [Minimalism](https://en.wikipedia.org/wiki/Minimalism)
- [Stoicism](https://en.wikipedia.org/wiki/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 [Newsboat](https://newsboat.org/),
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 [Lynx](https://lynx.invisible-island.net), 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.

If you need a search engine while in Lynx, I recommend [DuckDuckGo
(Lite)](https://lite.duckduckgo.com/lite/), which allows you to search the web
using their text-only interface.

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 [Sourcehut](https://sr.ht) in lynx.
### Chatting with Friends
After web browsing activities, my main form of terminal communication is Matrix.
I use the [gomuks](https://docs.mau.fi/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):
```sh
brew install gomuks
```
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.

### 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 [neomutt](https://neomutt.org/) 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: [Email in the Terminal: Configuring
Neomutt](https://gideonwolfe.com/posts/workflow/neomutt/intro/).
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 [Newsboat](https://newsboat.org/) to read articles in
my terminal and have found quick success with it.
I'll show you a quick screenshot first:

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:
```sh
brew install newsboat
```
```sh
touch ~/.newsboat/urls
```
```sh
newsboat -i=my_subscriptions.opml
```
### 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:
```config
set breaklonglines
set autoindent
set linenumbers
set tabstospaces
set tabsize 2
set fill 80
```
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.

|