<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=88boo</id>
	<title>ArchWiki - 利用者の投稿記録 [ja]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.archlinux.jp/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=88boo"/>
	<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php/%E7%89%B9%E5%88%A5:%E6%8A%95%E7%A8%BF%E8%A8%98%E9%8C%B2/88boo"/>
	<updated>2026-05-05T15:00:11Z</updated>
	<subtitle>利用者の投稿記録</subtitle>
	<generator>MediaWiki 1.44.3</generator>
	<entry>
		<id>https://wiki.archlinux.jp/index.php?title=Hyprland&amp;diff=39419</id>
		<title>Hyprland</title>
		<link rel="alternate" type="text/html" href="https://wiki.archlinux.jp/index.php?title=Hyprland&amp;diff=39419"/>
		<updated>2024-12-27T06:41:36Z</updated>

		<summary type="html">&lt;p&gt;88boo: リンクの修正&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Wayland コンポジタ]]&lt;br /&gt;
[[en:Hyprland]]&lt;br /&gt;
{{Related articles start}}&lt;br /&gt;
{{Related|ウィンドウマネージャ}}&lt;br /&gt;
{{Related|Wayland}}&lt;br /&gt;
{{Related articles end}}&lt;br /&gt;
&lt;br /&gt;
[https://hyprland.org/ Hyprland]  は C++ で書かれた、独立したタイリング [[Wayland#コンポジタ|Wayland コンポジタ]] です。Hyprland の特筆すべき点は、ダイナミックタイリング、タブ付きウィンドウ、クリーンで読みやすい C++ コードベース、ウィンドウアニメーションや角丸、透明ウィンドウでの Dual-Kawase Blur を提供するカスタムレンダラーなどです。一般的な使い方や設定方法は、 [https://wiki.hyprland.org/ Hyprland Wiki] に詳しく書かれています。&lt;br /&gt;
&lt;br /&gt;
== インストール ==&lt;br /&gt;
&lt;br /&gt;
次のいずれかをインストールします:&lt;br /&gt;
&lt;br /&gt;
* {{Pkg|hyprland}} - 最新のアップストリームリリース。&lt;br /&gt;
* {{AUR|hyprland-git}} - master ブランチへの最新のコミット。&lt;br /&gt;
&lt;br /&gt;
[https://github.com/hyprwm/Hyprland/pull/6608 #6608] の時点で、Hyprland は独自のレンダリングバックエンドライブラリとして [https://github.com/hyprwm/aquamarine aquamarine] を使用しています。以前は、{{AUR|wlroots-git}} に密接に従った独自のバージョンの {{Pkg|wlroots}} がバンドルされていました。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* [[NVIDIA]] GPU ユーザーは、Hyprland を起動する前に、[https://wiki.hyprland.org/Nvidia 上流 Wiki] のNVIDIA専用ページにも必ず従ってください。これを怠ると、ログインできない、ウィンドウが点滅する、CPU使用率が高いなど、多くのバグが発生する可能性があります。&lt;br /&gt;
* Hyprland での NVIDIA GPU の使用はサポートされていません。問題が起きても全て自己責任でお願いします。&lt;br /&gt;
* また、[[Polkit]] パッケージも必ずインストールしてください、これがないと Hyprland が起動できなくなります。({{ic|logind missing permissions}}).&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== 設定 ==&lt;br /&gt;
&lt;br /&gt;
{{Note|リストされているオプションのほとんど (およびその他) は、[https://wiki.hyprland.org/Cconfiguring/Variables/upstream Wiki] の変数ページで詳しく説明されています。}}&lt;br /&gt;
&lt;br /&gt;
設定は 1 つの設定ファイル、[https://github.com/vaxerski/Hyprland/blob/main/example/hyprland.conf hyprland.conf] を通して行われます。パッケージマネージャで Hyprland をインストールした場合、おそらく /usr/share/hyprland/hyprland.conf にあります。ソースからインストールした場合は、Hyprland をクローンしたレポジトリにあります。hyprland.conf を {{ic|~/.config/hypr/hyprland.conf}} にコピーしてください。&lt;br /&gt;
&lt;br /&gt;
{{ic|hyprland.conf}} には、デバイス (モニタ、キーボード、マウス、トラックパッド) を設定するディレクティブと、アニメーション、装飾、レイアウトなどの設定が含まれています。キーバインディングやウィンドウのルールを設定したり、コマンドを実行したりできます (一度だけ、あるいはコンフィグが再読み込みされるたびに)&lt;br /&gt;
&lt;br /&gt;
ファイルを更新するたびに設定が自動的にリロードされます。同じ効果を得るために {{ic|hyprctl reload}} を使うこともできます。いくつかの設定(特に入力設定)については、Hyprland セッションを再起動する必要があるかもしれません。&lt;br /&gt;
&lt;br /&gt;
設定は {{ic|hyprctl}} を使用してその場で変更することもできますが、保存されません。&lt;br /&gt;
&lt;br /&gt;
=== キーボード ===&lt;br /&gt;
&lt;br /&gt;
==== キーマップ ====&lt;br /&gt;
&lt;br /&gt;
デフォルトでは、Hyprland は {{ic|US Qwerty}} を使用します。次のように設定できます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# German Colemark layout&lt;br /&gt;
input {&lt;br /&gt;
    ...&lt;br /&gt;
    kb_layout = de&lt;br /&gt;
    kb_variant = colemark&lt;br /&gt;
    ...&lt;br /&gt;
    }&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
利用可能なすべてのオプションについては、[https://wiki.hyprland.org/Configuring/Variables/#input 上流 Wiki] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|Hyprland は [[ロケール]] 定義をオーバーライドするため、{{ic|US}} レイアウトキーボードを使用しない場合はキーマップを変更する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
==== 典型的な遅延と速度 ====&lt;br /&gt;
&lt;br /&gt;
Xorg ユーザーはこの設定を [[Xorg/キーボード設定#オートリピートの遅延と速度の調整|サーバーレベルで定義]] で使用することに慣れていますが、Wayland では各コンポジターがそれを独自に処理します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Repeat rate and delay&lt;br /&gt;
input {&lt;br /&gt;
    ...&lt;br /&gt;
    repeat_rate = 25&lt;br /&gt;
    repeat_delay = 600&lt;br /&gt;
    ...&lt;br /&gt;
    }&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== キーボードのバックライト ====&lt;br /&gt;
&lt;br /&gt;
他の照明コントロールとは異なり、キーボードバックライトには {{ic|XF86}} キーシムがないため、従来のバインドを行う必要があります。&lt;br /&gt;
&lt;br /&gt;
{{Pkg|brightnessctl}} を [[インストール]] します、次のバインドを追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Keyboard backlight&lt;br /&gt;
bind = SUPER, F3, exec, brightnessctl -d *::kbd_backlight set +33%&lt;br /&gt;
bind = SUPER, F2, exec, brightnessctl -d *::kbd_backlight set 33%-&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
変更が行われたときに [[Hyprland#画面上の通知|画面上の通知]] を実行することもできます。&lt;br /&gt;
&lt;br /&gt;
{{Note|ラップトップにハードウェアキーボードバックライトコントロール (キーボードの {{ic|Fn}} キーを使用) がある場合、追加の手順なしで機能するはずです。}}&lt;br /&gt;
&lt;br /&gt;
==== メディアキー ====&lt;br /&gt;
&lt;br /&gt;
Hyprland でキーボードメディアコントロールを使用するには、{{ic|XF86Audio}} キーシムと、{{Pkg|pavucontrol}} または {{Pkg|pamixer}} や [[MPRIS#Playerctl|playerctl]] などの外部アプリケーションを利用することで可能です。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Volume and Media Control&lt;br /&gt;
bind = , XF86AudioRaiseVolume, exec, pamixer -i 5 &lt;br /&gt;
bind = , XF86AudioLowerVolume, exec, pamixer -d 5 &lt;br /&gt;
bind = , XF86AudioMicMute, exec, pamixer --default-source -m&lt;br /&gt;
bind = , XF86AudioMute, exec, pamixer -t&lt;br /&gt;
bind = , XF86AudioPlay, exec, playerctl play-pause&lt;br /&gt;
bind = , XF86AudioPause, exec, playerctl play-pause&lt;br /&gt;
bind = , XF86AudioNext, exec, playerctl next&lt;br /&gt;
bind = , XF86AudioPrev, exec, playerctl previous&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
変更が行われたときに [[Hyprland#画面上の通知|通知]] を実行することもできます。&lt;br /&gt;
&lt;br /&gt;
=== タッチパッドのジェスチャ ===&lt;br /&gt;
&lt;br /&gt;
[[Wayland]] コンポジタである Hyprland はタッチパッドジェスチャを完全にサポートしていますが、デフォルトでは無効になっています。それらを有効にするには、次を編集します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Enable touchpad gestures&lt;br /&gt;
gestures {&lt;br /&gt;
    workspace_swipe = true&lt;br /&gt;
    workspace_swipe_fingers = 3&lt;br /&gt;
}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
利用可能なすべてのオプションについては、[https://wiki.hyprland.org/Configuring/Variables/#gestures 上流 Wiki] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== ディスプレイの設定 ===&lt;br /&gt;
&lt;br /&gt;
==== 画面共有 ====&lt;br /&gt;
&lt;br /&gt;
[https://wiki.hyprland.org/Useful-Utilities/Screen-Sharing/ Screen-sharing] を参照してください。&lt;br /&gt;
&lt;br /&gt;
wlroots ベースのコンポジタとして、Hyprland は {{Pkg|xdg-desktop-portal-wlr}} を利用して、[[xdg-desktop-portal]] 経由でさまざまなアプリケーションで画面キャプチャを有効にすることができます。&lt;br /&gt;
&lt;br /&gt;
Hyprland は、領域共有、ウィンドウ共有、グラフィカルピッカーユーティリティなどの機能を追加した wlr ポータルのフォークである {{Pkg|xdg-desktop-portal-hyprland}} も保守しています。ポータルの使用法については、[https://wiki.hyprland.org/Useful-Utilities/Hyprland-desktop-portal/ Hyprland wiki] で詳しく説明されています。&lt;br /&gt;
&lt;br /&gt;
==== 画面解像度の設定 ====&lt;br /&gt;
&lt;br /&gt;
Hyprland は画面解像度を自動的に検出しようとしますが、複数の画面が存在する場合やハイブリッドラップトップを使用している場合は、場合によっては失敗し、デフォルトでフェールセーフが設定されます。画面上のすべてが大きい場合は、デフォルトのモニターと解像度を設定する必要があります。&lt;br /&gt;
&lt;br /&gt;
まず、&#039;&#039;hyprctl&#039;&#039; を使用してデフォルトのモニターを見つけます:&lt;br /&gt;
&lt;br /&gt;
{{hc|$ hyprctl monitors|2=&lt;br /&gt;
Monitor &#039;&#039;&#039;eDP-1&#039;&#039;&#039; (ID 0):&lt;br /&gt;
        &#039;&#039;&#039;1920x1080@144&#039;&#039;&#039;.003006 at &#039;&#039;&#039;0x0&#039;&#039;&#039;&lt;br /&gt;
        description: Chimei Innolux Corporation 0x153C (eDP-1)&lt;br /&gt;
        ...&lt;br /&gt;
 }}&lt;br /&gt;
&lt;br /&gt;
次に、モニターを設定に追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
# Monitor details&lt;br /&gt;
monitor=eDP-1,1920x1080@144,0x0,1&lt;br /&gt;
...}}&lt;br /&gt;
&lt;br /&gt;
{{ic|0x0}} はマルチスクリーン設定に使用される位置オフセットで、最後の {{ic|1}} は画面のスケーリング係数です。&lt;br /&gt;
&lt;br /&gt;
==== 画面のバックライト ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|brightnessctl}} を [[インストール]] して、次のバインドを追加します。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Screen brightness&lt;br /&gt;
bind = , XF86MonBrightnessUp, exec, brightnessctl -s +5%&lt;br /&gt;
bind = , XF86MonBrightnessDown, exec, brightnessctl -s 5%-&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
変更が行われたときに [[Hyprland#画面上の通知|通知]] を実行することもできます。&lt;br /&gt;
&lt;br /&gt;
== 使用方法 ==&lt;br /&gt;
&lt;br /&gt;
=== 起動 ===&lt;br /&gt;
&lt;br /&gt;
現在、Hyprland は TTY から起動することを推奨しています。&lt;br /&gt;
&lt;br /&gt;
 $ Hyprland&lt;br /&gt;
&lt;br /&gt;
[[ディスプレイマネージャ]] からの起動は公式にはサポートされていませんが、[[GDM]]、[[SDDM]]、その他からの起動に成功したとの報告があります。全ての Hyprland AUR パッケージは自動的にディスプレイマネージャーエントリーを生成します。ソースから手動でインストールする場合、ソースコードの example ディレクトリに {{ic|Hyprland.desktop}} ファイルのサンプルがあります、これを {{ic|/usr/share/wayland-sessions/}} にコピーしてディスプレイマネージャーのエントリーを提供することができます。&lt;br /&gt;
&lt;br /&gt;
どちらの方法でも、いくつかの環境変数やサービスを追加したり削除したりすることで、同じ結果を得ることができます&lt;br /&gt;
&lt;br /&gt;
=== 自動ログイン ===&lt;br /&gt;
&lt;br /&gt;
[[ディスプレイマネージャ]] または [[xinit#ログイン時に X を自動起動|シェルから]] ユーザーは自動的にログインできます。&lt;br /&gt;
&lt;br /&gt;
=== hyprctl と IPC ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hyprctl&#039;&#039; は Hyprland にインストールされている、ディスプレイサーバーと通信するためのコマンドライン・ユーティリティです。サーバーにコマンドを送ったり (設定ファイルのコマンドと同じですが、構文が少し違います)、キーワードを設定したり、クエリ を送ったり、情報を要求したりすることができます。[https://github.com/vaxerski/Hyprland/wiki/Using-hyprctl full documentation] を参照してください。&lt;br /&gt;
&lt;br /&gt;
Hyprland は [https://wiki.hyprland.org/IPC/ 2 つの UNIX ソケット] も公開しており、コードやコマンドライン・ユーティリティを使って Hyprland の情報を制御・取得することができます。これらのソケットはフォーカスの変更 (ウィンドウ、ワークスペース、モニター) やウィンドウ/ワークスペースの作成などのイベントをブロードキャストします。&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;hyprctl&#039;&#039; と IPC ソケットは、複雑なタスクのために Hyprland を制御するスクリプトの中で効果的に使うことができます。&lt;br /&gt;
&lt;br /&gt;
=== exec と exec-once の比較 ===&lt;br /&gt;
&lt;br /&gt;
アプリケーションを起動するときは、正しいタイプのディスパッチャを使用することが重要です。{{ic|exec}} を誤って使用すると、アプリケーションが複数回起動されてシステムリソースが占有され、最悪の場合、競合状態が発生してシステムがクラッシュする可能性があります。&lt;br /&gt;
&lt;br /&gt;
{{Note|[[Hyprland#設定|設定]] で説明したように、Hyprland は &#039;&#039;ファイルへの変更が保存されるたびに&#039;&#039; 自動的に {{ic|hyprland.conf}} を解析します。すべてに {{ic|exec}} を使用しないでください。&lt;br /&gt;
&lt;br /&gt;
ほとんどの場合、起動時にアプリケーションとデーモンを起動するには、{{ic|exec-once}} を使用する必要があります。このコマンドはリロードで再度実行されないため、{{ic|exec}} は、絶対に実行する場合にのみ使用してください。リロードのたびにコマンドを再度実行することが &#039;&#039;&#039;確実な場合にのみ&#039;&#039;&#039; exec を使用してください。}}&lt;br /&gt;
&lt;br /&gt;
=== 環境変数の設定 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;env&#039;&#039; キーワードを使用して、[[環境変数]] を {{ic|hyprland.conf}} に直接設定できます。このキーワードの構文は、シェルで使用される &#039;&#039;env&#039;&#039; UNIX コマンドとは異なります。&lt;br /&gt;
&lt;br /&gt;
違いについては、[https://wiki.hyprland.org/Configuring/Environment-variables/ 上流の Wiki] で説明されています。&lt;br /&gt;
&lt;br /&gt;
== ヒントとテクニック ==&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* 以下のすべてのセクションでは、通常、同様の結果を達成する方法が複数あります。ここで提供するものはすべて基本的な例です。&lt;br /&gt;
* 代替手段の包括的なリストについては、[[アプリケーション一覧]] を参照してください。Hyprland 固有のリストは、[https://wiki.hyprland.org/Useful-Utilities/ 上流 Wiki] にあります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== ファイルマネージャー ===&lt;br /&gt;
&lt;br /&gt;
グラフィカルなファイル管理が必要な場合、Hyprland には Wayland 互換の外部アプリケーションが必要です。例として {{Pkg|thunar}} を使用すると、次のようにキーバインドを割り当てるだけで済みます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, E, exec, thunar&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== アプリケーションランチャー ===&lt;br /&gt;
&lt;br /&gt;
Hyprland では、アプリケーションを起動するために Wayland と互換性のある外部アプリケーションが必要です。例として {{Pkg|wofi}} を使用すると、次のようにキーバインドを割り当てるだけで済みます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, F, exec, wofi&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== アイドル状態 ===&lt;br /&gt;
&lt;br /&gt;
Hyprland には、Wayland 互換の外部アイドル管理デーモンが必要です。最も一般的なセットアップは、{{Pkg|swayidle}} と {{Pkg|swaylock}} です。次のようにバインドを使用して画面を手動でロックできます。&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, L, exec, swaylock -f -c 000000&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== 自動画面ロックとサスペンド ====&lt;br /&gt;
&lt;br /&gt;
次のスクリプトを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/sleep.sh|2=&lt;br /&gt;
swayidle -w timeout 300 &#039;swaylock -f -c 000000&#039; \&lt;br /&gt;
            timeout 600 &#039;systemctl suspend&#039; \&lt;br /&gt;
            before-sleep &#039;swaylock -f -c 000000&#039; &amp;amp;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&lt;br /&gt;
* 数値を編集することでタイムアウト期間を秒単位で調整できます。300 は 5 分、600 は 10 分などです。&lt;br /&gt;
* スクリプトは [[ヘルプ:読み方#実行可能属性の付与|実行可能ファイル]] である必要があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、それを呼び出します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = ~/.config/hypr/scripts/sleep.sh&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== タイムアウト期間後に DPMS を使用して画面をオフにする ====&lt;br /&gt;
&lt;br /&gt;
Hyprland には DPMS リクエストを処理する組み込みディスパッチャがありますが、これを直接キーバインドとして使用することはお勧めできません。使用すると、画面を再びオンにできなくなり、再起動が必要になります。&lt;br /&gt;
&lt;br /&gt;
上記のスクリプトを編集して次のように変更します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/sleep.sh|2=&lt;br /&gt;
swayidle -w timeout 300 &#039;swaylock -f -c 000000&#039; \&lt;br /&gt;
            timeout 600 &#039;hyprctl dispatch dpms off&#039; \&lt;br /&gt;
            resume &#039;hyprctl dispatch dpms on&#039; \&lt;br /&gt;
            timeout 900 &#039;systemctl suspend&#039; \&lt;br /&gt;
            before-sleep &#039;swaylock -f -c 000000&#039; &amp;amp;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{Tip|&#039;&#039;resume&#039;&#039; コマンドは前のコマンドにリンクされているため、正しく機能するには、{{ic|hyprctldispatch dpms on}} コマンドをスクリプト内の {{ic|hyprctldispatch dpms off}} コマンドの直後に指定する必要があります。}}&lt;br /&gt;
&lt;br /&gt;
===== アプリケーションの使用中に DPMS を停止する =====&lt;br /&gt;
&lt;br /&gt;
上記の設定を行うと、ゲームをプレイしたり、ビデオを見たり、音楽を聴いたりするなど、タイムアウト期間を超えてシステムに触らない可能性のある作業を行っているときにモニターの電源がオフになります。&lt;br /&gt;
&lt;br /&gt;
これを修正するには、{{ic|idleinhibit}} ルールを持つ [https://wiki.hyprland.org/Cconfiguring/Window-Rules#window-rules-v2 Window Rules V2] 関数に組み込まれた Hyprlands を使用するか、{{AUR|idlehack-git}} または {{AUR|sway-audio-idle-inhibit-git}} のいずれかをインストールします。前者は、[[Firefox]] または [[Chromium]] がオーディオ/ビデオを再生しているときは常に [[D-Bus]] を使用して Swayidle リクエストを防止します。後者は、アプリケーションがオーディオを再生しているときは常に Swayidle リクエストを阻止します。&lt;br /&gt;
&lt;br /&gt;
スクリーンセーバーを一時停止するために {{ic|org.freedesktop.ScreenSaver.inhibit}} を使うプログラムについては、{{AUR|wscreensaver-bridge-git}} をインストールすることで Hyprland (または {{ic|idle-inhibit}} プロトコルをサポートする Wayland コンポジター) に実装することができます。&lt;br /&gt;
&lt;br /&gt;
=== ステータスバー ===&lt;br /&gt;
&lt;br /&gt;
Hyprland でステータス バーを表示するには、Wayland 互換の外部アプリケーションが必要です。例として {{Pkg|waybar}} を使用すると、次のように呼び出すだけで済みます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = waybar -c ~/.config/waybar/waybar.conf&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== ワークスペースの概要 ====&lt;br /&gt;
&lt;br /&gt;
{{Pkg|waybar}} には、Hyprland ワークスペースの切り替えをネイティブにサポートする、完全にカスタマイズ可能なモジュールが組み込まれています。&lt;br /&gt;
&lt;br /&gt;
詳細については、waybar Wiki [https://github.com/Alexays/Waybar/wiki/Module:-Workspaces] を参照してください。&lt;br /&gt;
&lt;br /&gt;
=== Polkit 認証 ===&lt;br /&gt;
&lt;br /&gt;
[[Polkit]] 認証には、外部 [[Polkit#Authentication エージェント|認証エージェント]] の使用が必要です。Hyprland では {{Pkg|polkit-kde-agent}} の使用を推奨していますが、どれでも機能するはずです。&lt;br /&gt;
&lt;br /&gt;
次のように呼び出します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = /usr/lib/polkit-kde-authentication-agent-1&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== デスクトップの壁紙 ===&lt;br /&gt;
&lt;br /&gt;
Hyprland では、デスクトップの壁紙を管理するために、Wayland と互換性のある外部アプリケーションが必要です。例として {{AUR|swww}} を使用すると、次のように呼び出すだけで済みます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = swww init&lt;br /&gt;
exec-once = swww img &#039;&#039;path/to/image&#039;&#039;&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== スクリプトを使用して X 分ごとに壁紙を変更する ====&lt;br /&gt;
&lt;br /&gt;
次のスクリプトを作成し、[[ヘルプ:読み方#実行可能属性の付与|実行可能ファイル]] であることを確認します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/swww-random|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
# This script will randomly go through the files of a directory, setting it&lt;br /&gt;
# up as the wallpaper at regular intervals&lt;br /&gt;
#&lt;br /&gt;
# NOTE: this script uses bash (not POSIX shell) for the RANDOM variable&lt;br /&gt;
&lt;br /&gt;
if [[ $# -lt 1 ]] || [[ ! -d $1   ]]; then&lt;br /&gt;
	echo &amp;quot;Usage:&lt;br /&gt;
	$0 &amp;lt;dir containing images&amp;gt;&amp;quot;&lt;br /&gt;
	exit 1&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# Edit below to control the images transition&lt;br /&gt;
export SWWW_TRANSITION_FPS=144&lt;br /&gt;
export SWWW_TRANSITION_STEP=2&lt;br /&gt;
export SWWW_TRANSITION_TYPE=random&lt;br /&gt;
&lt;br /&gt;
# This controls (in seconds) when to switch to the next image&lt;br /&gt;
INTERVAL=300&lt;br /&gt;
&lt;br /&gt;
while true; do&lt;br /&gt;
	find &amp;quot;$1&amp;quot; \&lt;br /&gt;
		| while read -r img; do&lt;br /&gt;
			echo &amp;quot;$((RANDOM % 1000)):$img&amp;quot;&lt;br /&gt;
		done \&lt;br /&gt;
		| sort -n | cut -d&#039;:&#039; -f2- \&lt;br /&gt;
		| while read -r img; do&lt;br /&gt;
			swww img &amp;quot;$img&amp;quot;&lt;br /&gt;
			sleep $INTERVAL&lt;br /&gt;
		done&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、背景画像を保存する新しいフォルダーを作成します。{{ic|~/.config/hypr/backgrounds}} のようなフォルダーを作成し、そこに必要な画像を追加します。&lt;br /&gt;
&lt;br /&gt;
最後にスクリプトを呼び出します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = swww init&lt;br /&gt;
exec-once = ~/.config/hypr/scripts/swww-random ~/.config/hypr/background&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 画面上の通知 ===&lt;br /&gt;
&lt;br /&gt;
外部通知デーモンを使用すると、明るさや音量の変更などのアクションを画面上で通知できます。これは非常に複雑なトピックなので、完全に説明することはこのページの範囲を超えています。むしろ、このセクションでは {{Pkg|mako}} に焦点を当てますので、[[インストール]] してください。&lt;br /&gt;
&lt;br /&gt;
詳細な手順については [[デスクトップ通知]] を、代替手段のリストについては [[デスクトップ通知#スタンドアロン]] を参照してください。&lt;br /&gt;
&lt;br /&gt;
{{Note|&lt;br /&gt;
* ここで提供されるすべてのスクリプトは例であり、セットアップに合わせて調整する必要があります。&lt;br /&gt;
* このセクションのすべてのスクリプトは [[ヘルプ:読み方#実行可能属性の付与|実行可能ファイル]] である必要があります。&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==== Mako ====&lt;br /&gt;
&lt;br /&gt;
Mako は軽量の通知デーモンです。詳細については、{{man|5|mako}} を参照してください。設定ファイルは {{ic|~/.config/mako/config}} で、OSD に使用されるアイコンは {{ic|~/.config/mako/icons/}} に保存されており、PNG 形式である必要があります。&lt;br /&gt;
&lt;br /&gt;
このセクションの残りの部分では、スクリプトで使用されるすべてのイメージは [https://github.com/SolDoesTech/HyprV4/tree/main/HyprV/mako/icons この GitHub フォルダー] から入手できます。&lt;br /&gt;
&lt;br /&gt;
===== キーボードのバックライト通知 =====&lt;br /&gt;
&lt;br /&gt;
まず次のスクリプトを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/kbbacklight|2=&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get brightness&lt;br /&gt;
get_backlight() {&lt;br /&gt;
	LIGHT=&amp;quot;$(cat /sys/class/leds/*::kbd_backlight/brightness)&amp;quot;&lt;br /&gt;
	echo &amp;quot;${LIGHT}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=&amp;quot;$(cat /sys/class/leds/*::kbd_backlight/brightness)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	if [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;1&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-20.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;1&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;2&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-60.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;2&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;3&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-100.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;Keyboard Brightness : $(brightnessctl -d &#039;*::kbd_backlight&#039; g)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase brightness&lt;br /&gt;
inc_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight set 33%+ &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease brightness&lt;br /&gt;
dec_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight set 33%- &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Zero brightness&lt;br /&gt;
zero_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight s 0%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Full brightness&lt;br /&gt;
full_backlight() {&lt;br /&gt;
	brightnessctl -d *::kbd_backlight s 100%&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	brightnessctl -d &#039;*::kbd_backlight&#039; g&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--zero&amp;quot; ]]; then&lt;br /&gt;
	zero_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--full&amp;quot; ]]; then&lt;br /&gt;
	full_backlight&lt;br /&gt;
&lt;br /&gt;
else&lt;br /&gt;
	get_backlight&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します (または既存のバインドを編集します):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Keyboard brightness&lt;br /&gt;
bind = SUPER, F2, exec, ~/.config/hypr/scripts/kbbacklight --dec&lt;br /&gt;
bind = SUPER, F3, exec, ~/.config/hypr/scripts/kbbacklight --inc&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== メディアキーの通知 =====&lt;br /&gt;
&lt;br /&gt;
まず次のスクリプトを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/volume|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get Volume&lt;br /&gt;
get_volume() {&lt;br /&gt;
	volume=$(pamixer --get-volume)&lt;br /&gt;
	echo &amp;quot;$volume&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=$(get_volume)&lt;br /&gt;
	if [[ &amp;quot;$current&amp;quot; -eq &amp;quot;0&amp;quot; ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-mute.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;30&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-low.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;30&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;60&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-mid.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;60&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;100&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/volume-high.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_icon)&amp;quot; &amp;quot;Volume : $(get_volume) %&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase Volume&lt;br /&gt;
inc_volume() {&lt;br /&gt;
	pamixer -i 5 &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease Volume&lt;br /&gt;
dec_volume() {&lt;br /&gt;
	pamixer -d 5 &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Toggle Mute&lt;br /&gt;
toggle_mute() {&lt;br /&gt;
	if [ &amp;quot;$(pamixer --get-mute)&amp;quot; == &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
		pamixer -m &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/volume-mute.png&amp;quot; &amp;quot;Volume Switched OFF&amp;quot;&lt;br /&gt;
	elif [ &amp;quot;$(pamixer --get-mute)&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
		pamixer -u &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_icon)&amp;quot; &amp;quot;Volume Switched ON&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Toggle Mic&lt;br /&gt;
toggle_mic() {&lt;br /&gt;
	if [ &amp;quot;$(pamixer --default-source --get-mute)&amp;quot; == &amp;quot;false&amp;quot; ]; then&lt;br /&gt;
		pamixer --default-source -m &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/microphone-mute.png&amp;quot; &amp;quot;Microphone Switched OFF&amp;quot;&lt;br /&gt;
	elif [ &amp;quot;$(pamixer --default-source --get-mute)&amp;quot; == &amp;quot;true&amp;quot; ]; then&lt;br /&gt;
		pamixer -u --default-source u &amp;amp;&amp;amp; notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$iDIR/microphone.png&amp;quot; &amp;quot;Microphone Switched ON&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
# Get icons&lt;br /&gt;
get_mic_icon() {&lt;br /&gt;
	current=$(pamixer --default-source --get-volume)&lt;br /&gt;
	if [[ &amp;quot;$current&amp;quot; -eq &amp;quot;0&amp;quot; ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;30&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;30&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;60&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;60&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;100&amp;quot;) ]]; then&lt;br /&gt;
		echo &amp;quot;$iDIR/microphone.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
# Notify&lt;br /&gt;
notify_mic_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$(get_mic_icon)&amp;quot; &amp;quot;Mic-Level : $(pamixer --default-source --get-volume) %&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase MIC Volume&lt;br /&gt;
inc_mic_volume() {&lt;br /&gt;
	pamixer --default-source -i 5 &amp;amp;&amp;amp; notify_mic_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease MIC Volume&lt;br /&gt;
dec_mic_volume() {&lt;br /&gt;
	pamixer --default-source -d 5 &amp;amp;&amp;amp; notify_mic_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	get_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--toggle&amp;quot; ]]; then&lt;br /&gt;
	toggle_mute&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--toggle-mic&amp;quot; ]]; then&lt;br /&gt;
	toggle_mic&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--get-icon&amp;quot; ]]; then&lt;br /&gt;
	get_icon&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--get-mic-icon&amp;quot; ]]; then&lt;br /&gt;
	get_mic_icon&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--mic-inc&amp;quot; ]]; then&lt;br /&gt;
	inc_mic_volume&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--mic-dec&amp;quot; ]]; then&lt;br /&gt;
	dec_mic_volume&lt;br /&gt;
else&lt;br /&gt;
	get_volume&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します (または既存のバインドを編集します):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Volume&lt;br /&gt;
bind = , XF86AudioRaiseVolume, exec, ~/.config/hypr/scripts/volume --inc &lt;br /&gt;
bind = , XF86AudioLowerVolume, exec, ~/.config/hypr/scripts/volume --dec &lt;br /&gt;
bind = , XF86AudioMicMute, exec, ~/.config/hypr/scripts/volume --toggle-mic &lt;br /&gt;
bind = , XF86AudioMute, exec, ~/.config/hypr/scripts/volume --toggle &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== 画面のバックライト通知 =====&lt;br /&gt;
&lt;br /&gt;
まず次のスクリプトを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/backlight|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
iDIR=&amp;quot;$HOME/.config/mako/icons&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get brightness&lt;br /&gt;
get_backlight() {&lt;br /&gt;
	LIGHT=$(printf &amp;quot;%.0f\n&amp;quot; $(brightnessctl g))&lt;br /&gt;
	echo &amp;quot;${LIGHT}&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Get icons&lt;br /&gt;
get_icon() {&lt;br /&gt;
	current=&amp;quot;$(get_backlight)&amp;quot;&lt;br /&gt;
	if [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;0&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;19200&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-20.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;19200&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;38400&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-40.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;38400&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;57600&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-60.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;57600&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;76800&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-80.png&amp;quot;&lt;br /&gt;
	elif [[ (&amp;quot;$current&amp;quot; -ge &amp;quot;76800&amp;quot;) &amp;amp;&amp;amp; (&amp;quot;$current&amp;quot; -le &amp;quot;96000&amp;quot;) ]]; then&lt;br /&gt;
		icon=&amp;quot;$iDIR/brightness-100.png&amp;quot;&lt;br /&gt;
	fi&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify_user() {&lt;br /&gt;
	notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;Brightness : $(get_backlight)&amp;quot;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Increase brightness&lt;br /&gt;
inc_backlight() {&lt;br /&gt;
	brightnessctl s +5% &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Decrease brightness&lt;br /&gt;
dec_backlight() {&lt;br /&gt;
	brightnessctl s 5%- &amp;amp;&amp;amp; get_icon &amp;amp;&amp;amp; notify_user&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Execute accordingly&lt;br /&gt;
if [[ &amp;quot;$1&amp;quot; == &amp;quot;--get&amp;quot; ]]; then&lt;br /&gt;
	get_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--inc&amp;quot; ]]; then&lt;br /&gt;
	inc_backlight&lt;br /&gt;
elif [[ &amp;quot;$1&amp;quot; == &amp;quot;--dec&amp;quot; ]]; then&lt;br /&gt;
	dec_backlight&lt;br /&gt;
else&lt;br /&gt;
	get_backlight&lt;br /&gt;
fi&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します (または既存のバインドを編集します):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
# Screen brightness&lt;br /&gt;
bind = , XF86MonBrightnessUp, exec, ~/.config/hypr/scripts/backlight --inc &lt;br /&gt;
bind = , XF86MonBrightnessDown, exec, ~/.config/hypr/scripts/backlight --dec &lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
===== キーボード言語の通知 =====&lt;br /&gt;
&lt;br /&gt;
このスクリプトを実行するには、コマンドライン JSON プロセッサ {{AUR|gojq}} が必要です。&lt;br /&gt;
&lt;br /&gt;
まず次のスクリプトを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/scripts/lang|2=&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
&lt;br /&gt;
icon=&amp;quot;$HOME/.config/mako/icons/language.png&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Get language&lt;br /&gt;
get_lang() {&lt;br /&gt;
	lang=$(hyprctl devices -j | gojq -r &#039;.keyboards[] | select(.name == &amp;quot;at-translated-set-2-keyboard&amp;quot;) | .active_keymap&#039; | cut -c 1-2 | tr &#039;A-Z&#039; &#039;a-z&#039;)&lt;br /&gt;
	case $lang in&lt;br /&gt;
		en)&lt;br /&gt;
			lang=&amp;quot;English language&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
		ru)&lt;br /&gt;
			lang=&amp;quot;Русский язык&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
		uk)&lt;br /&gt;
			lang=&amp;quot;Українська мова&amp;quot;&lt;br /&gt;
			;;&lt;br /&gt;
	esac&lt;br /&gt;
	echo $lang&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Notify&lt;br /&gt;
notify-send -h string:x-canonical-private-synchronous:sys-notify -u low -i &amp;quot;$icon&amp;quot; &amp;quot;$(get_lang)&amp;quot;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
次に、以下を追加します (または既存のバインドを編集します):&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
device:at-translated-set-2-keyboard {&lt;br /&gt;
    kb_layout = us,ru,ua&lt;br /&gt;
    kb_variant = lang&lt;br /&gt;
    kb_options = grp:win_space_toggle&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# Language&lt;br /&gt;
bind = SUPER, SPACE, exec, ~/.config/hypr/scripts/lang&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== 電源制御 ===&lt;br /&gt;
&lt;br /&gt;
Hyprland では、電源制御のために Wayland 互換の外部アプリケーションが必要です。例として {{AUR|nwg-bar}} を使用すると、次のようにバインドするだけで済みます:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, ESCAPE, exec, nwg-bar&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=== クリップボード ===&lt;br /&gt;
&lt;br /&gt;
[[Wayland]] クリップボードの動作により、コピー元のアプリケーションを閉じるとデータが削除されます。他のデスクトップ環境では、専用のクリップボードマネージャーを使用することでこの問題を回避できますが、Hyprland には互換性のある選択肢が複数あります。詳細については、[https://wiki.hyprland.org/Useful-Utilities/Clipboard-Managers/ 上流 Wiki] を参照してください。&lt;br /&gt;
&lt;br /&gt;
このセクションでは、テキストだけでなく画像のコピーもサポートしている {{Pkg|cliphist}} について説明します。まず、次の行を追加します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
exec-once = wl-paste --type text --watch cliphist store &lt;br /&gt;
exec-once = wl-paste --type image --watch cliphist store&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
次に、選択した [[Hyprland#アプリケーションランチャー|アプリケーションランチャー]] の履歴を呼び出すバインドを作成します:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = SUPER, V, exec, cliphist list {{!}} wofi --dmenu {{!}} cliphist decode {{!}} wl-copy&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{{ic|Super+v}} を押すと、{{ic|wofi}} ウィンドウが開き、クリップボード履歴リストが表示されます。&lt;br /&gt;
&lt;br /&gt;
=== デバイスの有効化/無効化 ===&lt;br /&gt;
&lt;br /&gt;
デバイス(例:タッチパッド)を有効化または無効化するには、まず&lt;br /&gt;
 $ hyprctl devices&lt;br /&gt;
を使用してデバイスの名前を調べます。&lt;br /&gt;
&lt;br /&gt;
以下のコード行を設定ファイルに追加し(上記で照会したデバイス名で&amp;lt;device_name&amp;gt;を置き換えて)、デバイスをオン/オフにします:&lt;br /&gt;
&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
&lt;br /&gt;
device:&amp;lt;device_name&amp;gt; {&lt;br /&gt;
  enabled = {true/false}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
デバイスを動的にオン/オフするには、hyprctlを使用します:&lt;br /&gt;
&lt;br /&gt;
 $ hyprctl keyword &amp;quot;device:&amp;lt;device_name&amp;gt;:enabled&amp;quot; {true|false}&lt;br /&gt;
&lt;br /&gt;
また、キーバインドを作成することもできます。例えば:&lt;br /&gt;
{{hc|~/.config/hypr/hyprland.conf|2=&lt;br /&gt;
...&lt;br /&gt;
bind = $mainMod, t, exec, hyprctl keyword &amp;quot;device:pixa3854:00-093a:0274-touchpad:enabled&amp;quot; false&lt;br /&gt;
bind = $mainMod Shift, t, exec, hyprctl keyword &amp;quot;device:pixa3854:00-093a:0274-touchpad:enabled&amp;quot; true&lt;br /&gt;
...&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
&lt;br /&gt;
=== xdg-desktop-portal-hyprland が大量の CPU を使用する ===&lt;br /&gt;
&lt;br /&gt;
これは既知のバグ [https://github.com/hyprwm/xdg-desktop-portal-hyprland/issues/103] であり、最新の [[Git]] ビルドでは解決されているはずです。これを回避するには、[https://wiki.hyprland.org/Useful-Utilities/Hyprland-desktop-portal/#usage こちら] Hyprland wiki で説明されているように、スクリプトを {{ic|hyprland.conf}} ファイルで呼び出すことで回避できます。&lt;br /&gt;
&lt;br /&gt;
== 参照 ==&lt;br /&gt;
&lt;br /&gt;
* [https://hyprland.org/ Hyprland Web サイト]&lt;br /&gt;
* [https://wiki.hyprland.org/ 公式ドキュメント]&lt;br /&gt;
* [https://github.com/hyprwm/Hyprland/ Hyprland Github Page]&lt;br /&gt;
* [https://github.com/hyprland-community/awesome-hyprland コミュニティが管理するツール、プラグイン、拡張機能のリスト]&lt;br /&gt;
* [https://github.com/SolDoesTech/HyprV4 SolDoesTech - Github リポジトリ 通知スクリプト]&lt;br /&gt;
&lt;br /&gt;
{{TranslationStatus|Hyprland|2024-06-13|810346}}&lt;/div&gt;</summary>
		<author><name>88boo</name></author>
	</entry>
</feed>