mlterm
を導入してみたところ、たまにmlterm
が起動しまくってとまらない?状態になってしまう。あと、絵文字を入力したときにめっちゃデカい。
なので、流行のalacritty
を入れてみることにした。
snapを使ってインストール
まずはsnap
を使ってためすも、--class
を付けろといってくる。
$ sudo snap install alacritty
error: This revision of snap "alacritty" was published using classic confinement and thus may
perform arbitrary system changes outside of the security sandbox that snaps are usually
confined to, which may put your system at risk.
If you understand and want to proceed repeat the command including --classic.
Snap(Snappy) コマンドの使い方 | Linux Magazine
Snapには、ソフトウェアを隔離してセキュリティを高めるサンドボックス機能があります。 しかしこの制限をかけると使い勝手が悪くなるパッケージがあるので、 そのリスクを承知してインストールをするために –classic オプションを追加します。 インストール時に、classic オプションが必要なパッケージの Notes には、classic と表示されます。
とな。
$ sudo snap install --classic alacritty
alacritty 0.2.0 from Chris MacNaughton (icey) installed
ところが、ギッチョンチョン、起動するとエラーを吐く。
Ubuntu snap package crashes on start · Issue #3066 · alacritty/alacritty · GitHub
パッケージ管理されてなく、古いですよー1、と。
ビルドしてインストール
しょうがないから、ビルドしてインストールすることに。
Rust製の爆速端末Alacrittyのインストールと設定方法 | TomboMemo
この方のおっしゃるとおりにすればインストールできる。
依存関係のあるライブラリをインストール
$ sudo apt install cmake pkg-config libfreetype6-dev libfontconfig1-dev libxcb-xfixes0-dev python3
rustupインストール
rustup.rs - The Rust toolchain installer
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
1) Proceed with installation (default)
2) Customize installation
3) Cancel installation
>1
1 を選択。
rustupインストール後セットアップ
$ source $HOME/.cargo/env
適切なRustコンパイラがインストールされていることを確認
$ rustup override set stable
$ rustup update stable
ソースを落してきて、ビルド
$ git clone https://github.com/alacritty/alacritty.git
$ cd alacritty
$ cargo build --release
バイナリファイル、アイコンの移動、デスクトップショートカット作成。
$ sudo cp target/release/alacritty /usr/local/bin
$ sudo cp extra/logo/alacritty-term.svg /usr/share/pixmaps/Alacritty.svg
$ sudo desktop-file-install extra/linux/Alacritty.desktop
$ sudo update-desktop-database
導入後、東アジアの曖昧な文字などを試す
で、インストールできたので、起動してecho ♂○
などを試す。
うむ。駄目だ。
- らりお・ザ・何らかの🈗然㊌ソムリエ: "lo48576/alacritty at feature/cjk-width https://gi…" - Mastodon
- GitHub - lo48576/alacritty at feature/cjk-width
とあるので、
east_asian_fullwidth: true
alacritty.ymlに設定してみたけど、駄目だった。
このプルリクエストについて熱い議論が重ねれれているが結局、導入されなかったようで…その後は Use system unicode width function · Issue #1295 · alacritty/alacritty · GitHubに移ったみたいなんだけど?
So, after a year this issue still open, is there any blockers?
I’m suffering from the problem on this issue for a long time using Alacritty.
未解決のまま?
However, this is not a problem on a lot of systems so the priority is pretty low as far as I’m concerned. It’s also not a good solution and it will not solve the problem in every case.
優先度低め?
I know this problem is hard to solve by using wcwidth
Why would it be? That’s actually the easiest solution there is. Since that’s what most applications use anyways.
wcwidth
を使用して解決するのが簡単だと…良く分からない。ビルドのときに設定をイジれということなのか?
wcwidth-cjkをインストール
それとも
Arch LinuxでEast Asian Ambiguous charが幅1で表示されることについて - galaxy-sixth-sensey
fumiyas/wcwidth-cjk をインストールして、指示通り.zshenvあたりに
eval
/usr/local/bin/wcwidth-cjk --sh-init
と書くと、urxvt上での問題は一切合切直った。 すごい!!
の解決策のようにwcwidth-cjk
を導入すればいいのか?
git clone https://github.com/fumiyas/wcwidth-cjk
cd wcwidth-cjk/
sudo apt install autoconf
sudo apt install automake libtool make gcc
sh autogen.sh
ls
./configure --prefix=/usr/local
make
sudo make install
これでうまくインストールできたんだけど、自分がぱーたりんすぎて、どう使うのか良く分からない。
eval `/usr/local/bin/wcwidth-cjk --sh-init`
とか /usr/local/bin/wcwidth-cjk /usr/local/bin/alacritty
をしてもどうも上手くいかない…
追記 2021-01-17
$ /usr/local/bin/wcwidth Ab漢α¥
1 00 00 00 41 A
1 00 00 00 62 b
2 00 00 6F 22 漢
1 00 00 03 B1 α
1 00 00 00 A5 ¥
となっていたのを/usr/local/bin/wcwidth-cjk /usr/local/bin/alacritty
とすることで、その先で
$ /usr/local/bin/wcwidth Ab漢α¥
1 00 00 00 41 A
1 00 00 00 62 b
2 00 00 6F 22 漢
2 00 00 03 B1 α
1 00 00 00 A5 ¥
と表示されることは確認している。何か考え違いをしているのか。
ちなみに/usr/local/bin/wcwidth
は /etc/locale.gen をja_JP.UTF-8 UTF-8-EAW-FULLWIDTH
とすることでも、2 00 00 03 B1 α
の状態にはなる。
追記ここまで
そもそもmozc
で入力すれば文字が欠けずに、半角文字幅で入力されていくだけ。画面の表示が崩れて困るのは、skk
だから、ということに今更気付いてしまった。Chromebookでも拡張機能 SKK Japanese Input2なくなっちゃったしね…skk
を使うのが悪いのか。
なにかL’Arc〜en〜Cielの全角チルダどうこう言ってたころが懐しいな…
技術書典 :技術書のオンラインマーケット開催中がこのあいだ年始にやってましたけど
ここらへん買って読んだら、少しは理解できるようになるのだろうか(下は関係なさそう、でも面白そう)…あ、今でも(2021-01-16 23:30)購入できるんだね。
他の端末(ターミナル、GNU Screenあたり)を導入しようかな。
GNU Screenはラッパーだった。
-
ビルドしてできたものは
alacritty 0.8.0-dev (3ed9f9a)
だった。 ↩︎ -
https://chrome.google.com/webstore/detail/skk-japanese-input/khlokcofcnjkbjfddpkhfainfgkfngcm?hl=ja に元々公開されていた。ソース自体は GitHub - jmuk/chrome-skk: An SKK implementation for ChromeOS IME API.にある。 ↩︎