diff options
author | dx <aryadevchavali1@gmail.com> | 2020-07-15 15:56:08 +0100 |
---|---|---|
committer | dx <aryadevchavali1@gmail.com> | 2020-07-15 15:57:09 +0100 |
commit | 6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac (patch) | |
tree | b13c110ee1e64abfc19126085b08bace6a42d14c /Doom/.config/doom/org/personal.org | |
parent | 33edf2cf6d1a2d653ca268ad272eb8f4f30380ef (diff) | |
download | dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.gz dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.tar.bz2 dotfiles-6bdf6db3b453cff3a3f46f1b8f33cac6426f98ac.zip |
~~/.doom.d -> ~/.config/doom
Diffstat (limited to 'Doom/.config/doom/org/personal.org')
-rw-r--r-- | Doom/.config/doom/org/personal.org | 101 |
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 |