LoginSignup
6
7

More than 5 years have passed since last update.

[個人メモ]Emacs環境改善

Last updated at Posted at 2019-03-22

このところEmacsの環境を大きく変えたので、チラシの裏的に書き留めておく。

GUI Emacsへ

いままでtmux上でEmacsを立ち上げていたがターミナル上のEmacsにはいくつか制約があった。

特にレイアウト崩れは深刻でmagitのコミットツリーが一定の条件でぐちゃぐちゃになってしまう等大変ストレスフルだったところにかわEmacsがトドメを指した格好となった。

パッケージ管理をel-getからstraight.el+use-packageへ

el-getについては以前記事も書き気に入って使用していたが、パッケージのインストールと設定が別など細かい点では不満があった。

straight.eluse-pacakgeを合わせて使うことでパッケージのインストールから設定まで1つのS式で完結するという環境が手に入った。
もちろんel-getを採用したとき条件であった、

  • パッケージのリストを列挙しておくと
  • パッケージが無い場合は自動的にダウンロードしてインストールしてくれる
  • すでにインストールしてある場合は何もしない

はそのままである。

更にel-getの頃から懸案だったパッケージへのパッチ当てに対する不満もel-patchを導入することできれいに解決できた。
[Emacs] el-patchでパッケージにパッチを当てる

init-loaderでよみこむ.elを再編成

init-loaderの構成も改善した。

従来はパッケージをいくつかのグループに分けて設定の.elを.emacs.d/initに置き、そこから必要に応じて.emacs.d/init-loaderへシンボリックリンクを張り、そのシンボリックリンクをinit-loaderで読み込むということをしていた。

しかしグループ分けが面倒になってother.elが肥大化していくわ、シンボリックリンクなんにも意味ないわ、でどうしようかと思っているところで、

init-loaderって必要なの? ほんとに?

この記事を読んで一時はinit-loader廃止しようかとも思ったけど、最終的に読み込む.elの数を大幅に減らすことで落ち着いた。(シンボリックリンクはもちろん廃止)
元々10以上あったファイルは主に以下の4つとなった。

  • Emacs標準機能の設定
  • use-package群
  • 自作関数
  • OS毎の設定

この構成ならどのファイルに何が書いてあるか迷うことはないし、逆にある設定をどこに書くべきか迷うこともほぼ無い。パッケージ一覧をみるのも簡単だ。

番外編: Conkyで時刻表示

Conky自体はEmacsと何も関係ないもので、デスクトップ上に時刻やシステム情報を表示するアプリである。

なぜここで紹介するかというと、

  1. Emacsを全画面(F11)で使いたい
  2. 全画面だとGnomeのパネルが見えなくなって時刻がわからない
  3. モードラインの時刻はしっくりこない

というわけでEmacsのウインドウを透過させてConkyの時刻を表示させることにした。
テーマはConky-Vision。こんな感じ

image.png

透過処理は以下の通り

$HOME/.emacs.d/init-loader/99-utils.el
;; transparency
(defun toggle-transparency ()
  (interactive)
  (let ((alpha (frame-parameter nil 'alpha)))
    (set-frame-parameter
     nil 'alpha
     (if (eql (cond ((numberp alpha) alpha)
                    ((numberp (cdr alpha)) (cdr alpha))
                    ;; Also handle undocumented (<active> <inactive>) form.
                    ((numberp (cadr alpha)) (cadr alpha)))
              100)
         '(100 . 100) '(90 . 90)))))
(global-set-key (kbd "C-c C-t") 'toggle-transparency)
(toggle-transparency)
6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7