Je configure openbox sur mon ordinateur portable exécutant Linux Mint 13. Je veux que ma touche de verrouillage des majuscules agisse comme une clé de contrôle supplémentaire. J'ai mis les paramètres requis dans mon ~/.Xmodmap
fichier et l' ai vérifié en exécutant
xmodmap ~/.Xmodmap
Cela fonctionne correctement.
Cependant, lorsque je me reconnecte à ma session openbox, ces modifications clés ne sont pas présentes. L'exécution de la xmodmap
commande ci-dessus le fait fonctionner à nouveau, mais je veux que cela se produise automatiquement au démarrage.
Ce qui est intéressant, c'est que j'ai ajouté une zenity
commande de test comme suit à mon ~/.config/openbox/autostart
fichier
zenity --info --text=Hello
Cela produit une petite fenêtre de dialogue et se ferme uniquement après la fermeture de la boîte de dialogue.
Maintenant, lorsque je me reconnecte à ma session openbox, le verrouillage des majuscules agit comme une touche Ctrl, jusqu'à ce que la boîte de dialogue de zénité soit fermée. Une fois cette boîte de dialogue fermée, le verrouillage des majuscules revient à son comportement par défaut.
Je n'ai rien trouvé à ce sujet avec google, donc je demande de l'aide ici. Avez-vous des idées sur ce qui pourrait mal se passer?
Mise à jour:
J'ai essayé de comprendre cela et dans mes expériences, j'ai copié mon /usr/bin/xmodmap
fichier /usr/bin/xmodmap_
et remplacé le /usr/bin/xmodmap
fichier par le script bash suivant
#!/bin/bash
{
echo '-------'
date
echo xmodmap "$@"
} >> ~/xmodmap-calls
exec /usr/bin/xmodmap_ "$@"
Donc, chaque fois qu'un putain de script sur le système s'exécute xmodmap
, je le connais.
Avec cela, je me reconnecte et je ne trouve qu'une seule entrée dans mon ~/xmodmap-calls
fichier, qui est celle qui exécute mon ~/.Xmodmap
, qui est attendue. Donc, j'ai pensé que ce n'est pas un xmodmap
qui écrase mes changements.
Ensuite, un peu de recherche sur Google m'a présenté la setxkbmap
commande, qui peut apparemment faire la même chose. J'ai également remplacé cet exécutable, similaire à xmodmap ci-dessus. Et j'ai obtenu la commande coupable!
setxkbmap -option terminate:ctrl_alt_bksp
Je n'ai absolument aucune idée de ce que cela fait, mais après avoir exécuté xmodmap ~/.Xmodmap
(qui a appliqué mes paramètres correctement), si j'exécute la commande ci-dessus, mes modifications sont réinitialisées! Edit : Cela s'avère vraiment drôle. Juste une setxkbmap
commande sans aucun argument, écrase heureusement mes modifications par la xmodmap ~/.Xmodmap
commande.
Maintenant, j'ai deux choses à comprendre, d'où cela est-il setxkbmap
exécuté et pourquoi et comment y remédier. Je suis toujours en enquête mais je pourrais sérieusement utiliser de l'aide :)
Update 2
Au diable xmodmap
. Je ne peux pas comprendre d'où setxkbmap
est appelé, mais j'ai trouvé un moyen d'utiliser la setxkbmap
commande pour que mon verrouillage des majuscules se comporte comme Ctrl.
setxkbmap -option ctrl:nocaps
Juste avant de démarrer openbox. Fonctionne brillamment. La touche de verrouillage des majuscules agit toujours comme une touche ctrl. xmodmap
n'est jamais exécuté.
Je vais laisser cette question ouverte pour que quelqu'un qui sache ces choses puisse donner un aperçu Aussi, pour les gens qui font face à ça après moi :)
Mise à jour 3
Voici le contenu de mon .config/openbox/autostart
, tel que demandé par pedrosaurio.
#!/bin/bash
# Set the wallpaper.
feh --bg-scale /wall.png
# Set default brightness.
xbacklight -time 1 '=40'
# Compositing.
xcompmgr &
# The panel.
tint2 &
# Start a terminal too.
roxterm &
Pour autant que je sache, cela n'a rien à voir avec le clavier. En outre, voici le script qui démarre ma session: (exécuté par lightdm)
#!/bin/bash
setxkbmap -option ctrl:nocaps
exec openbox-session
la source
autostart
dossier?Réponses:
Je rencontrais un problème similaire. Il s'est avéré qu'elle était causée par ibus. Je l'ai simplement désinstallé car je n'ai pas besoin de ses services.
J'ai trouvé le coupable en utilisant votre astuce pour remplacer setxkbmap par un script, mais j'ai également ajouté
ps -AF --forest
pour identifier l'appelant de setxkbmap.la source
Sans connaître votre script de démarrage automatique, je parie que vous n'utilisez pas la syntaxe appropriée en laissant vos commandes s'exécuter en arrière-plan à l'aide de l'esperluette (
&
).Essayez de modifier votre
.config/openbox/autostart
fichier pour qu'il ressemble à ceci:En cas de doute, consultez le wiki openbox et voyez comment tous les exemples se trouvent
&
après chaque entrée.http://openbox.org/wiki/Help:Autostart
la source
xmodmap ~/.Xmodmap
dans ce dossier (sans&
, cela ne semblait pas nécessaire). J'ai appeléxmodmap
(et maintenantsetxkbmap
) dans le script qui démarre ma session openbox. Juste avant de courirexec openbox-session
, j'exécute lasetxkbmap
commande.sleep 1
délai pour quexmodmap
ses modifications soient appliquées après le chargement de tout le reste, tout en fonctionnant la plupart du temps, ne me donne pas trop confiance en la solution. Je préférerais ne pas le faire, si j'ai des alternatives.sleep
commande, néanmoins le&
est nécessaire après chaque entrée, sinon tous les programmes après la première entrée ne fonctionneront pas du tout.&
le bloquera. J'ai utilisé ce comportement avec lazenity
commande pour constater que mesxmodmap
modifications sont écrasées après laautostart
fin. Mon démarrage automatique prend maintenant de l'ampleur et va le coller dans la question dans un instant. Cela n'a rien à voir avec le clavier.xmodmap
sont écrasées dès que le fichier de démarrage automatique se termine.