% Options for packages loaded elsewhere
\PassOptionsToPackage{unicode}{hyperref}
\PassOptionsToPackage{hyphens}{url}

\documentclass[
]{article}
\usepackage{amsmath,amssymb}
\usepackage{titlesec}
\usepackage{titling}
\usepackage{lmodern}
\usepackage{xcolor}
\usepackage{iftex}
\usepackage[margin=1in]{geometry}
\ifPDFTeX
  \usepackage[T1]{fontenc}
  \usepackage[utf8]{inputenc}
  \usepackage{textcomp} % provide euro and other symbols
\else % if luatex or xetex
  \usepackage{unicode-math}
  \defaultfontfeatures{Scale=MatchLowercase}
  \defaultfontfeatures[\rmfamily]{Ligatures=TeX,Scale=1}
\fi
% Use upquote if available, for straight quotes in verbatim environments
\IfFileExists{upquote.sty}{\usepackage{upquote}}{}
\IfFileExists{microtype.sty}{% use microtype if available
  \usepackage[]{microtype}
  \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
}{}
\makeatletter
\@ifundefined{KOMAClassName}{% if non-KOMA class
  \IfFileExists{parskip.sty}{%
    \usepackage{parskip}
  }{% else
    \setlength{\parindent}{0pt}
    \setlength{\parskip}{1pt plus 2pt minus 1pt}}
}{% if KOMA class
  \KOMAoptions{parskip=half}}
\makeatother
\definecolor{myblue}{RGB}{24, 102, 201}
\titleformat{\section}
{\huge\bfseries\color{myblue}}
{}
{0em}
{}[\titlerule]

\titleformat{\subsection}
{\Large\bfseries}
{}
{0em}
{}

\titleformat{\subsubsection}[runin]
{\bfseries}
{}
{0em}
{}[:]

\titlespacing{\subsubsection}
{0em}{0.75em}{0.5em}

\titlespacing{\subsection}
{0em}{1em}{0.65em}

