Open8

Arch Linux + Hyprlandの環境整備

sheeplasheepla

AURヘルパー paru のインストール

paruの導入

AURのページにあるPKGBUILDをダウンロードし、makepkg -sicを実行するとインストールできる。
以降、パッケージのインストールは paru を使う。

paru - AUR archlinux.org

cd "(mktemp -d)"
curl -sL "https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=paru"
makepkg -sic

補足

makepkg はArch Linuxのパッケージをビルドするためのツールであり、pacmanパッケージの中に同梱されている。
上記で使ったオプションの意味は次の通り。

  • -s, --syncdeps: 依存パッケージをインストールする。
  • -i, --install: ビルドしたパッケージをインストールする。
  • -c, --clean: パッケージをビルドした後、残ったファイルをクリーンアップする。

詳しくはArch Wikiを参照。

makepkg - Arch Wiki

sheeplasheepla

Hyprlandの基本設定

設定ファイルの編集

Hyprlandの設定ファイルは ~/.config/hypr/hyprland.conf にある。
設定に使われるキーワードの一覧は公式ドキュメントのここにある。

https://wiki.hyprland.org/Configuring/Keywords/

キーバインド

メインのモディファイアキーは規定では SUPER(いわゆるWindows)キーになっている。
左Altキーに変更する場合は次のようにする。

$mainMod = LALT

キーバインドは次のような構文になっている。値にはたとえば $mainModのような変数を使うことができる。

bind = MODS, key, dispatcher, params

設定例:

$terminal = wezterm
$fileManager = thunar

bind = $mainMod, T, exec, $terminal
bind = $mainMod, RETURN, exec, $terminal
bind = $mainMod, Q, killactive, 
bind = $mainMod CTRL, Q, exit, 
bind = $mainMod, E, exec, $fileManager

https://wiki.hyprland.org/Configuring/Binds/

sheeplasheepla

アプリケーションランチャー(rofi-wayland)

rofi-wayland をインストールする。

paru -S rofi-wayland

rofi-wayland(rofi)は次のようなコマンドで起動する。-modiは表示するモード -showは起動時に表示するモード

rofi -modi drun,run -show drun # アプリケーションランチャーとして動作させる
rofi -modi window -show window # ウィンドウスイッチャーとして動作させる

hyprland.confでキーバインドをセットすることでキーボード操作のみで素早くアプリケーションの起動やウィンドウの切り替えができる。

$launcher = rofi -modi drun,run -show drun
$windowSwitcher = rofi -modi window -show window
bind = $mainMod, SPACE, exec, $launcher
bind = $mainMod, TAB, exec $windowSwitcher
sheeplasheepla

日本語入力(fcitx5 + mozc)

日本語入力システムとして、fcitx5 をインストールする。
fcitx5-imはグループパッケージになっており、GTK/Qtをサポートするためのモジュール(fcitx5-gtk/fcitx5-qt)とGUIの設定ツール(fcitx5-configtool)が同梱されている。

paru -S fcitx5-im fcitx5-mozc

次に fcitx5-configtool を起動し、インプットメソッドの一覧からmozcを選び追加する。

fcitx5をHyprlandの起動時に自動起動するよう、hyprland.conf に次の行を追加する。

exec-once=fcitx5-remote -r # 設定をリロードする
exec-once=fcitx5 -d --replace # fcitx5をバックグラウンドで起動する
sheeplasheepla

キーボードの調整

hyprland.confを次のように編集する。

input {
    repeat_delay = 140 # リピート遅延時間
    repeat_rate = 50 # リピートレート

    kb_layout = us # キーボードレイアウト
    #kb_variant =
    #kb_model =
    #kb_options =
    #kb_rules =

    follow_mouse = 1

    touchpad {
        natural_scroll = yes
    }

    sensitivity = 0 # -1.0 - 1.0, 0 means no modification.
}
sheeplasheepla

GTK/Qtやカーソルのテーマ

テーマの選定

各種テーマはPlingのサイトから見つけることができる。

pling.com

次のテーマがカッコよくておすすめ。

GTK

Xorg環境でのGTKテーマ設定方法

GTKの設定ファイル ~/.config/gtk-3.0/settings.ini~/.gtkrc-2.0などをGUIで変更するには、
i3wmなどのXorg環境では lxappearanceを使う方法があった。

GUIでテーマの設定を行い、GTKの設定ファイル内の値を自動で読み込ませる(nwg-look + gsettings)

一方、HyprlandではWaylandネイティブで動く nwg-lookというツールを使うことができる。ただし、設定を変更しただけではHyprlandの環境に読み込まれないため、GNOMEの gsettings というコマンドライン設定ツールを使ってセットした値を読み込ませる。

gsettings set org.gnome.desktop.interface gtk-theme <gtk-theme>
gsettings set org.gnome.desktop.interface icon-theme <icon-theme>
gsettings set org.gnome.desktop.interface cursor-theme <cursor-theme>
gsettings set org.gnome.desktop.interface font-name <font-name>

