X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/blobdiff_plain/1f56a9b9b2f22d5df1db092c7fbe51485f569449..15551c07d42b12ad2f2a729b7eb54ff49b6e4784:/init.org diff --git a/init.org b/init.org index 4ff8b94..5b29dcb 100644 --- a/init.org +++ b/init.org @@ -867,6 +867,7 @@ In short, my favourite way of life. org-src-preserve-indentation nil org-edit-src-content-indentation 0 org-email-link-description-format "Email %c: %s" ; %.30s + org-highlight-latex-and-related '(entities) org-log-done 'time) (add-to-list 'org-structure-template-alist '("L" . "src emacs-lisp") t) (after! org-src @@ -880,12 +881,23 @@ In short, my favourite way of life. (org-edit-src-save) (org-edit-src-exit))) (define-key org-src-mode-map [remap evil-quit] 'org-edit-src-abort)) + (font-lock-add-keywords + 'org-mode + '(("[ \t]*\\(#\\+\\(BEGIN\\|END\\|begin\\|end\\)_\\(\\S-+\\)\\)[ \t]*\\([^\n:]*\\)" + (1 '(:foreground "#5a5b5a" :background "#292b2b") t) ; directive + (3 '(:foreground "#81a2be" :background "#292b2b") t) ; kind + (4 '(:foreground "#c5c8c6") t))) ; title + t) :bind (:map org-mode-map ("M-L" . org-insert-last-stored-link)) :hook ((org-mode . org-indent-mode) (org-mode . auto-fill-mode) (org-mode . flyspell-mode)) :custom - (org-latex-packages-alist '(("" "listings") ("" "color")))) + (org-latex-packages-alist '(("" "listings") ("" "color"))) + :custom-face + '(org-block-begin-line ((t (:foreground "#5a5b5a" :background "#1d1f21")))) + '(org-block ((t (:background "#1d1f21")))) + '(org-latex-and-related ((t (:foreground "#b294bb"))))) (use-package ox-latex :after ox @@ -1018,10 +1030,11 @@ There's no way I could top that, so I won't attempt to. :config (setq ivy-wrap t) (ivy-mode 1) - :custom-face - (ivy-minibuffer-match-face-2 ((t (:background "#e99ce8" :weight semi-bold)))) - (ivy-minibuffer-match-face-3 ((t (:background "#bbbbff" :weight semi-bold)))) - (ivy-minibuffer-match-face-4 ((t (:background "#ffbbff" :weight semi-bold))))) + ;; :custom-face + ;; (ivy-minibuffer-match-face-2 ((t (:background "#e99ce8" :weight semi-bold)))) + ;; (ivy-minibuffer-match-face-3 ((t (:background "#bbbbff" :weight semi-bold)))) + ;; (ivy-minibuffer-match-face-4 ((t (:background "#ffbbff" :weight semi-bold)))) +) #+end_src **** Swiper @@ -1059,7 +1072,7 @@ There's no way I could top that, so I won't attempt to. #+begin_src emacs-lisp (use-package eshell - :defer t + :defer 1 :commands eshell :config (eval-when-compile (defvar eshell-prompt-regexp)) @@ -1704,7 +1717,7 @@ Emacs package that displays available keybindings in popup (load-theme 'tangomod t) #+end_src -** [[https://github.com/Malabarba/smart-mode-line][smart-mode-line]] +** COMMENT [[https://github.com/Malabarba/smart-mode-line][smart-mode-line]] #+begin_src emacs-lisp (use-package smart-mode-line @@ -1714,29 +1727,42 @@ Emacs package that displays available keybindings in popup (remove-hook 'display-time-hook 'sml/propertize-time-string)) #+end_src +** doom-modeline + +#+begin_src emacs-lisp +(use-package doom-modeline + :demand t + :config (setq doom-modeline-height 32) + :hook (after-init . doom-modeline-init)) +#+end_src + +** doom-themes + +#+begin_src emacs-lisp +(use-package doom-themes) +#+end_src + ** theme helper functions #+begin_src emacs-lisp -(defun amin/light () - "Load light theme(s)." +(defun amin/lights-on () + "Enable my favourite light theme." (interactive) (progn (mapc #'disable-theme custom-enabled-themes) - (load-theme 'tangomod t) - (sml/apply-theme 'light))) + (load-theme 'tangomod t))) -(defun amin/dark () - "Load dark theme(s)." +(defun amin/lights-off () + "Go dark." (interactive) (progn (mapc #'disable-theme custom-enabled-themes) - (load-theme 'tangomod-dark t) - (sml/apply-theme 'dark))) + (load-theme 'doom-tomorrow-night t))) (amin--leader-keys "t" '(:ignore t :wk "theme") - "t d" 'amin/dark - "t l" 'amin/light) + "t d" 'amin/lights-off + "t l" 'amin/lights-on) #+end_src ** [[https://github.com/bbatsov/crux][crux]] @@ -1808,15 +1834,52 @@ Emacs package that displays available keybindings in popup "h h p" 'helpful-at-point)) #+end_src -** [[https://github.com/kyagi/shell-pop-el][shell-pop]] +** [[https://github.com/knu/shell-toggle.el][shell-toggle]] #+begin_src emacs-lisp -(use-package shell-pop - :defer 1 - :general (amin--leader-keys "a s" 'shell-pop) - :init - (setq shell-pop-universal-key "C-c e" - shell-pop-shell-type '("eshell" "*eshell*" (lambda nil (eshell))))) +(use-package shell-toggle + :after eshell + :general (amin--leader-keys "a s" 'amin/shell-toggle) + :bind ("C-c e" . amin/shell-toggle) + :config + (defun amin/shell-toggle (make-cd) + "Toggle between the shell buffer and whatever buffer you are editing. +With a prefix argument MAKE-CD also insert a \"cd DIR\" command +into the shell, where DIR is the directory of the current buffer. + +When called in the shell buffer returns you to the buffer you were editing +before calling this the first time. + +Options: `shell-toggle-goto-eob'" + (interactive "P") + ;; Try to decide on one of three possibilities: + ;; If not in shell-buffer, switch to it. + ;; If in shell-buffer, return to state before going to the shell-buffer + (if (eq (current-buffer) shell-toggle-shell-buffer) + (shell-toggle-buffer-return-from-shell) + (progn + (shell-toggle-buffer-goto-shell make-cd) + (if shell-toggle-full-screen-window-only (delete-other-windows))))) + + ;; override to split horizontally instead + (defun shell-toggle-buffer-switch-to-other-window () + "Switch to other window. +If the current window is the only window in the current frame, +create a new window and switch to it. + +\(This is less intrusive to the current window configuration than +`switch-buffer-other-window')" + (let ((this-window (selected-window))) + (other-window 1) + ;; If we did not switch window then we only have one window and need to + ;; create a new one. + (if (eq this-window (selected-window)) + (progn + (split-window-horizontally) + (other-window 1))))) + + :custom + (shell-toggle-launch-shell 'shell-toggle-eshell)) #+end_src ** [[https://github.com/EricCrosson/unkillable-scratch][unkillable-scratch]] @@ -1829,6 +1892,7 @@ Make =*scratch*= and =*Messages*= unkillable. :config (unkillable-scratch 1) :custom + (unkillable-scratch-behavior 'do-nothing) (unkillable-buffers '("^\\*scratch\\*$" "^\\*Messages\\*$"))) #+end_src @@ -2209,10 +2273,11 @@ For when I /have to/ use GH. (message-mode . flyspell-mode) (message-mode . (lambda () (setq fill-column 65 message-fill-column 65)))) - :custom-face - (message-header-subject ((t (:foreground "#111" :weight semi-bold)))) - (message-header-to ((t (:foreground "#111" :weight normal)))) - (message-header-cc ((t (:foreground "#333" :weight normal))))) + ;; :custom-face + ;; (message-header-subject ((t (:foreground "#111" :weight semi-bold)))) + ;; (message-header-to ((t (:foreground "#111" :weight normal)))) + ;; (message-header-cc ((t (:foreground "#333" :weight normal)))) + ) (after! mml-sec (setq mml-secure-openpgp-encrypt-to-self t