Move a few more sections to suitable headings

Re-enable display time and battery (if applicable) in modeline,
re-enable line and column number in mode line.

Make electric-pair-mode local to prog-mode buffers only

Disable which-function-mode

Move font showcase to be a subheading of UI and Appearance section
This commit is contained in:
Evie Litherland-Smith 2024-08-07 10:10:38 +01:00
parent 59897ab9fc
commit 4e0e1c131e

View file

@ -101,13 +101,67 @@ Configure the look and feel of Emacs
compilation-scroll-output t)
(global-prettify-symbols-mode +1)
(which-function-mode +1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
#+end_src
*** Theme and Icons
#+begin_src emacs-lisp
(use-package base16-theme
:if (package-installed-p 'base16-theme)
:demand
:defines (base16-one-light-theme-colors
my/load-theme-and-configure)
:hook (server-after-make-frame . my/load-theme-and-configure)
:custom
(base16-theme-distinct-fringe-background nil)
(base16-theme-highlight-mode-line 'contrast)
:init
(defun my/load-theme-and-configure ()
"Load theme and configure some faces."
(load-theme 'base16-one-light t)
;; Change outline headers to follow rainbow order
(require 'outline)
(dolist (pairing '((outline-1 . :base08)
(outline-2 . :base09)
(outline-3 . :base0A)
(outline-4 . :base0B)
(outline-5 . :base0C)
(outline-6 . :base0D)
(outline-7 . :base0E)
(outline-8 . :base0F)))
(set-face-attribute (car pairing) nil
:foreground
(plist-get base16-one-light-theme-colors (cdr pairing)))))
:config
(if (display-graphic-p) (my/load-theme-and-configure)))
(use-package nerd-icons
:if (package-installed-p 'nerd-icons)
:functions (nerd-icons-octicon))
(use-package nerd-icons-dired
:requires nerd-icons
:hook (dired-mode))
(use-package nerd-icons-ibuffer
:requires nerd-icons
:hook (ibuffer-mode))
(use-package nerd-icons-completion
:functions nerd-icons-completion-mode
:requires nerd-icons
:hook (after-init . (lambda () (nerd-icons-completion-mode +1))))
#+end_src
*** Modeline
#+begin_src emacs-lisp
(line-number-mode +1)
(column-number-mode +1)
(size-indication-mode +1)
(which-function-mode -1)
(use-package doom-modeline
:functions (doom-modeline-mode)
:hook (after-init . (lambda () (doom-modeline-mode +1)))
:custom
(doom-modeline-checker-simple-format nil)
@ -126,6 +180,127 @@ Configure the look and feel of Emacs
gfm-mode))
:config
(set-face-attribute 'doom-modeline nil :weight 'normal))
(use-package time
:custom
(display-time-24hr-format t)
:config
(display-time-mode +1))
(require 'battery)
(when (and battery-status-function
(not ( string-match-p "unknown"
( battery-format "%B"
(funcall battery-status-function)))))
(display-battery-mode +1))
#+end_src
*** Font ligatures
#+begin_src emacs-lisp
(use-package ligature
:if (package-installed-p 'ligature)
:functions (ligature-set-ligatures
global-ligature-mode)
:config
(ligature-set-ligatures
'(text-mode prog-mode org-mode)
'("->" "-->" "--->" "=>" "==>" "===>"
"<--" "<---" "<-" "<==" "<==="
"<->" "<-->" "<--->" "<---->"
"<=>" "<==>" "<===>" "<====>"
"<=" ">=" "==" "!=" "===" "!==" "!==="
"/*" "*/" "+++" "<~~" "~~>" "<!---" "---!>"))
(global-ligature-mode +1))
#+end_src
*** Font Showcase
This is a showcase of various font and UI features to act as a
standard candle.
**** Font emphasis
Examples of:
- *Bold text*
- /Italic text/
- _Underscored text_
- =Literal text=
- ~Code~
- +Strike-through+
**** Character showcase
#+begin_example
ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ abc.def.ghi.jkl.mno.pqrs.tuv.wxyz
!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm float il1[]={1-2/3.4,5+6=7/8%90};
1234567890 ,._-+= >< «¯-¬_» ~–÷+× {*}[]()<>`+-=$/#_%^@\&|~?'" !,.;:
E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂ ЖЗКУЯжзклмнруфчьыя <= != == => ->
#+end_example
***** Legibility test
Can I tell the difference between: 1,i,I,l,L,|
How about: 0,O,o
**** Tables
| Heading 1 | Heading 2 | Plot |
|-----------+-----------+--------------|
| 1 | 1 | |
| 2 | 4 | c |
| 3 | 9 | W |
| 4 | 16 | WV |
| 5 | 25 | WWH |
| 6 | 36 | WWWW: |
| 7 | 49 | WWWWWV |
| 8 | 64 | WWWWWWWl |
| 9 | 81 | WWWWWWWWWh |
| 10 | 100 | WWWWWWWWWWWW |
#+TBLFM: $2=$1**2::$3='(orgtbl-ascii-draw $2 1 100 12)
**** Source blocks
#+begin_src python
def main(*args, **kwargs) -> None:
"""
Example docstring for function
"""
return
if __name__ == "__main__":
main()
#+end_src
**** Example prose
#+begin_quote
AMONG the many valuable contributions of William Dwight Whitney to
linguistic science is one especially important and fundamental
principle. It may be stated in these words. In explaining the
prehistoric phenomena of language we must assume no other factors than
those which we are able to observe and estimate in the historical
period of language development. The factors that produced changes in
human speech five thousand or ten thousand years ago cannot have been
essentially different from those which are now operating to transform
living languages. On the basis of this principle we look to-day at a
much-discussed problem of Indo-European philology with views very
different from the views held by the founders of Comparative Philology
and their immediate successors. I refer to the problem, how the
Indo-European people came to assign gender to nouns, to distinguish
between masculine, feminine, and neuter. This question is of interest
to others besides philologists. What man of culture who has learned
languages such as the Greek, Latin, or French has not at times
wondered that objects which have no possible connection with the
natural gender of animals appear constantly in the language as male or
female? In German, for example, it is der fuss, but die hand; der
geist, but die seele; in Latin, hīc hortus, hīc animus, hīc amor, but
haec planta, haec anima, haec felicitas; in Greek, ὁ πλοῦτος, ὁ οἶκος,
but ἡ πενία, ἡ οἰκία.
This gender distinction pervades all the older Indo-European
languages, and must therefore be regarded as having its origin in the
time of the pro-ethnic Indo-European community. Not only is the
subject itself full of interest, but also the treatment it has
received from the philological research of our century. The various
efforts made to solve the problem may very aptly illustrate an
essential difference which exists between the theories of language
development held in the beginning and middle of this century and those
which prevail to-day, — a difference of method existing not in
comparative linguistics alone, but also in other fields of
philological and historical research that border on it.
#+end_quote
** Buffer and Window management
Rules and packages for buffer management and window navigation.
#+begin_src emacs-lisp
(setq split-height-threshold nil
split-width-threshold 160)
#+end_src
** Completion
#+begin_src emacs-lisp
@ -134,7 +309,35 @@ Configure the look and feel of Emacs
completions-detailed t)
#+end_src
** Org Mode
** Email and Messaging
** Development Tools
** Calendar, Email and Messaging
*** Calendar and Appointments
#+begin_src emacs-lisp
(use-package appt
:custom
(appt-display-diary nil)
(appt-display-format 'echo))
(use-package calendar
:after appt
:bind (("C-c >" . calendar))
:hook ((calendar-today-visible . calendar-mark-today))
:custom
(calendar-date-style 'iso)
(calendar-mark-holidays-flag t)
(calendar-mark-diary-entries-flag nil)
(calendar-view-holidays-initially-flag nil)
(calendar-view-diary-initially-flag nil)
:config
(appt-activate +1)
(add-to-list 'display-buffer-alist
'("\\*Calendar\\*"
(display-buffer-in-side-window)
(side . bottom)
(slot . 0)
(window-height . 0.2)
(window-parameters . ((no-delete-other-windows . t))))))
#+end_src
*** MU4E
Configure email with iCalendar event support, to integrate with
=org-agenda=.
@ -434,7 +637,6 @@ Configure email with iCalendar event support, to integrate with
(gnus-icalendar-org-setup))
#+end_src
*** IRC
** Development Tools
** Other
** Initial copy from =init.el=
#+begin_src emacs-lisp
@ -536,31 +738,6 @@ Configure email with iCalendar event support, to integrate with
:custom
(xref-show-definitions-function 'xref-show-definitions-completing-read))
(use-package appt
:custom
(appt-display-diary nil)
(appt-display-format 'echo))
(use-package calendar
:after appt
:bind (("C-c >" . calendar))
:hook ((calendar-today-visible . calendar-mark-today))
:custom
(calendar-date-style 'iso)
(calendar-mark-holidays-flag t)
(calendar-mark-diary-entries-flag nil)
(calendar-view-holidays-initially-flag nil)
(calendar-view-diary-initially-flag nil)
:config
(appt-activate +1)
(add-to-list 'display-buffer-alist
'("\\*Calendar\\*"
(display-buffer-in-side-window)
(side . bottom)
(slot . 0)
(window-height . 0.2)
(window-parameters . ((no-delete-other-windows . t))))))
(add-hook 'prog-mode-hook #'(lambda () (display-line-numbers-mode +1)))
(use-package which-key
@ -569,8 +746,7 @@ Configure email with iCalendar event support, to integrate with
:config (which-key-mode +1))
(use-package elec-pair
:config
(electric-pair-mode +1))
:hook (prog-mode . (lambda () (electric-pair-local-mode +1))))
(use-package paren
:config
@ -582,68 +758,6 @@ Configure email with iCalendar event support, to integrate with
"Pulse the current line."
(pulse-momentary-highlight-one-line (point)))
(use-package base16-theme
:if (package-installed-p 'base16-theme)
:demand
:defines (base16-one-light-theme-colors
my/load-theme-and-configure)
:hook (server-after-make-frame . my/load-theme-and-configure)
:custom
(base16-theme-distinct-fringe-background nil)
(base16-theme-highlight-mode-line 'contrast)
:init
(defun my/load-theme-and-configure ()
"Load theme and configure some faces."
(load-theme 'base16-one-light t)
;; Change outline headers to follow rainbow order
(require 'outline)
(dolist (pairing '((outline-1 . :base08)
(outline-2 . :base09)
(outline-3 . :base0A)
(outline-4 . :base0B)
(outline-5 . :base0C)
(outline-6 . :base0D)
(outline-7 . :base0E)
(outline-8 . :base0F)))
(set-face-attribute (car pairing) nil
:foreground
(plist-get base16-one-light-theme-colors (cdr pairing)))))
:config
(if (display-graphic-p) (my/load-theme-and-configure)))
(use-package nerd-icons
:if (package-installed-p 'nerd-icons)
:functions (nerd-icons-octicon))
(use-package nerd-icons-dired
:requires nerd-icons
:hook (dired-mode))
(use-package nerd-icons-ibuffer
:requires nerd-icons
:hook (ibuffer-mode))
(use-package nerd-icons-completion
:functions nerd-icons-completion-mode
:requires nerd-icons
:hook (after-init . (lambda () (nerd-icons-completion-mode +1))))
(use-package ligature
:if (package-installed-p 'ligature)
:functions (ligature-set-ligatures
global-ligature-mode)
:config
(ligature-set-ligatures
'(text-mode prog-mode org-mode)
'("->" "-->" "--->" "=>" "==>" "===>"
"<--" "<---" "<-" "<==" "<==="
"<->" "<-->" "<--->" "<---->"
"<=>" "<==>" "<===>" "<====>"
"<=" ">=" "==" "!=" "===" "!==" "!==="
"/*" "*/" "+++" "<~~" "~~>" "<!---" "---!>"))
(global-ligature-mode +1))
(use-package whitespace
:custom
(whitespace-style '(face
@ -655,23 +769,6 @@ Configure email with iCalendar event support, to integrate with
cleanup
auto-cleanup)))
(setq mode-line-compact 'long)
(line-number-mode -1)
(column-number-mode -1)
(size-indication-mode +1)
;; (require 'battery)
;; (when (and battery-status-function
;; (not ( string-match-p "unknown"
;; ( battery-format "%B"
;; (funcall battery-status-function)))))
;; (display-battery-mode +1))
(use-package time
:custom
(display-time-24hr-format t))
(use-package diff-hl
:if (package-installed-p 'diff-hl)
:functions (diff-hl-magit-pre-refresh
@ -686,9 +783,6 @@ Configure email with iCalendar event support, to integrate with
:config
(global-diff-hl-mode))
(setq split-height-threshold nil
split-width-threshold 160)
(use-package winner
:demand
:config
@ -806,7 +900,6 @@ Configure email with iCalendar event support, to integrate with
(use-package org-refile
:after (org org-agenda)
:bind ("M-g r" . org-refile-goto-last-stored)
:custom
(org-outline-path-complete-in-steps nil)
(org-refile-use-outline-path t)
@ -839,8 +932,7 @@ Configure email with iCalendar event support, to integrate with
(use-package org-capture
:after org
:bind (("C-c o n" . org-capture)
("M-g o" . org-capture-goto-last-stored))
:bind (("C-c o n" . org-capture))
:custom (org-capture-templates
'(("t" "TODO" entry
(file+olp "tasks.org.gpg" "Inbox")
@ -1547,87 +1639,3 @@ Configure email with iCalendar event support, to integrate with
(keymap-global-set "C-c w d" #'my/open-documents-directory)
(keymap-global-set "C-c w C-d" #'my/open-downloads-directory)
#+end_src
* Font Showcase
This is a showcase of various font features to act as a standard
candle.
** Font emphasis
Examples of:
- *Bold text*
- /Italic text/
- _Underscored text_
- =Literal text=
- ~Code~
- +Strike-through+
** Character showcase
#+begin_example
ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ abc.def.ghi.jkl.mno.pqrs.tuv.wxyz
!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm float il1[]={1-2/3.4,5+6=7/8%90};
1234567890 ,._-+= >< «¯-¬_» ~–÷+× {*}[]()<>`+-=$/#_%^@\&|~?'" !,.;:
E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂ ЖЗКУЯжзклмнруфчьыя <= != == => ->
#+end_example
*** Legibility test
Can I tell the difference between: 1,i,I,l,L,|
How about: 0,O,o
** Tables
| Heading 1 | Heading 2 | Plot |
|-----------+-----------+--------------|
| 1 | 1 | |
| 2 | 4 | c |
| 3 | 9 | W |
| 4 | 16 | WV |
| 5 | 25 | WWH |
| 6 | 36 | WWWW: |
| 7 | 49 | WWWWWV |
| 8 | 64 | WWWWWWWl |
| 9 | 81 | WWWWWWWWWh |
| 10 | 100 | WWWWWWWWWWWW |
#+TBLFM: $2=$1**2::$3='(orgtbl-ascii-draw $2 1 100 12)
** Source blocks
#+begin_src python
def main(*args, **kwargs) -> None:
"""
Example docstring for function
"""
return
if __name__ == "__main__":
main()
#+end_src
** Example prose
#+begin_quote
AMONG the many valuable contributions of William Dwight Whitney to
linguistic science is one especially important and fundamental
principle. It may be stated in these words. In explaining the
prehistoric phenomena of language we must assume no other factors than
those which we are able to observe and estimate in the historical
period of language development. The factors that produced changes in
human speech five thousand or ten thousand years ago cannot have been
essentially different from those which are now operating to transform
living languages. On the basis of this principle we look to-day at a
much-discussed problem of Indo-European philology with views very
different from the views held by the founders of Comparative Philology
and their immediate successors. I refer to the problem, how the
Indo-European people came to assign gender to nouns, to distinguish
between masculine, feminine, and neuter. This question is of interest
to others besides philologists. What man of culture who has learned
languages such as the Greek, Latin, or French has not at times
wondered that objects which have no possible connection with the
natural gender of animals appear constantly in the language as male or
female? In German, for example, it is der fuss, but die hand; der
geist, but die seele; in Latin, hīc hortus, hīc animus, hīc amor, but
haec planta, haec anima, haec felicitas; in Greek, ὁ πλοῦτος, ὁ οἶκος,
but ἡ πενία, ἡ οἰκία.
This gender distinction pervades all the older Indo-European
languages, and must therefore be regarded as having its origin in the
time of the pro-ethnic Indo-European community. Not only is the
subject itself full of interest, but also the treatment it has
received from the philological research of our century. The various
efforts made to solve the problem may very aptly illustrate an
essential difference which exists between the theories of language
development held in the beginning and middle of this century and those
which prevail to-day, — a difference of method existing not in
comparative linguistics alone, but also in other fields of
philological and historical research that border on it.
#+end_quote