X-Git-Url: https://git.shemshak.org/~bandali/configs/blobdiff_plain/e2178fd3f770735f942409300876a0d22c470a0d..46b0569f717f7e5fa9cc43355bd5d8a544521453:/init.el diff --git a/init.el b/init.el index 57861bb..01ee10a 100644 --- a/init.el +++ b/init.el @@ -1,6 +1,6 @@ ;;; init.el --- bandali's emacs configuration -*- lexical-binding: t -*- -;; Copyright (C) 2018-2019 Amin Bandali +;; Copyright (C) 2018-2020 Amin Bandali ;; This program is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by @@ -239,6 +239,17 @@ For disabling the behaviour for certain buffers and/or modes." (interactive) (kill-buffer (current-buffer))) +(defun b/move-indentation-or-beginning-of-line (arg) + "Move to the indentation or to the beginning of line." + (interactive "^p") + ;; (if (bolp) + ;; (back-to-indentation) + ;; (move-beginning-of-line arg)) + (if (= (point) + (progn (back-to-indentation) + (point))) + (move-beginning-of-line arg))) + ;;; Defaults @@ -490,6 +501,7 @@ For disabling the behaviour for certain buffers and/or modes." ;;; General bindings (bind-keys + ("C-a" . b/move-indentation-or-beginning-of-line) ("C-c a i" . ielm) ("C-c e b" . eval-buffer) @@ -651,16 +663,26 @@ For disabling the behaviour for certain buffers and/or modes." (require 'bandali-message) (require 'bandali-ebdb) +;; 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 -(comment + ;; highlight uncommitted changes in the left fringe (use-package diff-hl :defer 0.6 :config (setq diff-hl-draw-borders nil) (global-diff-hl-mode) - :hook (magit-post-refresh . diff-hl-magit-post-refresh)) + :hook + ((magit-pre-refresh . diff-hl-magit-pre-refresh) + (magit-post-refresh . diff-hl-magit-post-refresh))) ;; display Lisp objects at point in the echo area (use-package eldoc @@ -711,8 +733,8 @@ For disabling the behaviour for certain buffers and/or modes." (use-package conf-mode :mode "\\.*rc$") -(use-package sh-mode - :mode "\\.bashrc$") +(use-package sh-script + :mode ("\\.bashrc$" . sh-mode)) (use-package company :disabled @@ -733,6 +755,7 @@ For disabling the behaviour for certain buffers and/or modes." ) (use-package flycheck + :disabled :defer 0.6 :hook (prog-mode . flycheck-mode) :bind @@ -747,10 +770,11 @@ For disabling the behaviour for certain buffers and/or modes." (setq flycheck-check-syntax-automatically '(mode-enabled save)) :custom (flycheck-mode-line-prefix "flyc")) -(use-package flyspell) +;; (use-package flyspell) ;; http://endlessparentheses.com/ispell-and-apostrophes.html (use-package ispell + :disabled :defer 0.6 :config ;; ’ can be part of a word @@ -791,31 +815,31 @@ For disabling the behaviour for certain buffers and/or modes." (use-package reveal :hook (emacs-lisp-mode . reveal-mode)) -(use-package elisp-mode) - -;; (use-package alloy-mode -;; :straight (:host github :repo "dwwmmn/alloy-mode") -;; :mode "\\.\\(als\\|dsh\\)\\'" -;; :config -;; (setq alloy-basic-offset 2) -;; ;; (defun b/alloy-simple-indent (start end) -;; ;; (interactive "r") -;; ;; ;; (if (region-active-p) -;; ;; ;; (indent-rigidly start end alloy-basic-offset) -;; ;; ;; (if (bolp) -;; ;; ;; (indent-rigidly (line-beginning-position) -;; ;; ;; (line-end-position) -;; ;; ;; alloy-basic-offset))) -;; ;; (indent-to (+ (current-column) alloy-basic-offset))) -;; :bind (:map alloy-mode-map -;; ("RET" . electric-newline-and-maybe-indent) -;; ;; ("TAB" . b/alloy-simple-indent) -;; ("TAB" . indent-for-tab-command)) -;; :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) - -(eval-when-compile (defvar lean-mode-map)) +;; (use-package elisp-mode) + +(use-package alloy-mode + :mode "\\.\\(als\\|dsh\\)\\'" + :config + (setq alloy-basic-offset 2) + ;; (defun b/alloy-simple-indent (start end) + ;; (interactive "r") + ;; ;; (if (region-active-p) + ;; ;; (indent-rigidly start end alloy-basic-offset) + ;; ;; (if (bolp) + ;; ;; (indent-rigidly (line-beginning-position) + ;; ;; (line-end-position) + ;; ;; alloy-basic-offset))) + ;; (indent-to (+ (current-column) alloy-basic-offset))) + :bind (:map alloy-mode-map + ("RET" . electric-newline-and-maybe-indent) + ;; ("TAB" . b/alloy-simple-indent) + ("TAB" . indent-for-tab-command)) + :hook (alloy-mode . (lambda () (setq-local indent-tabs-mode nil)))) + (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 @@ -827,7 +851,7 @@ For disabling the behaviour for certain buffers and/or modes." lean-input-user-translations '(("/" "/"))) (lean-input-setup)) -(use-package mhtml-mode) +;; (use-package mhtml-mode) (use-package sgml-mode :config @@ -846,23 +870,27 @@ 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) +(use-package guix + :disabled) -(comment - (use-package auctex - :custom - (font-latex-fontify-sectioning 'color))) +(use-package auctex + :disabled + :custom + (font-latex-fontify-sectioning 'color)) (use-package go-mode :disabled) (use-package po-mode + :disabled :hook (po-mode . (lambda () (run-with-timer 0.1 nil 'View-exit)))) @@ -881,6 +909,7 @@ For disabling the behaviour for certain buffers and/or modes." ;;; Theme +(comment (add-to-list 'custom-theme-load-path (expand-file-name (convert-standard-filename "lisp") user-emacs-directory)) @@ -1258,12 +1287,7 @@ For disabling the behaviour for certain buffers and/or modes." (use-package window :bind - (("C-c w e" . (lambda () - (interactive) - (split-window-right) - (other-window 1) - (erc-switch-to-buffer))) - ("C-c w s l" . (lambda () + (("C-c w s l" . (lambda () (interactive) (split-window-right) (other-window 1))) @@ -1354,12 +1378,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 @@ -1367,82 +1385,6 @@ For disabling the behaviour for certain buffers and/or modes." (getenv "XDG_DOWNLOAD_DIR")))) -;;; IRC (with ERC and ZNC) - -(use-package erc - :bind (("C-c b b" . erc-switch-to-buffer) - :map erc-mode-map - ("M-a" . erc-track-switch-buffer)) - :custom - (erc-join-buffer 'bury) - (erc-lurker-hide-list '("JOIN" "PART" "QUIT")) - (erc-nick "bandali") - (erc-prompt "erc>") - (erc-rename-buffers t) - (erc-server-reconnect-attempts 5) - (erc-server-reconnect-timeout 3) - :config - (defun erc-cmd-OPME () - "Request chanserv to op me." - (erc-message "PRIVMSG" - (format "chanserv op %s %s" - (erc-default-target) - (erc-current-nick)) nil)) - (defun erc-cmd-DEOPME () - "Deop myself from current channel." - (erc-cmd-DEOP (format "%s" (erc-current-nick)))) - (add-to-list 'erc-modules 'keep-place) - (add-to-list 'erc-modules 'notifications) - (add-to-list 'erc-modules 'smiley) - (add-to-list 'erc-modules 'spelling) - (add-to-list 'erc-modules 'scrolltoplace) - (erc-update-modules)) - -(use-package erc-fill - :after erc - :custom - (erc-fill-column 77) - (erc-fill-function 'erc-fill-static) - (erc-fill-static-center 18)) - -(use-package erc-pcomplete - :after erc - :custom - (erc-pcomplete-nick-postfix ", ")) - -(use-package erc-track - :after erc - :bind (("C-c a e t d" . erc-track-disable) - ("C-c a e t e" . erc-track-enable)) - :custom - (erc-track-enable-keybindings nil) - (erc-track-exclude-types '("JOIN" "MODE" "NICK" "PART" "QUIT" - "324" "329" "332" "333" "353" "477")) - (erc-track-position-in-mode-line t) - (erc-track-priority-faces-only 'all) - (erc-track-shorten-function nil)) - -(use-package erc-hl-nicks - :after erc) - -(use-package erc-scrolltoplace - :after erc) - -(use-package znc - :bind (("C-c a e e" . znc-erc) - ("C-c a e a" . znc-all)) - :config - (let ((pwd (let ((auth (auth-source-search :host "znca"))) - (cond - ((null auth) (error "Couldn't find znca's authinfo")) - (t (funcall (plist-get (car auth) :secret))))))) - (setq znc-servers - `(("znc.shemshak.org" 1337 t - ((freenode "amin/freenode" ,pwd))) - ("znc.shemshak.org" 1337 t - ((oftc "amin/oftc" ,pwd))))))) - - ;;; Post initialization )