EXWM
EXWM は Emacs がベースのウィンドウマネージャです。
インストール
emacs がインストールされていることを確認してください。また、xorg-xinit が必要です。
Emacs の中から EXWM をインストール: M-x package-install exwm RET
。
xinitrc を編集して以下を追加:
exec emacs
emacs の init ファイルに、以下を追加 (デフォルト設定を使用する場合):
(require 'exwm) (require 'exwm) (exwm-config-default)
カスタム設定を使いたい場合、(exwm-config-default)
の代わりに (exwm-enable)
を使ってください ((require 'exwm-config)
は不要です)。
設定
EXWM は完全な X ウィンドウマネージャであるため、Emacs はブラウザや vlc などと同じように X ウィンドウを管理します。通常の Emacs のウィンドウコマンドを使ってウィンドウの配置を制御できます。X ウィンドウの中では (つまり通常の Emacs バッファ以外)、一部のコマンドは EXWM によってキャッチされプログラムに渡されません。そのようなキーは exwm-input-prefix-keys
に保存されています。また、exwm-input-set-key
関数を使うことでグローバルなコマンドを設定できます。例えば、キーボードショートカットとして s-& を使ってプログラム (例: firefox) を起動したい場合:
(exwm-input-set-key (kbd "s-&") (lambda (command) (interactive (list (read-shell-command "$ "))) (start-process-shell-command command nil command)))
マルチモニター
EXWM はオプションの exwm-randr
パッケージによってマルチモニターを管理することができます。xrandr をインストールして emacs の設定ファイルで exwm-randr を有効にすることで (exwm-enable)
を呼び出すことができるようになります。"DP-1" と "DP-2" の値はあなたが使用しているコンピュータにあわせて調整してください。引数を付けずにコマンドラインで xrandr
を実行すると利用可能な出力が確認できます。
(require 'exwm-randr) (setq exwm-randr-workspace-output-plist '(1 "DP-1")) (add-hook 'exwm-randr-screen-change-hook (lambda () (start-process-shell-command "xrandr" nil "xrandr --output DP-1 --right-of DP-2 --auto"))) (exwm-randr-enable)
システムトレイ
EXWM はシステムトレイに対応していますが、デフォルトでは有効になっていません。有効化するには emacs の設定ファイルの (exwm-enable)
の前に以下を記述してください:
(require 'exwm-systemtray) (exwm-systemtray-enable)
高さは exwm-systemtray-height
変数で調整できます。
コンポジットマネージャ
EXWM にはコンポジットマネージャが付属していますが、デフォルトでは有効になっていません。以下をロードすることで有効化できます:
(require 'exwm-cm) (exwm-cm-enable)
また、(exwm-cm-enable)
を排除して代わりに exwm-cm-start
または exwm-cm-stop
を呼び出すことで手動でコンポジットマネージャを起動・停止できます。
トラブルシューティング
Firefox で画面がちらつく
Preferences > Advanced > Use Smooth Scrolling からスムーズスクロールをオフにしてみてください。