summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--essentials.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--essentials.el')
-rw-r--r--.config/emacs/modules/bd--essentials.el62
1 files changed, 62 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--essentials.el b/.config/emacs/modules/bd--essentials.el
new file mode 100644
index 0000000..cc51202
--- /dev/null
+++ b/.config/emacs/modules/bd--essentials.el
@@ -0,0 +1,62 @@
+;; -*- lexical-binding: t; -*-
+
+
+;;;; standard bindings
+;; both of these are bad--especially in exwm
+(global-unset-key (kbd "C-z"))
+(global-unset-key (kbd "C-x C-z"))
+
+(global-set-key (kbd "C-z =") 'text-scale-increase)
+(global-set-key (kbd "C-z -") 'text-scale-decrease)
+
+
+;;;; UI
+(setopt inhibit-startup-message t)
+
+;; line numbers
+(require 'display-line-numbers)
+(global-display-line-numbers-mode)
+(global-visual-line-mode t)
+(setopt display-line-numbers-type 'relative)
+(global-hl-line-mode 1)
+
+(defcustom display-line-numbers-exempt-modes
+ '(vterm-mode eshell-mode shell-mode term-mode ansi-term-mode image-mode doc-view-mode newsticker-treeview-mode newsticker-treeview-item-mode dired-mode org-agenda-mode)
+ "Major modes on which to disable line numbers."
+ :group 'display-line-numbers
+ :type 'list
+ :version "green")
+
+(defun display-line-numbers--turn-on ()
+ "Turn on line numbers except for certain major modes.
+Exempt major modes are defined in `display-line-numbers-exempt-modes'."
+ (unless (or (minibufferp)
+ (member major-mode display-line-numbers-exempt-modes))
+ (display-line-numbers-mode)))
+
+
+;;;; defaults
+;; basic editing
+(setopt kill-whole-line t)
+
+(defun bd/cleanup-buffer ()
+ (interactive)
+ (delete-trailing-whitespace)
+ (untabify (point-min) (point-max))
+ (indent-region (point-min) (point-max)))
+
+(setopt next-line-add-newlines t)
+(add-hook 'before-save-hook 'bd/cleanup-buffer)
+
+
+;;;; buffers
+(global-auto-revert-mode 1)
+(winner-mode 1)
+;; do not show async command buffers by default
+(add-to-list 'display-buffer-alist
+ (cons "\\*Async Shell Command\\*.*" (cons #'display-buffer-no-window nil)))
+(setopt scroll-up-aggressively '0.65
+ scroll-down-aggressively '0.65)
+
+
+(provide 'bd--essentials)