\titlespacing{\maketitle}
{0em}{0em}{0em}
\renewcommand{\maketitle}{
	\begin{center}
		{\huge\bfseries \theauthor}\\
		\vspace{.35em}
		sufyaan.me/terminal
	\end{center}
}
\usepackage{color}
\usepackage{fancyvrb}
\newcommand{\VerbBar}{|}
\newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
% Add ',fontsize=\small' for more characters per line
\newenvironment{Shaded}{}{}
\newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
\newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\BuiltInTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{#1}}
\newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
\newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
\newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
\newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
\newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
\newcommand{\ExtensionTok}[1]{#1}
\newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
\newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
\newcommand{\ImportTok}[1]{\textcolor[rgb]{0.00,0.50,0.00}{\textbf{#1}}}
\newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
\newcommand{\NormalTok}[1]{#1}
\newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
\newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
\newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
\newcommand{\RegionMarkerTok}[1]{#1}
\newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
\newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
\newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
\newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
\setlength{\emergencystretch}{3em} % prevent overfull lines
\providecommand{\tightlist}{%
  \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
\setcounter{secnumdepth}{-\maxdimen} % remove section numbering
\ifLuaTeX
\usepackage[bidi=basic]{babel}
\else
\usepackage[bidi=default]{babel}
\fi
\babelprovide[main,import]{english}
% get rid of language-specific shorthands (see #6817):
\let\LanguageShortHands\languageshorthands
\def\languageshorthands#1{}
\ifLuaTeX
  \usepackage{selnolig}  % disable illegal ligatures
\fi
\IfFileExists{bookmark.sty}{\usepackage{bookmark}}{\usepackage{hyperref}}
\IfFileExists{xurl.sty}{\usepackage{xurl}}{} % add URL line breaks if available
\urlstyle{same} % disable monospaced font for URLs
\hypersetup{
  pdftitle={(POST) Why I Use Terminal Apps},
  pdflang={en},
  hidelinks,
  pdfcreator={LaTeX via pandoc}}

\title{Sufyaan's Website}
\author{Sufyaan's Website}
\date{}

\begin{document}
\maketitle


\section[Why I Use Terminal Apps]{Why I Use Terminal
Apps}\label{why-i-use-terminal-apps}

\textbf{13 March 2023}


\textbf{Category: }Linux \& Software

\emph{``Ah, yes. Graphical-user interface (GUI) apps. They are so
comfortable and easy to use. You just click some buttons and get your
computer to do what you want.''}

That was what I thought before I learned how spectacular terminal
applications are. \textbf{I do not use a calendar or email GUI app. I
use its terminal equivalent.} Specifically, I use Calcurse for my
calendar/todo, neomutt for my email, sxiv for my image viewing, mpv for
my video playing and even Joplin (CLI) for my notes. I am still actively
looking for more apps like terminal file managers (lf, ranger, mc) and
terminal versions of GUI apps I use (Bitwarden?). What compelled me to
switch?

\hypertarget{the-right-tool-for-the-right-job}{%
\subsection[The Right Tool For The Right Job]{The Right Tool For The
Right Job}\label{the-right-tool-for-the-right-job}}

Firstly, I realized that apps that allow me to use my keyboard and
reduce mouse usage to as little as possible saved me a lot of time. By a
lot of time, I don\textquotesingle t mean a few minutes. I mean hours in
the long run. Moving your hand to your mouse and clicking a button takes
at least three seconds. Multiply that hundreds of times a day and 365
days an year. That leads to a lot of time wasted just moving your hand
to your mouse.

\hypertarget{fast.-very-fast.}{%
\subsection[Fast. Very Fast.]{Fast. Very Fast.}\label{fast.-very-fast.}}

The speed of terminal apps have helped me get a lot more productive.
Getting myself to start working immediately helped me a lot. I use
Neovim for my text editor, and whenever I need to write text, its much
faster to press a shortcut to open a blank file in Neovim than to open a
GUI equivalent. It is also much faster to press a shortcut than to open
my applications menu and search for my calendar app and wait a few
seconds for the bloated app to open up. Terminal apps are just more
lightweight. As a result, they operate faster and save me more than just
a few seconds.

\hypertarget{professionals-have-standards}{%
\subsection[\emph{"Professionals Have
Standards"}]{\texorpdfstring{\emph{"Professionals Have
Standards"}}{"Professionals Have Standards"}}\label{professionals-have-standards}}

CLI apps are more standardized. With a GUI, the procedure for solving an
issue or using the application\textquotesingle s functionality is
similar to this:

\begin{enumerate}
\tightlist
\item
  Click \textquotesingle button1\textquotesingle{} on the top right.
\item
  Hover over \textquotesingle dialogue2\textquotesingle{}
\item
  Click on \textquotesingle button3\textquotesingle{}
\item
  Scroll down to \textquotesingle setting4\textquotesingle{}
\item
  Change the value to False.
\item
  Click on Apply and OK.
\end{enumerate}

This is the sole reason that you see the terminal being used so much in
Linux. It\textquotesingle s easier to say ``Open your terminal and type
this'' than to blabber a long list of instructions that will become
redundant if the application in question decides to change their UI in
an update.

\hypertarget{run-them-on-a-potato}{%
\subsection[Run Them on a Potato!]{Run Them on a
Potato!}\label{run-them-on-a-potato}}

Due to the lightweight nature of the command line, your tools can run on
just about any computer. It does not matter if your computer has a
Pentium processor or a 12th-generation i9. GUI tools have system
requirements and if it is a robust tool with a fancy interface, chances
are that the requirements just for the app to look good knocks that tool
off your app list on your 10-year-old computer.

\hypertarget{exponential-learning-curve}{%
\subsection[Exponential Learning Curve]{Exponential Learning
Curve}\label{exponential-learning-curve}}

While GUI apps are simple to use initially, your speed using the apps
remains slow all the time. Sure, you may learn where every button is and
be able to open any setting you want quickly, but that speed is nothing
compared to one of a command line. With a command line, your speed is
slower than a snail at first. However, after some time of using the
program, you can do things at a similar speed as a GUI app.

If you daily-drive a terminal program, it takes only a few days for you
to become faster at it than using a GUI program. After that, you will be
able to understand your most used commands and use aliases to shorten
them.

For example, if you view your free space regulary, instead of typing a
50-character command to print your free space, you can just alias that
command to \textquotesingle free-space\textquotesingle. Doing this will
make it so that whenever you type
\textquotesingle free-space\textquotesingle, it performs the
aforementioned 50-character command and displays the output. This will
save your more than just a few hours of time.

\hypertarget{the-choices-never-end}{%
\subsection[The Choices Never End!]{The Choices Never
End!}\label{the-choices-never-end}}

With terminal apps, you have a plethora of choices. I can almost
guarantee that an app with functionality you wish existed does exist in
the form of a command line application. There are obscure apps with
spectacular functionality which can change your computing experience
that you will miss out on if you stay away from the terminal.

\hypertarget{bathe-in-possibilities}{%
\subsection[Bathe In Possibilities!]{Bathe In
Possibilities!}\label{bathe-in-possibilities}}

When it comes to GUI apps, you have to be honest. They do not have 100\%
functionality. It is simply implausible to fit every single function in
a GUI app. Doing so would result in a lot of code to maintain, an
extremely heavy app and a confusing layout. However, with a terminal
app, all you have to do is type:

\texttt{man\ command}

or

\texttt{command\ -\/-help}

and get the complete functionality of the app, all within less than 5\%
of the app size of its GUI equivalent.

\hypertarget{skip-the-middlemen}{%
\subsection[Skip The Middlemen]{Skip The
Middlemen}\label{skip-the-middlemen}}

All GUI apps are basically middlemen for the command line. They
essentially use the command line for you. When you ditch the GUI and go
straight for the terminal, you talk directly to the computer in a way in
which the computer understands.

\hypertarget{first-impressions-matter}{%
\subsection[First Impressions Matter]{First Impressions
Matter}\label{first-impressions-matter}}

When people first look at the terminal, it becomes set in their mind
that it is difficult to use and that mentality stays for an
extraordinarily long time. Due to this, they never experiment or even
open the terminal application. If they run into an issue which requires
the use of the terminal to fix, they decide to just live with the issue
instead of using the terminal. However, if people use the terminal for a
few weeks, they realize that it outpaces almost every other GUI app in
almost everything.

\hypertarget{nothing-is-perfect...}{%
\subsection[Nothing is Perfect...]{Nothing is
Perfect...}\label{nothing-is-perfect...}}

... including terminal applications. Terminal applications are amazing.
They allow me to do so much. However, there are extremely rare cases in
which I have no choice but to use a GUI. This is if the GUI application
in question requires you to use only their app. There are also some
specific use-cases in which GUI apps just make more sense. Video
editing, advanced photo manipulation and 3D modelling are great
examples.

\hypertarget{to-sum-it-all-up...}{%
\subsection[To Sum It All Up...]{To Sum It All
Up...}\label{to-sum-it-all-up...}}

...terminal applications should be used as much as possible. They are
swift. They can be used quickly and also use less resources and space
while running on just about anything. They are not as difficult as they
look and can be used for uses which GUI apps do not have. They cannot be
used all the time because there are rare exceptions in which GUI
applications have to be used. However, these are so little that I do not
mind keeping GUI apps just for these use cases.

\end{document}
