Help us understand the problem. What is going on with this article?

[個人メモ]Emacs環境改善

More than 1 year has passed since last update.

このところ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)
itage
ITAGEは「IT」のAGENCYになることを夢、目標として進化、変化していきます。「It’s It Agency」
http://www.itage.co.jp
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした