ログイン時にシェルコマンドを正確に一度だけ実行してください。

ログイン時にシェルコマンドを正確に一度だけ実行してください。

Ubuntu 18.04でスワップしようとしましたが、以下をCtrl使用して自動化する方法が見つからず、機能しませんでしCapsLockた。また、どのような方法がありますか?合格できますか?xmodmap.[X|x]modmap[rc].config/autostartsystemd

短い:デスクトップアイテムは.config/autostartまたはです/etc/xdg/autostartExec完全なシェルコマンドではないため、以下が必要になる場合sh -cがあります。

[Desktop Entry]
Type=Application
Exec=sh -c "xmodmap ~/.xmodmaprc"

答え1

Ubuntuはバージョン17.10でUnityからGnomeに戻ったので、次のことができます。GNOME自己起動メカニズム(ログイン時にシェル命令を起動すれば十分です。)

そのために:

  • sudo特権が必要です
  • 必要なコマンド(例:)を実行するswitch_ctrl_capslock.shシェルスクリプトを作成し、/usr/local/bin
  • 次の内容を含むファイルを作成します .desktop/etc/xdg/autostart/switch_ctrl_capslock.desktop
    [Desktop Entry]
    Type=Application
    Exec=/usr/local/bin/switch_ctrl_capslock.sh
    

すべてが正しく設定されている場合は、ユーザーがGnomeにログインしたときにスクリプトを一度実行する必要があります。

詳細については、以下を確認してください。

答え2

方法systemd:

ログイン後

[Unit]
Description=Change keyboard layout AFTER LOGIN TO GUI session
After=graphical.target

[Service]
#execute once only
Type=oneshot
ExecStart=/usr/bin/xmodmap home/<user>/.xmodmaprc

[Install]
WantedBy=graphical.target

以下に入力してください~/.config/systemd/user/xmodmap.service(ユーザーを自分のユーザー名に置き換えないように注意してください!)。

サービスの自動ロードを有効にするには:

systemctl --user enable xmodmap.service

初めて起動するときに再度ログインする必要はありません。

 systemctl --user start xmodmap.service

起動したらgdm実行してください

上記と同じファイルを配置し、保存するセクション/etc/systemd/system/xmodmap.serviceに次の行を追加します。[Unit]

 After=display-manager.service

root(またはsudo経由):

systemctl enable xmodmap.service

もちろん、これはすべてのユーザーに影響を与えます。

関連情報