2020-10-24 06:12:37 +02:00
#+TITLE : Emacs Configuration from [[https://gitlab.com/TuDatTr/][TuDatTr]]
2020-10-24 07:44:46 +02:00
#+REVEAL_ROOT : https://cdn.jsdelivr.net/npm/reveal.js
2020-10-24 06:18:00 +02:00
#+OPTIONS : n:t
2018-01-10 03:56:51 +01:00
2020-10-24 07:44:46 +02:00
* Preface
Before installing and using emacs, emacs should be run as a daemon.
This decreases the loading times of the editor enormously and enables you to return to your former emacs session at any time.
2020-11-12 18:20:18 +01:00
To do this you first need to make sure ~emace --daemon~ is run during the start up.
To access the daemonized emacs you can either run ~emacsclient -t~ to use it in the terminal or simply ~emacsclient~ if you want to use the GUI version.
2020-10-24 07:44:46 +02:00
2020-10-24 06:12:37 +02:00
* Package installation
** Preperation
2020-10-24 06:18:00 +02:00
Initialize Emacs builtin package system and add the [[https://melpa.org ][melpa ]]-package repository.
2020-10-24 06:12:37 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(require 'package)
(add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/ "))
(package-initialize)
(package-refresh-contents)
#+end_src
2020-10-24 06:12:37 +02:00
2020-11-12 18:20:18 +01:00
** Installation
2020-10-24 07:44:46 +02:00
*** [[https://github.com/jwiegley/use-package][use-package]]
2020-11-12 18:20:18 +01:00
=A use-package declaration for simplifying your .emacs=
2020-10-24 06:12:37 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(unless (package-installed-p 'use-package)
(package-install 'use-package))
2018-01-14 12:25:14 +01:00
2020-11-12 18:20:18 +01:00
(require 'use-package)
(setq use-package-always-ensure t)
#+end_src
2018-01-14 12:25:14 +01:00
2020-10-24 07:44:46 +02:00
*** [[https://github.com/myrjola/diminish.el][diminish]]
2020-11-12 18:20:18 +01:00
=Diminished modes are minor modes with no modeline display=
2018-01-19 06:50:57 +01:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package diminish)
#+end_src
2018-05-27 18:52:35 +02:00
2020-10-24 07:44:46 +02:00
*** [[https://github.com/emacscollective/no-littering][no-littering]]
2020-11-12 18:20:18 +01:00
=Help keeping ~/.emacs.d clean=
2018-01-10 06:33:52 +01:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package no-littering)
#+end_src
2018-01-10 06:33:52 +01:00
2020-10-24 07:44:46 +02:00
*** [[https://github.com/emacs-evil/evil][evil]]/[[https://github.com/emacs-evil/evil-collection][evil-collection]]
2020-11-12 18:20:18 +01:00
=The extensible vi layer for Emacs.=
=A set of keybindings for evil-mode=
#+begin_src emacs-lisp
(use-package evil
:init
(setq evil-want-keybinding nil)
:config
(evil-mode 1)
(setq evil-search-module 'evil-search))
(use-package evil-collection
:config
(evil-collection-init))
#+end_src
*** [[https://github.com/abo-abo/swiper][Ivy]]/[[https://github.com/abo-abo/swiper][Counsil]]/[[https://github.com/abo-abo/swiper][Swiper]]
=Ivy - a generic completion frontend for Emacs, Swiper - isearch with an overview, and more. Oh, man!=
#+begin_src emacs-lisp
(use-package prescient)
(use-package ivy-prescient
:config
(ivy-prescient-mode 1))
(use-package ivy)
(use-package counsel
:diminish counsel-mode
:config
(counsel-mode 1))
(use-package swiper
:bind (("C-s" . 'swiper)))
#+end_src
*** [[https://magit.vc/][Magit]]
=A Git Porcelain inside Emacs.=
#+begin_src emacs-lisp
(use-package magit)
#+end_src
*** [[https://www.gnu.org/software/auctex/][AUCTeX]]
=an extensible package for writing and formatting TeX files.=
#+begin_src emacs-lisp
(use-package auctex
:defer t
:config
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(setq TeX-PDF-mode t))
#+end_src
2018-01-10 06:33:52 +01:00
2020-11-12 18:20:18 +01:00
*** [[https://github.com/yjwen/org-reveal][ox-reveal]]
=Exports Org-mode contents to Reveal.js HTML presentation.=
2018-06-24 13:25:59 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package ox-reveal)
#+end_src
2018-01-10 06:33:52 +01:00
2020-11-12 18:20:18 +01:00
*** [[https://github.com/marsmining/ox-twbs][ox-twbs]]
=Export org-mode docs as HTML compatible with Twitter Bootstrap.=
2018-04-29 23:13:10 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package ox-twbs)
#+end_src
2020-10-24 07:44:46 +02:00
2020-11-12 18:20:18 +01:00
*** [[https://github.com/sabof/org-bullets][org-bullets]]
=utf-8 bullets for org-mode=
2020-10-24 07:44:46 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package org-bullets)
#+end_src
2020-10-24 07:44:46 +02:00
2020-11-12 18:20:18 +01:00
*** [[https://elpa.gnu.org/packages/rainbow-mode.html][rainbow-mode]]
=Colorize color names in buffers=
#+begin_src emacs-lisp
(use-package rainbow-mode)
#+end_src
2020-10-24 06:55:37 +02:00
2020-11-12 18:20:18 +01:00
*** [[https://github.com/Fanael/rainbow-delimiters][rainbow-delimiters]]
=Emacs rainbow delimiters mode=
2020-10-24 06:55:37 +02:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package rainbow-delimiters)
#+end_src
2018-04-05 09:46:48 +02:00
2020-11-12 18:20:18 +01:00
*** [[https://github.com/joaotavora/yasnippet][yasnippet]]
=A template system for Emacs=
#+begin_src emacs-lisp
(use-package yasnippet)
#+end_src
2018-04-29 23:13:10 +02:00
2020-10-24 06:12:37 +02:00
* Appearance
2020-10-24 06:18:00 +02:00
This section is for appearance customization. Either via packages or manually.
2018-01-10 06:33:52 +01:00
2020-10-24 07:44:46 +02:00
** [[https://github.com/kuanyui/moe-theme.el][moe-theme]]
2020-11-12 18:20:18 +01:00
=A customizable colorful eye-candy theme for Emacser. Moe, moe, kyun!=
2018-01-13 15:29:33 +01:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(use-package moe-theme
:config
(moe-dark))
#+end_src
2018-01-22 16:34:03 +01:00
2020-10-24 06:12:37 +02:00
** Transparent Emacs
2020-10-24 06:18:00 +02:00
Makes the default color of the background of emacs the same as the terminals color.
This is kind of a janky solution, but it works.
2018-01-31 04:23:36 +01:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(add-hook 'window-setup-hook
'(lambda ()
(set-face-background 'default "unspecified-bg")))
#+end_src
2018-04-05 09:46:48 +02:00
2020-10-24 06:12:37 +02:00
** Menubar
2018-01-31 04:23:36 +01:00
2020-10-24 06:18:00 +02:00
Remove the menu-bar at the top of the screen for better immersion.
2018-01-13 15:29:33 +01:00
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(menu-bar-mode -1)
#+end_src
2018-01-13 15:29:33 +01:00
2020-10-24 06:55:37 +02:00
* Emacs Configuration
** Symbolic Links
2020-10-24 07:44:46 +02:00
Follow symlinks without asking for confirmation.
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(setq vc-follow-symlinks t)
#+end_src
2018-01-19 06:50:57 +01:00
2020-10-24 06:55:37 +02:00
* Mode Configuration
** Org-Mode
Enable org-bullets and hide leading stars.
2020-11-12 18:20:18 +01:00
#+begin_src emacs-lisp
(add-hook 'org-mode-hook
(lambda ()
(org-bullets-mode 1)))
#+end_src
Enables specific languages for org-babel, so those languages can be used and compiled in code blocks and disable the compilation concirmation. The code afterwords enables proper indentation inside those source blocks.
#+begin_src emacs-lisp
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . t)
(C . t)
(makefile . t)
(shell . t)
(latex . t)
(python . t)))
(setq org-confirm-babel-evaluate nil)
(setq org-src-tab-acts-natively t)
#+end_src