aboutsummaryrefslogtreecommitdiff
path: root/Doom/.config/doom/org/personal.org
diff options
context:
space:
mode:
Diffstat (limited to 'Doom/.config/doom/org/personal.org')
-rw-r--r--Doom/.config/doom/org/personal.org101
1 files changed, 101 insertions, 0 deletions
diff --git a/Doom/.config/doom/org/personal.org b/Doom/.config/doom/org/personal.org
new file mode 100644
index 0000000..7398769
--- /dev/null
+++ b/Doom/.config/doom/org/personal.org
@@ -0,0 +1,101 @@
+#+TITLE: Personal module
+
+* Preclude
+Personal functionality or variables that aid my workflow or are just cool.
+* Variables
+Some user variables
+#+BEGIN_SRC elisp
+(setq user-full-name "Aryadev Chavali"
+ user-mail-address "aryadevchavali1@gmail.com")
+#+END_SRC
+* Change theme
+Allow user to set a theme from a limited set of candidates, based on "dx:theme-list".
+
+- Themes sanctioned by me:
+ - doom-solarized-dark: just the right everything. best for day.
+ - doom-gruvbox: good contrast, better for night.
+ - doom-city-lights: Eh contrast, quite dark
+ - doom-outrun-electric: Interesting colour palette
+ - doom-vibrant: Good contrast, bit lighter
+ - doom-molokai/doom-monokai-classic: hacker style
+ - doom-solarized-light: Light orange theme that's actually okay on the eyes
+ - doom-acario-light: Light theme with not bad colours
+- Themes not sanctioned:
+ - Light themes other than solarized-light and acario
+ - Horrid low contrast ones with no colour. Grayscale particularly. I can't
+ handle those.
+
+#+BEGIN_SRC elisp
+(setq dx:themes/theme-list '(doom-solarized-dark
+ doom-gruvbox
+ doom-molokai
+ doom-monokai-classic
+ doom-solarized-light
+ doom-acario-light))
+
+(defun dx:themes/set-new-theme ()
+ "Set the theme from my own selection, mutate as you see fit"
+ (interactive)
+ (let ((theme (completing-read "Select theme: " dx:themes/theme-list)))
+ (condition-case nil
+ (progn
+ (mapc #'disable-theme custom-enabled-themes)
+ (load-theme (intern theme) t)
+ (when (fboundp 'powerline-reset)
+ (powerline-reset)))
+ (error "Problem loading theme %s" theme))))
+#+END_SRC
+* Password store
+Function to get a password given a key.
+#+BEGIN_SRC elisp
+(defun dx:password-store/get-password (KEY)
+ (shell-command-to-string (concat "pass " KEY)))
+#+END_SRC
+* Insert newlines without o/O
+Insert a newline without having to exit normal mode!
+#+BEGIN_SRC elisp
+(defun dx:newline (&optional BACKWARD)
+ (interactive)
+ (message "%s" BACKWARD)
+ (let ((old (point)))
+ (cond ((and BACKWARD (= BACKWARD 1)) (+default/newline-above))
+ (t (+default/newline-below)))
+ (goto-char (+ old 1))
+ (evil-normal-state)))
+#+END_SRC
+* Convert auto-fill lines to long truncate-lines
+Consider some org file with auto filled lines.
+I don't like auto-filled lines.
+So I want to convert them.
+I've setup macros countless times to do this operation for me, may as well formalize it as a function.
+
+Firstly, I need a function to count the number of instances of some substring occur in some other string.
+Shamelessly copied from rosetta code.
+#+BEGIN_SRC elisp
+(defun dx:org/count-sub (str pat)
+ (loop with z = 0 with s = 0 while s do
+ (when (setf s (cl-search pat str :start2 s))
+ (incf z) (incf s (length pat)))
+ finally (return z)))
+#+END_SRC
+
+Then the main function, works like so:
+1) Search the text in the region for newlines then join the lines to make a single segment
+2) Search for sentences through Emacs builtin =forward-sentence= and =forward-char= functions then newline via sentences
+#+BEGIN_SRC elisp
+(defun dx:org/fill-to-long-lines ()
+ (interactive)
+ (let* ((beg (region-beginning))
+ (end (region-end))
+ (region-text (buffer-substring-no-properties beg end))
+ (n-sentences (dx:org/count-sub region-text "."))
+ (parsed-text (apply #'concatenate 'string (cl-loop for c from beg to end collect
+ (if (string= (buffer-substring-no-properties c (+ c 1)) "\n") " "
+ (buffer-substring-no-properties c (+ c 1)))))))
+ (delete-region beg end)
+ (insert parsed-text)
+ (message "%s" n-sentences)
+ (evil-normal-state)
+ (evil-digit-argument-or-evil-beginning-of-line)
+ (cl-loop for i from 1 to n-sentences do (forward-sentence) (forward-char) (newline))))
+#+END_SRC