;;; init-base.el --- base configuration -*- lexical-binding: t -*- ;; Author: Franck Cuny ;;; Commentary: ;; commentary ;;; Code: (setq sentence-end-double-space nil ;; it matters for filling create-lockfiles nil ;; don't use a lock file tab-always-indent 'complete ;; when using TAB, always indent initial-major-mode 'fundamental-mode ;; default mode for the scratch buffer initial-scratch-message "" ;; makes the scratch buffer empty confirm-kill-emacs #'yes-or-no-p ;; ask before killing emacs use-short-answers t ;; use y-or-n minibuffer-message-timeout 2 ;; how long to display an echo-area message ring-bell-function 'ignore ;; really no bell visible-bell nil ;; no bell indent-tabs-mode nil ;; turn off tab indentation delete-by-moving-to-trash t ;; delete files by moving them to the trash user-full-name "Franck Cuny" user-mail-address "franck@fcuny.net" history-length 200 ;; increase history length history-delete-duplicates t ;; delete duplicate from history require-final-newline t ;; ensure a new line is present at the bottom of files auto-save-default nil ;; no auto save backup-inhibited t ;; no backups custom-file (expand-file-name "lisp/custom.el" user-emacs-directory)) ;; Use UTF-8 everywhere (prefer-coding-system 'utf-8) (set-default-coding-systems 'utf-8) (set-terminal-coding-system 'utf-8) (set-keyboard-coding-system 'utf-8) (use-package recentf :custom (recentf-max-saved-items 2000) (recentf-max-menu-items 200) (recentf-exclude '("~\\'" "\\`out\\'" "\\.log\\'" "^/[^/]*:" "\\.el\\.gz\\'" "\\.gz\\'")) :config (recentf-mode t)) (use-package savehist :ensure nil :hook (after-init . savehist-mode) :config (setq savehist-file (locate-user-emacs-file "savehist")) (setq history-length 100) (setq history-delete-duplicates t) (setq savehist-save-minibuffer-history t) (savehist-mode t)) (use-package saveplace :config (save-place-mode t)) (use-package autorevert :custom (auto-revert-use-notify nil) :config (global-auto-revert-mode t)) (global-set-key (kbd "M-j") 'join-line) (use-package which-key :diminish :ensure t :hook (after-init . which-key-mode)) (use-package imenu :config (setq imenu-auto-rescan t)) (when (memq window-system '(mac ns)) (add-to-list 'default-frame-alist '(fullscreen . maximized)) (add-to-list 'default-frame-alist '(ns-appearance . nil)) (add-to-list 'default-frame-alist '(ns-transparent-titlebar . nil))) (use-package exec-path-from-shell :ensure t :demand t :if (memq window-system '(mac ns)) :config (exec-path-from-shell-initialize) :custom (exec-path-from-shell-variables '("ASPELL_CONF"))) (use-package ibuffer :defer t :bind ("C-x C-b" . ibuffer) :custom (ibuffer-expert t) (ibuffer-show-empty-filter-groups nil) (ibuffer-jump-offer-only-visible-buffers t) (ibuffer-maybe-show-predicates '("^\\*.*\\*$")) (ibuffer-never-show-predicates '("^ ")) (ibuffer-use-other-window t)) (use-package midnight :defer t :custom ;; every 6 hours (midnight-period (* 3600 6))) (use-package dired :ensure nil :defer t :hook (dired-mode . dired-omit-mode) :bind (:map dired-mode-map ( "." . dired-omit-mode)) :custom (dired-omit-files (rx (seq bol "."))) (dired-use-ls-dired t) (insert-directory-program "/etc/profiles/per-user/fcuny/bin/ls") (dired-clean-up-buffers-too nil) (dired-dwim-target t) (dired-hide-details-hide-information-lines nil) (dired-hide-details-hide-symlink-targets nil) (dired-recursive-copies 'always) (dired-recursive-deletes 'always) (dired-no-confirm '(byte-compile chgrp chmod chown copy hardlink symlink touch))) (defun my/rename-this-buffer-and-file () "Renames current buffer and file it is visiting." (interactive) (let ((name (buffer-name)) (filename (buffer-file-name)) (read-file-name-function 'read-file-name-default)) (if (not (and filename (file-exists-p filename))) (error "Buffer '%s' is not visiting a file!" name) (let ((new-name (read-file-name "New name: " filename))) (cond ((get-buffer new-name) (error "A buffer named '%s' already exists!" new-name)) (t (rename-file filename new-name 1) (rename-buffer new-name) (set-visited-file-name new-name) (set-buffer-modified-p nil) (message "File '%s' successfully renamed to '%s'" name (file-name-nondirectory new-name)))))))) (provide 'init-base) ;;; init-base.el ends here