GNOME

VTE で Sixel が使えるようになった

久しぶりに vte のリポジトリを見に行ったら HEAD で Sixel が使えるようになっていたので、 その導入方法を……。 適当に調べた感じだと GNOME 端末 3.37 とかでもサポートされてるっぽいです。 sover 見た感じだと ABI 互換性が崩れたことはなさそうなのでどのバージョンでも問題は起きないかと思います。 バージョン Arch Linux 上で確認をしています。 また、実際に使ったコミットのハッシュは以下です。 c17e6d12da00a94c3768be6671182a6a039ec0c0 方法 まだリリースされていないので HEAD を取ってくる必要があります。 なんかサーバ遅い気がするので --depth 1 をつけて履歴を取ってこないようにした方がいいかもしれません。 $ git clone https://gitlab.gnome.org/GNOME/vte.git ソースのディレクトリに入り、Meson で Ninja などなどを生成 & ビルドします。 sixel はデフォルトだと無効なのでここで有効化してやります (-D は Make とか CMake にあるような、ビルドのオプションを変えるというオプション)。 $ meson . _build -Dsixel=true && cd _build && ninja ビルドに成功したらインストールします。ld.so.conf とかで /usr/local/lib を使う設定に していれば、そのまま ninja install とかでインストールすればいいと思います。 僕はめんどくさいので乱暴に _build/src/libvte.so.0.6500.0 を /usr/lib にコピーして soname のリンク (/usr/lib/libvte.so.0 などの古いライブラリに張ってある symlink) を張り替えるというやり方にしました (おそらくログがローカライズされないくらいで実害はないと思います)。

GNOME端末にSixelが入るかも?

2021/8/10 追記 ちゃんとマージされていたので、それを入れる方法をこちらに書きました。 知らんけど。 なんか今作業中っぽいやつを適当に clone してきてビルドして使ってみた。 ビルドしてインストールされてる GNOME 端末で使う方法を適当に紹介。 ライブラリとかは適当に入れてください。僕は gobject-introspection と vala を追加で入れる必要があった。Ubuntu とかだとヘッダファイルも 入れないといけない気がする。 ソースを落としてくる。僕はここから持ってきた。 https://gitlab.gnome.org/hansp/vte/-/tree/sixel-v5-hpj (けどこれはマージされてもマージされなくても消えるはず) meson _build とかしてビルド用のディレクトリに ninja でビルドするファイルを生成する。 ninja -C _build -j8 でビルド。-j オプションはコア数に合わせるとたぶん良い。 なんかエラーが出たので適当にエラーが出ないように修正。フォーマット文字列と型が一致しないとかだった。 _build/src/ に libvteなんとかかんとかというファイルが生成されているのでリンクじゃないどれかを/usr/libにコピーする。 /usr/lib/libvteなんとかかんとか.so.0のシンボリックリンクをさっきコピーしたライブラリを指すように張り直す。 /usr/libにコピーしなくても LD_LIBRARY_PATH の通ってるディレクトリに置けばいい気はするけど /tmp で作業したのとめんどくさかったのとでこういう感じにした。

GNOME 3.36 に更新したら ibus-mozc が動かなくなったので対処した

ibus-daemon(1) が起動していないことが原因らしい。 ビルドし直せば治るかなと思って GNOME の設定から mozc を消してしまったので デバッグできなくなっていた。 とりあえず,これが解消するまでは自分で systemd のユニットファイルを作って 自動起動してやることにした。 ちゃんと起動するようになったらバグるかもしれんが, まあそのときはなんとかして disable すればなんとかなるやろ。 https://gist.github.com/kofuk/4ef7b0baec48f1af2e6f5561fda89f98

GNOME 端末 と Sixel

GNOME 端末,というか GNOME 端末が使っている vte に Sixel が入ってほしいな, と思っていたけど,これ を見た感じ入る日は来なさそうだな,と思った。 この issue は重複する issue を上げるな,というところから, sixel のプロトコルがレガシーでパレットベースで,view/model を分けるのが困難 という説明までしている。 bugzilla の方もパッチはあるけどそのパッチが入る雰囲気はゼロだった。 2021/8/10 追記 そういえばこれ入ってました。

Firefox のテーマ

Google Chrome Light ってやつを入れた。デフォルト厨なので(?)今まではデフォルトのままで使ってきたけど急に変えたくなったので。 今は Google Chrome 使ってないけどあのモダンなデザインは割と好き。 あと,タブがウィンドウの枠に直接描画されるようにした。GNOME だとトップバーがあって, ウィンドウの枠があって,それから Web ページって感じだとかなり狭いので。 これが Firefox 標準のカスタマイズってところで変えられることに気づいてなかった。 で,最終的にこういう感じ。 そういや今日やったのではないけど,新しいタブのページの中の最近アクセスしたページ の一覧とかは使ったためしがないので設定で消してる。 そういや GNOME のテーマは逆にデフォルトに戻した。 今まではダークを使っていて,ライトよりダークの方が好きなんだけど, webkit2gtk でウェブページ内にもダークテーマが部分的に適用されたりして都合が悪かったので。

GNOME のデスクトップエントリー

これは GNOME に限らず,XDG 準拠のデスクトップ環境ならどこでも使える気がするんですが。 基本的にデスクトップエントリーのファイルは /usr/share/applications か /usr/local/share/applications に作ればいいと思うんですが,権限がないときとか, システムワイドにインストールしたくない場合とかがある。そのときは ~/.local/share/applications に置けばいい。~/.local は /usr/local に対応していると考えていいっぽいです。 あと,アイコン。デスクトップエントリーのファイルでは,Icon というキーでエントリー用のアイコンを 指定できるんですが,これは,テーマごとのアイコンのディレクトリから探索されます。 で,システムにインストールする場合は, /usr/share/icons か /usr/local/share/icons に 置けばよくて,ユーザーの場合は ~/.local/share/icons に置けばいい。 icons 以下にテーマのディレクトリがあるんですが,だいたいのテーマは hicolor を継承しているので, /usr/share/icons/hicolor に置けばいいみたいです。 そしてこれはちょっとハマったんですが,48x48 のアイコンは必ず準備しないと,他の解像度のを用意しても アイコンが認識されないみたいです。あと,画像のファイルは icons/テーマ/解像度(e.g. 48x48)/apps に置く。解像度のディレクトリに直接置いても認識されないです。

gsettings で変更したい設定メモ

ウィンドウのボタンの配列を変更 Unity の頃の Ubuntu に慣れすぎて Windows なレイアウトに慣れないので, mac 風のレイアウトに変更. ※ 決して Windows が嫌いだからとかそういう理由ではない. $ gsettings set org.gnome.desktop.wm.preferences button-layout 'close,minimize,maximize:appmenu' CapsLock を潰す 鬱陶しいので. あとついでに Caps の位置に Ctrl があるのに慣れといた方がいいかな, と. $ gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']" gsettings ではないけど,linux console で CapsLock を Ctrl として使うには, /etc/default/keyboard に以下を追加する. XKBOPTIONS="ctrl:nocaps"