summary refs log tree commit diff
path: root/config/init-base.el
diff options
context:
space:
mode:
authorFranck Cuny <franck@fcuny.net>2024-05-26 14:00:34 -0700
committerFranck Cuny <franck@fcuny.net>2024-05-26 14:00:34 -0700
commit38593df6bb457fc3940fcef1d93976cd56b0a2d0 (patch)
tree58fbc11815b2fe7619d1234388877ebc0763afa6 /config/init-base.el
parenti want the eglot buffer to debug stuff (diff)
downloademacs.d-38593df6bb457fc3940fcef1d93976cd56b0a2d0.tar.gz
massive cleanup
Diffstat (limited to '')
-rw-r--r--config/init-base.el143
1 files changed, 143 insertions, 0 deletions
diff --git a/config/init-base.el b/config/init-base.el
new file mode 100644
index 0000000..799dce6
--- /dev/null
+++ b/config/init-base.el
@@ -0,0 +1,143 @@
+;;; init-base.el --- base configuration -*- lexical-binding: t -*-
+;; Author: Franck Cuny <franck@fcuny.net>
+
+;;; Commentary:
+
+;; commentary
+
+;;; Code:
+
+(setq sentence-end-double-space nil
+      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 0.5       ;; 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
+      history-delete-duplicates t
+      require-final-newline t
+      auto-save-default nil                ;; no autosave
+      backup-inhibited t                   ;; no backups
+      completion-ignored-extensions '(".class" ".cp" ".elc" ".fmt" ".git/" ".pyc" ".so" "~"))
+
+;; 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
+  :config
+  (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
+  :config
+  (setq dired-omit-files "^__pycache__$")
+  :custom
+  (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)))
+
+(use-package dired-x
+  :after dired
+  :hook ((dired-mode . dired-omit-mode)))
+
+(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