MiniBook XにArch Linux + Hyprlandを導入:テントモード対策とサイバーパンク風すりガラスUIの構築
Chuwi MiniBook X に Arch Linux と Wayland タイリングウィンドウマネージャー「Hyprland」を導入し、モバイルワークステーションとしてのセットアップを行いました。
本記事では、構築過程で直面した**「kitty起動時のタイリング崩れ」や「テントモード時のキーボード無効化」の解決策、そしてデスクトップ全体をサイバーパンク調の半透明・ブラー(すりガラス)デザイン**へ統一した設定手順をまとめます。
1. kitty が起動時に全画面化してしまう問題の解消
発生した現象
ブラウザやファイルマネージャーなどのGUIアプリは正常に分割配置されるにもかかわらず、ターミナルエミュレータである kitty だけが起動時に画面全体を覆ってしまい、自動タイリングが正常に機能しませんでした。一度フロート化してタイリングに戻すと直ることから、ウィンドウサイズの初期要求値が原因と判明しました。
解決策
kitty 側のウィンドウサイズ記憶を無効化し、Hyprland に渡す初期サイズを明示的に指定します。
~/.config/kitty/kitty.conf に以下を追記します:
# 前回の巨大なウィンドウサイズ記憶を無効化
remember_window_size no
initial_window_width 80c
initial_window_height 24c
あわせて ~/.config/hypr/hyprland.conf に強制タイリングルールを付与して保険をかけます:
windowrulev2 = tile, class:^(kitty)$
これで初回起動時から狙い通りに分割された状態で立ち上がるようになります。
2. 360度ヒンジ(テント/タブレットモード)時のキーボード無効化
MiniBook X は画面を360度回転させてテントモードやタブレットモードで運用できますが、Linux環境ではヒンジ角センサーがACPI/ドライバ層で直接拾えないケースがあります(evtest で確認したところ、一般的なフタ開閉 SW_LID のみ検知)。
背面になったキーボードやタッチパッドの誤入力を防ぐため、Waybar のアイコンを画面タッチしてワンタップで入力をトグルできる仕組みを構築しました。
① 入力デバイス名の特定
hyprctl devices で制御対象の内蔵デバイス名を確認します。
hyprctl devices
- 内蔵キーボード:
at-translated-set-2-keyboard - 内蔵タッチパッド:
amr12174:00-0911:5288,amr12174:00-0911:5288-1 - 画面タッチパネル:
nym-869b-e112(※無効化対象外にしてタッチ操作を維持)
② 切り替えスクリプトの作成
~/.config/hypr/scripts/waybar-tablet-mode.sh を作成します。
#!/usr/bin/env bash
STATE_FILE="/tmp/hypr_tablet_mode"
KEYBOARD="at-translated-set-2-keyboard"
TOUCHPAD1="amr12174:00-0911:5288"
TOUCHPAD2="amr12174:00-0911:5288-1"
# 引数に toggle が渡されたら入力を切り替え
if [ "$1" = "toggle" ]; then
if [ -f "$STATE_FILE" ]; then
# ノートPCモードへ復帰
rm -f "$STATE_FILE"
hyprctl keyword "device[${KEYBOARD}]:enabled" true
hyprctl keyword "device[${TOUCHPAD1}]:enabled" true
hyprctl keyword "device[${TOUCHPAD2}]:enabled" true
else
# タブレット/テントモードへ(背面キーボードとトラックパッドを無効化)
touch "$STATE_FILE"
hyprctl keyword "device[${KEYBOARD}]:enabled" false
hyprctl keyword "device[${TOUCHPAD1}]:enabled" false
hyprctl keyword "device[${TOUCHPAD2}]:enabled" false
fi
# Waybar に再描画シグナルを送信
pkill -RTMIN+8 waybar
exit 0
fi
# 引数なし(Waybarの状態取得時)
if [ -f "$STATE_FILE" ]; then
echo '{"text": "📱", "tooltip": "タブレットモード(入力無効)\nタップで有効化", "class": "tablet"}'
else
echo '{"text": "💻", "tooltip": "ノートPCモード(入力有効)\nタップで無効化", "class": "laptop"}'
fi
実行権限を付与します:
chmod +x ~/.config/hypr/scripts/waybar-tablet-mode.sh③ Waybar への登録
~/.config/waybar/config.jsonc(または config)にカスタムモジュールを追加します。
"modules-right": [
"custom/tablet",
"pulseaudio",
"battery",
"clock",
"tray"
],
"custom/tablet": {
"format": "{}",
"return-type": "json",
"exec": "~/.config/hypr/scripts/waybar-tablet-mode.sh",
"on-click": "~/.config/hypr/scripts/waybar-tablet-mode.sh toggle",
"signal": 8,
"interval": "once"
}
これで、キーボードが無効化された状態でも、画面上の「📱」アイコンを指でタップするだけで即座に入力を復帰できます。
3. サイバーパンク調すりガラス(Blur / Transparency)UIの構築
Catppuccin調のダークカラーをベースに、ネオンシアンとマゼンタのアクセントが映えるすりガラスUIを構築しました。
① Hyprland のブラーと角丸設定
~/.config/hypr/hyprland.conf:
general {
gaps_in = 6
gaps_out = 12
border_size = 2
col.active_border = rgba(33ccffee) rgba(ff00ffee) 45deg
col.inactive_border = rgba(595959aa)
layout = dwindle
}
decoration {
rounding = 10
active_opacity = 0.92
inactive_opacity = 0.78
blur {
enabled = true
size = 6
passes = 3
new_optimizations = true
ignore_opacity = true
xray = false
}
shadow {
enabled = true
range = 15
render_power = 3
color = rgba(00000066)
}
}
# Waybar 自体にもすりガラスブラーを効かせる
layerrule = blur, waybar
layerrule = ignorezero, waybar② kitty の半透明設定
~/.config/kitty/kitty.conf:
background_opacity 0.80
window_padding_width 12
background #11111b
foreground #cdd6f4③ Waybar の半透明カプセルデザイン
~/.config/waybar/style.css:
* {
font-family: "JetBrainsMono Nerd Font", "Noto Sans CJK JP", sans-serif;
font-size: 13px;
font-weight: bold;
}
window#waybar {
background-color: rgba(17, 17, 27, 0.65);
border-bottom: 2px solid rgba(51, 204, 255, 0.3);
color: #cdd6f4;
}
#workspaces,
#clock,
#battery,
#pulseaudio,
#custom-tablet {
background-color: rgba(30, 30, 46, 0.7);
padding: 2px 10px;
margin: 4px 3px;
border-radius: 8px;
border: 1px solid rgba(255, 255, 255, 0.1);
}
#workspaces button.active {
background-color: #33ccff;
color: #11111b;
}
#custom-tablet.tablet {
background-color: #f38ba8;
color: #11111b;
}
4. hyprpaper による壁紙設定
Hyprland公式の軽量壁紙デーモン hyprpaper を導入します。
sudo pacman -S hyprpaper設定ファイル作成
~/.config/hypr/hyprpaper.conf:
preload = /home/holscoma/Pictures/wallpapers/cyberpunk_bg.jpg
wallpaper = ,/home/holscoma/Pictures/wallpapers/cyberpunk_bg.jpg
splash = false自動起動の追加
~/.config/hypr/hyprland.conf:
exec-once = hyprpaper
Tips:
error: invalid hyprpaper requestが出る場合
hyprctl hyprpaperコマンドで壁紙を動的変更しようとして上記エラーが出る場合は、バックグラウンドでhyprpaperデーモンが起動していません。ターミナルでhyprpaper &を実行してプロセスを立ち上げてからhyprctl hyprpaper preload ...を発行してください。
まとめ
小型UMPCである MiniBook X に Arch + Hyprland を組み合わせることで、極めて軽量かつ省リソースでありながら、ハードウェア特性(タッチ操作・360度ヒンジ)を活かした実用性の高いモバイル環境が完成しました。