VanillaOS 3を試す

イメージ
以前仮想マシンで試したものの、あまり時間が取れず、しっかり使えていなかった。 余っている(テスト用においてある)Thinkpad x390に実際に入れて試してみた。 Vanilla OS ところが、サイトに行ってみると少し前(2026-08-24)にUpdateされており2→3へと2年ぶりの更新。 簡単に言うとイミュータブルなOSで、OS本体の書き換えは基本的にできず、A/Bパターンで起動する必要がある。 Aでインストールしたものは、Bに入れられ、起動時にBを選択するとインストール後の状態で使える仕組み。不具合があればまたAに戻せるというもの。 若干、コマンド類が変わってしまっているらしい。 イミュータブルなOSは、これまでにも試したものの日本語がうまく扱えないなど常用するには結構厳しいものがあった。 とはいえ、時間の経過で様々なアプリケーションがFlatpakやAppImageで出揃ってきたので、今回テストすることにした。 インストーラ自体は小さく、起動用のUSBに書き込んで起動すればOK。 インストール完了後、マシン名やユーザ名を入力することで、環境設定は完了。 基本的にはFlatpakでインストールするのが正しい使い方らしいので、必要そうなものを入れてみた。 vscode Brave Browser LMStudio DBeaver-ce Thunderird Obsidian opencode LibreOffice など・・・ どれも、サクサクと動作して気持ちいい。 日本語環境 さて、問題は日本語環境だが、調べてみるとflatpakにmozcもfcitx5も存在していた。 これんらばと思い、入れてみる。 https://note.kurodigi.com/vanillaos-fcitx5-mozc/ が、vanillaOS2の記事のようだけれども、同じ手順でOKだった。 すばらしい。 いつも使用しているmozcが動作するようになった。 ところが、LMStudioでハマった… flatpak特有の問題 LMStudioはすんなり入り、LMLinkでローカルのAIサーバも使用可能。 で、URLを指定したときにWEBサイトを取りに行かせて、処理させるMCPでハマった。 https://github.com/modelcontextprotocol/servers...

VS codeで表示がおかしい

Visual Studio CodeとVirtualBox

VirtualBox上でubuntu16.04を動かしていて、Visual Studio codeをインストールしたら、動作がおかしい。

起動はするものの、白い矩形が表示されて、移動できない。
消えない。ウインドウサイズを変えると、新たに現れたり…。

まあ、こんな感じになってしまう。

ちなみに、ホストマシンはWindows10 / MacOS Sierra のどちらでも再現する。

vscodeを終了すると消えることから、vscode自体に問題がある。

調べてみると、gpuとの相性が悪いらしい。

【解決方法】


  1. Virtualboxの3DアクセラレーションをOFFにする。
  2. 起動時にオプションを付ける
  3. 起動スクリプトにオプションを付ける
これぐらいしか無い。

ただし、3Dアクセラレーションをオフにすると、 vmのフォーマンスが劇的に悪くなる。Ubuntuの場合Dashboardの表示がのっそりになったりして、ストレスが大きいのお勧めしない。


そこで、起動時オプションを付加する方法が確認するには簡単。

$ code --disable-gpu
これだけで、GPUを使わずに動作する。
すると、白い矩形や窓は表示されなくなり、まともに動作するようなる。

ところが、この方法は、 端末(terminal)からの起動しか効かないので、GUIの人には不便だし、毎回オプションを書くのは面倒。

そこで、最後の方法で、起動時のスクリプトにオプションを付加しておく。

CUI用

$ which code
/usr/bin/code

と返してくるので、こいつをエディタで開く。
ディストリビューションが異なる場合は、パスが違うかもしれないので、上記で確認のこと。

#!/usr/bin/env bash
#
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for license information.
# If root, ensure that --user-data-dir is specified
if [ "$(id -u)" = "0" ]; then
for i in $@
do
if [[ $i == --user-data-dir=* ]]; then
DATA_DIR_SET=1
fi
done
if [ -z $DATA_DIR_SET ]; then
echo "It is recommended to start vscode as a normal user. To run as root, you must specify an alternate user data directory with the --user-data-dir argument." 1>&2
exit 1
fi
fi
if [ ! -L $0 ]; then
# if path is not a symlink, find relatively
VSCODE_PATH="$(dirname $0)/.."
else
if which readlink >/dev/null; then
# if readlink exists, follow the symlink and find relatively
VSCODE_PATH="$(dirname $(readlink -f $0))/.."
else
# else use the standard install location
VSCODE_PATH="/usr/share/code"
fi
fi
ELECTRON="$VSCODE_PATH/code"
CLI="$VSCODE_PATH/resources/app/out/cli.js"
ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "$@"

と書かれているので、最後の行にオプションを付加

ELECTRON_RUN_AS_NODE=1 "$ELECTRON" "$CLI" "--disable-gpu" "$@"

これで、OK。
ただし、これは端末で開く時にしか効かない。

GUI用

GUI操作の場合(Dashboardやランチャーに登録の場合)は、設定ファイルが別になる。
/usr/share/applications/code.desktop
を編集すれば良い。

管理者で上記ファイルを開く

[Desktop Entry]
Name=Visual Studio Code
Comment=Code Editing. Redefined.
GenericName=Text Editor
Exec=/usr/share/code/code --no-sandbox --unity-launch %F
Icon=com.visualstudio.code
Type=Application
StartupNotify=false
StartupWMClass=Code
Categories=Utility;TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-code-workspace;
Actions=new-empty-window;
Keywords=vscode;

X-Desktop-File-Install-Version=0.24

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/share/code/code --no-sandbox --new-window %F
Icon=com.visualstudio.code


このファイルの5行目、Exec行にオプションを付加する。

Exec=/usr/share/code/code --no-sandbox --disable-gpu --unity-launch %F

これで完了。

実際にメニューから起動してみると、正常に動作するのが分かる。


ちなみに、VMを使用していないマシン上では、何の問題もなく動作するのでvirtualboxのgpu関連と上手くいっていない模様。

そのうちvirtualboxがアップデートされて動作するようになるかもしれないし、vscode側で環境見てgpuを切るかもしれないので、何にせよ時間が解決するとは思う。

それまで凌ぐ方法です…。





レイアウトを変更したら、コード部分が読みにくいCSSが適用されていたので、CUI関係の部分のみ書き直しました…。

コメント

  1. 助かりました。
    私の場合はゲストOSがWin10で、その上でVSCodeを使用していました。
    Codeがバージョンアップで1.53.2になった途端に、
    一応Codeはそれっぽく表示され、アプリのウインドウも移動はできますが、ウインドウ内のあちこちが真っ黒くなり、その真っ黒になる部分がとても頻繁に変わる(今メニュー領域とタブ領域が黒くなってたと思えば、次の瞬間には編集ペインが…とか)
    --disable-gpu で解決しました。

    返信削除

コメントを投稿

励みになりますので、簡単で良いので一言くださいませ。

このブログの人気の投稿

MEGAにも弱点があった?

Ubuntu24.04 でGUIが死んだ

VirtualBoxでUSBを使う方法が分かった!