;; init-base.el -*- lexical-binding: t -*- (require 'init-const) (require 'init-funcs) (with-no-warnings (setq read-process-output-max (* 1024 1024)) ;; 1mb (lsp recommendation) ;; (setq ffap-machine-p-known 'reject)) ;; (use-package gcmh :diminish :hook (emacs-startup . gcmh-mode) :init (setq gcmh-idle-delay 'auto gcmh-auto-idle-delay-factor 10 gcmh-high-cons-threshold (* 16 1024 1024))) (when (fboundp 'set-charset-priority) (set-charset-priority 'unicode)) (prefer-coding-system 'utf-8) (setq locale-coding-system 'utf-8) (setq system-time-locale "C") (unless ON-WINDOWS (set-selection-coding-system 'utf-8)) (when ON-LINUX (use-package exec-path-from-shell :init (exec-path-from-shell-initialize))) ;; open file point at where last saved place. (use-package saveplace :ensure nil :hook (after-init . save-place-mode)) (use-package recentf :ensure nil :bind (("C-x C-r" . recentf-open-files)) :hook (after-init . recentf-mode) :init (setq recentf-max-saved-items 300 recentf-exclude '("\\.?cache" ".cask" "url" "COMMIT_EDITMSG\\'" "bookmarks" "\\.\\(?:gz\\|gif\\|svg\\|png\\|jpe?g\\|bmp\\|xpm\\)$" "\\.?ido\\.last$" "\\.revive$" "/G?TAGS$" "/.elfeed/" "^/tmp/" "^/var/folders/.+$" "^/ssh:" "/persp-confs/" (lambda (file) (file-in-directory-p file package-user-dir)))) :config (push (expand-file-name recentf-save-file) recentf-exclude) (add-to-list 'recentf-filename-handlers #'abbreviate-file-name)) (use-package savehist :ensure nil :hook (after-init . savehist-mode) :init (setq enable-recursive-minibuffers t ; Allow commands in minibuffers history-length 25 savehist-additional-variables '(mark-ring global-mark-ring search-ring regexp-search-ring extended-command-history) savehist-autosave-interval 300)) (use-package simple :ensure nil :hook ((after-init . size-indication-mode) (text-mode . visual-line-mode) ((prog-mode markdown-mode conf-mode) . enable-trailing-whitespace)) :init (setq column-number-mode t line-number-mode t ;; kill-whole-line t ; Kill line including '\n' line-move-visual nil track-eol t ; Keep cursor at end of lines. Require line-move-visual is nil. set-mark-command-repeat-pop t) ; Repeating C-SPC after popping mark pops it again ;; Only list the commands of the current modes (when (boundp 'read-extended-command-predicate) (setq read-extended-command-predicate #'command-completion-default-include-p)) ;; Visualize TAB, (HARD) SPACE, NEWLINE (setq-default show-trailing-whitespace nil) ; Don't show trailing whitespace by default (defun enable-trailing-whitespace () "Show trailing spaces and delete on saving." (setq show-trailing-whitespace t) (add-hook 'before-save-hook #'delete-trailing-whitespace nil t)) ;; Prettify the process list (with-no-warnings (add-hook 'process-menu-mode-hook (lambda () (setq tabulated-list-format (vconcat `(("" ,(if (icons-displayable-p) 2 0))) tabulated-list-format)))) (defun my-list-processes--prettify () "Prettify process list." (when-let ((entries tabulated-list-entries)) (setq tabulated-list-entries nil) (dolist (p (process-list)) (when-let* ((val (cadr (assoc p entries))) (icon (if (icons-displayable-p) (concat " " (nerd-icons-faicon "nf-fa-bolt" :face 'nerd-icons-lblue)) ;;(all-the-icons-faicon "nf-fa-bolt" :face 'all-the-icons-lblue)) " x")) (name (aref val 0)) (pid (aref val 1)) (status (aref val 2)) (status (list status 'face (if (memq status '(stop exit closed failed)) 'error 'success))) (buf-label (aref val 3)) (tty (list (aref val 4) 'face 'font-lock-doc-face)) (thread (list (aref val 5) 'face 'font-lock-doc-face)) (cmd (list (aref val 6) 'face 'completions-annotations))) (push (list p (vector icon name pid status buf-label tty thread cmd)) tabulated-list-entries))))) (advice-add #'list-processes--refresh :after #'my-list-processes--prettify))) ;; Misc (if (boundp 'use-short-answers) (setq use-short-answers t) (fset 'yes-or-no-p 'y-or-n-p)) (setq-default major-mode 'text-mode fill-column 80 tab-width 4 indent-tabs-mode nil) ; Permanently indent with spaces, never with TABs (setq visible-bell t inhibit-compacting-font-caches t ; Don’t compact font caches during GC delete-by-moving-to-trash t ; Deleting files go to OS's trash folder make-backup-files nil ; Forbide to make backup files auto-save-default nil ; Disable auto save uniquify-buffer-name-style 'post-forward-angle-brackets ; Show path if names are same adaptive-fill-regexp "[ t]+|[ t]*([0-9]+.|*+)[ t]*" adaptive-fill-first-line-regexp "^* *$" sentence-end "\\([。!?]\\|……\\|[.?!][]\"')}]*\\($\\|[ \t]\\)\\)[ \t\n]*" sentence-end-double-space nil word-wrap-by-category t) ;; use for org-roam? (when (fboundp 'sqlite-open) (use-package emacsql-sqlite-builtin)) (provide 'init-base) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;; init-base.el ends here