101 lines
2.9 KiB
EmacsLisp
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"))
|