web-dev-qa-db-fra.com

Le script ne s'exécute pas au démarrage quoi qu'il arrive

J'ai un script situé à /opt/capslock_delay_fix.sh. Je veux que le script s'exécute après la connexion.

J'ai tout essayé. Depuis les applications de démarrage, sur .bash_rc, sur .profile. Il ne veut tout simplement pas exécuter le script. Je me demande si le script lui-même ne fonctionnera qu’à un moment donné après la connexion.

Voici le contenu du script:

#!/bin/bash
xkbcomp -xkb "$DISPLAY" - | sed 's#key <CAPS>.*#key <CAPS> {\
    repeat=no,\
    type[group1]="ALPHABETIC",\
    symbols[group1]=[ Caps_Lock, Caps_Lock],\
    actions[group1]=[ LockMods(modifiers=Lock),\
    Private(type=3,data[0]=1,data[1]=3,data[2]=3)]\
};\
#' | xkbcomp -w 0 - "$DISPLAY"
4
Afonso Matos

Certains types de commandes et de scripts, presque par définition, se cassent s’ils s’exécutent trop tôt dans le processus de connexion. Quelques exemples: commandes relatives au clavier et au pavé tactile, réglages du moniteur (xrandr), etc. Même les indicateurs parfois.

La raison en est que la commande est interrompue si le poste de travail n’est pas prêt, ou la commande est ensuite remplacée par les procédures locales.

Y compris une petite pause fera alors le travail, dans le format:

/bin/bash -c "sleep 10 && <command>"
4
Jacob Vlijm