Hyprlandの起動時に自動でテーマを読み込む

settings.ini の内容をgssettingsに渡すスクリプトを作り、Hyprlandの起動時にそれを読み込ませる方法がSway Wikiにあったため紹介する。

GTK-3-settings-on-Wayland - Sway Wiki

まず、nwg-lookとGTKに対応したテーマやアイコン等をインストールしてnwg-lookを使って好みのテーマをセットする。

paru -S nwg-look
paru -S kali-themes papirus-icon-theme matcha-gtk-theme

次に、下記ようなスクリプトを作り、hyprland.confからこれを呼び出すように構成する。

#!/bin/sh

#
# init-gtk.sh
#
config="${XDG_CONFIG_HOME:-$HOME/.config}/gtk-3.0/settings.ini"

if [ ! -f "$config" ]; then 
  echo "GTK config file not exists: ${config}" 1>&2
  exit 1
fi

gnome_schema="org.gnome.desktop.interface"
gtk_theme="$(grep -F 'gtk-theme-name' "${config}" | sed 's/.*\s*=\s*//')"
icon_theme="$(grep -F 'gtk-icon-theme-name' "${config}" | sed 's/.*\s*=\s*//')"
cursor_theme="$(grep -F 'gtk-cursor-theme-name' "${config}" | sed 's/.*\s*=\s*//')"
font_name="$(grep -F 'gtk-font-name' "${config}" | sed 's/.*\s*=\s*//')"

gsettings set "${gnome_schema}" gtk-theme "$gtk_theme"
gsettings set "${gnome_schema}" icon-theme "$icon_theme"
gsettings set "${gnome_schema}" cursor-theme "$cursor_theme"
gsettings set "${gnome_schema}" font-name "$font_name"
#
# hyprland.conf
#
exec = "${XDG_CONFIG_HOME:-${HOME}/.config}/hypr/init-gtk.sh"

Qt

Qtの構成ツールとしてQt5ct, Qt6ct, Kvantum, Kvantum Qt5およびQtに対応したテーマをインストールする。

paru -S qt5ct qt6ct kvantum kvantum-qt5
paru -S kvantum-theme-matchama

Kvantumでテーマを選択し、Qt5ct, Qt6ctにてStyleを「kvantum-dark」に、Standard dialogsを「GTK3」にセットすることで統一感のある見た目になる。


カーソルテーマ

hyprcursor をインストールして、hyprland.confに次の内容を追加する。

paru -S hyprcursor
env = HYPRCURSOR_THEME, Qogir Cursors
env = HYPRCURSOR_SIZE, 24
sheeplasheepla

Polkitと認証エージェント

特権の必要なGUIアプリケーション(例えばパーティショニングツールのGpartedやファイヤウォール構成ツールであるfirewall-configなど)を起動するにはPolkitとその認証エージェントが必要となる。今回は認証エージェントとして polkit-gnome を使う。

Polkitと認証エージェントをインストール後、polkit.service を有効化・開始し、hyprland.confにて認証エージェントを自動起動するように構成する。アプリケーションの起動時にパスワードの入力を促すダイアログが出ればOK。

paru -S polkit polkit-gnome
systemctl enable --now polkit.service
# Polkit Agent
exec-once=/usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
sheeplasheepla

ファイルマネージャ(Thunar)

ファイル操作は専らシェルでやるかkamiyaa/joshutogokechan/lfなどのTUIツールを使っているが、GUIのファイルマネージャもときどき必要になるので入れておく。
GUIのファイルマネージャにはLXDEのPCManFMや KDEのDolphin、GNOMEのNautilusなどがあるが、XFCEのThunarがシンプルで使い勝手がよく気に入っている。

Thunarのインストール

Thunarと、必要であればそのプラグインをインストールする。

paru -S thunar  thunar-archive-plugin thunar-media-tags-plugin thunar-volman

GVfs

ローカルのストレージやリモートサーバー、クラウドストレージなどのリソースにアクセスする際はGVfsというGNOMEの仮想ファイルシステムがよく使われる。GVfsはユーザー空間で動作するため、特権を必要とせずにいろいろなリソースをローカルのストレージと同じように統合された方法でアクセスすることができる。

NTFSでフォーマットされたドライブにアクセスする

ntfs-3gをインストールする。

Windowsの共有フォルダ(SMB/CIFS)にアクセスする

gvfs-smb パッケージをインストールして、アドレスバーに次のURIを入力することでアクセスできる。

smb://サーバー名またはIPアドレス/共有フォルダ名

Android端末等のファイルシステムにアクセスする(MTP)

Android端末等とUSB経由でファイルをやりとりするにはMTP: Media Transfer Protocolというプロトコルが使われる。 gvfs-mtpパッケージをインストールし端末とPCを接続後、端末の通知から「ファイル転送」を選択するとThunarから端末のファイルシステムにアクセスすることができる。

ファイルマネージャの機能
Thunar - Arch Wiki