X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/f333db13e8ab042060abdf5b5c1433fb0ad198a0..0abd074fad251560a22c9550a650d3b997103e03:/init.org?ds=sidebyside diff --git a/init.org b/init.org index 3af265d..5c24b9e 100644 --- a/init.org +++ b/init.org @@ -348,7 +348,7 @@ in my shell. (exec-path-from-shell-copy-env "SSH_AUTH_SOCK")) #+end_src -** Only one custom theme at a time +** COMMENT Only one custom theme at a time #+begin_src emacs-lisp (defadvice load-theme (before clear-previous-themes activate) @@ -790,6 +790,9 @@ customizing it. (amin--leader-keys "/" '(:ignore t :wk "search") + "a" '(:ignore t :wk "apps") + "a i" 'ielm + "b" '(:ignore t :wk "buffers") "b k" 'kill-this-buffer "b s" 'save-buffer @@ -798,8 +801,6 @@ customizing it. "e b" 'eval-buffer "e r" 'eval-region - "e e" 'shell-pop - "f" '(:ignore t :wk "files") "F" '(:ignore t :wk "frames") @@ -1058,7 +1059,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)) @@ -1696,16 +1697,48 @@ Emacs package that displays available keybindings in popup :config (which-key-mode)) #+end_src +** theme + +#+begin_src emacs-lisp +(add-to-list 'custom-theme-load-path "~/.emacs.d/lisp") +(load-theme 'tangomod t) +#+end_src + ** [[https://github.com/Malabarba/smart-mode-line][smart-mode-line]] #+begin_src emacs-lisp (use-package smart-mode-line :config (sml/setup) - ;; (sml/apply-theme 'light) + (sml/apply-theme 'light) (remove-hook 'display-time-hook 'sml/propertize-time-string)) #+end_src +** theme helper functions + +#+begin_src emacs-lisp +(defun amin/light () + "Load light theme(s)." + (interactive) + (progn + (mapc #'disable-theme custom-enabled-themes) + (load-theme 'tangomod t) + (sml/apply-theme 'light))) + +(defun amin/dark () + "Load dark theme(s)." + (interactive) + (progn + (mapc #'disable-theme custom-enabled-themes) + (load-theme 'tangomod-dark t) + (sml/apply-theme 'dark))) + +(amin--leader-keys + "t" '(:ignore t :wk "theme") + "t d" 'amin/dark + "t l" 'amin/light) +#+end_src + ** [[https://github.com/bbatsov/crux][crux]] #+begin_src emacs-lisp @@ -1775,14 +1808,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 - :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]] @@ -2051,7 +2122,7 @@ For when I /have to/ use GH. (nnimap-server-port 143) (nnimap-authenticator plain) (nnimap-user "abandali@uwaterloo.ca"))) - gnus-message-archive-group "nnimap:Sent" + gnus-message-archive-group "nnimap+amin:Sent" gnus-parameters '(("gnu.*" (gcc-self . t)))