Arch でファンクションキーを永続的に有効化する方法

Arch でファンクションキーを永続的に有効化する方法

検索して見つけたこの質問ファンクションキーをアクティブ化する方法を説明しますが、変更は永続的ではないようです。

起動するたびにファイルの内容/sys/module/hid_apple/parameters/fnmode3

なぜ3? 許容されるパラメータは範囲内ではないでしょうか0-2?

ファイルへの変更を永続的にするにはどうすればいいですか/sys/module/hid_apple/parameters/fnmode?

答え1

なぜ 3 なのですか? 許可されるパラメータは 0 ~ 2 の範囲だけではないのですか?

いいえ、オプションは3Linux 5.18 用に 2022 年に追加されましたが、お読みになっているドキュメントは 2012 年頃に最後に更新されたようです。

$ modinfo hid-apple
parm:           fnmode:Mode of fn key on Apple keyboards (0 = disabled,
                1 = fkeyslast, 2 = fkeysfirst, [3] = auto) (uint)

/sys/module/hid_apple/parameters/fnmode ファイルへの変更を永続的にするにはどうすればいいですか?

これはモジュール パラメータなので、a) modprobe または b) カーネル コマンド ラインを通じて設定できます。

  • モジュールが modprobe 経由でロードされると、そのパラメータは次のファイルから読み取られます/etc/modprobe.d(man modprobe.dマニュアル ページを参照)。

    options hid-apple fnmode=2
    

    mkinitcpio -Pファイルを initramfs にコピーするために再実行することを忘れないでください(モジュールが実際にロードされるのはおそらくこのときです)。

  • デフォルトのパラメータは、カーネルのコマンドライン (GRUB など経由) を通じて指定することもできます。

    linux root=... rw hid_apple.fnmode=2
    

    (少なくとも、それはうまくいくはずだと私は思います。)

答え2

最適な解決策ではありませんが、今のところ私はこれを行いました:

  1. systemd サービス ファイルの作成:スーパーユーザー権限でテキストエディタを使用してnano、新しいsystemdサービスファイルを作成します。実行するコマンドは次のとおりです。sudo nano /etc/systemd/system/fnmode.service.

  2. サービス ファイルへの入力:サービス ファイルには、次の systemd ディレクティブを入力する必要があります。

    [Unit]
    Description=Set hid_apple fnmode
    
    [Service]
    Type=oneshot
    ExecStart=/bin/bash -c 'echo 2 > /sys/module/hid_apple/parameters/fnmode'
    
    [Install]
    WantedBy=multi-user.target
    
  3. systemd サービスを有効にする:システムの起動時に systemd サービスを起動できるようにする必要があります。これは、コマンドを使用して実行できますsudo systemctl enable fnmode

  4. systemd サービスを開始します。最後に、システムを再起動せずに systemd サービスをすぐに開始できます。これは、コマンドを使用して実行できますsudo systemctl start fnmode

関連情報