conf-emacs/init.el

101 lines
2.9 KiB
EmacsLisp

;;
;; emacs configuration
;;
;; Made by Némunaire <nemunaire@nemunai.re>
(require 'site-gentoo)
(require 'package)
(add-to-list 'package-archives
'("MELPA Stable" . "https://stable.melpa.org/packages/") t)
;; Added by Package.el. This must come before configurations of
;; installed packages. Don't delete this line. If you don't want it,
;; just comment it out by adding a semicolon to the start of the line.
;; You may delete these explanatory comments.
;; Initialize package system but don't activate packages yet
(setq package-enable-at-startup nil)
(package-initialize)
;; Register system-installed vterm in package-alist
;; (site-gentoo only adds to load-path, not package-alist)
(unless (assq 'vterm package-alist)
(let ((desc (package-desc-create
:name 'vterm
:version '(0 0 2)
:summary "Emulation of a terminal"
:reqs '((emacs (25 1)))
:kind 'dir
:dir "/usr/share/emacs/site-lisp/vterm")))
(push (cons 'vterm (list desc)) package-alist)))
;; Now activate all packages (including claude-code which will find vterm)
(package-activate-all)
;; Bootstrap use-package
(unless (package-installed-p 'use-package)
(package-refresh-contents)
(package-install 'use-package))
(require 'use-package)
(setq use-package-always-ensure t)
(setq flymake-allowed-file-name-masks nil)
(defun may-load (path)
"Load a file if it exists."
(when (file-readable-p path)
(load-file path)))
(defun reload ()
"Reload configuration file"
(interactive)
(load-file "~/.emacs.d/init.elc"))
;; Compile init file when it is modified
(defun byte-compile-current-buffer ()
"`byte-compile' current buffer if it's emacs-lisp-mode and compiled file exists."
(interactive)
(when (and (eq major-mode 'emacs-lisp-mode)
(file-exists-p (byte-compile-dest-file buffer-file-name)))
(byte-compile-file buffer-file-name)))
(add-hook 'after-save-hook 'byte-compile-current-buffer)
;; default emacs configuration directory
(defconst toc:emacs-config-dir "~/.emacs.d/configs/" "")
;; utility fonction to auto-load my package configurations
(defun toc:load-config-file (filelist)
(dolist (file filelist)
(message "Loading config file: %s..." file)
(load (expand-file-name
(concat toc:emacs-config-dir file)))
))
(add-to-list 'load-path "~/.emacs.d/stuff/")
(require 'my-autoload)
(require 'my-c-mode)
(require 'my-elisp)
(require 'my-font)
(require 'my-layout)
(require 'my-lisp-mode)
(require 'my-python-mode)
;; load my configuration files
(toc:load-config-file '("packages" ; Modern package management (load first)
"key-binding"
"editing"
"coding-style"
"tags"
"hooks"
"modes"
"mail"
"custom"
"perso"
))
(custom-set-variables
'(package-selected-packages nil)
'(python-indent 4)
'(query-user-mail-address nil)
'(user-mail-address "nemunaire@nemunai.re"))