【Arch Linux】xfce4+i3wm環境でweztermをデフォルトにする

 投稿日:2023/04/05
  更新日:2023/04/05


こんにちは
最近破壊と再生を繰り返しつつあるろどりゅうです
最近大事なものをいくつか失いまして、その引き換えというわけでもないのですが、がむしゃらにVimやArchへの入信に精を出しております
…と言いつつVTuberとかモンハンに入り浸ってたのは内緒。

閑話休題

今回はArchを弄っていて、weztermに入信するために色々苦戦したのでその備忘録を残そうと思います

手元の環境

  • DELL Latitude 7370
  • Arch Linux(archinstall+zen+grub+xfce4)
neofetch
                   -`                    lordryu@archlinux 
                  .o+`                   ----------------- 
                 `ooo/                   OS: Arch Linux x86_64 
                `+oooo:                  Host: Latitude 7370 
               `+oooooo:                 Kernel: 6.2.8-zen1-1-zen 
               -+oooooo+:                Uptime: 6 hours, 39 mins 
             `/:-:++oooo+:               Packages: 958 (pacman) 
            `/++++/+++++++:              Shell: zsh 5.9 
           `/++++++++++++++:             Resolution: 1920x1080 
          `/+++ooooooooooooo/`           DE: Xfce 4.18 
         ./ooosssso++osssssso+`          WM: i3 
        .oossssso-````/ossssss+`         Theme: Adwaita-dark [GTK2/3] 
       -osssssso.      :ssssssso.        Icons: Pop [GTK2/3] 
      :osssssss/        osssso+++.       Terminal: xfce4-terminal 
     /ossssssss/        +ssssooo/-       Terminal Font: Fira Code 12 
   `/ossssso+/:-        -:/+osssso+-     CPU: Intel m7-6Y75 (4) @ 3.100GHz 
  `+sso+:-`                 `.-/+oso:    GPU: Intel HD Graphics 515 
 `++:.                           `-/+/   Memory: 3674MiB / 15887MiB 
 .`                                 `/

さあ、始めよう!

このセリフは私が気に入ってる掛け声ですね。元ネタはマリオカート7のコミュニティ機能ですw
それはともかく、まずはweztermを入れましょう

sudo pacman -S wezterm

次に色々弄っていきます

設定マネージャー(xfce4-settings-manager)→デフォルトアプリケーション(xfce4-mime-settings)

xfce4-mime-settings

ユーティリティ(U)を選択してターミナルエミュレーターのコマンドを変更しましょう。

wezterm start --cwd . "%s"

