로그인할 때 쉘 명령을 정확히 한 번만 실행하십시오.

로그인할 때 쉘 명령을 정확히 한 번만 실행하십시오.

Ubuntu 18.04에서 스왑을 시도했지만 다음을 Ctrl사용 하여 이를 자동화하는 방법을 찾지 못했고 작동 하지 CapsLock않았습니다 . 또 어떤 방법이 있나요? 합격이 가능한가요 ?xmodmap.[X|x]modmap[rc].config/autostartsystemd

짧은: 데스크톱 항목은 .config/autostart또는 입니다 /etc/xdg/autostart. Exec완전한 쉘 명령이 아니므로 sh -c다음이 필요할 수 있습니다.

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

답변1

Ubuntu는 버전 17.10에서 Unity에서 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(user를 자신의 사용자 이름으로 바꾸지 않도록 주의하세요!).

서비스 자동 로딩을 활성화하려면:

systemctl --user enable xmodmap.service

처음 시작할 때 다시 로그인할 필요가 없습니다.

 systemctl --user start xmodmap.service

일단 시작되면 gdm실행하세요

위와 동일한 파일을 배치하고 저장할 섹션 /etc/systemd/system/xmodmap.service에 다음 줄을 추가합니다 .[Unit]

 After=display-manager.service

루트로(또는 sudo를 통해):

systemctl enable xmodmap.service

물론 이는 모든 사용자에게 영향을 미칩니다.

관련 정보