systemdサービスでロードキーを使用してキーマッピングを変更することはできません。

systemdサービスでロードキーを使用してキーマッピングを変更することはできません。

私のPackard-Bellノートブックキーボードには、ナビゲーション矢印でグループ化され、従来の逆T字形の代わりに2行×3列のサブブロックを形成する2つの非標準キーがあります。もちろん、デフォルトのLinuxカーネルはこれらのキーを認識しません。

setkeycodesrootコマンドを使用して有効にできますloadkeys

手動起動コマンドを回避するために、起動中にキーボードを構成するsystemdデバイス(.serviceファイル)を設計しました。

この方法は、最近非常に古いFedoraバージョンからFedora 35にノートブックをアップグレードするまでうまく機能しました。

これで、変更したいすべてのマップで「キーマップx:権限が拒否されました」というメッセージが表示されます。理由がわからない。

私が間違っていない限り、システムのシステムサービスから開始されたすべてのコマンドはrootとして実行されます。したがって、ロードキーはすべてのファイルにアクセスできる必要があり(「ファイルまたはディレクトリなし」エラーを修正するためにマッピングファイルをユーザーディレクトリから/ etcに移動する必要があります)、コンソールマッピングを変更できる必要があります。

可能な競合状態が心配され、multi-user.targetに到達した後(一定時間ではなく)サービスが開始されるように依存関係を変更し、各パーティションがマウントされて準備が整ったと確信しています。しかし、これはエラーを解決できませんでした。

id私のサービスは、許可されていない一部のユーザーの下で実行されていると思われますが、どのユーザーかを推測することはできません(コマンドがシェルで解釈されないため、またはコマンドを使用できず、whoami後で出力を一部のファイルにリダイレクトできません)。使用)。

Manは、そのユニットがすでにルートによって所有されているため、User =またはGroup =を追加することは役に立たないと言います。

アップデート:サービスがrootキーマップx:権限が拒否されました。無意味。 viaの代わりにrootとして直接コマンドを実行すると正常にsystemctl動作loadkeysします。

だから何?私に方向を教えてもらえますか?

答え1

ユーザー:

$ localectl set-keymap 'YourKeyboardMapName" 

selinuxなら、

根:

# /sbin/restorecon -v /.hcwd  (to avoid selinux complaints)

関連情報