;; -*- 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)