Browse Source

Cleanup modules

main
parent
commit
96c3747b1c
  1. 2
      elisp/options.el
  2. 125
      modules/fonts.org
  3. 122
      modules/interface.org
  4. 24
      modules/org.org

2
elisp/options.el

@ -17,7 +17,7 @@
capture capture
projects projects
development development
interface themes modeline
fonts interface themes modeline
dashboard) dashboard)
"All of the available modules.") "All of the available modules.")

125
modules/fonts.org

@ -0,0 +1,125 @@
#+TITLE: Fonts
#+AUTHOR: Christopher James Hayward
#+EMAIL: chris@chrishayward.xyz
#+PROPERTY: header-args:emacs-lisp :tangle fonts.el :comments org
#+PROPERTY: header-args:shell :tangle no
#+PROPERTY: header-args :results silent :eval no-export :comments org
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
Unified system font across Emacs.
* Setup
Install the required ~firacode~[fn:1] font before loading the module:
#+begin_src shell
RUN apt install -y fonts-firacode
#+end_src
* Config
Write out the value of ~dotfiles/font~ to all of the available font faces supported by Emacs. By default, this uses ~firacode~[fn:1] for its readability and ligature support. All of the heights are configured to ~dotfiles/font-size~ by default, with further configuration based on the given size possible.
#+begin_src emacs-lisp
(set-face-attribute 'default nil :font dotfiles/font :height dotfiles/font-size)
(set-face-attribute 'fixed-pitch nil :font dotfiles/font :height dotfiles/font-size)
(set-face-attribute 'variable-pitch nil :font dotfiles/font :height dotfiles/font-size)
#+end_src
** Icons
Emacs feels more modern with prioritized icon fonts, available in the ~all-the-icons~[fn:2] package. This makes navigation and visually parsing directories much faster, given that the file types are quickly identified by their corresponding icons.
#+begin_src emacs-lisp
(use-package all-the-icons)
#+end_src
Integration with the built-in ~dired~ package is available in the ~all-the-icons-dired~[fn:3] package.
#+begin_src emacs-lisp
(use-package all-the-icons-dired
:hook (dired-mode . all-the-icons-dired-mode))
#+end_src
** Emojis
It's finally here, first class support for Emojis in Emacs via the ~emacs-emojify~[fn:4] package. Have we finally gone too far?
#+begin_src emacs-lisp
(use-package emojify
:when (window-system)
:hook (after-init . global-emojify-mode))
#+end_src
** Symbols
Programming buffers can be made prettier with ~pretty-mode~[fn:5], this is complimentary to ~prettify-symbols-mode~[fn:6], a built-in package containing similar (but lacking) functionality.
#+begin_src emacs-lisp
(use-package pretty-mode
:hook (python-mode . turn-on-pretty-mode))
#+end_src
** Ligatures
Enable ~firacode~[fn:1] font ligatures with the ~fira-code-mode~[fn:7] package. Only perform this action when ~firacode~[fn:1] is the current font, and Emacs isn't running on the TTY.
#+begin_src emacs-lisp
(use-package fira-code-mode
:when (and (window-system)
(equal dotfiles/font "Fira Code"))
:hook (prog-mode org-mode))
#+end_src
** Parenthesis
Colourize nested parenthesis with ~rainbow-delimeters~[fn:4], a mandatory life-jacked to keep you from drowning in the sea of them in Lisp.
#+begin_src emacs-lisp
(use-package rainbow-delimiters
:hook (prog-mode . rainbow-delimiters-mode))
#+end_src
** Text scaling
Define a transient keybinding for scaling the text. One caveat to this, it only works when Emacs is running as a GUI application, and has no effect in the terminal.
#+begin_src emacs-lisp
(defhydra hydra-text-scale (:timeout 4)
"Scale"
("j" text-scale-increase "Increase")
("k" text-scale-decrease "Decrease")
("f" nil "Finished" :exit t))
#+end_src
* Shortcuts
Scale the text inside of buffers using the custom transient binding, behind =SPC t f=:
+ Increase with =j=
+ Decrease with =k=
+ Finish with =f=
#+begin_src emacs-lisp
(dotfiles/leader
"tf" '(hydra-text-scale/body :which-key "Font"))
#+end_src
* Footnotes
[fn:1] https://github.com/tonsky/FiraCode
[fn:2] [[https://github.com/domtronn/all-the-icons.el]]
[fn:3] https://github.com/jtbm37/all-the-icons-dired
[fn:4] https://github.com/Fanael/rainbow-delimiters
[fn:5] https://emacswiki.org/emacs/pretty-mode.el
[fn:6] https://emacswiki.org/emacs/PrettySymbol
[fn:7] https://github.com/jming422/fira-code-mode

122
modules/interface.org

@ -116,108 +116,6 @@ Sort completion candidates based on how recently or frequently they're selected.
(ivy-prescient-mode 1)) (ivy-prescient-mode 1))
#+end_src #+end_src
* Unified fonts
Write out to all of Emacs' available font faces with the unified font defined in the options.
#+begin_src emacs-lisp
(set-face-attribute 'default nil :font dotfiles/font :height dotfiles/font-size)
(set-face-attribute 'fixed-pitch nil :font dotfiles/font :height dotfiles/font-size)
(set-face-attribute 'variable-pitch nil :font dotfiles/font :height dotfiles/font-size)
#+end_src
** Text scaling
Define a transient keybinding for Scaling the text.
#+begin_src emacs-lisp
(defhydra hydra-text-scale (:timeout 4)
"Scale"
("j" text-scale-increase "Increase")
("k" text-scale-decrease "Decrease")
("f" nil "Finished" :exit t))
#+end_src
+ Scale the text inside of buffers with =SPC t f=
* Increase =j=
* Decrease =k=
* Finished =f=
#+begin_src emacs-lisp
(dotfiles/leader
"tf" '(hydra-text-scale/body :which-key "Font"))
#+end_src
** Icon fonts
Dired feels more modern with prioritized icon fonts using *All the Icons*[fn:3]. This makes navigation and visually parsing directories much faster, given that file types are quickly identified by their corresponding icons.
#+begin_src emacs-lisp
(use-package all-the-icons)
#+end_src
Integration with the *All the Icons Dired*[fn:4]package.
#+begin_src emacs-lisp
(use-package all-the-icons-dired
:hook (dired-mode . all-the-icons-dired-mode))
#+end_src
** Symbols
Programming buffers made prettier with *Pretty mode*[fn:5], complimentary to the built-in *Prettify symbols mode*[fn:6].
#+begin_src emacs-lisp
(use-package pretty-mode
:hook (python-mode . turn-on-pretty-mode))
#+end_src
** Ligatures
Enable font ligatures via *Fira Code mode*[fn:7].
+ Perform when *Fira Code* is the current font
+ Don't enable on TTY
#+begin_src emacs-lisp
(use-package fira-code-mode
:when (and (window-system)
(equal dotfiles/font "Fira Code"))
:hook (prog-mode org-mode))
#+end_src
Toggle global ligature mode with =SPC t g=.
#+begin_src emacs-lisp
(dotfiles/leader
"tg" '(global-fira-code-mode :which-key "Ligatures"))
#+end_src
** Emojification
Gotta have those emojis, first class support for Emacs via the *Emacs-emojify*[fn:8] package.
#+begin_src emacs-lisp
(use-package emojify
:when (window-system)
:hook (after-init . global-emojify-mode))
#+end_src
+ Place *Emojify*[fn:8] bindings behind =SPC f=
* List with =l=
* Search with =s=
* Insert with =i=
* Describe with =d=
#+begin_src emacs-lisp
;; (dotfiles/leader
;; "f" '(:ignore t :which-key "Emojify")
;; "fl" '(emojify-list-emojis :which-key "List")
;; "fs" '(emojify-apropos-emoji :which-key "Search")
;; "fi" '(emojify-insert-emoji :which-key "Insert")
;; "fd" '(emojify-describe-emoji :which-key "Describe"))
#+end_src
* Line numbering * Line numbering
Relative line numbers are important when using VI emulation keys. You can prefix commands with a number, allowing you to perform that action that number of times. Useful when navigating around pages that are hundreds, or even thousands of lines long. Relative line numbers are important when using VI emulation keys. You can prefix commands with a number, allowing you to perform that action that number of times. Useful when navigating around pages that are hundreds, or even thousands of lines long.
@ -250,26 +148,6 @@ Toggle line numbers with =SPC t l=.
"tl" '(linum-relative-global-mode :which-key "Lines")) "tl" '(linum-relative-global-mode :which-key "Lines"))
#+end_src #+end_src
* Parenthesis
Colourize nested parenthesis with *Rainbow delimeters*[fn:11].
#+begin_src emacs-lisp
(use-package rainbow-delimiters
:hook (prog-mode . rainbow-delimiters-mode))
#+end_src
* Superstar
Make headline stars *super* with *Org superstar mode*[fn:12].
#+begin_src emacs-lisp
(use-package org-superstar
:when (window-system)
:after org
:hook (org-mode . org-superstar-mode))
#+end_src
* Footnotes * Footnotes
[fn:1] https://github.com/abo-abo/swiper [fn:1] https://github.com/abo-abo/swiper

24
modules/org.org

@ -8,11 +8,11 @@
#+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil #+OPTIONS: num:nil toc:nil todo:nil tasks:nil tags:nil
#+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil #+OPTIONS: skip:nil author:nil email:nil creator:nil timestamp:nil
Organize your plain-life in plain-text. The hallmark feature of Emacs, ~org-mode~ is the king of markup languages. It has rich feature support for project management, scheduling, development, and writing. It's hard to convey everything within its capabilities.
Organize your plain-life in plain-text. The hallmark feature of Emacs, ~org-mode~[fn:1] is the king of markup languages. It has rich feature support for project management, scheduling, development, and writing. It's hard to convey everything within its capabilities.
* Hook
* Setup
Define a custom hook when ~org-mode~ is enabled to customize the experience:
Define a custom hook when ~org-mode~[fn:1] is enabled to customize the experience:
+ Enable ~org-indent-mode~ to indent and align text with the parent heading + Enable ~org-indent-mode~ to indent and align text with the parent heading
+ Enable ~visual-line-mode~ to allow text to overflow and wrap to the next visual line + Enable ~visual-line-mode~ to allow text to overflow and wrap to the next visual line
@ -25,9 +25,9 @@ Define a custom hook when ~org-mode~ is enabled to customize the experience:
(variable-pitch-mode 1)) ;; Enable monospaced fonts. (variable-pitch-mode 1)) ;; Enable monospaced fonts.
#+end_src #+end_src
* Setup
* Config
Force ~straight~ to ignore the local version of ~org-mode~, instead downloading the most recent version available.
Force ~straight~ to ignore the local version of ~org-mode~[fn:1], instead downloading the most recent version available.
#+begin_src emacs-lisp #+begin_src emacs-lisp
(straight-use-package '(org :local-repo nil)) (straight-use-package '(org :local-repo nil))
@ -65,6 +65,17 @@ Setup the default babel languages and structure templates, and apply customizati
(emacs-lisp . t)))) (emacs-lisp . t))))
#+end_src #+end_src
** Headline stars
Make the headline stars a bit more *super* with ~org-superstar-mode~[fn:2]. Only enable this inside of a window system, as the effect can be distracting on the TTY.
#+begin_src emacs-lisp
(use-package org-superstar
:when (window-system)
:after org
:hook (org-mode . org-superstar-mode))
#+end_src
* Methods * Methods
Define some custom methods for use in the rest of the configuration. Define some custom methods for use in the rest of the configuration.
@ -100,3 +111,6 @@ Function that takes in a system and configuration file path, checks to see if th
* Footnotes * Footnotes
[fn:1] https://orgmode.org
[fn:2] https://github.com/integral-dw/org-superstar-mode
Loading…
Cancel
Save