blob: 77ae0e2672ffb9186ef9f2f91ab3a0a4391bf2fc (
plain)
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
|
#+title: Emacs User Interface
* Theming
Set the default font to the Source Code Pro nerd font variant. I use size 14 font.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(add-to-list 'default-frame-alist
'(font . "SauceCodePro Nerd Font-14"))
#+end_src
Use the Doom Nord light theme.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package doom-themes
:straight (doom-themes :type git :host github :repo "doomemacs/themes"
:fork (:host github
:repo "JacobJanzen/emacs-doom-themes"))
:config
(setq doom-themes-enable-bold t
doom-themes-enable-italic t)
(load-theme 'doom-disco t)
(doom-themes-org-config))
(add-to-list 'default-frame-alist '(alpha-background . 90))
#+end_src
Use =doom-modeline= for a nicer modeline.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package doom-modeline
:init (doom-modeline-mode 1))
#+end_src
Remove the titlebar.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(add-to-list 'default-frame-alist '(undecorated . t))
#+end_src
* Clean UI
Disable the Emacs start screen and make the =scratch= buffer default to empty.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(setq inhibit-startup-screen t)
(setq initial-scratch-message nil)
#+end_src
Disable scroll bar, tool bar, and menu bar.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(scroll-bar-mode -1)
(tool-bar-mode -1)
(menu-bar-mode -1)
#+end_src
* Fancy Stuff
Use line numbers by default.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(global-display-line-numbers-mode 1)
#+end_src
Highlight changes for an operation with =evil-goggles=.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package evil-goggles
:after evil
:config
(evil-goggles-mode)
(evil-goggles-use-diff-faces))
#+end_src
Install nerd font icons.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package nerd-icons)
#+end_src
Scroll one line at a time.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(setq scroll-conservatively most-positive-fixnum)
#+end_src
Create parent directories when they don't yet exist.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(defun jj/create-non-existent-directory ()
(let ((parent-directory (file-name-directory buffer-file-name)))
(when (and (not (file-exists-p parent-directory))
(y-or-n-p (format "Directory `%s' does not exist! Create it?" parent-directory)))
(make-directory parent-directory t))))
(add-to-list 'find-file-not-found-functions #'jj/create-non-existent-directory)
#+end_src
* Whitespace Management
Use spaces over tabs and set tab width to 4.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(setq-default indent-tabs-mode nil)
(setq tab-width 4
c-basic-offset tab-width)
#+end_src
Delete trailing whitespace on save.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(defun jj/before-save-hook ()
(unless (eql (with-current-buffer (current-buffer) major-mode)
'markdown-mode)
(delete-trailing-whitespace)))
(add-hook 'before-save-hook #'jj/before-save-hook)
#+end_src
* Backup Management
Don't create backup files.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(setq make-backup-files nil)
#+end_src
* Customize =dired=
Use nerd font icons in =dired=.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package nerd-icons-dired
:hook (dired-mode . nerd-icons-dired-mode))
#+end_src
Use colours in =dired= with =diredfl=.
#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
(use-package diredfl
:init (diredfl-global-mode 1))
#+end_src
|