X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/4c05c4186ed84ea42e9c1646226e81785e27e499..8146824a5a0175e7e51e5cba82ef88cf105ef50d:/init.el?ds=sidebyside diff --git a/init.el b/init.el index 4eb0129..4dff474 100644 --- a/init.el +++ b/init.el @@ -250,6 +250,29 @@ For disabling the behaviour for certain buffers and/or modes." (point))) (move-beginning-of-line arg))) +(defun b/join-line-top () + "Like `join-line', but join next line to the current line." + (interactive) + (join-line 1)) + +(defun b/duplicate-line-or-region (&optional n) + "Duplicate the current line, or region (if active). +Make N (default: 1) copies of the current line or region." + (interactive "*p") + (let ((u-r-p (use-region-p)) ; if region is active + (n1 (or n 1))) + (save-excursion + (let ((text + (if u-r-p + (buffer-substring (region-beginning) (region-end)) + (prog1 (thing-at-point 'line) + (end-of-line) + (if (eobp) + (newline) + (forward-line 1)))))) + (dotimes (_ (abs n1)) + (insert text)))))) + ;;; Defaults @@ -272,7 +295,7 @@ For disabling the behaviour for certain buffers and/or modes." ;; scroll-margin 1 ;; scroll-conservatively 10000 scroll-step 1 - scroll-conservatively 10 + scroll-conservatively 101 scroll-preserve-screen-position 1 ;; focus follows mouse mouse-autoselect-window t) @@ -503,6 +526,7 @@ For disabling the behaviour for certain buffers and/or modes." (bind-keys ("C-a" . b/move-indentation-or-beginning-of-line) ("C-c a i" . ielm) + ("C-c d" . b/duplicate-line-or-region) ("C-c e b" . eval-buffer) ("C-c e e" . eval-last-sexp) @@ -523,6 +547,8 @@ For disabling the behaviour for certain buffers and/or modes." ("C-S-h C" . describe-char) ("C-S-h F" . describe-face) + ("C-S-j" . b/join-line-top) + ("C-c x" . execute-extended-command) ("C-x k" . b/kill-current-buffer) @@ -561,6 +587,8 @@ For disabling the behaviour for certain buffers and/or modes." (require 'bandali-org) +(require 'bandali-theme) + ;; *the* right way to do git (use-package magit :bind (("C-x g" . magit-status) @@ -666,6 +694,11 @@ For disabling the behaviour for certain buffers and/or modes." ;; IRC (with ERC and ZNC) (require 'bandali-erc) +(use-package scpaste + :config + (setq scpaste-http-destination "https://p.bndl.org" + scpaste-scp-destination "p:~")) + ;;; Editing @@ -807,11 +840,6 @@ For disabling the behaviour for certain buffers and/or modes." (setq indent-tabs-mode nil)) (add-hook 'lisp-interaction-mode-hook #'indent-spaces-mode)) -(use-package reveal - :hook (emacs-lisp-mode . reveal-mode)) - -;; (use-package elisp-mode) - (use-package alloy-mode :mode "\\.\\(als\\|dsh\\)\\'" :config @@ -831,10 +859,10 @@ For disabling the behaviour for certain buffers and/or modes." ("TAB" . indent-for-tab-command)) :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) -(comment -(eval-when-compile (defvar lean-mode-map)) (use-package lean-mode + :disabled :defer 0.4 + :init (eval-when-compile (defvar lean-mode-map)) :bind (:map lean-mode-map ("S-SPC" . company-complete)) :config @@ -846,8 +874,6 @@ For disabling the behaviour for certain buffers and/or modes." lean-input-user-translations '(("/" "/"))) (lean-input-setup)) -;; (use-package mhtml-mode) - (use-package sgml-mode :config (setq sgml-basic-offset 0)) @@ -865,26 +891,30 @@ For disabling the behaviour for certain buffers and/or modes." (setq emmet-move-cursor-between-quotes t) :hook (css-mode html-mode sgml-mode)) -(use-package geiser) +(use-package geiser + :disabled) (use-package geiser-guile + :disabled :config (setq geiser-guile-load-path "~/src/git/guix")) -(use-package guix) - -(comment - (use-package auctex - :custom - (font-latex-fontify-sectioning 'color))) +(use-package guix + :disabled) (use-package go-mode :disabled) (use-package po-mode + :disabled :hook (po-mode . (lambda () (run-with-timer 0.1 nil 'View-exit)))) +(use-package auctex + :disabled + :custom + (font-latex-fontify-sectioning 'color)) + (use-package tex-mode :config (cl-delete-if @@ -898,94 +928,8 @@ For disabling the behaviour for certain buffers and/or modes." ;; :mode "\\.grg\\'") -;;; Theme - -(add-to-list 'custom-theme-load-path - (expand-file-name - (convert-standard-filename "lisp") user-emacs-directory)) -(load-theme 'tangomod t) - -(use-package smart-mode-line - :commands (sml/apply-theme) - :demand - :config - ;; thanks, but no thnaks; don't make fixed-width fills. - (defun sml/fill-for-buffer-identification () "") - (setq sml/theme 'tangomod) - (sml/setup) - (smart-mode-line-enable)) - -(use-package doom-modeline - :disabled - :demand - :hook (after-init . doom-modeline-init) - :custom - (doom-modeline-buffer-file-name-style 'relative-to-project)) - -(use-package doom-themes) - -(use-package moody - :disabled - :demand - :config - (setq x-underline-at-descent-line t) - (let ((line (face-attribute 'mode-line :underline))) - (set-face-attribute 'mode-line nil :overline line) - (set-face-attribute 'mode-line-inactive nil :overline line) - (set-face-attribute 'mode-line-inactive nil :underline line) - (set-face-attribute 'mode-line nil :box nil) - (set-face-attribute 'mode-line-inactive nil :box nil) - (set-face-attribute 'mode-line-inactive nil :background "#e1e1e1")) ; d3d7cf - (moody-replace-mode-line-buffer-identification) - (moody-replace-vc-mode)) - -(use-package mini-modeline - :disabled - :demand - :config (mini-modeline-mode)) - -(defvar b/org-mode-font-lock-keywords - '(("[ \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 - "For use with the `doom-tomorrow-night' theme.") - -(defun b/lights-on () - "Enable my favourite light theme." - (interactive) - (mapc #'disable-theme custom-enabled-themes) - (load-theme 'tangomod t) - (when (featurep 'smart-mode-line) - (sml/apply-theme 'tangomod)) - (font-lock-remove-keywords - 'org-mode b/org-mode-font-lock-keywords) - (when (featurep 'erc-hl-nicks) - (erc-hl-nicks-reset-face-table)) - (when (featurep 'exwm-systemtray) - (exwm-systemtray--refresh))) - -(defun b/lights-off () - "Go dark." - (interactive) - (mapc #'disable-theme custom-enabled-themes) - (load-theme 'doom-one t) - (when (featurep 'smart-mode-line) - (sml/apply-theme 'automatic)) - (font-lock-add-keywords - 'org-mode b/org-mode-font-lock-keywords t) - (when (featurep 'erc-hl-nicks) - (erc-hl-nicks-reset-face-table)) - (when (featurep 'exwm-systemtray) - (exwm-systemtray--refresh))) - -(bind-keys - ("C-c t d" . b/lights-off) - ("C-c t l" . b/lights-on)) - - ;;; Emacs enhancements & auxiliary packages - +(comment (use-package man :config (setq Man-width 80)) @@ -1050,12 +994,6 @@ For disabling the behaviour for certain buffers and/or modes." ("C-c j" . crux-top-join-line) ("C-S-j" . crux-top-join-line))) -(use-package mwim - :bind (("C-a" . mwim-beginning-of-code-or-line) - ("C-e" . mwim-end-of-code-or-line) - ("" . mwim-beginning-of-line-or-code) - ("" . mwim-end-of-line-or-code))) - (use-package projectile :disabled :defer 0.5 @@ -1349,10 +1287,6 @@ For disabling the behaviour for certain buffers and/or modes." (goto-char (cdr macro))) (reftex-this-word))))) -(use-package minions - :demand - :config (minions-mode)) - (use-package dmenu :custom (dmenu-prompt-string "run: ") @@ -1368,12 +1302,6 @@ For disabling the behaviour for certain buffers and/or modes." :config (eosd-start)) -(use-package scpaste - :disabled - :config - (setq scpaste-http-destination "https://p.bndl.org" - scpaste-scp-destination "nix:/var/www/p.bndl.org")) - (use-package eww :bind ("C-c a e w" . eww) :custom