summaryrefslogtreecommitdiff
path: root/.config/emacs/init.el
blob: 3bfc73e08cfcd14fac10ec9ec1eb660bf3c54386 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:


;;;; auto-generated files
;; disable the custom file by making it temporary
(setopt custom-file (make-temp-file "emacs-custom-")
        tramp-auto-save-directory (expand-file-name "tmp/auto_saves/sessions/" user-emacs-directory)
        ;; disable lockfiles
        create-lockfiles nil
        ;; move auto-saves to tmp folder
        auto-save-list-file-prefix (expand-file-name "tmp/auto_saves/sessions/" user-emacs-directory)
        auto-save-file-transforms `((".*" ,(expand-file-name "tmp/auto_saves/" user-emacs-directory) t))
        ;; move backups to tmp folder
        backup-directory-alist `(("." . ,(expand-file-name "tmp/backups/" user-emacs-directory))))
(make-directory (expand-file-name "tmp/auto_saves/" user-emacs-directory) t)

;;;; display type
(setq display (getenv "XDG_SESSION_TYPE"))
;;;; path
(setenv "PATH" (format "%s:%s" (expand-file-name "~/.local/bin/") (getenv "PATH")))

;;;; warnings
(setopt warning-minimum-level :error)


;;;; basic
(keymap-global-unset "C-z")
(keymap-global-unset "C-x C-z")
(global-set-key (kbd "C-x C-b") 'ibuffer)
(global-set-key (kbd "C-z =") 'text-scale-increase)
(global-set-key (kbd "C-z -") 'text-scale-decrease)

(setopt inhibit-startup-message t
        initial-major-mode 'eshell-mode
        initial-scratch-message nil)
(setopt text-scale-mode-step 1.1)
(setopt kill-whole-line t
        sentence-end-double-space nil
        next-line-add-newlines t
        scroll-up-aggressively '0.50
        scroll-down-aggressively '0.50)
(setopt use-short-answers t
        vc-follow-symlinks t
        completion-ignore-case t
        read-buffer-completion-ignore-case t)
(setq-default tab-width 8)
(menu-bar-mode -1)
(tool-bar-mode -1)
(scroll-bar-mode -1)
(fringe-mode '(0 . 0))
(tooltip-mode -1)
(global-hl-line-mode 1)
(global-visual-line-mode t)
(minibuffer-depth-indicate-mode 1)


;;;; gnus
(keymap-global-set "C-c m" #'gnus)
(setopt readmail-command 'gnus
        mail-user-agent 'gnus-user-agent

        gnus-init-file (expand-file-name "gnus" user-emacs-directory)
        gnus-home-directory (expand-file-name "gnus-home" user-emacs-directory)
        gnus-directory (expand-file-name "News" gnus-home-directory)
        mail-source-directory (expand-file-name "Mail" gnus-home-directory)

        gnus-save-newsrc-file nil
        gnus-read-newsrc-file nil)


;;;; configure packages
;; external package manager
(setopt package-archives nil
        package-enable-at-startup t)
;; path to system-level packages
(add-to-list 'load-path (expand-file-name "~/.guix-home/profile/share/emacs/site-lisp"))
(guix-emacs-autoload-packages)
;; use-package
(require 'use-package-ensure)
;; (setq use-package-verbose t)


;;;; add my modules to load path
(mapc
 (lambda (path)
   (add-to-list 'load-path (locate-user-emacs-file path)))
 '("modules" "libraries"))


;;;; load modules
(require 'bd--secret) ;; (gitignored)
(require 'bd--browse)
(require 'bd--rss)
(require 'bd--gpg)
(require 'bd--tabs)
(require 'bd--project)
(require 'bd--files)
(require 'bd--dictionary)
(require 'bd--erc)
(require 'bd--shells)
(require 'bd--minibuffer)
(require 'bd--buffers)
(require 'bd--devel)
(require 'bd--org)
(require 'bd--notes)
(require 'bd--emms)
(require 'bd--modeline)
(require 'bd--themes)
(require 'bd--exwm-windowing)


;;; init.el ends here