依存パッケージのビルドに必要なものをインストールしておきます。
macOS の場合はプロジェクトルートで以下を実行すると全部入ります:
brew bundle
Ubuntu の場合は以下のような感じで:
sudo apt install -y texinfo exa cmake libtool libtool-bin
macOS の場合は、以下のようにして man
のページインデックスキャッシュを作っておくとよいです:
sudo mandb $(gmanpath)
make
を実行すると、設定ファイルを生成したり、依存パッケージをインストールしたりして .emacs.d
の準備を整えます。
実行が終わったら、通常通り Emacs を実行すればよいです。
.emacs.d
以外に配置して、 make run
を実行すると、既存の .emacs.d
を汚さずに動かせます。
この場合は ~emacs –no-init-file~ で起動するので、カスタマイズの保存は出来ません。
普段使っている mac のバージョン情報:
sw_vers
ProductName: | macOS |
ProductVersion: | 12.5.1 |
BuildVersion: | 21G83 |
Xubuntu はこっち:
lsb_release -a
Distributor ID: | Ubuntu |
Description: | Ubuntu 22.04 LTS |
Release: | 22.04 |
Codename: | jammy |
一部依存する外部コマンドが Xfce 前提になってたりします。
cmigemo のインストールさえ済んでいれば、辞書の設定含めて consult/orderless といい感じに動きます。
ddskk の動作に必要な基本的な辞書のダウンロードとその設定を含めて、インストール時にいい感じにします。
Org mode でドキュメントと設定を併せて書き、 tangle して使います。
でもちゃんとバイトコンパイルするし、起動時には最小限のライブラリだけ読み込むなどの フツーの Emacs Lisp ベストプラクティスには従うようにしています。
通常起動かバッチモードかに依らず、常に実行したい処理です。
ロードパスと autoload の設定が主にやりたいことです。
;;; toncs-bootstrap.el -*- lexical-binding: t; no-byte-compile: t; -*-
(when load-file-name
(setq user-emacs-directory (file-name-directory load-file-name)))
(defvar el-get-dir (expand-file-name "var/el-get" user-emacs-directory))
(dolist (dir (list (expand-file-name "el-get" el-get-dir)
(expand-file-name "lisp" user-emacs-directory)))
(add-to-list 'load-path dir))
(setq load-prefer-newer t)
(setq package-enable-at-startup nil)
;; cf. https://emacs.stackexchange.com/a/35953/18118
(require 'gnutls)
(add-to-list 'gnutls-trustfiles "/private/etc/ssl/cert.pem")
;; batch モードでいちいち出てくるのはウザいので…
(when noninteractive
(setq byte-compile-warnings '(not obsolete)))
(defvar el-get-install-skip-emacswiki-recipes t)
(defvar el-get-install-shallow-clone t)
(defvar el-get-byte-compile (not (getenv "EL_GET_SKIP_BYTE_COMPILE")))
(unless (require 'el-get nil t)
(with-current-buffer
(url-retrieve-synchronously
"https://raw.githubusercontent.com/yewton/el-get/yewton-test/el-get-install.el")
(goto-char (point-max))
(eval-print-last-sexp)))
(require 'toncs-el-get)
(toncs-el-get-init)
(el-get 'sync)
;;; toncs-bootstrap.el ends here
;;; early-init.el -*- lexical-binding: t; no-byte-compile: t; -*-
Emacs 27 以降導入された仕組みです。
Doom Emacs を参考に、高速化や体験向上に寄与しそうな設定をしています。
(setq gc-cons-threshold most-positive-fixnum)
(push '(menu-bar-lines . 0) default-frame-alist)
(push '(tool-bar-lines . 0) default-frame-alist)
(push '(vertical-scroll-bars) default-frame-alist)
(setq frame-inhibit-implied-resize t)
(when load-file-name
(setq user-emacs-directory (file-name-directory load-file-name))
(setq user-init-file (expand-file-name "init.el" user-emacs-directory)))
(setq custom-file (expand-file-name "custom.el" user-emacs-directory))
(defvar toncs-early-init-loaded t)
;;; early-init.el ends here
;;; init.el -*- lexical-binding: t; no-byte-compile: t; -*-
(load (locate-user-emacs-file "toncs-bootstrap.el"))
(unless (bound-and-true-p toncs-early-init-loaded)
(when load-file-name
(setq user-emacs-directory (file-name-directory load-file-name)))
(load (locate-user-emacs-file "early-init.el")))
(toncs-init)
(require 'toncs-el-get)
(toncs-el-get-init)
(el-get 'sync)
(when (memq window-system '(mac ns x))
(require 'exec-path-from-shell)
(setq exec-path-from-shell-check-startup-files nil)
(exec-path-from-shell-copy-envs '("PATH" "MANPATH" "LANG" "LC_ALL" "LC_MESSAGES")))
(require 'auto-compile)
(auto-compile-on-load-mode)
(auto-compile-on-save-mode)
(require 'no-littering)
(require 'toncs-config)
(toncs-config-install)
(load custom-file)
(setq gc-cons-threshold (* 2 1000 1000))
;;; init.el ends here
- task
- Tasks Icon by freepik from www.flaticon.com
- routine
- Recycling Icon by freepik from www.flaticon.com
- event
- Calendar Icon by freepik from www.flaticon.com
- anniv
- Birthday Cake Icon by freepik from www.flaticon.com
- leave
- Beach Icon by freepik from www.flaticon.com
- holiday
- Star Icon by freepik from www.flaticon.com
- log
- Writing Icon by freepik from www.flaticon.com
- sprint
- Running Icon by freepik from www.flaticon.com
- habit
- To Do List Icon by freepik from www.flaticon.com