diff options
Diffstat (limited to 'Emacs/.config/emacs')
-rw-r--r-- | Emacs/.config/emacs/.config/elfeed/feeds.org | 36 | ||||
-rw-r--r-- | Emacs/.config/emacs/.var/gamegrid-user-score/tetris-scores | 7 | ||||
-rw-r--r-- | Emacs/.config/emacs/config.org | 304 | ||||
-rw-r--r-- | Emacs/.config/emacs/elisp/elfeed-org.el | 20 | ||||
-rw-r--r-- | Emacs/.config/emacs/elisp/eshell-additions.el | 15 | ||||
-rw-r--r-- | Emacs/.config/emacs/elisp/eshell-prompt.el | 89 | ||||
-rw-r--r-- | Emacs/.config/emacs/elisp/personal-light-theme.el | 13 | ||||
-rw-r--r-- | Emacs/.config/emacs/elisp/personal-solarized-theme.el | 104 | ||||
-rw-r--r-- | Emacs/.config/emacs/init.el | 6 |
9 files changed, 274 insertions, 320 deletions
diff --git a/Emacs/.config/emacs/.config/elfeed/feeds.org b/Emacs/.config/emacs/.config/elfeed/feeds.org deleted file mode 100644 index 80921e7..0000000 --- a/Emacs/.config/emacs/.config/elfeed/feeds.org +++ /dev/null @@ -1,36 +0,0 @@ -#+title: RSS Feeds -#+author: Aryadev Chavali -#+date: 2025-02-17 - -* News :news: -** [[https://www.archlinux.org/feeds/news/][Arch Linux]] -** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCEDEqT7DeUJyVNc5QpwSTgQ][Barely Informed]] -* Social :social: -** [[https://news.ycombinator.com/rss][Hacker News]] :tech: -** [[https://www.theonion.com/rss][The Onion]] -** [[https://www.hackerfactor.com/blog/index.php?/feeds/index.rss2][Hacker Factor]] :tech: -* YouTube :youtube: -** Educational :educational: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC0uTPqBCFIpZxlz_Lv1tk_g][Protesilaos Stavrou]] :tech: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding Daily]] :tech: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCrqM0Ym_NbK1fqeQG2VIohg][Tsoding]] :tech: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCaTznQhurW5AaiYPbhEA-KA][Molly Rocket]] :tech: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCYO_jab_esuFRV4b17AJtAw][3B1B]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC6_J0wZdqcoRVs0Mck922SQ][Sheafification of G]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCr_Q-bPpcw5fJ-Oow1BW1NQ][Kraut]] :news: -** Tech :tech: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCfJRkBBiPtKZyZn_3PxWaiQ][Internet of Bugs]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC7YOGHUfC1Tb6E4pudI9STA][Mental Outlaw]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCgBVkKoOAr3ajSdFFLp13_A][KRAZAM]] -** Stories :stories: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCbWcXB0PoqOsAvAdfzWMf0w][Fredrik Knusden]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC9PIn6-XuRKZ5HmYeu46AIw][Barely Sociable]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCn8OYopT9e8tng-CGEWzfmw][Atrocity Guide]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC7dHBh9QmYF1L0TOeGIzZgw][Lazy Masquerade]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCjDQKxiTVpXutZc2Ra9wCAg][Oki's Weird Stories]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCyNtlmLB73-7gtlBz00XOQQ][Folding Ideas]] -** Misc :misc: -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCZ1q3ZqXAFCvym4jrGozdRg][The Elephant Graveyard]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UC3cpN6gcJQqcCM6mxRUo_dA][Wendigoon]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCm22FAXZMw1BaWeFszZxUKw][Kitboga]] -*** [[https://www.youtube.com/feeds/videos.xml?channel_id=UCxSwqqnJp9HsW0hBrHcp1FQ][Flesh Simulator]] diff --git a/Emacs/.config/emacs/.var/gamegrid-user-score/tetris-scores b/Emacs/.config/emacs/.var/gamegrid-user-score/tetris-scores index a85dc51..9184e6e 100644 --- a/Emacs/.config/emacs/.var/gamegrid-user-score/tetris-scores +++ b/Emacs/.config/emacs/.var/gamegrid-user-score/tetris-scores @@ -1,5 +1,6 @@ 00458 Tue Oct 1 18:22:44 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00424 Tue Oct 1 14:20:22 2024 Aryadev Chavali <aryadev@aryadevchavali.com> +00288 Sun Jun 1 14:24:57 2025 Aryadev Chavali <aryadev@aryadevchavali.com> 00281 Thu Jul 13 03:07:51 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00267 Fri Aug 16 10:54:52 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00253 Fri Dec 2 14:00:06 2022 Aryadev Chavali <aryadev@aryadevchavali.com> @@ -9,8 +10,8 @@ 00204 Wed Dec 28 14:50:42 2022 Aryadev Chavali <aryadev@aryadevchavali.com> 00187 Thu Jan 12 01:30:09 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00172 Mon Jan 9 12:59:13 2023 Aryadev Chavali <aryadev@aryadevchavali.com> -00166 Fri Aug 16 11:05:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00166 Mon May 6 02:40:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com> +00166 Fri Aug 16 11:05:23 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00120 Thu Aug 29 18:45:32 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00114 Fri Jul 21 11:58:31 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00096 Sat Dec 3 16:21:40 2022 Aryadev Chavali <aryadev@aryadevchavali.com> @@ -26,12 +27,12 @@ 00048 Sun May 5 19:34:16 2024 Aryadev Chavali <aryadev@aryadevchavali.com> 00046 Wed Oct 12 11:27:19 2022 Aryadev Chavali <aryadev@aryadevchavali.com> 00042 Tue Aug 1 19:58:49 2023 Aryadev Chavali <aryadev@aryadevchavali.com> -00038 Tue Oct 11 16:47:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com> 00038 Fri Oct 14 13:05:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com> +00038 Tue Oct 11 16:47:44 2022 Aryadev Chavali <aryadev@aryadevchavali.com> 00037 Thu Aug 17 18:11:59 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00027 Thu Jan 12 01:14:32 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00024 Thu Jan 12 01:14:54 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00012 Tue Jan 17 13:58:01 2023 Aryadev Chavali <aryadev@aryadevchavali.com> -00006 Thu Jun 22 23:16:42 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00006 Mon Jan 9 11:04:43 2023 Aryadev Chavali <aryadev@aryadevchavali.com> +00006 Thu Jun 22 23:16:42 2023 Aryadev Chavali <aryadev@aryadevchavali.com> 00000 Fri Dec 2 13:58:02 2022 Aryadev Chavali <aryadev@aryadevchavali.com> diff --git a/Emacs/.config/emacs/config.org b/Emacs/.config/emacs/config.org index 04c6ac7..020a382 100644 --- a/Emacs/.config/emacs/config.org +++ b/Emacs/.config/emacs/config.org @@ -15,6 +15,7 @@ Welcome to my Emacs configuration. You may be confused by the fact it's a readable document with prose; this file serves as both documentation *and* code. Here's an example of some Emacs Lisp code: + #+begin_src emacs-lisp ;;; config.el --- Compiled configuration from config.org -*- lexical-binding: t; -*- @@ -99,12 +100,7 @@ Let's setup a few absolute essentials: warning-minimum-level :error) :config (fset 'yes-or-no-p 'y-or-n-p) - (global-auto-revert-mode) - (let ((font-size (pcase (system-name) - ("rhmaiden" 150) - (_ 120)))) - (set-face-attribute 'default nil :height font-size) - (set-face-attribute 'mode-line nil :height font-size))) + (global-auto-revert-mode)) #+end_src * Custom functionality and libraries This is custom Lisp that I or someone else has written which I really @@ -263,20 +259,18 @@ also added to `enable-theme-functions` such that loading a theme will forcefully adjust the font size. #+begin_src emacs-lisp -(defun +oreo/--font-multiplier () - (pcase (display-pixel-width) - ((pred (>= 1920)) 0.9) - ((pred (>= 2560)) 1.24))) - (defun +oreo/font-reset (&optional theme) - (let ((font-size (thread-first - (pcase (system-name) - ("rhmaiden" 140) - (_ 120)) - (* (+oreo/--font-multiplier)) - floor))) - (set-face-attribute 'default nil :height font-size) - (set-face-attribute 'mode-line nil :height font-size))) + (--> + (* (pcase (system-name) ; get a fixed base value based on the machine + ("rhmaiden" 140) + (_ 120)) + (pcase (display-pixel-width) ; get a multiplier based on resolution + ((pred (>= 1920)) 0.9) + ((pred (>= 2560)) 1.24))) + floor + (progn + (set-face-attribute 'default nil :height it) + (set-face-attribute 'mode-line nil :height it)))) (add-to-list 'enable-theme-functions #'+oreo/font-reset) #+end_src @@ -403,6 +397,11 @@ global scope, namely: :keymaps 'override :prefix "SPC d") + (general-create-definer org-leader + :states '(normal motion) + :keymaps 'override + :prefix "SPC o") + (general-create-definer general-nmmap :states '(normal motion)) @@ -733,8 +732,8 @@ vertico for specific forms. *** Embark I'm very late to the party here - mostly because I didn't see much point in this. However, after seeing that [[*empv][empv]] had some -embark bindings for cool behaviours (such as altering playlists) I had -to try it out - and I was not disappointed. +embark bindings for cool behaviours (such as moving tracks around on +the live playlist) I had to try it out - and I was not disappointed. ~embark-act~ is the entry point to using embark, and you can use it basically anywhere to great effect. Searching a buffer via @@ -765,7 +764,7 @@ embark act more like how you wish, which I've barely touch on here. (side . bottom) (window-height . 0.25) (window-parameters (mode-line-format . none))) - embark-prompter 'embark-completing-read-prompter + embark-prompter 'embark-keymap-prompter embark-indicators '(embark-highlight-indicator) embark-help-key "?" embark-keymap-prompter-key "#" @@ -788,7 +787,13 @@ search system. :init (setq consult-preview-excluded-buffers nil consult-preview-excluded-files '("\\`/[^/|:]+:") - consult-preview-key "M-'") + consult-preview-key 'any + consult-ripgrep-args "rg --null --line-buffered --color=never \ + --max-columns=1000 --path-separator / \ + --smart-case --no-heading \ + --with-filename --line-number \ + --search-zip --hidden" + consult-fd-args "fd --full-path --color=never -H") :general ([remap imenu] #'consult-imenu [remap switch-to-buffer] #'consult-buffer @@ -796,7 +801,11 @@ search system. (leader "'" #'consult-register) (search-leader - "s" #'consult-line) + "s" #'consult-line + "r" #'consult-ripgrep + "f" #'consult-fd + "o" #'consult-org-agenda + "e" #'consult-compile-error) :config (with-eval-after-load "vertico-multiform" (add-multiple-to-list vertico-multiform-commands @@ -949,25 +958,20 @@ other themes in a list. :hook (after-init-hook . +oreo/load-theme) :init (setq custom-theme-directory (concat user-emacs-directory "elisp/")) - (defvar +oreo/theme-list `(personal-solarized tsdh-light)) + (defvar +oreo/theme-list `(personal-solarized leuven)) (defvar +oreo/theme 0) :config (defun +oreo/load-theme () "Load `+oreo/theme', disabling all other themes to reduce conflict." (mapc #'disable-theme custom-enabled-themes) - (cl-loop - for theme in +oreo/theme-list - for i from 0 - if (not (= i +oreo/theme)) - do (disable-theme theme)) (load-theme (nth +oreo/theme +oreo/theme-list) t)) (defun +oreo/switch-theme () "Flip between different themes set in `+oreo/theme-alist'." - (setq +oreo/theme (mod (+ 1 +oreo/theme) (length +oreo/theme-list))) - (+oreo/load-theme)) - - (+oreo/load-theme)) + (thread-last (length +oreo/theme-list) + (mod (+ 1 +oreo/theme)) + (setq +oreo/theme)) + (+oreo/load-theme))) #+end_src ** Startup screen The default startup screen is quite bad in all honesty. While for a @@ -1130,10 +1134,16 @@ I also setup the ~pixel-scroll-mode~ to make scrolling nicer looking. (pixel-scroll-precision-mode t)) #+end_src ** Display line numbers -I don't really like line numbers, I find them similar to -[[*Fringes][fringes]] (useless space), but at least it provides some -information. Sometimes it can help with doing repeated commands so a -toggle option is necessary. +Line numbers are nice - not for referencing specific lines by hand +(why not use [[*compile-mode][compile-mode]] or ~M-x goto-line~?) but +for relative vim motions: for example, d3j deletes 3 lines down and +having the number of lines directly in front of you can be invaluable. + +2025-06-02: there's a specific option, +~display-line-numbers-width-start~, which when set to ~t~ +automatically calculates the maximum width required to display all +line numbers. This solves all the weird artifacting issues I was +having with really large documents (such as this one). #+begin_src emacs-lisp (use-package display-line-numbers @@ -1144,7 +1154,8 @@ toggle option is necessary. (mode-leader "l" #'display-line-numbers-mode) :init - (setq-default display-line-numbers-type 'relative)) + (setq-default display-line-numbers-type 'relative + display-line-numbers-width-start t)) #+end_src ** Pulsar Similar to how [[*Evil goggles][Evil goggles]] highlights Evil @@ -1965,7 +1976,6 @@ most distribution nowadays. :general (search-leader "g" #'grep-this-file - "c" #'grep-config-file "d" #'rgrep) (nmmap :keymaps 'grep-mode-map @@ -1982,23 +1992,18 @@ most distribution nowadays. ;; Without this wgrep doesn't work properly (evil-set-initial-state 'grep-mode 'normal) - (defun grep-file (query filename) - (grep (format "grep --color=auto -nIiHZEe \"%s\" -- %s" - query filename))) + (defmacro grep-file (query filename) + `(grep (format "grep --color=auto -nIiHE --null -e \"%s\" %s" + ,query ,filename))) (defun grep-this-file () (interactive) - (let ((query (read-string "Search for: "))) - (if (buffer-file-name (current-buffer)) - (grep-file query (buffer-file-name (current-buffer))) - (let ((temp-file (make-temp-file "temp-grep"))) - (write-region (point-min) (point-max) temp-file) - (grep-file query temp-file))))) - - (defun grep-config-file () - (interactive) - (let ((query (read-string "Search for: " "^[*]+ .*"))) - (grep-file query (concat user-emacs-directory "config.org"))))) + (let ((query (read-string "Search for: ")) + (filename (or (buffer-file-name (current-buffer)) + (let ((temp-file (make-temp-file "temp-grep"))) + (write-region (point-min) (point-max) temp-file) + temp-file)))) + (grep-file query filename)))) #+end_src *** rg #+begin_src emacs-lisp @@ -2012,7 +2017,7 @@ most distribution nowadays. (window-height . 0.35)) :general (search-leader - "r" #'rg) + "R" #'rg-menu) (:keymaps 'project-prefix-map "t" #'+rg/project-todo) (nmmap @@ -2093,14 +2098,14 @@ to elfeed for loading the system. (funcall option url))))) #+end_src *** Elfeed-org +A small self-written package to load an org file as a set of elfeed +feeds. #+begin_src emacs-lisp (use-package elfeed-org :load-path "elisp/" :after elfeed :init - (thread-last "elfeed/feeds.org" - no-littering-expand-etc-file-name - (setq elfeed-org/file)) + (setq elfeed-org/file (concat org-directory "feeds.org")) :config (elfeed-org)) #+end_src @@ -2705,11 +2710,10 @@ description I give won't do it justice. #+begin_src emacs-lisp (use-package aggressive-indent :straight t - :hook (emacs-lisp-mode-hook . aggressive-indent-mode) - :hook (scheme-mode-hook . aggressive-indent-mode) - :hook (lisp-mode-hook . aggressive-indent-mode)) + :hook ((scheme-mode-hook lisp-mode-hook emacs-lisp-mode-hook) + . aggressive-indent-mode)) #+end_src -** Compilation +** compile-mode Compilation mode is an incredibly useful subsystem of Emacs which allows one to run arbitrary commands. If those commands produce errors (particularly errors that have a filename, column and line) @@ -2758,12 +2762,12 @@ so you can actually read the text. (add-hook 'compilation-filter-hook #'ansi-color-compilation-filter)) #+end_src ** xref -Find definitions, references and general objects using tags without +Find definitions, references, and general objects using TAGS without external packages. Provided out of the box with Emacs, but requires a way of generating a =TAGS= file for your project (look at -[[*Project.el][Project.el]] for my way of doing so). A critical -component in a minimal setup for programming without heavier systems -like [[*Eglot][Eglot]]. +[[*Project.el][Project.el]] for my way of doing so). The heaviest +lifter in a minimal setup for programming without more extensive +systems like [[*Eglot][Eglot]]. #+begin_src emacs-lisp (use-package xref @@ -2792,11 +2796,10 @@ like [[*Eglot][Eglot]]. #+end_src ** devdocs When man pages aren't enough, you need some documentation lookup -system (basically whenever your using anything but C/C++/Bash). -[[https://devdocs.io][Devdocs]] is a great little website that -provides a ton of documentation sets. There's an Emacs package for it -which works well and downloads documentation sets to my machine, which -is nice. +system. [[https://devdocs.io][Devdocs]] is a great little website +that provides a ton of documentation sets. There's an Emacs package +for it which works well and downloads documentation sets to my +machine, which is nice. #+begin_src emacs-lisp (use-package devdocs @@ -2808,7 +2811,7 @@ is nice. #+end_src ** rainbow-delimiters Makes colours delimiters (parentheses) based on their depth in an -expression. Rainbow flag in your Lisp source code. +expression. LGBTQIA+ flag in your Lisp source code. #+begin_src emacs-lisp (use-package rainbow-delimiters @@ -2817,7 +2820,8 @@ expression. Rainbow flag in your Lisp source code. :general (mode-leader "r" #'rainbow-delimiters-mode) :hook - ((lisp-mode-hook emacs-lisp-mode-hook racket-mode-hook) . rainbow-delimiters-mode)) + ((lisp-mode-hook emacs-lisp-mode-hook racket-mode-hook) + . rainbow-delimiters-mode)) #+end_src ** Licensing Loads [[file:elisp/license.el][license.el]] for inserting licenses. @@ -2879,52 +2883,6 @@ capabilities, some are: I'd argue this is a bit more than a markup language. Like [[*Magit][Magit]], some use Emacs just for this system. -*** Org Essentials -Org has a ton of settings to tweak, which change your experience quite -a bit. Here are mine, but this took a lot of just reading other -people's configurations and testing. I don't do a good job of -explaining how this works in all honesty, but it works well for me so -I'm not very bothered. - -+ By default =~/Text= is my directory for text files. I actually have - a repository that manages this directory for agenda files and other - documents -+ Indentation in file should not be allowed, i.e. text indentation, as - that forces other editors to read it a certain way as well. It's - obtrusive hence it's off. -+ Org startup indented is on by default as most documents do benefit - from the indentation, but I do turn it off for some files via - ~#+startup:noindent~ -+ When opening an org document there can be a lot of headings, so I - set folding to just content -+ Org documents can also have a lot of latex previews, which make - opening some after a while a massive hassle. If I want to see the - preview, I'll do it myself, so turn it off. -+ Org manages windowing itself, to some extent, so I set those options - to be as unobtrusive as possible -+ Load languages I use in =src= blocks in org-mode (Emacs-lisp for - this configuration, C and Python) - -#+begin_src emacs-lisp -(use-package org - :defer t - :init - (setq org-directory "~/Text/" - org-adapt-indentation nil - org-indent-mode nil - org-startup-indented nil - org-startup-folded 'showeverything - org-startup-with-latex-preview nil - org-imenu-depth 10 - org-src-window-setup 'current-window - org-indirect-buffer-display 'current-window - org-link-frame-setup '((vm . vm-visit-folder-other-frame) - (vm-imap . vm-visit-imap-folder-other-frame) - (file . find-file)) - org-babel-load-languages '((emacs-lisp . t) - (lisp . t) - (shell . t)))) -#+end_src *** Org Latex Org mode has deep integration with latex, can export to PDF and even display latex fragments in the document directly. I setup the @@ -2961,18 +2919,26 @@ for latex fragments. ("breaklines" "true") ("breakanywhere" "true")))) #+end_src -*** Org Core Variables +*** Org Variables Tons of variables for org-mode, including a ton of latex ones. Can't -really explain because it sets up quite a lot of local stuff. Also I -copy pasted the majority of this, tweaking it till it felt good. Doom -Emacs was very helpful here. +really explain because it sets up quite a lot of local stuff. Look at +the [[info:org#Top][org Info]] document for information regarding +this. + +Also I copy pasted the majority of this, tweaking it till it +felt good. Doom Emacs was very helpful here. #+begin_src emacs-lisp (use-package org :defer t :init - (setq org-edit-src-content-indentation 0 + (setq org-adapt-indentation nil + org-babel-load-languages '((emacs-lisp . t) + (lisp . t) + (shell . t)) org-bookmark-names-plist nil + org-directory "~/Text/" + org-edit-src-content-indentation 0 org-eldoc-breadcrumb-separator " → " org-enforce-todo-dependencies t org-export-backends '(ascii html latex odt icalendar) @@ -2983,15 +2949,25 @@ Emacs was very helpful here. org-hide-leading-stars t org-image-actual-width nil org-imenu-depth 10 + org-imenu-depth 10 + org-indent-mode nil + org-indirect-buffer-display 'current-window org-link-descriptive nil + org-link-frame-setup '((vm . vm-visit-folder-other-frame) + (vm-imap . vm-visit-imap-folder-other-frame) + (file . find-file)) org-priority-faces '((?A . error) (?B . warning) (?C . success)) org-refile-targets '((nil . (:maxlevel . 2))) + org-src-window-setup 'current-window + org-startup-folded 'showeverything + org-startup-indented nil + org-startup-with-latex-preview nil org-tags-column 0 org-todo-keywords '((sequence "TODO" "WIP" "DONE") (sequence "PROJ" "WAIT" "COMPLETE")) org-use-sub-superscripts '{})) #+end_src -*** Org Core Functionality +*** Org Functionality Hooks, prettify-symbols and records for auto insertion. #+begin_src emacs-lisp @@ -3011,7 +2987,7 @@ Hooks, prettify-symbols and records for auto insertion. "#+date: " (format-time-string "%Y-%m-%d" (current-time)) "\n" "* " _)) #+end_src -*** Org Core Bindings +*** Org Bindings A load of bindings for org-mode which binds together a lot of functionality. It's best to read it yourself; to describe it is to write the code. @@ -3025,18 +3001,19 @@ write the code. :keymaps 'org-mode-map [remap imenu] #'consult-outline)) :general - (nmmap - "M-F" #'org-open-at-point) + (leader + ";" #'org-agenda) + + (org-leader + "l" #'org-store-link + "d" #'org-babel-detangle + "i" #'org-insert-last-stored-link + "o" #'org-open-at-point) + (nmmap :keymaps 'org-mode-map "TAB" #'org-cycle) - (file-leader - "l" #'org-store-link) - (insert-leader - "o" #'org-insert-last-stored-link) - (code-leader - :keymaps 'emacs-lisp-mode-map - "D" #'org-babel-detangle) + (local-leader :states '(normal motion) :keymaps 'org-mode-map @@ -3052,12 +3029,14 @@ write the code. "o" #'org-edit-special "R" #'org-refile "O" #'org-open-at-point) + (local-leader :keymaps 'org-mode-map :infix "l" "i" #'org-insert-link "l" #'org-open-at-point "f" #'org-footnote-action) + (local-leader :keymaps 'org-mode-map :infix "'" @@ -3068,6 +3047,7 @@ write the code. "s" #'org-table-sum "e" #'org-table-calc-current-TBLFM "E" #'org-table-eval-formula) + (local-leader :keymaps 'org-src-mode-map "o" #'org-edit-src-exit)) @@ -3080,25 +3060,20 @@ a very tidy way to manage your time. (use-package org-agenda :defer t :init - (defconst +org/agenda-root "~/Text/" - "Root directory for all agenda files") - (setq org-agenda-files (list (expand-file-name +org/agenda-root)) - org-agenda-window-setup 'current-window + (setq org-agenda-window-setup 'current-window org-agenda-skip-deadline-prewarning-if-scheduled t org-agenda-skip-scheduled-if-done t org-agenda-skip-deadline-if-done t - org-agenda-start-with-entry-text-mode nil) + org-agenda-start-with-entry-text-mode nil + org-agenda-span 'day) :config (evil-set-initial-state 'org-agenda-mode 'normal) :general (file-leader "a" (proc-int - (--> (directory-files (car org-agenda-files)) - (mapcar #'(lambda (x) (concat (car org-agenda-files) x)) it) - (completing-read "Enter directory: " it nil t) - (find-file it)))) - (app-leader - "a" #'org-agenda) + (--> org-agenda-files + (completing-read "Enter file: " it nil t) + (find-file it)))) (nmmap :keymaps 'org-agenda-mode-map "zd" #'org-agenda-day-view @@ -3114,7 +3089,7 @@ a very tidy way to manage your time. "q" #'org-agenda-quit "r" #'org-agenda-redo)) #+end_src -*** Org capture +*** Org Capture Org capture provides a system for quickly "capturing" some information into an org file. A classic example is creating a new TODO in a todo file, where the bare minimum to record one is: @@ -3129,10 +3104,9 @@ todo file directly. :defer t :init (setq - org-default-notes-file (concat org-directory "todo.org") org-capture-templates '(("t" "Todo" entry - (file "") + (file "general.org") "* TODO %? %T %a") @@ -3144,15 +3118,15 @@ todo file directly. %? ,#+end_quote"))) :general - (leader - "C" #'org-capture) + (org-leader + "c" #'org-capture) (nmmap :keymaps 'org-capture-mode-map "ZZ" #'org-capture-finalize "ZR" #'org-capture-refile "ZQ" #'org-capture-kill)) #+end_src -*** WAIT Org clock-in +*** WAIT Org Clock-in :PROPERTIES: :header-args:emacs-lisp: :tangle no :results none :END: @@ -3176,7 +3150,7 @@ system to see how much time you spend on specific tasks or overall. "o" #'org-clock-out "r" #'org-clock-report)) #+end_src -*** WAIT Org ref +*** WAIT Org Ref :PROPERTIES: :header-args:emacs-lisp: :tangle no :results none :END: @@ -3191,18 +3165,7 @@ For bibliographic stuff in $\LaTeX$ export. bibtex-completion-bibliography '("~/Text/bibliography.bib") bibtex-completion-additional-search-fields '(keywords))) #+end_src -**** Org ref ivy integration -Org ref requires ivy-bibtex to work properly with ivy, so we need to -set that up as well - -#+begin_src emacs-lisp -(use-package ivy-bibtex - :straight t - :after org-ref - :config - (require 'org-ref-ivy)) -#+end_src -*** Org message +*** Org Message Org message allows for the use of org mode when composing mails, generating HTML multipart emails. This integrates the WYSIWYG experience with mail in Emacs while also providing powerful text @@ -3227,7 +3190,7 @@ learnt the basics of org). preview-scale 1.4)))) (margin . "0 -0.35em"))))) #+end_src -*** Org for evil +*** Org for Evil Evil org for some nice bindings. #+begin_src emacs-lisp @@ -4488,8 +4451,7 @@ with abstracting a few things away. (use-package abbrev :defer t :hook - (prog-mode-hook . abbrev-mode) - (text-mode-hook . abbrev-mode) + ((prog-mode-hook text-mode-hook) . abbrev-mode) :init (defmacro +abbrev/define-abbrevs (abbrev-table &rest abbrevs) `(progn @@ -4513,7 +4475,11 @@ with abstracting a few things away. ("smon" (format-time-string "%B" (current-time))) ("swho" - (format "%s <%s>" user-full-name user-mail-address)))) + (format "%s <%s>" user-full-name user-mail-address)) + ("stodo" + (thread-last (current-time) + (format-time-string "%Y-%m-%d %H:%M") + (format "TODO(%s)[%s]:" user-login-name))))) #+end_src ** Amx Amx is a fork of Smex that works to enhance the diff --git a/Emacs/.config/emacs/elisp/elfeed-org.el b/Emacs/.config/emacs/elisp/elfeed-org.el index 2b68acc..4416926 100644 --- a/Emacs/.config/emacs/elisp/elfeed-org.el +++ b/Emacs/.config/emacs/elisp/elfeed-org.el @@ -29,11 +29,12 @@ (defun elfeed-org/--parse-link (context) (thread-last (org-element-property :title context) search-forward) - (let ((title-context (org-element-context))) - (org-element-property :raw-link title-context))) + (org-element-property :raw-link (org-element-context))) (defun elfeed-org/--parse-tags () - (mapcar #'intern (org-get-tags))) + (thread-last + (org-get-tags) + (mapcar #'intern))) (defun elfeed-org/--parse-headline () (if-let* ((ctx (org-element-context)) @@ -43,14 +44,15 @@ nil)) (defun elfeed-org/--parse-headlines () - (cl-remove-if - #'null - (org-map-entries #'elfeed-org/--parse-headline t))) + (thread-last + (org-map-entries #'elfeed-org/--parse-headline t) + (cl-remove-if #'null))) (defun elfeed-org () - (setq elfeed-feeds - (with-current-buffer (find-file-noselect elfeed-org/file) - (elfeed-org/--parse-headlines)))) + (thread-last + (elfeed-org/--parse-headlines) + (with-current-buffer (find-file-noselect elfeed-org/file)) + (setq elfeed-feeds))) (provide 'elfeed-org) ;;; elfeed-org.el ends here diff --git a/Emacs/.config/emacs/elisp/eshell-additions.el b/Emacs/.config/emacs/elisp/eshell-additions.el index a9362db..2d53610 100644 --- a/Emacs/.config/emacs/elisp/eshell-additions.el +++ b/Emacs/.config/emacs/elisp/eshell-additions.el @@ -41,14 +41,23 @@ "Change to directory `project-root'" (if (project-current) (eshell/cd (list (project-root (project-current)))) + (setq eshell-last-command-status 1) (eshell/echo (format "[%s]: No project in current directory" (propertize "Error" 'font-lock-face '(:foreground "red")))))) (defun eshell/sudo-switch (&rest args) - "Switch to a tramp connection sudo in the current directory" - (let ((wrapped-dir (concat "/sudo::" default-directory))) - (eshell/cd wrapped-dir))) + "Switch to and from administrative (sudo) mode in Eshell. +Uses tramp to figure out if we're in sudo mode or not. " + (let ((user (file-remote-p default-directory 'user))) + (cond + ((null user) + (let ((wrapped-dir (concat "/sudo::" default-directory))) + (eshell/cd wrapped-dir))) + ((string= user "root") + (thread-last 'localname + (file-remote-p default-directory) + eshell/cd))))) ;; Additional functions (defun +eshell/at-cwd (&optional arg) diff --git a/Emacs/.config/emacs/elisp/eshell-prompt.el b/Emacs/.config/emacs/elisp/eshell-prompt.el index dafd8ea..af5c55f 100644 --- a/Emacs/.config/emacs/elisp/eshell-prompt.el +++ b/Emacs/.config/emacs/elisp/eshell-prompt.el @@ -19,25 +19,29 @@ ;;; Commentary: -;; We provide a function +eshell-prompt which generates a prompt on +;; We provide a function ep which generates a prompt on ;; demand. ;;; Code: -(defvar +eshell-prompt/user-prompt "𝜆> " +(defvar ep/user-prompt " λ " "Prompt for user to input.") -(defvar +eshell-prompt/dir-colour "deepskyblue") -(defvar +eshell-prompt/success-colour "forestgreen") -(defvar +eshell-prompt/failure-colour "red") +(defvar ep/dir-colour "deepskyblue") +(defvar ep/success-colour "forestgreen") +(defvar ep/failure-colour "red") +(defvar ep/branch-name-colour "LightSalmon") +(defvar ep/pipe-colour "green2") +(defvar ep/ahead-colour "dodger blue") +(defvar ep/remote-colour "DarkGoldenrod") -(defun +eshell-prompt/--colour-on-last-command () +(defun ep/--colour-on-last-command () "Returns an Emacs colour based on ESHELL-LAST-COMMAND-STATUS." (if (zerop eshell-last-command-status) - +eshell-prompt/success-colour - +eshell-prompt/failure-colour)) + ep/success-colour + ep/failure-colour)) -(defun +eshell-prompt/--git-remote-status () +(defun ep/--git-remote-status () "Returns a propertized string for the status of a repository in comparison to its remote. 3 differing strings are returned dependent on: @@ -53,17 +57,17 @@ behind or ahead the local repository is." (status (nth 3 branch-status)) (diff (cl-position "by" branch-status :test #'string=))) (if (null diff) - (propertize "=" 'font-lock-face `(:foreground ,+eshell-prompt/success-colour)) + (propertize "=" 'font-lock-face `(:foreground ,ep/success-colour)) (let ((n (nth (+ 1 diff) branch-status))) (concat (cond ((string= status "ahead") - (propertize "→" 'font-lock-face '(:foreground "dodger blue"))) + (propertize "→" 'font-lock-face `(:foreground ,ep/ahead-colour))) ((string= status "behind") - (propertize "←" 'font-lock-face '(:foreground "red")))) + (propertize "←" 'font-lock-face `(:foreground ,ep/failure-colour)))) n))))) -(defun +eshell-prompt/--git-change-status () +(defun ep/--git-change-status () "Returns a propertized string for the condition of the worktree in a repository. If there are no changes i.e. the worktree is clean then a green tick is returned, but if there are changes then the @@ -74,12 +78,13 @@ number of files affected are returned in red." (if (= changed-files 0) (propertize "✓" 'font-lock-face - `(:foreground ,+eshell-prompt/success-colour)) + `(:foreground ,ep/success-colour)) (propertize (number-to-string changed-files) 'font-lock-face - `(:foreground ,+eshell-prompt/failure-colour))))) + `(:foreground ,ep/failure-colour))))) -(defun +eshell-prompt/--git-branch-name () +(defun ep/--git-branch-name () + "Get the branch name of the current working directory. W" (let* ((branch-name (thread-last (split-string (shell-command-to-string "git branch") "\n") (cl-remove-if (lambda (s) (= (length s) 0))) @@ -89,23 +94,34 @@ number of files affected are returned in red." (cond ((null branch-name) nil) ((string= "(" (substring branch-name 0 1)) - (replace-regexp-in-string "\\(.*at \\)\\|)" "" branch-name)) + (replace-regexp-in-string + "\n$" "" + (shell-command-to-string "git rev-parse --short HEAD"))) (t branch-name)))) -(defun +eshell-prompt/--git-status () +(defun ep/--git-status () "Returns a completely formatted string of -form (BRANCH-NAME<CHANGES>[REMOTE-STATUS])." - (let ((git-branch (+eshell-prompt/--git-branch-name))) + form (BRANCH-NAME<CHANGES>[REMOTE-STATUS])." + (let ((git-branch (ep/--git-branch-name))) (if (null git-branch) "" (format - "(%s<%s>[%s])" - git-branch - (+eshell-prompt/--git-change-status) - (+eshell-prompt/--git-remote-status))))) - -(defun +eshell-prompt/make-prompt () - (let ((git (+eshell-prompt/--git-status))) + "%s(%s)(%s)" + (propertize git-branch 'font-lock-face `(:foreground ,ep/branch-name-colour)) + (ep/--git-remote-status) + (ep/--git-change-status))))) + +(defun ep/--user-and-remote () + (if (file-remote-p default-directory) + (let ((user (file-remote-p default-directory 'user)) + (host (file-remote-p default-directory 'host))) + (if user + (format "%s@%s " user host) + (concat host " "))) + "")) + +(defun ep/make-prompt () + (let ((git (ep/--git-status))) (mapconcat (lambda (item) (if (listp item) @@ -115,15 +131,26 @@ form (BRANCH-NAME<CHANGES>[REMOTE-STATUS])." 'rear-nonsticky '(font-lock-face read-only)) item)) (list + `("┌──" + :foreground ,ep/pipe-colour) "[" - `(,(abbreviate-file-name (eshell/pwd)) :foreground ,+eshell-prompt/dir-colour) - "]" + `(,(ep/--user-and-remote) + :foreground ,ep/remote-colour) + `(,(abbreviate-file-name (tramp-file-local-name (eshell/pwd))) + :foreground ,ep/dir-colour) (if (string= git "") "" - (concat " " git)) + (concat "]─[" git)) + "]" "\n" - (list "𝜆> " ':foreground (+eshell-prompt/--colour-on-last-command)))))) + `("└─>" + :foreground ,ep/pipe-colour) + (list ep/user-prompt ':foreground (ep/--colour-on-last-command)))))) (provide 'eshell-prompt) ;;; eshell-prompt.el ends here + +;; Local Variables: +;; read-symbol-shorthands: (("ep" . "+eshell-prompt")) +;; End: diff --git a/Emacs/.config/emacs/elisp/personal-light-theme.el b/Emacs/.config/emacs/elisp/personal-light-theme.el index c8e4f3e..d05f880 100644 --- a/Emacs/.config/emacs/elisp/personal-light-theme.el +++ b/Emacs/.config/emacs/elisp/personal-light-theme.el @@ -81,6 +81,19 @@ '(org-quote ((t (:slant italic)))) '(org-verbatim ((t (:foreground "red3")))) '(query-replace ((t (:inherit (isearch))))) + '(rainbow-delimiters-base-error-face ((t (:extend t :foreground "white" + :background "red1")))) + '(rainbow-delimiters-depth-1-face ((t (:extend t :foreground "red")))) + '(rainbow-delimiters-depth-2-face ((t (:extend t :foreground "darkorange")))) + '(rainbow-delimiters-depth-3-face ((t (:extend t :foreground "yellow")))) + '(rainbow-delimiters-depth-4-face ((t (:extend t :foreground "green")))) + '(rainbow-delimiters-depth-5-face ((t (:extend t :foreground "DeepSkyBlue")))) + '(rainbow-delimiters-depth-6-face ((t (:extend t :foreground "purple")))) + '(rainbow-delimiters-depth-7-face ((t (:extend t :foreground "violet")))) + '(rainbow-delimiters-mismatched-face ((t (:extend t :foreground "white" + :background "red4")))) + '(rainbow-delimiters-unmatched-face ((t (:extend t :foreground "white" + :background "red3")))) '(region ((t (:extend t :background "#C2D5E9")))) '(secondary-selection ((((class color) (min-colors 88) (background light)) (:extend t :background "yellow1")) (((class color) (min-colors 88) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 16) (background light)) (:extend t :background "yellow")) (((class color) (min-colors 16) (background dark)) (:extend t :background "SkyBlue4")) (((class color) (min-colors 8)) (:extend t :foreground "black" :background "cyan")) (t (:inverse-video t)))) '(shadow ((((class color grayscale) (min-colors 88) (background light)) diff --git a/Emacs/.config/emacs/elisp/personal-solarized-theme.el b/Emacs/.config/emacs/elisp/personal-solarized-theme.el index d0b4cd9..50dba60 100644 --- a/Emacs/.config/emacs/elisp/personal-solarized-theme.el +++ b/Emacs/.config/emacs/elisp/personal-solarized-theme.el @@ -1,11 +1,13 @@ (deftheme personal-solarized - "Created 2024-07-02.") + "Created 2024-07-02." + :background-mode 'dark) (defvar personal-solarized-name-colour "#3c98e0" "Colour of names in this theme.") (custom-theme-set-faces 'personal-solarized + '(Info-quoted ((t (:inherit fixed-pitch-serif :underline t)))) '(button ((t (:inherit (link))))) '(child-frame-border ((t (:background "white")))) '(company-preview ((t (:foreground "wheat" :background "blue4")))) @@ -21,35 +23,25 @@ '(evil-goggles-default-face ((t (:background "#004065")))) '(evil-mc-cursor-default-face ((t (:foreground "black" :background "white")))) '(evil-mc-region-face ((t (:extend t :background "grey50")))) - '(fill-column-indicator ((t (:inherit shadow :foreground "gray23" - :background "gray23" :weight thin)))) + '(fill-column-indicator ((t (:inherit shadow :foreground "gray23" :weight thin)))) '(fixed-pitch-serif ((t (:family "Noto Serif" :height 0.95)))) '(font-latex-bold-face ((t (:weight bold :foreground "#9eacac")))) '(font-latex-doctex-documentation-face ((t (:background unspecified)))) - '(font-latex-doctex-preprocessor-face ((t (:inherit (font-latex-doctex-documentation-face - font-lock-builtin-face - font-lock-preprocessor-face))))) + '(font-latex-doctex-preprocessor-face ((t (:inherit (font-latex-doctex-documentation-face font-lock-builtin-face font-lock-preprocessor-face))))) '(font-latex-italic-face ((t (:style italic :foreground "#9eacac")))) '(font-latex-math-face ((t (:foreground "#7a7ed2")))) - '(font-latex-sectioning-0-face ((t (:inherit font-latex-sectioning-5-face - :height 1.1)))) - '(font-latex-sectioning-1-face ((t (:inherit font-latex-sectioning-5-face - :height 1.1)))) - '(font-latex-sectioning-2-face ((t (:inherit font-latex-sectioning-5-face - :height 1.1)))) - '(font-latex-sectioning-3-face ((t (:inherit font-latex-sectioning-5-face - :height 1.1)))) - '(font-latex-sectioning-4-face ((t (:inherit font-latex-sectioning-5-face - :height 1.1)))) + '(font-latex-sectioning-0-face ((t (:inherit font-latex-sectioning-5-face :height 1.1)))) + '(font-latex-sectioning-1-face ((t (:inherit font-latex-sectioning-5-face :height 1.1)))) + '(font-latex-sectioning-2-face ((t (:inherit font-latex-sectioning-5-face :height 1.1)))) + '(font-latex-sectioning-3-face ((t (:inherit font-latex-sectioning-5-face :height 1.1)))) + '(font-latex-sectioning-4-face ((t (:inherit font-latex-sectioning-5-face :height 1.1)))) '(font-latex-sectioning-5-face ((t (:foreground "#c49619" :weight bold)))) '(font-latex-sedate-face ((t (:foreground "#9eacac")))) - '(font-latex-slide-title-face ((t (:inherit (default font-lock-type-face) - :weight bold :height 1.2)))) + '(font-latex-slide-title-face ((t (:inherit (default font-lock-type-face) :weight bold :height 1.2)))) '(font-latex-string-face ((t (:foreground "#3cafa5")))) '(font-latex-subscript-face ((t (:height 0.8)))) '(font-latex-superscript-face ((t (:height 0.8)))) - '(font-latex-verbatim-face ((t (:inherit fixed-pitch-serif :foreground "#8d9fa1" - :slant italic)))) + '(font-latex-verbatim-face ((t (:inherit fixed-pitch-serif :foreground "#8d9fa1" :slant italic)))) '(font-latex-warning-face ((t (:inherit bold :foreground "#db5823")))) '(font-lock-builtin-face ((t (:foreground "#8d9fa1" :weight bold :slant normal)))) '(font-lock-comment-delimiter-face ((t (:foreground "#62787f" :slant normal)))) @@ -64,29 +56,21 @@ '(font-lock-warning-face ((t (:inherit error :weight bold)))) '(fringe ((t (:inherit (default))))) '(haskell-interactive-face-prompt ((t (:foreground "green")))) - '(header-line ((t (:box nil :foreground "grey90" :background "grey20" - :inherit (mode-line))))) + '(header-line ((t (:box nil :foreground "grey90" :background "grey20" :inherit (mode-line))))) '(highlight ((t (:extend t :background "#222233")))) '(homoglyph ((t (:foreground "cyan")))) - '(Info-quoted ((t (:inherit fixed-pitch-serif :underline t)))) '(isearch ((t (:foreground "brown4" :background "white")))) '(isearch-fail ((t (:background "red4")))) '(lazy-highlight ((t (:background "paleturquoise4")))) '(line-number ((t (:foreground "grey45" :background "grey1" :inherit (default))))) - '(line-number-current-line ((t (:foreground "white" :background "grey1" - :inherit (default))))) - '(link ((t (:underline (:color foreground-color :style line) - :foreground "cyan1")))) + '(line-number-current-line ((t (:foreground "white" :background "grey1" :inherit (default))))) + '(link ((t (:underline (:color foreground-color :style line) :foreground "cyan1")))) '(link-visited ((t (:foreground "violet" :inherit (link))))) '(match ((t (:background "RoyalBlue3")))) - '(minibuffer-prompt ((t (:foreground "cyan")))) - `(mode-line ((t (:box (:line-width 1 :color "white") :foreground "LightSkyBlue" - :background "black" :inherit (default))))) + '(minibuffer-prompt ((t (:background "darkblue" :foreground "cyan")))) '(mode-line-buffer-id ((t (:weight bold)))) '(mode-line-emphasis ((t (:weight bold)))) - '(mode-line-inactive ((t (:box (:line-width 1 :color "grey10") :weight light - :foreground "CadetBlue" :background "grey7" - :inherit (mode-line))))) + '(mode-line-inactive ((t (:box (:line-width 1 :color "grey10") :weight light :foreground "CadetBlue" :background "grey7" :inherit (mode-line))))) '(next-error ((t (:inherit (region))))) '(orderless-match-face-0 ((t (:weight bold :foreground "lime green")))) '(orderless-match-face-1 ((t (:weight bold :foreground "light green")))) @@ -94,25 +78,25 @@ '(orderless-match-face-3 ((t (:weight bold :foreground "dark green")))) '(org-block ((t (:inherit default)))) '(org-code ((t (:foreground "green3")))) + '(org-document-info ((t (:height 1.2 :inherit default)))) + '(org-document-title ((t (:height 1.2 :inherit default)))) '(org-hide ((t (:foreground "black")))) '(org-quote ((t (:slant italic)))) '(org-verbatim ((t (:foreground "red3")))) - '(outline-1 ((t (:inherit default :foreground "#db5823")))) - '(outline-2 ((t (:inherit default :foreground "#93a61a")))) - '(outline-3 ((t (:inherit default :foreground "#3c98e0")))) - '(outline-4 ((t (:inherit default :foreground "#c49619")))) - '(outline-5 ((t (:inherit default :foreground "#3cafa5")))) - '(outline-6 ((t (:inherit default :foreground "#93a61a")))) + '(outline-1 ((t (:inherit default :underline "#444444" :height 1.12 :foreground "#db5823")))) + '(outline-2 ((t (:inherit default :height 1.10 :foreground "#93a61a")))) + '(outline-3 ((t (:inherit default :height 1.08 :foreground "#3c98e0")))) + '(outline-4 ((t (:inherit default :height 1.06 :foreground "#c49619")))) + '(outline-5 ((t (:inherit default :height 1.04 :foreground "#3cafa5")))) + '(outline-6 ((t (:inherit default :height 1.02 :foreground "#93a61a")))) '(outline-7 ((t (:inherit default :foreground "#ec423a")))) '(outline-8 ((t (:inherit default :foreground "#3c98e0")))) '(outline-minor-0 ((t (:extend t :weight bold :background "#01323d")))) - '(outline-minor-1 ((t (:extend t :inherit (outline-minor-0 outline-1) - :background "#1e9d310d32a3")))) + '(outline-minor-1 ((t (:extend t :inherit (outline-minor-0 outline-1) :background "#1e9d310d32a3")))) '(pdf-isearch-batch ((t (:foreground "black" :background "white")))) '(pretty-mode-symbol-face ((t (:foreground "#c49619" :weight normal)))) '(query-replace ((t (:inherit (isearch))))) - '(rainbow-delimiters-base-error-face ((t (:extend t :foreground "white" - :background "red1")))) + '(rainbow-delimiters-base-error-face ((t (:extend t :foreground "white" :background "red1")))) '(rainbow-delimiters-depth-1-face ((t (:extend t :foreground "red")))) '(rainbow-delimiters-depth-2-face ((t (:extend t :foreground "darkorange")))) '(rainbow-delimiters-depth-3-face ((t (:extend t :foreground "yellow")))) @@ -120,38 +104,28 @@ '(rainbow-delimiters-depth-5-face ((t (:extend t :foreground "DeepSkyBlue")))) '(rainbow-delimiters-depth-6-face ((t (:extend t :foreground "purple")))) '(rainbow-delimiters-depth-7-face ((t (:extend t :foreground "violet")))) - '(rainbow-delimiters-mismatched-face ((t (:extend t :foreground "white" - :background "red4")))) - '(rainbow-delimiters-unmatched-face ((t (:extend t :foreground "white" - :background "red3")))) + '(rainbow-delimiters-mismatched-face ((t (:extend t :foreground "white" :background "red4")))) + '(rainbow-delimiters-unmatched-face ((t (:extend t :foreground "white" :background "red3")))) '(region ((t (:extend t :background "grey25")))) '(secondary-selection ((t (:extend t :background "SkyBlue4")))) '(shadow ((t (:foreground "grey70")))) - '(show-paren-match ((t (:foreground unspecified :background "green4" - :weight bold)))) - '(show-paren-mismatch ((t (:foreground "#01323d" :background "#ec1111" - :weight bold)))) + '(show-paren-match ((t (:foreground unspecified :background "green4" :weight bold)))) + '(show-paren-mismatch ((t (:foreground "#01323d" :background "#ec1111" :weight bold)))) '(tab-bar ((t (:background "black")))) - '(tab-bar-tab ((t (:background "grey5" :foreground "white" - :box (:line-width 2 :color "grey19"))))) + '(tab-bar-tab ((t (:background "grey5" :foreground "white" :box (:line-width 2 :color "grey19"))))) '(tab-bar-tab-inactive ((t (:background "black" :foreground "DimGrey")))) - '(tooltip ((t (:foreground "black" :background "lightyellow" - :inherit (variable-pitch))))) + '(tooltip ((t (:foreground "black" :background "lightyellow" :inherit (variable-pitch))))) '(trailing-whitespace ((t (:background "red1")))) '(whitespace-line ((t (:background "black" :foreground "violet")))) '(whitespace-space ((t (:background "#171717" :foreground "black")))) '(whitespace-tab ((t (:background "#171717" :foreground "grey40")))) - `(font-lock-constant-face ((t (:foreground ,personal-solarized-name-colour - :weight bold)))) - `(font-lock-function-name-face ((t (:box nil - :foreground ,personal-solarized-name-colour)))) + `(font-lock-constant-face ((t (:foreground ,personal-solarized-name-colour :weight bold)))) + `(font-lock-function-name-face ((t (:box nil :foreground ,personal-solarized-name-colour)))) `(font-lock-preprocessor-face ((t (:foreground ,personal-solarized-name-colour)))) `(font-lock-variable-name-face ((t (:foreground ,personal-solarized-name-colour)))) - '(default ((t (:family "Jetbrains Mono" :foundry "ADBO" :width normal - :weight normal :slant normal :underline nil - :overline nil :extend nil :strike-through nil - :box nil :inverse-video nil - :foreground "#b6b6b6" :background "#0a0a0a" - :stipple nil :inherit nil))))) + `(mode-line ((t (:box (:line-width 1 :color "white") :foreground "LightSkyBlue" :background "black" :inherit (default))))) + `(org-block-begin-line ((t (:underline t :background "#1a1a1a")))) + `(org-block-end-line ((t (:overline t :background "#1a1a1a")))) + '(default ((t (:family "Jetbrains Mono" :foundry "ADBO" :width normal :weight normal :slant normal :underline nil :overline nil :extend nil :strike-through nil :box nil :inverse-video nil :foreground "#b6b6b6" :background "#0a0a0a" :stipple nil :inherit nil))))) (provide-theme 'personal-solarized) diff --git a/Emacs/.config/emacs/init.el b/Emacs/.config/emacs/init.el index 7e74e4f..7c7f8f4 100644 --- a/Emacs/.config/emacs/init.el +++ b/Emacs/.config/emacs/init.el @@ -60,10 +60,8 @@ (straight-use-package 'org-mode) (straight-use-package 'no-littering) -(setq no-littering-etc-directory (expand-file-name ".config/" - user-emacs-directory) - no-littering-var-directory (expand-file-name ".var/" - user-emacs-directory) +(setq no-littering-etc-directory (expand-file-name ".config/" user-emacs-directory) + no-littering-var-directory (expand-file-name ".var/" user-emacs-directory) custom-file (no-littering-expand-etc-file-name "custom.el")) (load-file custom-file) |