メインコンテンツへスキップ
  1. ノート/
  2. ツールとデプロイ/

Hyprland簡明ガイド

·2745 文字·6 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml

Hyprlandでは、すべての機能をキーボードショートカットだけで操作するわけではありません。yadやrofiでGUIメニューを表示し、そこからシェルスクリプトやHyprlandのコマンドを実行する構成もよく使われます。

1. 設定ディレクトリ
#

一般的な設定の構造は次のようになります。

~/.config/hypr/
├── hyprland.conf
├── hypridle.conf
├── hyprlock.conf
├── hyprpaper.conf
├── monitors.conf
├── workspaces.conf
├── animations/
├── configs/
├── scripts/
├── UserConfigs/
└── UserScripts/

主なファイルとディレクトリ
#

  • hyprland.conf:Hyprland全体を読み込む中心的な設定。
  • configs:配布元の既定設定。更新で変更される可能性があるため、直接編集を避ける。
  • UserConfigs:ユーザー専用の設定。キーマップ、ウィンドウルール、環境変数などを置く。
  • scripts:配布元の補助スクリプト。
  • UserScripts:自分で追加するスクリプト。
  • hypridle.conf:アイドル時のロックや画面電源の設定。
  • hyprlock.conf:ロック画面の設定。
  • hyprpaper.conf:壁紙の設定。
  • monitors.conf:ディスプレイの解像度、位置、スケール。
  • workspaces.conf:ワークスペースの設定。
  • animations:アニメーションプリセット。

設定を上書きしたい場合は、Hyprlandのメイン設定からUserConfigsやUserScriptsを読み込む構成にすると、配布元の更新と自分の変更を分離できます。

2. アプリケーションの自動起動
#

hyprland.confやユーザー設定へ、次のように記述します。

exec-once = [workspace 1 silent] kitty
exec-once = [workspace 3 silent] firefox
exec-once = blueman-applet
  • exec-once:Hyprlandの起動時に1回だけ実行する。
  • exec:設定を再読み込みするたびに実行する。
  • exec-shutdown:Hyprlandの終了時に実行する。

同じアプリケーションを再読み込みのたびに起動したくない場合は、通常exec-onceを使います。

3. ワークスペース
#

ワークスペースのルールは、利用中のHyprlandのバージョンに対応した構文を確認してください。アプリケーションを特定のワークスペースへ置く例です。

windowrulev2 = workspace 4, class:^(firefox)$

アプリケーションのclass、title、initialClassなどは、次で確認できます。

hyprctl clients

アプリケーションが起動直後にclassを変更する場合、最初のルールがマッチしないことがあります。まず実際の属性を確認し、必要なら正規表現を広げるか、起動後の属性に合わせてルールを書きます。

4. ディスプレイ
#

GUIツールを使って設定する方法と、monitors.confを直接編集する方法があります。

monitor = DP-1, 2560x1440@144, 0x0, 1
monitor = HDMI-A-1, preferred, 2560x0, 1

利用可能な出力名と現在の設定は次で確認します。

hyprctl monitors

nwg-displaysなどのGUIを使う場合も、生成された設定を確認してから採用してください。

5. キーマップ
#

Hyprlandの基本形式は次のとおりです。

bind = SUPER, B, exec, firefox
bind = SUPER SHIFT, Q, killactive
bind = SUPER, 1, workspace, 1

ユーザー独自のキーマップはUserConfigs/UserKeybinds.confなどへ分けると管理しやすくなります。yadはフォーム、ボタン、複数列表示などを作りやすく、rofiはランチャーや候補選択に向いています。

特徴yadrofi
GUIの方向性GTKベースのフォームやダイアログ軽量なメニューと検索
複数列比較的扱いやすいテーマとスクリプトで調整
得意な用途設定画面、確認、進捗ランチャー、検索、選択
外観GTKテーマrofiテーマ

6. 環境変数とFcitx5
#

Wayland環境での入力メソッド設定は、ディストリビューションとアプリケーションに依存します。不要な変数まで設定すると、起動時の警告や入力不具合の原因になるため、Fcitx5の公式ガイドに合わせて必要なものだけを設定します。

XMODIFIERS=@im=fcitx
SDL_IM_MODULE=fcitx
GLFW_IM_MODULE=ibus

GTK、Qt、Electronアプリケーションでは、個別にWayland IME対応オプションが必要になる場合があります。デスクトップファイルをユーザー用の次の場所へコピーして編集する方法があります。

~/.local/share/applications/

RimeでCaps Lockを英数字モードの切り替えに使いたくない場合は、default.custom.yamlで次のように設定します。

patch:
  ascii_composer/switch_key/Caps_Lock: noop

7. NVIDIAとnouveau
#

NVIDIAを使う環境では、NVIDIAドライバー、Waylandコンポジター、Electronアプリケーションの対応状況を確認します。nouveauを無効化する手順は、Arch、Fedora、Ubuntuで異なります。

modprobe設定の例:

# /etc/modprobe.d/blacklist-nouveau.conf
blacklist nouveau
options nouveau modeset=0

カーネルのinitramfsを再生成するコマンドはディストリビューションで異なります。Archならmkinitcpio、Fedoraならdracutなど、利用中の公式手順を使ってください。

NVIDIA DRM modesetの例:

# /etc/modprobe.d/nvidia.conf
options nvidia_drm modeset=1

設定後は、再起動してhyprctl、カーネルログ、GPU使用状況を確認します。

8. Electronアプリケーション
#

Obsidian、VS Code、Chromeなどでは、Waylandバックエンドを有効にする起動オプションが必要になる場合があります。

--enable-features=UseOzonePlatform --ozone-platform=wayland

アプリケーションのclassを固定したい場合は、デスクトップファイルのStartupWMClassを確認します。ただし、アプリケーションのバージョンによってclass名が変わることがあるため、hyprctl clientsで実際の値を確認してください。

9. トラブルシューティング
#

  • 設定変更後に反映されない:設定ファイルの読み込み順と構文を確認する。
  • キーが反応しない:bindの修飾キー、キー名、スクリプトの実行権限を確認する。
  • ウィンドウが別のワークスペースへ移動しない:hyprctl clientsでclassとtitleを確認する。
  • Waybarのアイコンが表示されない:サービスの起動順、Waybarのログ、DBusサービスを確認する。
  • 日本語入力が途切れる:Fcitx5、GTK、Qt、ElectronのWayland設定を個別に確認する。
  • NVIDIAの描画が不安定:ドライバー、カーネル、Wayland、アプリケーションの対応バージョンを確認する。

参考資料
#

まとめ
#

Hyprlandの設定は、中心設定、ユーザー設定、スクリプトを分離すると保守しやすくなります。最初は自動起動、ワークスペース、モニター、キーマップを小さく設定し、hyprctlで実際の状態を確認しながらFcitx5やNVIDIAの設定を追加してください。

関連記事


评论