|
@@ -81,13 +81,6 @@ Borrowed from [[https://www.emacswiki.org/emacs/TransparentEmacs][EmacsWiki]].
|
|
|
(make-directory dir t)))))
|
|
|
#+end_src
|
|
|
** Do not leave autosave & backup files
|
|
|
-Change backup file directory
|
|
|
-#+begin_src emacs-lisp
|
|
|
- (setq backup-directory-alist
|
|
|
- `(("\\`/tmp/" . nil)
|
|
|
- ("\\`/dev/shm/" . nil)
|
|
|
- ("." . ,(no-littering-expand-var-file-name "backup/"))))
|
|
|
-#+end_src
|
|
|
Change autosave file directory
|
|
|
#+begin_src emacs-lisp
|
|
|
(defvar auto-save-directory (expand-file-name "autosaves/" user-emacs-directory))
|
|
@@ -100,6 +93,14 @@ Change autosave file directory
|
|
|
#+begin_src emacs-lisp
|
|
|
(set-language-environment 'Russian)
|
|
|
#+end_src
|
|
|
+** Move around windows
|
|
|
+Windmove config is described in [[https://www.emacswiki.org/emacs/WindMove][wiki]].
|
|
|
+#+begin_src emacs-lisp
|
|
|
+ (global-set-key (kbd "C-c w h") 'windmove-left)
|
|
|
+ (global-set-key (kbd "C-c w l") 'windmove-right)
|
|
|
+ (global-set-key (kbd "C-c w k") 'windmove-up)
|
|
|
+ (global-set-key (kbd "C-c w j") 'windmove-down)
|
|
|
+#+end_src
|
|
|
* Package
|
|
|
** Use-package
|
|
|
[[https://github.com/jwiegley/use-package][Use-package]] helps simplify .emacs file
|
|
@@ -111,6 +112,11 @@ Change autosave file directory
|
|
|
(require 'use-package)
|
|
|
(setq use-package-always-ensure t)
|
|
|
#+end_src
|
|
|
+** Elpa keyring updated
|
|
|
+Import gpg keys from elpa to avoid bad signatures
|
|
|
+#+begin_src emacs-lisp :tangle yes
|
|
|
+(use-package gnu-elpa-keyring-update)
|
|
|
+#+end_src
|
|
|
** Meow (Modal editing)
|
|
|
[[https://github.com/meow-edit/meow/][Meow]] brings to emacs new way of modal editing similar to Kakoune's
|
|
|
*** Meow keymap
|
|
@@ -210,7 +216,6 @@ Define meow keymap for qwerty layout
|
|
|
(meow-setup)
|
|
|
(meow-global-mode 1))
|
|
|
#+end_src
|
|
|
-
|
|
|
** Doom UI
|
|
|
*** Doom themes
|
|
|
[[https://github.com/doomemacs/theme][Doom-themes]] is collection of cool themes that I like.
|
|
@@ -298,7 +303,7 @@ Sometimes using =variable-pitch= font anin't good.
|
|
|
(corfu-auto t)
|
|
|
(corfu-separator ?\s)
|
|
|
(corfu-quit-no-match 'separator)
|
|
|
- :config
|
|
|
+ :init
|
|
|
(global-corfu-mode)
|
|
|
:bind (:map corfu-map ([remap isearch-forward] . corfu-insert-separator)))
|
|
|
#+end_src
|
|
@@ -308,15 +313,18 @@ Sometimes using =variable-pitch= font anin't good.
|
|
|
:init
|
|
|
(setq tab-always-indent 'complete))
|
|
|
#+end_src
|
|
|
-**** Corfu-doc
|
|
|
+**** Corfu-popupinfo
|
|
|
#+begin_src emacs-lisp
|
|
|
(use-package corfu-popupinfo
|
|
|
:ensure nil
|
|
|
:after corfu
|
|
|
:custom
|
|
|
(corfu-popupinfo-delay 0)
|
|
|
- :config
|
|
|
- (corfu-popupinfo-mode))
|
|
|
+ :init
|
|
|
+ (corfu-popupinfo-mode)
|
|
|
+ :bind (:map corfu-popupinfo-map
|
|
|
+ ("M-p" . corfu-popupinfo-scroll-down)
|
|
|
+ ("M-n" . corfu-popupinfo-scroll-up)))
|
|
|
#+end_src
|
|
|
**** Kind icon
|
|
|
[[https://github.com/jdtsmith/kind-icon][Kind-icon]] provides nice icons for corfu popup
|
|
@@ -482,11 +490,15 @@ Add some nice snippets
|
|
|
Do not leave litter files
|
|
|
#+begin_src emacs-lisp
|
|
|
(use-package no-littering
|
|
|
- :config
|
|
|
+ :init
|
|
|
(setq no-littering-etc-directory
|
|
|
(expand-file-name "config/" user-emacs-directory))
|
|
|
(setq no-littering-var-directory
|
|
|
- (expand-file-name "data/" user-emacs-directory)))
|
|
|
+ (expand-file-name "data/" user-emacs-directory))
|
|
|
+ (setq backup-directory-alist
|
|
|
+ `(("\\`/tmp/" . nil)
|
|
|
+ ("\\`/dev/shm/" . nil)
|
|
|
+ ("." . ,(no-littering-expand-var-file-name "backup/")))))
|
|
|
#+end_src
|
|
|
** Languages
|
|
|
Language-specific configurations
|
|
@@ -494,6 +506,33 @@ Language-specific configurations
|
|
|
#+begin_src emacs-lisp
|
|
|
(use-package fish-mode)
|
|
|
#+end_src
|
|
|
+*** Haskell
|
|
|
+#+begin_src emacs-lisp
|
|
|
+ (use-package haskell-mode)
|
|
|
+#+end_src
|
|
|
+*** Clojure
|
|
|
+#+begin_src emacs-lisp
|
|
|
+ (use-package clojure-mode)
|
|
|
+#+end_src
|
|
|
+
|
|
|
+**** Cider
|
|
|
+[[https://github.com/clojure-emacs/cider][Cider]] brings REPL driven clojure develpment to clojure in emacs.
|
|
|
+#+begin_src emacs-lisp
|
|
|
+ (use-package cider)
|
|
|
+#+end_src
|
|
|
+
|
|
|
+**** Clj-refactor
|
|
|
+[[https://github.com/clojure-emacs/clj-refactor.el][Clj-refactor]] provides powerful refactoring functionality for Clojure projects.
|
|
|
+#+begin_src emacs-lisp
|
|
|
+ (defun my/clojure-mode-hook ()
|
|
|
+ (clj-refactor-mode 1)
|
|
|
+ (yas-minor-mode 1) ; for adding require/use/import statements
|
|
|
+ ;; This choice of keybinding leaves cider-macroexpand-1 unbound
|
|
|
+ (cljr-add-keybindings-with-prefix "C-c C-m"))
|
|
|
+ (use-package clj-refactor
|
|
|
+ :hook (clojure-mode . my/clojure-mode-hook))
|
|
|
+#+end_src
|
|
|
+
|
|
|
** Telega.el
|
|
|
[[https://github.com/zevlg/telega.el][Telega]] enables telegram integration.
|
|
|
Requires [[https://github.com/tdlib/td][tdlib]].
|