brand new note

技術録

windows10でurxvtを起動する

やりたいこと

hyperをwindowsのターミナルとして使っていたのですが、出力が重くなってしまったため代わりにurxvt (rxvt-unicode)を使うことを検討しました。

やってみる

・sudo apt install rxvt-unicodeが通らずperlのバージョン関係のエラーが頻発した

perlのバージョンを上げたり下げたりしてもその日は解決しませんでした。

・後日、sudo apt install rxvt で通った

/etc/apt/sources.listを変更してjaistからインストール。unicode対応版ではないものの、rxvtはXlaunch経由で起動できました。

Xlaunchって何

VcXsrvをインストールした際の呼び名です。これを使うとwindowsからでもXwindowSystemを使うことができます。つまり、windowsで使えないターミナルもXlaunchからなら立ち上げることができます。WSLをいじいじしていた時に偶然触っていたので自分のPCにはこの環境が入っていました。この辺見るといいです。

お前らのWSLはそれじゃダメだ - たいちょーの雑記

Xlaunchを起動したのち、windowsから直接叩けるターミナルを用いて以下のコマンドを打つ

dbus-launch rxvt -e uim-fep

f:id:frazz:20190519211904p:plain

起動したけど…二度手間だししょぼい…そこまでやる必要あるか…

動作が軽そうだということは理解しましたが、ほかの方法でうまく行かないか試します。

もっかい

・apt install rxvt-unicodeが通った

Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 perl-base amd64 5.26.1-6ubuntu0.3 [1390 kB]

序盤はperlのバージョンがなんだとかっていうエラーが頻発していたんですが、デフォルトの/etc/apt/souces.listのコメントアウトをいくつか外したところうまくインストールできました。なんだ。

・apt install rxvt-unicode-256colorも通った

これを使うことにしましょう。

・起動が以下のコマンドからできることがわかった

rxvt rxvt-unicode

f:id:frazz:20190519212521p:plain

Xlaunchが起動している間はこのコマンドが有効になるということだと思います。

おもうこと

・そもそもhyper起動してから立ち上がるのであれ

・軽いのは理解したけれど、しょぼい

・公式っぽいインストール手順を色々すっ飛ばしていて不安

・フォント、背景色については設定ファイルをここから書けばいい?

もっかい!

・VcXsrvを起動する手間にはメリットもある

Windows Subsystem for Linux + X Windowを1.024倍くらい使いこなすための方法 - Qiita

端末起動するだけなら手間増えてるよなあと思ったんですが、こういう環境にすることによってほかにもできることが増えたみたいです。なによりだ。

・設定を.Xdefaultsに書いた

少しだけ調べた感じだと、ほかの端末からXwindowに入るケースでは設定が崩れたりする場合があるので、.Xdefaultsは基本的な設定のみを書いて残りは.Xresourcesに書くのが作法のようです。(.Xresoucesは.Xdefaultの設定を見に行った後に手動で起動することによって使える設定というイメージ)

【Proton.jp】 .Xdfaults と .Xresources の違い

が、特にそういうことを考えない場合は全て.Xdefaultに書いても差し支えないようです。

URxvt.scrollBar: false 
URxvt.cursorBlink: true
URxvt.cursorUnderLine: true 
URxvt.background: #222222
URxvt.foreground: #ffffff
URxvt.font: xft:DejaVu Sans Mono, xft:IPAGothic
URxvt.depth:                32
URxvt.geometry:             80x30
URxvt.transparent:          false
URxvt.fading:               5
URxvt.urgentOnBell:         true
URxvt.visualBell:           true 
URxvt.loginShell:           true
URxvt.saveLines:            2000
URxvt.internalBorder:       3
URxvt.lineSpace:            0
URxvt.letterSpace:          -1


Xft.dpi:                    96 
Xft.antialias:              true
Xft.rgba:                   rgb
Xft.hinting:                true

・キー配列を英字の設定にしてVcXsrvを起動する

Xlaunchはショートカットアイコンから起動すると日本語キー配列の設定で立ち上がります。似たような詰まり方をしている方の記事があったのでこれで解決しました。

VcXsrv日本語キーボード問題 – INOUE Katsumi at Tokyo

アイコンクリックでなくコマンドからVcXsrvを起動し、その際英字配列を使うようにオプションで指定します。そこからrxvtを立ち上げます。スクリプトにしました。

#!/bin/bash 
ps aux | grep "/mnt/c/Program\ Files/VcXsrv/vcxsrv.exe :0 -multiwindow -clipboard -noprimary -wgl -xkblayout us" | awk '{ print "kill -9", $2 }' | sh 
/mnt/c/Program\ Files/VcXsrv/vcxsrv.exe :0 -multiwindow -clipboard -noprimary -wgl -xkblayout us &
sleep 3;

rxvt-unicode

1行目は、VcXsrvのプロセスが立ち上がっている場合、一度killしてから立ち上げ直すようにするために入れました。念のため。

2行目が英字キー配列の設定でVcXsrvを起動するところです。ショートカットアイコンをクリックして質問のダイアログをポチポチする手間が省けました。

rxとかいう短縮コマンドにしてこれを実行できるようにするとより便利です。

f:id:frazz:20190520220035p:plain

ま、ましになったかな…

とりあえずここまで起動するための踏み台になるターミナルはWSLでもcmd.exeでもいいわけで、hyperから足を洗えるだけの材料は整いました。いったん終わり。