このコマンドは/usr/share/applications/org.wezfurlong.wezterm.desktopより引っ張ってきたものです。
しかし意味も知らずにコマンドを使用するのは、エンジニアとして邪道なので調べてきました。
幸い、weztermは個人開発にも関わらずかなりドキュメントが親切らしいので、探せばすぐに見つかりました
以下引用(#は筆者)

#前略
Options:
#中略
      --cwd <CWD>
          Specify the current working directory for the initially spawned
          program
#Deepl翻訳:最初に生成されたプログラムの現在の作業ディレクトリを指定する。
#後略

cwdcurrent working directory、つまり現在の作業ディレクトリの略です。
この設定をすることで、ターミナル経由のアプリケーションがweztermで開かれるようになります。

i3のconfig

$Mod+Return(Enter)で開かれるターミナルを、直接weztermに変更します

# start a terminal
bindsym $mod+Return exec wezterm

この設定において、私はデフォルトになっているi3-sensible-terminalで立ち上がるターミナルをどうにか変更できないかという疑問が浮かびましたが、それについてはこちらのStackOverflowで説明されています。
https://stackoverflow.com/questions/73033003/change-i3-sensible-terminal

One solution I've found is to modify /usr/bin/i3-sensible-terminal, and change the order of the terminals. So for example, by default the file is something like:
私が見つけた1つの解決策は、/usr/bin/i3-sensible-terminalを修正し、ターミナルの順序を変更することです。つまり、例えば、デフォルトでは、このファイルは次のようなものです:
for terminal in "$TERMINAL" x-terminal-emulator urxvt (etc etc) alacritty (etc etc)
You could modify it so that alacritty appears in the list before urxvt, and is therefore loaded first:
alacrittyがurxvtの前にリストに表示され、したがって最初にロードされるように修正することができます:
for terminal in "$TERMINAL" alacritty x-terminal-emulator urxvt (etc etc)
Alternatively, you should be able to modify the line:
または、行を修正することができるはずです:
exec "$terminal" "$@"
みたいな感じになるように:
exec alacritty
You can also put other options there aswell, for example, mine is:
exec "$terminal" "$@" -rv -e bash -l

要するに、/usr/bin/i3-sensible-terminal内の記述を編集し、当該テキストファイル内で羅列されているターミナル名の順序を変えたり、直接使いたいターミナルを指定したりすることで、私の環境においてはxfce4-terminalではなくweztermが起動するようになるということです。
しかし、homeディレクトリ内で管理できないファイルを変更してまでこれをやるのは正直面倒臭いので、ならi3のconfigで直接編集しようぜという結論に行き着きました。

Thunar ファイルマネージャーのコンテキストメニュー

左上のメニューから編集(E)アクションの設定(U)を選択してください。
開かれたポップアップウィンドウの+ボタンを押してください。
まずは基本タブの設定

名前にwezterm、説明にもwezterm、コマンドにwezterm start --cwd %fと入力され、アイコンもweztermのものが使用されている

名前と説明はお好みで、コマンドは以下の通りです。

wezterm start --cwd %f

先程のコマンドから、実行するコマンドを代入する部分の"%s"が消滅し、ディレクトリを指定する.が、Thunar内で選択したディレクトリを代入する%fに置き換わっています。
これで、指定したディレクトリをThunarからweztermで開けるようになりました。

Vim

先程のスタートメニューからVimを開くとweztermでvimが開かれますが、Thunarから開くと、xfce4-terminalが立ち上がってしまいます。
xfce4-terminalを削除して同様の操作をすると、「アプリケーションで必要な端末が見つかりません」と表示されます。
そこで、以下のフォーラム回答を参考にします

I initially tried editing /usr/share/applications/vim.desktop. I commented out #Exec=vim %F and added Exec=xfce4-terminal -e 'vim %F'. This worked for a while and then it started opening both Xterm and Xfce4 Terminal.
最初は/usr/share/applications/vim.desktopの編集を試みました。私は #Exec=vim %F をコメントアウトし、Exec=xfce4-terminal -e 'vim %F'を追加しました。これはしばらく機能しましたが、その後、XtermとXfce4 Terminalの両方を開くようになりました。
Instead in Thunar I right clicked on a txt file. I went to Properties > Open With: > Other Application > Use a custom command. I added xfce4-terminal -e 'vim %F'. This now works perfect.
代わりにThunarで、txtファイルを右クリックしました。プロパティ」→「他のアプリケーションで開く」→「カスタムコマンドを使用」と進みました: > 他のアプリケーション > カスタムコマンドを使用します。xfce4-terminal -e 'vim %F'を追加しました。これで完璧に動作するようになりました。
To access the .desktop file you just created you can go to ~/.local/share/applications/. In the file you will see Exec=xfce4-terminal -e 'vim %F' %f. You can remove the %f if you'd like. Mine initially used a folder icon in Thunar. I changed it to use the Xfce4 Terminal icon instead by adding the line Icon=utilities-terminal.
作成した .desktop ファイルにアクセスするには、~/.local/share/applications/ に移動します。このファイルには Exec=xfce4-terminal -e 'vim %F' %f と書かれています。お好みで%fを削除してください。私のは最初Thunarのフォルダーアイコンを使っていました。Icon=utilities-terminalという行を追加して、代わりにXfce4のターミナルアイコンを使用するように変更しました。
https://askubuntu.com/questions/788736/open-vim-in-xfce4-terminal-from-thunar

Linuxのアプリケーションは、全てコマンドで成り立っています。
つまり、デフォルトアプリケーションにカスタムコマンドを設定することで、wezterm経由でvimを起動することが可能になります。

wezterm -e vim %f #vimの部分をneovimなどのお好みのCUIエディタに変更する

これで、wezterm経由でvimが起動しました。
一度このコマンドをデフォルトに設定すれば、大部分のテキストファイルのデフォルトがこのコマンドになるので、設定が楽でした。

おわりに

今回はwezterm入信のためにデフォルトのターミナルを置き換えるという記事でした
こういう備忘録みたいなのは今後もやっていきたいと思っているので、楽しみにしておいてください
またね!


Menu