blob: 675d12dc87597878492d5a30b385b8f7b71dd41f (
plain) (
tree)
|
|
(require 'package)
(setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
("marmalade" . "https://marmalade-repo.org/packages/")
("melpa" . "https://melpa.org/packages/")
("org" . "https://orgmode.org/elpa/")))
(defvar my-packages '(
auto-complete
blacken
browse-kill-ring
darktooth-theme
elpy
elfeed
elfeed-goodies
evil
evil-escape
evil-leader
evil-mc
evil-numbers
evil-surround
flycheck
flycheck-flow
helm
go-mode
impatient-mode
ledger-mode
lsp-mode
lsp-ui
magit
markdown-mode
pdf-tools
projectile
py-autopep8
org
rainbow-mode
web-mode
which-key
))
(dolist (p my-packages)
(unless (package-installed-p p)
(package-refresh-contents)
(package-install p))
(add-to-list 'package-selected-packages p))
(setq savehist-file "~/.emacs.d/savehist")
(savehist-mode +1)
(setq savehist-save-minibuffer-history +1)
(setq savehist-additional-vriables
'(kill-ring
search-ring
regexp-search-ring))
(scroll-bar-mode -1)
(tool-bar-mode -1)
(tooltip-mode -1)
(menu-bar-mode -1)
(add-to-list 'default-frame-alist '(font . "Hack-14"))
(load-theme 'manoj-dark)
(if (string< emacs-version
"26.3")
(setq gnutls-algorithm-priority "NORMAL:-VERS-TLS1.3"))
(setq gc-cons-threshold 20000000)
(setq make-backup-files nil)
(setq backup-directory-alist
`((".*" . ,temporary-file-directory)))
(setq auto-save-file-name-transforms
`((".*" ,temporary-file-directory t)))
(setq vc-follow-symlinks t)
(setq sentence-end-double-space nil)
(setq confirm-kill-emacs 'y-or-n-p)
(put 'dired-find-alternate-file 'disabled nil)
(setq-default dired-listing-switches "-alh")
(setq dired-recursive-copies 'always)
(require 'dired)
(define-key dired-mode-map (kbd "/") 'dired-narrow-fuzzy)
(fset 'yes-or-no-p 'y-or-n-p)
(global-auto-revert-mode t)
(defun zoom-in ()
(interactive)
(let ((x (+ (face-attribute 'default :height)
10)))
(set-face-attribute 'default nil :height x)))
(defun zoom-out ()
(interactive)
(let ((x (- (face-attribute 'default :height)
10)))
(set-face-attribute 'default nil :height x)))
(define-key global-map (kbd "C-1") 'zoom-in)
(define-key global-map (kbd "C-0") 'zoom-out)
(setq inhibit-splash-screen t)
(setq inhibit-startup-message t)
(display-time-mode t)
(tool-bar-mode 0)
(add-hook 'org-mode-hook 'auto-fill-mode)
(put 'narrow-to-region 'disabled nil)
(scroll-bar-mode -1)
(setq save-place-file "~/.emacs.d/saveplace")
(setq-default save-place t)
(require 'saveplace)
(exec-path-from-shell-initialize)
(when (fboundp 'windmove-default-keybindings)
(windmove-default-keybindings))
(when (fboundp 'winner-mode)
(winner-mode 1))
(setq visible-bell t)
(setq ange-ftp-try-passive-mode t)
(add-hook 'eww-mode-hook 'scroll-lock-mode)
(setq custom-file "~/.emacs.d/custom-settings.el")
(load custom-file t)
(ac-config-default)
(setq-default tab-width 2)
(setq-default tab-width 2 indent-tabs-mode nil)
(setq-default indent-tabs-mode nil)
(setq js-indent-level 2)
(setq coffee-tab-width 2)
(setq python-indent 2)
(setq css-indent-offset 2)
(add-hook 'sh-mode-hook
(lambda ()
(setq sh-basic-offset 2
sh-indentation 2)))
(setq web-mode-markup-indent-offset 2)
(add-hook 'after-init-hook #'global-flycheck-mode)
(setq comment-tags-keymap-prefix (kbd "C-c t"))
(with-eval-after-load "comment-tags"
(setq comment-tags-keyword-faces
`(;; A concrete TODO with actionable steps
("TODO" . ,(list :weight 'bold :foreground "#DF5427"))
;; A non-concrete TODO. We only know something is broken/amiss.
("FIXME" . ,(list :weight 'bold :foreground "#DF5427"))
;; Works, but is a code smell (quick fix). Might break down the line.
("HACK" . ,(list :weight 'bold :foreground "#DF5427"))
;; Assumption that needs to be verified.
("CHECK" . ,(list :weight 'bold :foreground "#CC6437"))
;; Use to highlight a regular, but especially important, comment.
("NOTE" . ,(list :weight 'bold :foreground "#1FDA9A"))
;; Use to highlight a regular, but especially important, comment.
("INFO" . ,(list :weight 'bold :foreground "#1FDA9A"))))
(setq comment-tags-comment-start-only t
comment-tags-require-colon t
comment-tags-case-sensitive t
comment-tags-show-faces t
comment-tags-lighter nil))
(add-hook 'prog-mode-hook 'comment-tags-mode)
(define-key global-map (kbd "RET") 'newline-and-indent)
(show-paren-mode t)
(add-hook 'before-save-hook '(lambda()
(when (not (or (derived-mode-p 'markdown-mode)))
(delete-trailing-whitespace))))
(add-hook 'prog-mode-hook #'hs-minor-mode)
(add-hook 'prog-mode-hook '(lambda ()
(if (version<= emacs-version "26.0.50")
(linum-mode)
(display-line-numbers-mode))))
(elpy-enable)
;;(setq elpy-rpc-python-command "~/.virtualenvs/elpy-rpc/bin/python3")
(require 'py-autopep8)
(add-hook 'elpy-mode-hook 'py-autopep8-enable-on-save)
(setq python-shell-interpreter "ptipython"
python-shell-interpreter-args "console --simple-prompt"
python-shell-prompt-detect-failure-warning nil)
(add-to-list 'python-shell-completion-native-disabled-interpreters
"ptipython")
(when (require 'flycheck nil t)
(setq elpy-modules (delq 'elpy-module-flymake elpy-modules))
(add-hook 'elpy-mode-hook 'flycheck-mode))
(require 'lsp-mode)
(add-to-list 'auto-mode-alist '("\\.go\\'" . go-mode))
(add-hook 'go-mode-hook 'lsp-deferred)
(require 'go-autocomplete)
(require 'auto-complete-config)
(ac-config-default)
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda)
(global-set-key "\C-cb" 'org-iswitchb)
(global-set-key "\C-cc" 'org-capture)
(setq calendar-date-style "european")
;; use fast selection
(setq org-use-fast-todo-selection t)
;; switch state without normal processing
(setq org-treat-S-cursor-todo-selection-as-state-change nil)
;; basic agenda stuff
(setq org-sort-agenda-notime-is-late nil)
(setq org-directory "~/Nextcloud/org")
(setq org-agenda-files '("~/Nextcloud/org"))
(setq org-default-notes-file (concat org-directory "/refile.org"))
(setq diary-file "~/Nextcloud/org/diary")
(setq org-agenda-include-diary t)
(setq org-agenda-skip-deadline-if-done t)
(setq org-reverse-note-order t)
(setq org-sort-agenda-notime-is-late nil)
(setq org-archive-location "~/Nextcloud/org/archive.org::* From %s")
(setq org-refile-targets (quote ((nil :maxlevel . 9)
(org-agenda-files :maxlevel . 9))))
(setq org-agenda-custom-commands
'(("N" "Agenda and NEXT TODOs" ((agenda "") (todo "NEXT")))
("y" "Agenda and All TODOS" ((agenda "") (alltodo "") ))
("w" "Agenda and WAITING" ((agenda "") (todo "WAITING")))
("p" "Agenda and PROJECTs" ((agenda "") (todo "PROJECT")))))
(define-key global-map "\C-cc" 'org-capture)
(setq org-default-notes-file "~/Nextcloud/org/refile.org")
(setq org-capture-templates
(quote (("t" "Todo" entry (file "~/Nextcloud/org/todo.org")
"* TODO %?")
("j" "Journal" entry (file+datetree "~/Nextcloud/org/journal.org")
"* %?\nEntered on %U\n %i\n %a")
("e" "Emacs Tip" entry (file+headline "~/Nextcloud/org/emacs-tips.org" "Emacs Tips")
"* %?\n %i\n %a"))))
(setq org-todo-keywords
(quote ((sequence "TODO(t)" "NEXT(n)" "|" "DONE(d)")
(sequence "WAITING(w@/!)" "HOLD(h@/!)" "|" "CANCELLED(c@/!)" "PHONE" "MEETING" "PROJECT"))))
(setq org-todo-keyword-faces
(quote (("TODO" :foreground "red" :weight bold)
("NEXT" :foreground "blue" :weight bold)
("DONE" :foreground "forest green" :weight bold)
("WAITING" :foreground "orange" :weight bold)
("HOLD" :foreground "magenta" :weight bold)
("CANCELLED" :foreground "forest green" :weight bold)
("MEETING" :foreground "forest green" :weight bold)
("PROJECT" :foreground "OrangeRed2" :weight bold)
("PHONE" :foreground "forest green" :weight bold))))
;; tag stuff automatically dependent on a change of state
(setq org-todo-state-tags-triggers
(quote (("CANCELLED" ("CANCELLED" . t))
("WAITING" ("WAITING" . t))
("HOLD" ("WAITING") ("HOLD" . t))
(done ("WAITING") ("HOLD"))
("TODO" ("WAITING") ("CANCELLED") ("HOLD"))
("NEXT" ("WAITING") ("CANCELLED") ("HOLD"))
("DONE" ("WAITING") ("CANCELLED") ("HOLD")))))
(setq org-priority-faces
'((?A . (:foreground "#CC0000" :background "#FFE3E3"))
(?B . (:foreground "#64992C" :background "#EBF4DD"))
(?C . (:foreground "#64992C" :background "#FFFFFF"))))
(setq org-ellipsis "...")
(require 'helm-config)
(global-set-key (kbd "C-x b") 'helm-mini)
(global-set-key (kbd "M-x") 'helm-M-x)
(global-set-key (kbd "M-y") 'helm-show-kill-ring)
(global-set-key (kbd "C-c h") 'helm-command-prefix)
(global-unset-key (kbd "C-x c"))
(setq helm-M-x-fuzzy-match t)
(setq helm-buffers-fuzzy-matching t)
(setq helm-recentf-fuzzy-match t)
(setq helm-move-to-line-cycle-in-source t)
(setq helm-scroll-amount 5)
(setq helm-ff-file-name-history-use-recentf t)
(evil-mode 0)
;; Enable "M-x" in evil mode
(global-set-key (kbd "M-x") 'execute-extended-command)
(global-evil-leader-mode)
(evil-leader/set-leader ",")
(evil-leader/set-key
"w" 'basic-save-buffer
"s" 'flyspell-buffer
"b" 'evil-buffer
"q" 'evil-quit)
(require 'evil-surround)
(global-evil-surround-mode 1)
(global-evil-mc-mode 0)
(define-key evil-normal-state-map (kbd "{") 'evil-next-buffer)
(define-key evil-normal-state-map (kbd "}") 'evil-prev-buffer)
(global-set-key (kbd "C-=") 'evil-numbers/inc-at-pt)
(global-set-key (kbd "C--") 'evil-numbers/dec-at-pt)
(define-key evil-normal-state-map (kbd "C-=") 'evil-numbers/inc-at-pt)
(define-key evil-normal-state-map (kbd "C--") 'evil-numbers/dec-at-pt)
(define-key evil-normal-state-map (kbd "j") 'evil-next-visual-line)
(define-key evil-normal-state-map (kbd "k") 'evil-previous-visual-line)
(define-key evil-insert-state-map (kbd "C-v") 'evil-visual-paste)
(mapc (lambda (mode)
(evil-set-initial-state mode 'emacs)) '(elfeed-show-mode
elfeed-search-mode
forge-pullreq-list-mode
forge-topic-list-mode
dired-mode
help-mode
info
tide-references-mode
image-dired-mode
image-dired-thumbnail-mode
eww-mode))
(define-key evil-normal-state-map (kbd "M-.") nil)
(define-key evil-normal-state-map (kbd "M-,") nil)
(setq-default evil-escape-delay 0.2)
(setq-default evil-escape-key-sequence "jk")
(evil-escape-mode)
(add-hook 'org-mode-hook 'which-key-mode)
(add-hook 'cider-mode-hook 'which-key-mode)
(setq which-key-allow-evil-operators t)
(setq which-key-show-operator-state-maps t)
|