commit cdde8623ad5018a23d07044aade12b2d718b7718
parent 8f8729aed7aa767c879012b4f056b2956eab6409
Author: Cem Keylan <cem@ckyln.com>
Date: Tue, 31 Mar 2020 17:42:22 +0300
add treemacs keybindings
Diffstat:
A | init.html | | | 1344 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
M | init.org | | | 23 | +++++++++++++++++++++++ |
2 files changed, 1367 insertions(+), 0 deletions(-)
diff --git a/init.html b/init.html
@@ -0,0 +1,1344 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
+<head>
+<!-- 2020-03-31 Tue 11:51 -->
+<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
+<meta name="viewport" content="width=device-width, initial-scale=1" />
+<title>Emacs Configuration</title>
+<meta name="generator" content="Org mode" />
+<meta name="author" content="Cem Keylan" />
+<style type="text/css">
+ <!--/*--><![CDATA[/*><!--*/
+ .title { text-align: center;
+ margin-bottom: .2em; }
+ .subtitle { text-align: center;
+ font-size: medium;
+ font-weight: bold;
+ margin-top:0; }
+ .todo { font-family: monospace; color: red; }
+ .done { font-family: monospace; color: green; }
+ .priority { font-family: monospace; color: orange; }
+ .tag { background-color: #eee; font-family: monospace;
+ padding: 2px; font-size: 80%; font-weight: normal; }
+ .timestamp { color: #bebebe; }
+ .timestamp-kwd { color: #5f9ea0; }
+ .org-right { margin-left: auto; margin-right: 0px; text-align: right; }
+ .org-left { margin-left: 0px; margin-right: auto; text-align: left; }
+ .org-center { margin-left: auto; margin-right: auto; text-align: center; }
+ .underline { text-decoration: underline; }
+ #postamble p, #preamble p { font-size: 90%; margin: .2em; }
+ p.verse { margin-left: 3%; }
+ pre {
+ border: 1px solid #ccc;
+ box-shadow: 3px 3px 3px #eee;
+ padding: 8pt;
+ font-family: monospace;
+ overflow: auto;
+ margin: 1.2em;
+ }
+ pre.src {
+ position: relative;
+ overflow: visible;
+ padding-top: 1.2em;
+ }
+ pre.src:before {
+ display: none;
+ position: absolute;
+ background-color: white;
+ top: -10px;
+ right: 10px;
+ padding: 3px;
+ border: 1px solid black;
+ }
+ pre.src:hover:before { display: inline;}
+ /* Languages per Org manual */
+ pre.src-asymptote:before { content: 'Asymptote'; }
+ pre.src-awk:before { content: 'Awk'; }
+ pre.src-C:before { content: 'C'; }
+ /* pre.src-C++ doesn't work in CSS */
+ pre.src-clojure:before { content: 'Clojure'; }
+ pre.src-css:before { content: 'CSS'; }
+ pre.src-D:before { content: 'D'; }
+ pre.src-ditaa:before { content: 'ditaa'; }
+ pre.src-dot:before { content: 'Graphviz'; }
+ pre.src-calc:before { content: 'Emacs Calc'; }
+ pre.src-emacs-lisp:before { content: 'Emacs Lisp'; }
+ pre.src-fortran:before { content: 'Fortran'; }
+ pre.src-gnuplot:before { content: 'gnuplot'; }
+ pre.src-haskell:before { content: 'Haskell'; }
+ pre.src-hledger:before { content: 'hledger'; }
+ pre.src-java:before { content: 'Java'; }
+ pre.src-js:before { content: 'Javascript'; }
+ pre.src-latex:before { content: 'LaTeX'; }
+ pre.src-ledger:before { content: 'Ledger'; }
+ pre.src-lisp:before { content: 'Lisp'; }
+ pre.src-lilypond:before { content: 'Lilypond'; }
+ pre.src-lua:before { content: 'Lua'; }
+ pre.src-matlab:before { content: 'MATLAB'; }
+ pre.src-mscgen:before { content: 'Mscgen'; }
+ pre.src-ocaml:before { content: 'Objective Caml'; }
+ pre.src-octave:before { content: 'Octave'; }
+ pre.src-org:before { content: 'Org mode'; }
+ pre.src-oz:before { content: 'OZ'; }
+ pre.src-plantuml:before { content: 'Plantuml'; }
+ pre.src-processing:before { content: 'Processing.js'; }
+ pre.src-python:before { content: 'Python'; }
+ pre.src-R:before { content: 'R'; }
+ pre.src-ruby:before { content: 'Ruby'; }
+ pre.src-sass:before { content: 'Sass'; }
+ pre.src-scheme:before { content: 'Scheme'; }
+ pre.src-screen:before { content: 'Gnu Screen'; }
+ pre.src-sed:before { content: 'Sed'; }
+ pre.src-sh:before { content: 'shell'; }
+ pre.src-sql:before { content: 'SQL'; }
+ pre.src-sqlite:before { content: 'SQLite'; }
+ /* additional languages in org.el's org-babel-load-languages alist */
+ pre.src-forth:before { content: 'Forth'; }
+ pre.src-io:before { content: 'IO'; }
+ pre.src-J:before { content: 'J'; }
+ pre.src-makefile:before { content: 'Makefile'; }
+ pre.src-maxima:before { content: 'Maxima'; }
+ pre.src-perl:before { content: 'Perl'; }
+ pre.src-picolisp:before { content: 'Pico Lisp'; }
+ pre.src-scala:before { content: 'Scala'; }
+ pre.src-shell:before { content: 'Shell Script'; }
+ pre.src-ebnf2ps:before { content: 'ebfn2ps'; }
+ /* additional language identifiers per "defun org-babel-execute"
+ in ob-*.el */
+ pre.src-cpp:before { content: 'C++'; }
+ pre.src-abc:before { content: 'ABC'; }
+ pre.src-coq:before { content: 'Coq'; }
+ pre.src-groovy:before { content: 'Groovy'; }
+ /* additional language identifiers from org-babel-shell-names in
+ ob-shell.el: ob-shell is the only babel language using a lambda to put
+ the execution function name together. */
+ pre.src-bash:before { content: 'bash'; }
+ pre.src-csh:before { content: 'csh'; }
+ pre.src-ash:before { content: 'ash'; }
+ pre.src-dash:before { content: 'dash'; }
+ pre.src-ksh:before { content: 'ksh'; }
+ pre.src-mksh:before { content: 'mksh'; }
+ pre.src-posh:before { content: 'posh'; }
+ /* Additional Emacs modes also supported by the LaTeX listings package */
+ pre.src-ada:before { content: 'Ada'; }
+ pre.src-asm:before { content: 'Assembler'; }
+ pre.src-caml:before { content: 'Caml'; }
+ pre.src-delphi:before { content: 'Delphi'; }
+ pre.src-html:before { content: 'HTML'; }
+ pre.src-idl:before { content: 'IDL'; }
+ pre.src-mercury:before { content: 'Mercury'; }
+ pre.src-metapost:before { content: 'MetaPost'; }
+ pre.src-modula-2:before { content: 'Modula-2'; }
+ pre.src-pascal:before { content: 'Pascal'; }
+ pre.src-ps:before { content: 'PostScript'; }
+ pre.src-prolog:before { content: 'Prolog'; }
+ pre.src-simula:before { content: 'Simula'; }
+ pre.src-tcl:before { content: 'tcl'; }
+ pre.src-tex:before { content: 'TeX'; }
+ pre.src-plain-tex:before { content: 'Plain TeX'; }
+ pre.src-verilog:before { content: 'Verilog'; }
+ pre.src-vhdl:before { content: 'VHDL'; }
+ pre.src-xml:before { content: 'XML'; }
+ pre.src-nxml:before { content: 'XML'; }
+ /* add a generic configuration mode; LaTeX export needs an additional
+ (add-to-list 'org-latex-listings-langs '(conf " ")) in .emacs */
+ pre.src-conf:before { content: 'Configuration File'; }
+
+ table { border-collapse:collapse; }
+ caption.t-above { caption-side: top; }
+ caption.t-bottom { caption-side: bottom; }
+ td, th { vertical-align:top; }
+ th.org-right { text-align: center; }
+ th.org-left { text-align: center; }
+ th.org-center { text-align: center; }
+ td.org-right { text-align: right; }
+ td.org-left { text-align: left; }
+ td.org-center { text-align: center; }
+ dt { font-weight: bold; }
+ .footpara { display: inline; }
+ .footdef { margin-bottom: 1em; }
+ .figure { padding: 1em; }
+ .figure p { text-align: center; }
+ .equation-container {
+ display: table;
+ text-align: center;
+ width: 100%;
+ }
+ .equation {
+ vertical-align: middle;
+ }
+ .equation-label {
+ display: table-cell;
+ text-align: right;
+ vertical-align: middle;
+ }
+ .inlinetask {
+ padding: 10px;
+ border: 2px solid gray;
+ margin: 10px;
+ background: #ffffcc;
+ }
+ #org-div-home-and-up
+ { text-align: right; font-size: 70%; white-space: nowrap; }
+ textarea { overflow-x: auto; }
+ .linenr { font-size: smaller }
+ .code-highlighted { background-color: #ffff00; }
+ .org-info-js_info-navigation { border-style: none; }
+ #org-info-js_console-label
+ { font-size: 10px; font-weight: bold; white-space: nowrap; }
+ .org-info-js_search-highlight
+ { background-color: #ffff00; color: #000000; font-weight: bold; }
+ .org-svg { width: 90%; }
+ /*]]>*/-->
+</style>
+<script type="text/javascript">
+// @license magnet:?xt=urn:btih:1f739d935676111cfff4b4693e3816e664797050&dn=gpl-3.0.txt GPL-v3-or-Later
+<!--/*--><![CDATA[/*><!--*/
+ function CodeHighlightOn(elem, id)
+ {
+ var target = document.getElementById(id);
+ if(null != target) {
+ elem.cacheClassElem = elem.className;
+ elem.cacheClassTarget = target.className;
+ target.className = "code-highlighted";
+ elem.className = "code-highlighted";
+ }
+ }
+ function CodeHighlightOff(elem, id)
+ {
+ var target = document.getElementById(id);
+ if(elem.cacheClassElem)
+ elem.className = elem.cacheClassElem;
+ if(elem.cacheClassTarget)
+ target.className = elem.cacheClassTarget;
+ }
+ /*]]>*///-->
+// @license-end
+</script>
+</head>
+<body>
+<div id="content">
+<h1 class="title">Emacs Configuration</h1>
+
+<div id="outline-container-org38d8b49" class="outline-2">
+<h2 id="org38d8b49"><span class="section-number-2">1</span> Table of Contents   <span class="tag"><span class="TOC_2_org">TOC_2_org</span></span></h2>
+<div class="outline-text-2" id="text-1">
+<ul class="org-ul">
+<li><a href="#org889143b">Intro</a>
+<ul class="org-ul">
+<li><a href="#org696588f">Installation Instructions</a></li>
+<li><a href="#org15006ae">Ignoring init.el changes on Git</a></li>
+<li><a href="#org486ff6b">Meta</a></li>
+<li><a href="#orgaff74f8">Attribution</a></li>
+</ul></li>
+<li><a href="#org02a2e33">Startup Settings</a>
+<ul class="org-ul">
+<li><a href="#org21b2321">Declutter</a></li>
+<li><a href="#orgbe93c8a">Package management</a></li>
+<li><a href="#org08efa3a">Custom-file</a></li>
+<li><a href="#org8659361">Private file</a></li>
+<li><a href="#org65284c7">Diary file</a></li>
+<li><a href="#org502f09d">Starting the server</a></li>
+</ul></li>
+<li><a href="#orge5ec7a9">Packages</a>
+<ul class="org-ul">
+<li><a href="#org457d858">Evil-mode</a></li>
+<li><a href="#org0b2e795">Org-mode</a></li>
+<li><a href="#org687533d">Magit</a></li>
+<li><a href="#org5437d0b">Flycheck</a></li>
+<li><a href="#org057d90a">Company Mode</a></li>
+<li><a href="#org6756440">Mingus</a></li>
+<li><a href="#orga5f1dd8">Projectile</a></li>
+<li><a href="#orge4c555c">Treemacs</a></li>
+<li><a href="#org561be12">emacs-dashboard</a></li>
+<li><a href="#org50ad2ba">Extras</a></li>
+</ul></li>
+<li><a href="#orgc7078e4">Themes and Icons</a></li>
+<li><a href="#orgefe4cf9">Filetype Configurations</a>
+<ul class="org-ul">
+<li><a href="#orgff35f48">Default Formatting</a></li>
+<li><a href="#org1a94d90">Markdown</a></li>
+<li><a href="#orgcda54d0">Shell</a></li>
+<li><a href="#orgdc9f2a6">Python</a></li>
+</ul></li>
+<li><a href="#org43f2b13">Other Settings</a>
+<ul class="org-ul">
+<li><a href="#orgbadee03">Dired – ls dired</a></li>
+<li><a href="#orgc955759">Coding System for Terminal</a></li>
+<li><a href="#org566f39f">Backup Options</a></li>
+<li><a href="#orgf7aff98">Set Browser</a></li>
+</ul></li>
+<li><a href="#orgf6bda23">Notes</a>
+<ul class="org-ul">
+<li><a href="#org65479c3">Reverting to package.el</a></li>
+</ul></li>
+</ul>
+</div>
+</div>
+
+<div id="outline-container-org889143b" class="outline-2">
+<h2 id="org889143b"><span class="section-number-2">2</span> Intro</h2>
+<div class="outline-text-2" id="text-2">
+<p>
+This is my emacs configuration file, I used to have a big
+directory of lisp code but it became harder to maintain
+and keep track of. That's why I have created this org-mode
+init file.
+</p>
+
+<p>
+Please note that this init.org does not attempt to be
+simplistic and might include lots of things that you
+might not want on your own setup.
+</p>
+</div>
+
+<div id="outline-container-org696588f" class="outline-3">
+<h3 id="org696588f"><span class="section-number-3">2.1</span> Installation Instructions</h3>
+<div class="outline-text-3" id="text-2-1">
+<p>
+If you want to use my emacs configuration, it is pretty simple
+to get started. Simply clone the repository and start emacs!
+</p>
+
+<div class="org-src-container">
+<pre class="src src-sh"><span style="color: #9ca0a4;"># </span><span style="color: #9ca0a4;">Move your old configuration (if you have one)</span>
+mv $<span style="color: #6a1868;">HOME</span>/.emacs.d $<span style="color: #6a1868;">HOME</span>/.emacs.d.bak
+
+<span style="color: #9ca0a4;"># </span><span style="color: #9ca0a4;">Clone the repository</span>
+git clone git://git.ckyln.com/emacs.d $<span style="color: #6a1868;">HOME</span>/.emacs.d
+
+<span style="color: #9ca0a4;"># </span><span style="color: #9ca0a4;">Start emacs</span>
+emacs
+</pre>
+</div>
+
+<p>
+This will probably take a while, especially because it is
+setting up for the first time. You might need to restart
+emacs after the initial configuration is done.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org15006ae" class="outline-3">
+<h3 id="org15006ae"><span class="section-number-3">2.2</span> Ignoring init.el changes on Git</h3>
+<div class="outline-text-3" id="text-2-2">
+<p>
+It can be annoying to see whenever you change your init.org
+and see git wanting to update init.el as well. You can avoid
+this by doing
+</p>
+
+<div class="org-src-container">
+<pre class="src src-sh">git update-index --assume-unchanged init.el
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org486ff6b" class="outline-3">
+<h3 id="org486ff6b"><span class="section-number-3">2.3</span> Meta</h3>
+<div class="outline-text-3" id="text-2-3">
+<p>
+To load init.el properly we run a function such as this.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defun</span> <span style="color: #a626a4;">tangle-init</span> ()
+ <span style="color: #84888b; font-style: italic;">"If the current buffer is 'init.org' the code-blocks are</span>
+<span style="color: #84888b; font-style: italic;">tangled, and the tangled file is compiled."</span>
+ (<span style="color: #e45649;">when</span> (equal (buffer-file-name)
+ (expand-file-name (concat user-emacs-directory <span style="color: #50a14f;">"init.org"</span>)))
+ <span style="color: #9ca0a4;">;; </span><span style="color: #9ca0a4;">Avoid running hooks when tangling.</span>
+ (<span style="color: #e45649;">let</span> ((prog-mode-hook nil))
+ (org-babel-tangle)
+ (byte-compile-file (concat user-emacs-directory <span style="color: #50a14f;">"init.el"</span>)))))
+
+(add-hook 'after-save-hook 'tangle-init)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgaff74f8" class="outline-3">
+<h3 id="orgaff74f8"><span class="section-number-3">2.4</span> Attribution</h3>
+<div class="outline-text-3" id="text-2-4">
+<p>
+I am still relatively new to the emacs environment myself. These are
+the people that I have stolen from.
+</p>
+<dl class="org-dl">
+<dt>Bernt Hansen</dt><dd>I have got lots of org-mode tweaks from Bernt's
+<a href="http://doc.norang.ca/org-mode.html">Guide to Org Mode</a>.</dd>
+<dt>Adam Schaefers</dt><dd>While I don't have much code from Adam's Emacs
+configuration, I was inspired by his passion towards Emacs to make
+the switch from Vim.</dd>
+<dt>Gregory J. Stein</dt><dd>I have learned quite a bit from Greg's blog posts
+on Emacs. Check out his own <a href="https://github.com/gjstein/emacs.d">Emacs configuration</a>!</dd>
+<dt>Lars Tveito</dt><dd>I was totally inspired from Lars to create an init.org
+file to manage my Emacs configuration. <a href="https://github.com/larstvei/dot-emacs">Emacs configuration</a></dd>
+</dl>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org02a2e33" class="outline-2">
+<h2 id="org02a2e33"><span class="section-number-2">3</span> Startup Settings</h2>
+<div class="outline-text-2" id="text-3">
+<p>
+The most important stuff are (for me) is <code>use-package</code> and
+disabling the clutter as soon as possible. By clutter, I mean
+bars and menus. Also let's disable the splash screen.
+</p>
+</div>
+
+<div id="outline-container-org21b2321" class="outline-3">
+<h3 id="org21b2321"><span class="section-number-3">3.1</span> Declutter</h3>
+<div class="outline-text-3" id="text-3-1">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(menu-bar-mode 0)
+(<span style="color: #e45649;">setq</span> inhibit-splash-screen t)
+</pre>
+</div>
+
+<p>
+If you are using emacs-nox, tool-bar-mode (probably) and
+scroll-bar-mode will not be defined. This checks if they are
+defined, and, if they are, will set them to 0.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">when</span> (fboundp 'tool-bar-mode) (tool-bar-mode 0))
+(<span style="color: #e45649;">when</span> (fboundp 'scroll-bar-mode) (scroll-bar-mode 0))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgbe93c8a" class="outline-3">
+<h3 id="orgbe93c8a"><span class="section-number-3">3.2</span> Package management</h3>
+<div class="outline-text-3" id="text-3-2">
+<p>
+I have switched to straight.el for package management.
+It is overall faster than package.el, and I don't want
+to use every package that I have tried out. The following
+is the one time bootstrapping script that straight.el uses
+to install itself.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">bootstrap-version</span>)
+(<span style="color: #e45649;">let</span> ((bootstrap-file
+ (expand-file-name <span style="color: #50a14f;">"straight/repos/straight.el/bootstrap.el"</span> user-emacs-directory))
+ (bootstrap-version 5))
+ (<span style="color: #e45649;">unless</span> (file-exists-p bootstrap-file)
+ (<span style="color: #e45649;">with-current-buffer</span>
+ (url-retrieve-synchronously
+ <span style="color: #50a14f;">"https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"</span>
+ 'silent 'inhibit-cookies)
+ (goto-char (point-max))
+ (eval-print-last-sexp)))
+ (load bootstrap-file nil 'nomessage))
+</pre>
+</div>
+</div>
+
+<div id="outline-container-org04c0368" class="outline-4">
+<h4 id="org04c0368"><span class="section-number-4">3.2.1</span> use-package</h4>
+<div class="outline-text-4" id="text-3-2-1">
+<p>
+We need use-package for maintaining other packages.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(straight-use-package 'use-package)
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org08efa3a" class="outline-3">
+<h3 id="org08efa3a"><span class="section-number-3">3.3</span> Custom-file</h3>
+<div class="outline-text-3" id="text-3-3">
+<p>
+I don't like custom variables on my init.el, I prefer having it on
+my cache folder.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span> custom-file <span style="color: #50a14f;">"~/.cache/emacs-custom.el"</span>)
+</pre>
+</div>
+
+<p>
+Let's load the custom-file if it is there
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">when</span> (file-exists-p custom-file)
+(load custom-file))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8659361" class="outline-3">
+<h3 id="org8659361"><span class="section-number-3">3.4</span> Private file</h3>
+<div class="outline-text-3" id="text-3-4">
+<p>
+Let's load a private file if it exists
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(add-hook
+ 'after-init-hook
+ (<span style="color: #e45649;">lambda</span> ()
+ (<span style="color: #e45649;">let</span> ((private-file (concat user-emacs-directory <span style="color: #50a14f;">"private.el"</span>)))
+ (<span style="color: #e45649;">when</span> (file-exists-p private-file)
+ (load-file private-file)))))
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org65284c7" class="outline-3">
+<h3 id="org65284c7"><span class="section-number-3">3.5</span> Diary file</h3>
+<div class="outline-text-3" id="text-3-5">
+<p>
+I use my diary on a Sync directory, so I can share between
+computers.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">diary-file</span>)
+(<span style="color: #e45649;">setq</span> diary-file <span style="color: #50a14f;">"~/Org/agenda/diary"</span>)
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org502f09d" class="outline-3">
+<h3 id="org502f09d"><span class="section-number-3">3.6</span> Starting the server</h3>
+<div class="outline-text-3" id="text-3-6">
+<p>
+I used to have an alias for running emacsclient, now I
+use a tiny script for it.
+</p>
+<div class="org-src-container">
+<pre class="src src-sh" id="org651b966"><span style="color: #9ca0a4;">#</span><span style="color: #9ca0a4;">!/bin/</span><span style="color: #e45649;">sh</span>
+
+<span style="color: #6a1868;">EMACSCLIENT_EXTRA_OPTIONS</span>=<span style="color: #50a14f;">"${EMACSCLIENT_EXTRA_OPTIONS}"</span>
+tty >/dev/null 2>&1 && <span style="color: #6a1868;">EMACSCLIENT_EXTRA_OPTIONS</span>=<span style="color: #50a14f;">"$EMACSCLIENT_EXTRA_OPTIONS -nw"</span>
+
+<span style="color: #e45649;">for</span> opt<span style="color: #e45649;"> in</span> <span style="color: #50a14f;">"$@"</span> ; <span style="color: #e45649;">do</span>
+ <span style="color: #6a1868;">EMACSCLIENT_EXTRA_OPTIONS</span>=<span style="color: #50a14f;">"$EMACSCLIENT_EXTRA_OPTIONS $opt"</span>
+<span style="color: #e45649;">done</span>
+
+<span style="color: #9ca0a4;"># </span><span style="color: #9ca0a4;">We want word splitting</span>
+<span style="color: #9ca0a4;"># </span><span style="color: #9ca0a4;">shellcheck disable=2086</span>
+emacsclient --alternate-editor=<span style="color: #50a14f;">''</span> -c $<span style="color: #6a1868;">EMACSCLIENT_EXTRA_OPTIONS</span>
+</pre>
+</div>
+
+<p>
+You can install the generated emc script by doing
+</p>
+
+<div class="org-src-container">
+<pre class="src src-sh">install -Dm755 -t /usr/local/bin emc
+</pre>
+</div>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">require</span> '<span style="color: #b751b6;">server</span>)
+(<span style="color: #e45649;">or</span> (server-running-p)
+ (server-start))
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orge5ec7a9" class="outline-2">
+<h2 id="orge5ec7a9"><span class="section-number-2">4</span> Packages</h2>
+<div class="outline-text-2" id="text-4">
+<p>
+Now we can continue by loading our packages, those are listed according
+to how important they are to me.
+</p>
+</div>
+
+<div id="outline-container-org457d858" class="outline-3">
+<h3 id="org457d858"><span class="section-number-3">4.1</span> Evil-mode</h3>
+<div class="outline-text-3" id="text-4-1">
+<p>
+I am an old vim user, and I do not want to miss out on the beauty of vim
+while I am using Emacs. Let's begin with the evil-mode itself.
+</p>
+
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">evil</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:init</span>
+ (<span style="color: #e45649;">setq</span>
+ evil-want-keybinding nil
+ evil-want-C-i-jump nil
+ )
+ <span style="color: #a626a4;">:config</span>
+ (evil-mode 1))
+</pre>
+</div>
+
+<p>
+We didn't ask for the keybindings yet, because we are going to get the
+<code>evil-collection</code> package now.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">evil-collection</span>
+ <span style="color: #a626a4;">:requires</span> evil
+ <span style="color: #a626a4;">:after</span> evil
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span>
+ (evil-collection-init))
+</pre>
+</div>
+</div>
+
+<div id="outline-container-orga262a42" class="outline-4">
+<h4 id="orga262a42"><span class="section-number-4">4.1.1</span> evil-surround</h4>
+<div class="outline-text-4" id="text-4-1-1">
+<p>
+I used to make use of vim-sandwich, but evil-surround will also
+do the job well for me.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">evil-surround</span>
+ <span style="color: #a626a4;">:requires</span> evil
+ <span style="color: #a626a4;">:after</span> evil
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span>
+ (global-evil-surround-mode 1))
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org0b2e795" class="outline-3">
+<h3 id="org0b2e795"><span class="section-number-3">4.2</span> Org-mode</h3>
+<div class="outline-text-3" id="text-4-2">
+<p>
+Org mode is one of the biggest reasons I am using Emacs, and it is a must
+for me. These are my configurations. Starting with the obvious here. I am
+currently trying to tweak portions of it from Bernt's configuration. See
+the <a href="#orgaff74f8">2.4</a> section.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">org</span>
+<span style="color: #a626a4;">:straight</span> t
+<span style="color: #a626a4;">:functions</span> org-babel-tangle
+<span style="color: #a626a4;">:init</span>
+'(<span style="color: #e45649;">require</span> '<span style="color: #b751b6;">ox-md</span> nil t)
+'(<span style="color: #e45649;">require</span> '<span style="color: #b751b6;">ox-man</span> nil t)
+'(org-export-backends
+ (<span style="color: #e45649;">quote</span>
+ (ascii beamer html latex man md groff))))
+</pre>
+</div>
+</div>
+
+<div id="outline-container-org3f8e1d0" class="outline-4">
+<h4 id="org3f8e1d0"><span class="section-number-4">4.2.1</span> evil-org</h4>
+<div class="outline-text-4" id="text-4-2-1">
+<p>
+I am quite serious on this vim stuff now. I want it everywhere.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">evil-org</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:requires</span> (evil org)
+ <span style="color: #a626a4;">:after</span> (evil org)
+ <span style="color: #a626a4;">:functions</span> evil-org-agenda-set-keys
+ <span style="color: #a626a4;">:config</span>
+ (add-hook 'org-mode-hook 'evil-org-mode)
+ (<span style="color: #e45649;">require</span> '<span style="color: #b751b6;">evil-org-agenda</span>)
+ (evil-org-agenda-set-keys))
+</pre>
+</div>
+
+<p>
+Now that we have initialized those packages, let's configure them some
+further.
+</p>
+</div>
+</div>
+
+<div id="outline-container-org2b5a53a" class="outline-4">
+<h4 id="org2b5a53a"><span class="section-number-4">4.2.2</span> Keybindings and default values</h4>
+<div class="outline-text-4" id="text-4-2-2">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(global-set-key (kbd <span style="color: #50a14f;">"C-c l"</span>) 'org-store-link)
+(global-set-key (kbd <span style="color: #50a14f;">"C-c a"</span>) 'org-agenda)
+(global-set-key (kbd <span style="color: #50a14f;">"C-c c"</span>) 'org-capture)
+
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">org-directory</span>)
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">org-agenda-include-diary</span>)
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">org-default-notes-file</span>)
+
+(<span style="color: #e45649;">setq</span>
+ org-directory <span style="color: #50a14f;">"~/Org/"</span>
+ org-agenda-include-diary t
+ org-default-notes-file <span style="color: #50a14f;">"~/Org/refile.org"</span>
+)
+
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">org-agenda-span</span>)
+(<span style="color: #e45649;">setq</span> org-agenda-span 'day)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgfcf19b6" class="outline-4">
+<h4 id="orgfcf19b6"><span class="section-number-4">4.2.3</span> Orgmode TODO configuration</h4>
+<div class="outline-text-4" id="text-4-2-3">
+<p>
+Code below is written for adding more possible sequences depending on the
+project I am working on.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span> org-todo-keywords
+ (<span style="color: #e45649;">quote</span> ((sequence <span style="color: #50a14f;">"TODO(t)"</span> <span style="color: #50a14f;">"NEXT(n)"</span> <span style="color: #50a14f;">"|"</span> <span style="color: #50a14f;">"DONE(d)"</span>)
+ (sequence <span style="color: #50a14f;">"WAITING(w@/!)"</span> <span style="color: #50a14f;">"HOLD(h@/!)"</span> <span style="color: #50a14f;">"|"</span> <span style="color: #50a14f;">"CANCELLED(c@/!)"</span> <span style="color: #50a14f;">"PHONE"</span> <span style="color: #50a14f;">"MEETING"</span>))))
+
+(<span style="color: #e45649;">setq</span> org-todo-keyword-faces
+ (<span style="color: #e45649;">quote</span> ((<span style="color: #50a14f;">"TODO"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"orange red"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"NEXT"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"cyan"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"DONE"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"spring green"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"WAITING"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"orange"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"HOLD"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"hot pink"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"CANCELLED"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"spring green"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"MEETING"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"spring green"</span> <span style="color: #a626a4;">:weight</span> bold)
+ (<span style="color: #50a14f;">"PHONE"</span> <span style="color: #a626a4;">:foreground</span> <span style="color: #50a14f;">"spring green"</span> <span style="color: #a626a4;">:weight</span> bold))))
+
+(<span style="color: #e45649;">setq</span> org-use-fast-todo-selection t)
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org855104f" class="outline-4">
+<h4 id="org855104f"><span class="section-number-4">4.2.4</span> Org-capture and refiling</h4>
+<div class="outline-text-4" id="text-4-2-4">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span> org-capture-templates
+ (<span style="color: #e45649;">quote</span> ((<span style="color: #50a14f;">"t"</span> <span style="color: #50a14f;">"todo"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* TODO %?\n%U\n%a\n"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t)
+ (<span style="color: #50a14f;">"r"</span> <span style="color: #50a14f;">"respond"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* NEXT Respond to %:from on %:subject\nSCHEDULED: %t\n%U\n%a\n"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t <span style="color: #a626a4;">:immediate-finish</span> t)
+ (<span style="color: #50a14f;">"n"</span> <span style="color: #50a14f;">"note"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* %? :NOTE:\n%U\n%a\n"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t)
+ (<span style="color: #50a14f;">"j"</span> <span style="color: #50a14f;">"Journal"</span> entry (file+datetree <span style="color: #50a14f;">"~/Org/diary.org"</span>)
+ <span style="color: #50a14f;">"* %?\n%U\n"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t)
+ (<span style="color: #50a14f;">"w"</span> <span style="color: #50a14f;">"org-protocol"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* TODO Review %c\n%U\n"</span> <span style="color: #a626a4;">:immediate-finish</span> t)
+ (<span style="color: #50a14f;">"m"</span> <span style="color: #50a14f;">"Meeting"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* MEETING with %? :MEETING:\n%U"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t)
+ (<span style="color: #50a14f;">"p"</span> <span style="color: #50a14f;">"Phone call"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* PHONE %? :PHONE:\n%U"</span> <span style="color: #a626a4;">:clock-in</span> t <span style="color: #a626a4;">:clock-resume</span> t)
+ (<span style="color: #50a14f;">"h"</span> <span style="color: #50a14f;">"Habit"</span> entry (file <span style="color: #50a14f;">"~/Org/refile.org"</span>)
+ <span style="color: #50a14f;">"* NEXT %?\n%U\n%a\nSCHEDULED: %(format-time-string \"%<<%Y-%m-%d %a .+1d/3d>>\")\n:PROPERTIES:\n:STYLE: habit\n:REPEAT_TO_STATE: NEXT\n:END:\n"</span>))))
+</pre>
+</div>
+
+<p>
+Let's set targets to <code>org-agenda-files</code>.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span> org-refile-targets (<span style="color: #e45649;">quote</span> ((nil <span style="color: #a626a4;">:maxlevel</span> . 9)
+ (org-agenda-files <span style="color: #a626a4;">:maxlevel</span> . 9))))
+
+(<span style="color: #e45649;">setq</span> org-refile-use-outline-path t)
+(<span style="color: #e45649;">setq</span> org-outline-path-complete-in-steps nil)
+(<span style="color: #e45649;">setq</span> org-refile-allow-creating-parent-nodes (<span style="color: #e45649;">quote</span> confirm))
+</pre>
+</div>
+</div>
+</div>
+</div>
+<div id="outline-container-org687533d" class="outline-3">
+<h3 id="org687533d"><span class="section-number-3">4.3</span> Magit</h3>
+<div class="outline-text-3" id="text-4-3">
+<p>
+I like magit, it is quite useful when you don't want to leave emacs and
+you have to manually edit hunks for specific commits. I use evil-magit
+along with it.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">magit</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span>
+ (global-set-key (kbd <span style="color: #50a14f;">"C-x g"</span>) 'magit-status))
+</pre>
+</div>
+</div>
+
+<div id="outline-container-org1d6e761" class="outline-4">
+<h4 id="org1d6e761"><span class="section-number-4">4.3.1</span> evil-magit</h4>
+<div class="outline-text-4" id="text-4-3-1">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">evil-magit</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:requires</span> (evil magit)
+ <span style="color: #a626a4;">:config</span> (evil-magit-init))
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org5437d0b" class="outline-3">
+<h3 id="org5437d0b"><span class="section-number-3">4.4</span> Flycheck</h3>
+<div class="outline-text-3" id="text-4-4">
+<p>
+I use flycheck for async syntax and error checking. It can be really useful
+and adds to the IDE-likeness of Emacs. I find things like these to be really
+hacky and buggy on Vim.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">flycheck</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span>
+ (<span style="color: #e45649;">setq-default</span> flycheck-disabled-checkers '(emacs-lisp-checkdoc))
+ <span style="color: #a626a4;">:init</span> (global-flycheck-mode))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org057d90a" class="outline-3">
+<h3 id="org057d90a"><span class="section-number-3">4.5</span> Company Mode</h3>
+<div class="outline-text-3" id="text-4-5">
+<p>
+Company is a tool that I am still very unfamiliar with. I used to
+have completion tools on Vim, but I don't understand company that
+much yet. Pretty simple config.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">company</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span> (global-company-mode 1)
+ (<span style="color: #e45649;">setq</span> company-idle-delay 0)
+ (<span style="color: #e45649;">setq</span> company-minimum-prefix-length 1))
+</pre>
+</div>
+</div>
+
+<div id="outline-container-org15c5739" class="outline-4">
+<h4 id="org15c5739"><span class="section-number-4">4.5.1</span> Company LSP</h4>
+<div class="outline-text-4" id="text-4-5-1">
+<p>
+I am using Company's own Language Server Protocol. It is good as
+far as I can wrap my head-around.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">company-lsp</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:after</span> company
+ <span style="color: #a626a4;">:init</span>
+ (<span style="color: #e45649;">push</span> 'company-lsp company-backends))
+</pre>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org6756440" class="outline-3">
+<h3 id="org6756440"><span class="section-number-3">4.6</span> Mingus</h3>
+<div class="outline-text-3" id="text-4-6">
+<p>
+Mingus is an <a href="https://musicpd.org">MPD</a> client for the Emacs operating system. It has a rather
+simple, straightforward interface.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">mingus</span> <span style="color: #a626a4;">:straight</span> t)
+(global-set-key (kbd <span style="color: #50a14f;">"C-c m"</span>) 'mingus)
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-orga5f1dd8" class="outline-3">
+<h3 id="orga5f1dd8"><span class="section-number-3">4.7</span> Projectile</h3>
+<div class="outline-text-3" id="text-4-7">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">projectile</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:init</span> (projectile-mode +1)
+ (define-key projectile-mode-map (kbd <span style="color: #50a14f;">"C-c p"</span>) 'projectile-command-map))
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-orge4c555c" class="outline-3">
+<h3 id="orge4c555c"><span class="section-number-3">4.8</span> Treemacs</h3>
+<div class="outline-text-3" id="text-4-8">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">treemacs</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:defines</span> treemacs-no-png-images
+ <span style="color: #a626a4;">:init</span>
+ (global-set-key (kbd <span style="color: #50a14f;">"C-c t"</span>) 'treemacs)
+ (<span style="color: #e45649;">setq</span> treemacs-no-png-images t))
+
+(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">treemacs-evil</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:requires</span> treemacs
+ <span style="color: #a626a4;">:after</span> (treemacs evil))
+
+(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">treemacs-magit</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:requires</span> treemacs
+ <span style="color: #a626a4;">:after</span> (treemacs magit))
+
+(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">treemacs-projectile</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:requires</span> treemacs
+ <span style="color: #a626a4;">:after</span> (treemacs projectile))
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org561be12" class="outline-3">
+<h3 id="org561be12"><span class="section-number-3">4.9</span> emacs-dashboard</h3>
+<div class="outline-text-3" id="text-4-9">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">dashboard</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:defines</span> show-week-agenda-p
+ <span style="color: #a626a4;">:init</span>
+ (<span style="color: #e45649;">setq</span> dashboard-center-content t)
+ (<span style="color: #e45649;">setq</span> show-week-agenda-p nil)
+ (<span style="color: #e45649;">setq</span> dashboard-set-footer nil)
+ (<span style="color: #e45649;">setq</span> initial-buffer-choice (<span style="color: #e45649;">lambda</span> () (get-buffer <span style="color: #50a14f;">"*dashboard*"</span>)))
+ (<span style="color: #e45649;">setq</span> dashboard-items '((recents . 5)
+ (bookmarks . 5)
+ (projects . 5)
+ (agenda . 10)))
+ <span style="color: #a626a4;">:config</span> (dashboard-setup-startup-hook))
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org50ad2ba" class="outline-3">
+<h3 id="org50ad2ba"><span class="section-number-3">4.10</span> Extras</h3>
+<div class="outline-text-3" id="text-4-10">
+<p>
+These don't really deserve their own sections, but I prefer to use them.
+</p>
+</div>
+
+<div id="outline-container-org25e14c7" class="outline-4">
+<h4 id="org25e14c7"><span class="section-number-4">4.10.1</span> sudo-edit</h4>
+<div class="outline-text-4" id="text-4-10-1">
+<p>
+This is a package for re-initiating a file as root.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">sudo-edit</span> <span style="color: #a626a4;">:straight</span> t)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgfb48e9a" class="outline-4">
+<h4 id="orgfb48e9a"><span class="section-number-4">4.10.2</span> linum-relative</h4>
+<div class="outline-text-4" id="text-4-10-2">
+<p>
+I just like seeing the current line number and the relatives of
+the other lines.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">linum-relative</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:init</span>
+ (<span style="color: #e45649;">setq</span> linum-relative-current-symbol <span style="color: #50a14f;">""</span>)
+ (global-set-key (kbd <span style="color: #50a14f;">"C-C r"</span>) 'linum-relative-mode)
+ <span style="color: #a626a4;">:config</span> (linum-relative-mode 1))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8c43ed1" class="outline-4">
+<h4 id="org8c43ed1"><span class="section-number-4">4.10.3</span> elfeed</h4>
+<div class="outline-text-4" id="text-4-10-3">
+<p>
+I have elfeed which I have connected to my Nextcloud account, it
+is nice to have something synced.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">elfeed</span> <span style="color: #a626a4;">:straight</span> t)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org55a548f" class="outline-4">
+<h4 id="org55a548f"><span class="section-number-4">4.10.4</span> markdown-mode</h4>
+<div class="outline-text-4" id="text-4-10-4">
+<p>
+I sometimes use this to test the HTML output of markdown documents
+that I write.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">markdown-mode</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span> (<span style="color: #e45649;">setq</span> markdown-command <span style="color: #50a14f;">"/usr/bin/markdown"</span>))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org8c9ac7e" class="outline-4">
+<h4 id="org8c9ac7e"><span class="section-number-4">4.10.5</span> htmlize</h4>
+<div class="outline-text-4" id="text-4-10-5">
+<p>
+I sometimes output html from org-mode as it comes handy. We use htmlize for
+that.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">htmlize</span> <span style="color: #a626a4;">:straight</span> t)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgf4a9fcb" class="outline-4">
+<h4 id="orgf4a9fcb"><span class="section-number-4">4.10.6</span> toc-org</h4>
+<div class="outline-text-4" id="text-4-10-6">
+<p>
+I want to have a basic table-of-contents generation on my org-files
+even without exporting the file itself. This is also useful for the
+Github README.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">toc-org</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:config</span>
+ (add-hook 'org-mode-hook 'toc-org-mode))
+</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc7078e4" class="outline-2">
+<h2 id="orgc7078e4"><span class="section-number-2">5</span> Themes and Icons</h2>
+<div class="outline-text-2" id="text-5">
+<p>
+I used to make use of my Xresources themes, but I sometimes sadly
+need windows, and I actually do want some eye candy from time to
+time.
+</p>
+</div>
+
+<div id="outline-container-orgcc31c1a" class="outline-4">
+<h4 id="orgcc31c1a"><span class="section-number-4">5.0.1</span> Doom themes</h4>
+<div class="outline-text-4" id="text-5-0-1">
+<p>
+I want to use the default doom-theme (perhaps I can switch to
+Dracula someday as well).
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">doom-themes</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:functions</span> doom-themes-org-config doom-themes-treemacs-config
+ <span style="color: #a626a4;">:config</span>
+ (<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">doom-themes-treemacs-theme</span>)
+ (<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">doom-themes-enable-bold</span>)
+ (<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">doom-themes-enable-italic</span>)
+ (<span style="color: #e45649;">setq</span> doom-themes-enable-bold t
+ doom-themes-enable-italic t)
+ (load-theme 'doom-vibrant t)
+ (<span style="color: #e45649;">setq</span> doom-themes-treemacs-theme <span style="color: #50a14f;">"doom-colors"</span>)
+ (doom-themes-treemacs-config)
+ (doom-themes-org-config))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgcfc71dd" class="outline-4">
+<h4 id="orgcfc71dd"><span class="section-number-4">5.0.2</span> All the icons</h4>
+<div class="outline-text-4" id="text-5-0-2">
+<p>
+All the icons is an icon-pack. I mean it probably isn't hard to
+guess. Pretty straightforward.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">all-the-icons</span>
+ <span style="color: #a626a4;">:straight</span> t)
+</pre>
+</div>
+</div>
+</div>
+</div>
+<div id="outline-container-orgefe4cf9" class="outline-2">
+<h2 id="orgefe4cf9"><span class="section-number-2">6</span> Filetype Configurations</h2>
+<div class="outline-text-2" id="text-6">
+<p>
+I would like to have some different configurations for filetypes. Those
+are for indents and spaces, mostly.
+</p>
+</div>
+
+<div id="outline-container-orgff35f48" class="outline-3">
+<h3 id="orgff35f48"><span class="section-number-3">6.1</span> Default Formatting</h3>
+<div class="outline-text-3" id="text-6-1">
+<p>
+Here is the default formatting for most files. I don't like tabs as indents
+so I avoid them wherever I can.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq-default</span> indent-tabs-mode nil
+ tab-width 8
+ fill-column 80)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-org1a94d90" class="outline-3">
+<h3 id="org1a94d90"><span class="section-number-3">6.2</span> Markdown</h3>
+<div class="outline-text-3" id="text-6-2">
+<p>
+For markdown, I want to have 4 spaces as an indentation.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">md-indent-tabs-mode</span>)
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">md-tab-width</span>)
+(<span style="color: #e45649;">setq</span>
+ md-indent-tabs-mode nil
+ md-tab-width 4
+)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgcda54d0" class="outline-3">
+<h3 id="orgcda54d0"><span class="section-number-3">6.3</span> Shell</h3>
+<div class="outline-text-3" id="text-6-3">
+<p>
+For shell, I want to have 4 spaces as an indentation.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">sh-indent-tabs-mode</span>)
+(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">sh-tab-width</span>)
+(<span style="color: #e45649;">setq</span>
+ sh-indent-tabs-mode nil
+ sh-tab-width 4
+)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgdc9f2a6" class="outline-3">
+<h3 id="orgdc9f2a6"><span class="section-number-3">6.4</span> Python</h3>
+<div class="outline-text-3" id="text-6-4">
+<p>
+I use the django framework quite frequently at work. So I want a few packages
+for that as well.
+</p>
+</div>
+
+<div id="outline-container-org1e2944c" class="outline-4">
+<h4 id="org1e2944c"><span class="section-number-4">6.4.1</span> Company jedi</h4>
+<div class="outline-text-4" id="text-6-4-1">
+<p>
+Company jedi is for better completion while I am editing python files. Here
+is the use-package
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">use-package</span> <span style="color: #b751b6;">company-jedi</span>
+ <span style="color: #a626a4;">:straight</span> t
+ <span style="color: #a626a4;">:after</span> company
+ <span style="color: #a626a4;">:config</span>
+ (add-to-list 'company-backends 'company-jedi))
+</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="outline-container-org43f2b13" class="outline-2">
+<h2 id="org43f2b13"><span class="section-number-2">7</span> Other Settings</h2>
+<div class="outline-text-2" id="text-7">
+<p>
+Those are small settings for emacs that I cannot categorize but have importance
+for me.
+</p>
+</div>
+
+<div id="outline-container-orgbadee03" class="outline-3">
+<h3 id="orgbadee03"><span class="section-number-3">7.1</span> Dired – ls dired</h3>
+<div class="outline-text-3" id="text-7-1">
+<p>
+I use suckless.org's <code>sbase</code> as my coreutils. The <code>ls</code> program that I use does
+not have a <code>--dired</code> option. Let's disable it.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">defvar</span> <span style="color: #6a1868;">dired-use-ls-dired</span>)
+(<span style="color: #e45649;">setq</span> dired-use-ls-dired nil)
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgc955759" class="outline-3">
+<h3 id="orgc955759"><span class="section-number-3">7.2</span> Coding System for Terminal</h3>
+<div class="outline-text-3" id="text-7-2">
+<p>
+I want emacs to use utf-8 so my terminal isn't filled with '?' characters.
+</p>
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(set-terminal-coding-system 'utf-8)
+</pre>
+</div>
+</div>
+</div>
+<div id="outline-container-org566f39f" class="outline-3">
+<h3 id="org566f39f"><span class="section-number-3">7.3</span> Backup Options</h3>
+<div class="outline-text-3" id="text-7-3">
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span> backup-directory-alist `((<span style="color: #50a14f;">"."</span> . <span style="color: #50a14f;">"~/.cache/emacs/saves"</span>)))
+</pre>
+</div>
+</div>
+</div>
+
+<div id="outline-container-orgf7aff98" class="outline-3">
+<h3 id="orgf7aff98"><span class="section-number-3">7.4</span> Set Browser</h3>
+<div class="outline-text-3" id="text-7-4">
+<p>
+I am setting the default browser from the BROWSER environment variable
+so that I don't have to keep track of it in case I ever change my browser.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">setq</span>
+ browse-url-generic-program (executable-find (getenv <span style="color: #50a14f;">"BROWSER"</span>))
+ browse-url-browser-function 'browse-url-generic
+)
+</pre>
+</div>
+</div>
+</div>
+</div>
+<div id="outline-container-orgf6bda23" class="outline-2">
+<h2 id="orgf6bda23"><span class="section-number-2">8</span> Notes</h2>
+<div class="outline-text-2" id="text-8">
+</div>
+<div id="outline-container-org65479c3" class="outline-3">
+<h3 id="org65479c3"><span class="section-number-3">8.1</span> Reverting to package.el</h3>
+<div class="outline-text-3" id="text-8-1">
+<p>
+You can always revert back to <code>package.el</code> by replacing the <a href="#orgbe93c8a">3.2</a>
+section with the following configuration steps. This can be for many reasons.
+For example I have reverted to package.el on my old laptop where I don't want
+deal with compilation, and I don't want to keep git repositories of every package
+that I use. However, I believe that I can deal with those problems as I learn more
+about the internals of straight.
+</p>
+</div>
+
+<div id="outline-container-orgec421c5" class="outline-4">
+<h4 id="orgec421c5"><span class="section-number-4">8.1.1</span> Replacing the bootstrap command</h4>
+<div class="outline-text-4" id="text-8-1-1">
+<p>
+You need to replace the <code>straight.el</code> package manager bootstrapper. This is
+the first code block in the section. Replace it with the following code block.
+</p>
+
+<p>
+Keep in mind that you shouldn't add <code>:tangle no</code>.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">require</span> '<span style="color: #b751b6;">package</span>)
+(<span style="color: #e45649;">setq</span> package-archives '(
+ (<span style="color: #50a14f;">"elpa"</span> . <span style="color: #50a14f;">"https://elpa.gnu.org/packages/"</span>)
+ (<span style="color: #50a14f;">"melpa"</span> . <span style="color: #50a14f;">"https://melpa.org/packages/"</span>)
+))
+(package-initialize)
+</pre>
+</div>
+
+<p>
+This code block will initialize <code>package.el</code>. Now we need to replace use-package
+as it works with package.el
+</p>
+</div>
+</div>
+
+<div id="outline-container-org75ccd8e" class="outline-4">
+<h4 id="org75ccd8e"><span class="section-number-4">8.1.2</span> Making use-package work with package.el</h4>
+<div class="outline-text-4" id="text-8-1-2">
+<p>
+Now, replace the second code-block in the section with the following
+commands.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-emacs-lisp">(<span style="color: #e45649;">unless</span> (package-installed-p 'use-package)
+ (package-refresh-contents)
+ (package-install 'use-package))
+</pre>
+</div>
+
+<p>
+There is also the final step, which is the most important one. Replacing the use-package <code>:straight</code>
+calls with <code>:ensure</code>. Keep in mind that doing so will also replace the line below as well. In your shell,
+run the following command.
+</p>
+
+<div class="org-src-container">
+<pre class="src src-sh">sed -i <span style="color: #50a14f;">'s/\:straight /\:ensure /g'</span> init.org
+</pre>
+</div>
+</div>
+</div>
+</div>
+</div>
+</div>
+<div id="postamble" class="status">
+<p class="author">Author: Cem Keylan</p>
+<p class="date">Created: 2020-03-31 Tue 11:51</p>
+<p class="validation"><a href="https://validator.w3.org/check?uri=referer">Validate</a></p>
+</div>
+</body>
+</html>
diff --git a/init.org b/init.org
@@ -494,6 +494,29 @@ simple, straightforward interface.
:requires treemacs
:after (treemacs projectile))
#+END_SRC
+
+**** Keybindings
+
+These tables are taken from the [[https://github.com/Alexander-Miller/treemacs][Treemacs Github page]]
+
+
+| Key | Action | Description |
+|-------------------+----------------------------------------+--------------------------------------------------------|
+| C-c C-p a | treemacs-add-project-to-workspace | Select a new project to add to the treemacs workspace. |
+| C-c C-p p | treemacs-projectile | Select a projectile project to add to the workspace. |
+| C-c C-p d | treemacs-remove-project-from-workspace | Remove project at point from the workspace. |
+| C-c C-p r | treemacs-rename-project | Rename project at point. |
+| C-c C-p c c | treemacs-collapse-project | Collapse project at point. |
+| C-c C-p c o/S-TAB | treemacs-collapse-all-projects | Collapse all projects. |
+| C-c C-p c o | treemacs-collapse-all-projects | Collapse all projects except the project at point. |
+| C-c C-w r | treemacs-rename-workspace | Rename a workspace. |
+| C-c C-w a | treemacs-create-workspace | Create a new workspace. |
+| C-c C-w d | treemacs-remove-workspace | Delete a workspace. |
+| C-c C-w s | treemacs-switch-workspace | Switch the current workspace. |
+| C-c C-w e | treemacs-edit-workspaces | Edit workspace layout via org-mode. |
+| C-c C-w f | treemacs-set-fallback-workspace | Select the default fallback workspace. |
+
+
** emacs-dashboard
#+BEGIN_SRC emacs-lisp
(use-package dashboard