aboutsummaryrefslogtreecommitdiff
path: root/nixos/.flake/home/programs/emacs/user-interface.el.org
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/.flake/home/programs/emacs/user-interface.el.org')
-rw-r--r--nixos/.flake/home/programs/emacs/user-interface.el.org131
1 files changed, 131 insertions, 0 deletions
diff --git a/nixos/.flake/home/programs/emacs/user-interface.el.org b/nixos/.flake/home/programs/emacs/user-interface.el.org
new file mode 100644
index 0000000..ff4bd34
--- /dev/null
+++ b/nixos/.flake/home/programs/emacs/user-interface.el.org
@@ -0,0 +1,131 @@
+#+title: Emacs User Interface
+
+* Theming
+Set up Source Code Pro with Nerd Font patches as default font and Computer Modern as a variable pitch font.
+#+begin_src emacs-lisp :tangle ~/.config/emacs/user-interface.el :mkdirp yes
+ (defvar jj/mono-font)
+ (defvar jj/var-font)
+ (pcase system-type
+ (`gnu/linux
+ (when (eq (system-name) "gentoo"))
+ (setq jj/mono-font "SauceCodePro Nerd Font-11")
+ (setq jj/var-font "CMU Serif-14"))
+ (`darwin
+ (setq jj/mono-font "SauceCodePro Nerd Font-14:weight=thin")
+ (setq jj/var-font "CMU Serif-18")))
+ (add-to-list 'default-frame-alist
+ `(font . ,jj/mono-font))
+#+end_src
+
+Use my custom Doom Disco 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 title bar.
+#+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