~/.xbindkeysrc
に次の行を入れると、GNOMEはアプリケーションvlc
を正しく起動します。
"vlc"
XF86Calculator
問題は、シェルスクリプトを実行したいことです。以下を~/.xbindkeysrc
に入れると、GNOMEはスクリプトを起動せず、電卓を起動します。
"/home/menteith/bin/audio.sh"
XF86Calculator
何故ですか?スクリプトは実行可能であり、コマンドラインから実行したときに期待どおりに機能します。
[〜#〜] update [〜#〜] @PRATAPのおかげで、~/.xbindkeysrc
(つまり、bashスクリプトではない)でコンパイルされたプログラムを使用し、XF86Calculator
ボタンを初めて押すと、プログラムを起動しますが、XF86Calculator
ボタンを2回目に押すと、代わりに電卓が起動します。
更新2
おかげで、@ Raffa私はさらに別の解決策を試しました。私は簡単なCプログラムを書きました:
#include <stdio.h>
#include <stdlib.h>
int main() {
puts("Starting now:");
system("killall -s1 xbindkeys; /home/menteith/bin/audio");
return 0;
}
xbindkeys
を終了してラッパーを実行し、ラッパーがスクリプトを実行します。ただし、それでも機能しません。 2回目以降はcalculator
が起動されます。
アップデートモニターからのオーディオ(HDMI)と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
ステップ#One:
まず:最初にファイルをクリアして~/.xbindkeysrc
ファイルを変更し、次のコードをコピーしてファイルに貼り付け、Key_Name
を実際のファイルに置き換えますキー名は次のようになります。
"sh /home/menteith/bin/audio.sh && killall -s1 xbindkeys"
Key_Name
2番目:ターミナルで次のコマンドを実行してxbindkeys
を再起動します。
killall -s1 xbindkeys
最後に:設定されたキーを試し、期待どおりに機能するかどうかを確認します。
ステップ#2:
以下の画像のようにKeyboard Shortcutsでシステム設定を確認してください:
ここでLaunch Calculator用に構成されたホットキーがある場合、それを無効にする必要があります。それ以外の場合は、xbindkeys
を妨害し、ホットキープレスをキャプチャして、スクリプトが実行されずに電卓が実行されるのを防ぎます。
ステップ#3:
もう1つの調査場所は/usr/share/X11/xkb/symbols/pc
ファイルです。
まず:ターミナルで次のコマンドを実行して、gedit
エディターでファイルを開きます。
Sudo nano /usr/share/X11/xkb/symbols/pc
2番目に:XF86Calculator
を含む行を探します。次のようになります。
key <Key_Name> { [XF86Calculator] };
この行の前に//
を追加して、この行をコメント化します。
//key <Key_Name> { [XF86Calculator] };
<Key_Name>
のKey_Nameをメモして、ファイルを保存して閉じます。
3番目:~/.xbindkeysrc
ファイルを編集し、XF86Calculator
をステップKey_Nameに置き換えます2番目に上記。次のようになります。
"sh /home/menteith/bin/audio.sh && killall -s1 xbindkeys"
Key_Name
ファイルを保存して閉じます。
4番目:端末で次のコマンドを実行して、xkb設定キャッシュをクリアします。
Sudo rm -rf /var/lib/xkb/*
5番目:システムを再起動して新しいxkb構成をアクティブにするか、ターミナルで次のコマンドを使用してxkbマップレイアウトを設定することにより、新しいxkb構成をリロードします。
setxkbmap -layout us
最後に:ターミナルで次のコマンドを実行してxbindkeys
を開始します。
xbindkeys -f ~/.xbindkeysrc
次に、ホットキーを試してください。何も起こらない場合は、ターミナルで次のコマンドを実行してxbindkeys
を再起動します。
killall -s1 xbindkeys
次に、もう一度ホットキーを試して、期待どおりに機能するかどうかを確認します。
ベストオブラック
回避策
Ubuntu 19.10で試してみました
の内容 myscript.sh
ファイル。
#!/bin/bash
notify-send "Script Ran Successfully"
の内容 .xbindkeysrc
ファイル。
"/bin/bash $HOME/myscript.sh"
XF86Calculator
ログインすると、
実行xbindkeys --poll-rc
。キーXF86Calculatorがスクリプトを実行する必要があります。
--poll-rcオプションのリファレンス https://wiki.archlinux.org/index.php/Xbindkeys とこのリンク https:// askubuntu。 com/a/1126410/739431