Lorsque je mets la ligne suivante dans ~/.xbindkeysrc
GNOME lance correctement l'application vlc
.
"vlc"
XF86Calculator
Le problème est que j'aimerais exécuter un script Shell. Lorsque je mets ce qui suit dans ~/.xbindkeysrc
GNOME ne lance pas mon script mais la calculatrice.
"/home/menteith/bin/audio.sh"
XF86Calculator
Pourquoi donc? Le script est exécutable et fonctionne comme prévu lorsqu'il est exécuté à partir de la ligne de commande.
MISE À JOUR Grâce à @PRATAP, je sais que lorsque j'utilise un programme compilé dans ~/.xbindkeysrc
(c'est-à-dire pas un script bash) et appuyez sur XF86Calculator
pour la première fois, il lance mon programme, mais lorsque j'appuie sur XF86Calculator
pour la deuxième fois, je lance la calculatrice à la place.
MISE À JOUR 2
Grâce à @Raffa, j'ai essayé une autre solution. J'ai écrit un programme C simple:
#include <stdio.h>
#include <stdlib.h>
int main() {
puts("Starting now:");
system("killall -s1 xbindkeys; /home/menteith/bin/audio");
return 0;
}
Il tue xbindkeys
puis exécute le wrapper, qui à son tour exécute le script. Cependant, cela ne fonctionne toujours pas. Après la deuxième fois et la prochaine fois, calculator
est lancé.
MISE À JOUR Mon script a basculé entre l'audio du moniteur (HDMI) et l'audio du PC.
#!/usr/bin/env bash
output=$(pactl list cards |grep 'Active Profile:' | cut -d ':' -f 3)
if [ $output == "analog-stereo" ]; then
out="hdmi-stereo"
else
out="analog-stereo"
fi
echo test
# Set the choosen card profile as sink
pactl set-card-profile "alsa_card.pci-0000_00_1f.3" "output:${out}"
# Set the default sink to the new one
pacmd set-default-sink "alsa_card.pci-0000_00_1f.3.${out}" &> /dev/null
# Redirect the existing inputs to the new sink
for i in $(pacmd list-sink-inputs | grep index | awk '{print $2}'); do
pacmd move-sink-input "$i" "alsa_card.pci-0000_00_1f.3.${out}" &> /dev/null
done
Première étape:
Premièrement: Je suggère de modifier le ~/.xbindkeysrc
fichier en effaçant d'abord le fichier, puis copiez et collez le code suivant dans le fichier en remplaçant Key_Name
avec votre nom de clé réel pour qu'il ressemble à ceci:
"sh /home/menteith/bin/audio.sh && killall -s1 xbindkeys"
Key_Name
Deuxièmement: redémarrez xbindkeys
en exécutant la commande suivante dans le terminal:
killall -s1 xbindkeys
Enfin: essayez la clé configurée et voyez si elle fonctionne comme prévu.
Deuxième étape:
Veuillez inspecter les paramètres système sous Raccourcis clavier comme dans l'image ci-dessous:
Si une touche de raccourci est configurée pour Lancer la calculatrice ici, elle doit être désactivée. Sinon, cela pourrait interférer avec xbindkeys
et capturer la touche de raccourci empêchant votre script de s'exécuter et d'exécuter la calculatrice à la place.
Troisième étape:
Un autre endroit à examiner est le /usr/share/X11/xkb/symbols/pc
fichier.
Premièrement: ouvrez le fichier dans l'éditeur gedit
en exécutant la commande suivante dans le terminal:
Sudo nano /usr/share/X11/xkb/symbols/pc
Deuxièmement: recherchez une ligne contenant XF86Calculator
dedans. Cela ressemblera à ceci:
key <Key_Name> { [XF86Calculator] };
Mettez cette ligne en commentaire en ajoutant un //
avant comme ceci:
//key <Key_Name> { [XF86Calculator] };
Prenez note du Key_Name dans <Key_Name>
et enregistrez et fermez le fichier.
Troisièmement: modifiez votre ~/.xbindkeysrc
fichier remplaçant XF86Calculator
avec la clé Key_Name à l'étape Deuxièmement ci-dessus. Ça devrait ressembler à ça:
"sh /home/menteith/bin/audio.sh && killall -s1 xbindkeys"
Key_Name
Enregistrez et fermez le fichier.
Quatrièmement: Vider le cache des paramètres xkb en exécutant la commande suivante dans le terminal:
Sudo rm -rf /var/lib/xkb/*
Cinquièmement: redémarrez votre système pour activer votre nouvelle configuration xkb ou rechargez la nouvelle configuration xkb en définissant une disposition de carte xkb en utilisant la commande suivante dans le terminal:
setxkbmap -layout us
Enfin: lancez xbindkeys
en exécutant la commande suivante dans le terminal:
xbindkeys -f ~/.xbindkeysrc
Essayez ensuite votre raccourci clavier. Si rien ne se passe, redémarrez xbindkeys
en exécutant la commande suivante dans le terminal:
killall -s1 xbindkeys
Maintenant, essayez à nouveau votre raccourci clavier et voyez si cela fonctionne comme prévu.
Bonne chance
Solution
Je l'ai essayé sur Ubuntu 19.10
contenu de myscript.sh
fichier.
#!/bin/bash
notify-send "Script Ran Successfully"
contenu de .xbindkeysrc
fichier.
"/bin/bash $HOME/myscript.sh"
XF86Calculator
Une fois connecté,
courir xbindkeys --poll-rc
. la clé XF86Calculator doit exécuter votre script.
Référence pour l'option --poll-rc https://wiki.archlinux.org/index.php/Xbindkeys et voir le commentaire sous la réponse dans ce lien https: // askubuntu. com/a/1126410/739431