だから私はラップトップ用にこのキーボードを購入しました。このキーボードにはメディアキーがなく、バックグラウンドで再生中のすべてのメディアを一時停止するためにノートパソコンの再生/一時停止ボタンを押すのに非常に慣れていました。ただし、このキーボードにはメディアキーがないため、これを行うにはキーボードショートカットを直接作成する必要があります。これまでの音量調整のためのキーボードショートカットを正常に作成しました。
研究と私の試み:
端末でメディアキーをエミュレートするコマンドを示すこのページが見つかりました。 https://askubuntu.com/questions/235126/simulate-media-keys-in-terminal/235181#235181。コマンドは、
xdotool key XF86AudioPlay
次のようにキーボードショートカットを作成するときです。設定>キーボード>アプリショートカット。これはうまくいかないようです。設定したキーボードショートカットを押すとスーパー+F11CPU使用量がわずかに増加したが、これはショートカットが動作していることを意味する。
exo-open --launch WebBrowser
お分かりのように、ショートカットキーを押すと、Webブラウザが開くショートカット実行コマンドを変更してこれを確認しました。スーパー+F11。今私はC / C ++について少し知っているので、同じことをするラッパーを作りました。
#include <stdlib.h>
int main() {
system("xdotool key XF86AudioPlay");
}
プログラムを実行するためのショートカットをマップしましたが、残念です!それでも動作しません。
ラップトップキーボードのデフォルトの再生/一時停止ボタンを押したときにXFCEコマンドを実行するにはどうすればよいですか?このボタンは、バックグラウンドで再生中のすべてのメディアを再生/一時停止しているようです。
私はArch LinuxでXFCEを使用しています。私は主にリズムボックスミュージックプレーヤーで音楽を聴きます。
答え1
単に曲のrhythmbox
再生や曲の一時停止を制御したい場合は、これで十分です。rhythmbox-client --play
rhythmbox-client --pause
playerctl
しかし、一部のArch Wikiでは、現在再生中のメディアを制御するためにこのソフトウェアが呼び出されることを発見しました。優先順位が何であるかを100%確信することはできませんが、YouTubeビデオを開くと、Rhythmboxに触れることなくデフォルトでそれを制御します。再生と一時停止を切り替えるには、を実行しますplayerctl play-pause
。実行してからビデオ/音楽playerctl next
と実行した以前のビデオ/音楽に移動しますplayerctl previous
。
これが他のディストリビューションでも機能するのか、それともまったく使用できるのかは100%確信できませんが、Archでは動作します。
答え2
rhythmbox-client --play/--pause
Rhythmboxは両方のコマンドをサポートするだけでなく、dbus-send
次の説明に従って送信されたD-Busコマンドを使用しているようです。AskUbuntuに関するこの質問そしてこの質問は、AskUbuntuの回答でリンクされたU&L.SEにあります。。
簡単に言えば、dbus-send
コマンドは次のようになります。
dbus-send --print-reply --dest=org.mpris.MediaPlayer2.rhythmbox /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause
前提条件は、RhythmboxのMPRIS APIを最初に有効にする必要があることです。
ただし、同じキーストロークを使用してYouTubeビデオを制御する必要がある場合は、現在再生しているプレーヤーを見つけてRhythmboxまたはネットワークに正しいコマンドを送信できるスクリプトを有効にするには、これらのキーストロークが必要になる場合があります。ブラウザ(または他のアプリケーション)はYouTube動画を再生するために使用されます。ブラウザの場合、現在のブラウザタブではない可能性がある正しいブラウザタブのコマンド/キー入力を送信する必要があります。
答え3
私はあなたのようなものを見つけました。コマンドはxdotool key XF86AudioPlay
シェルで実行されますが、ショートカットまたはアプリケーション実行プログラムでは実行されません。だから私はxdotool
これがインタラクティブシェルで実行されたときにのみ機能するという結論に達しました。興味深いことに、次のコマンドを使用して、キーボードショートカットとランチャーアイコン(タスクバーなど)の両方が機能するようにしました。
bash -i -c 'xdotool key XF86AudioPlay'
スイッチを取り外して非対話型-i
にすると、動作が停止します。bash
なぜこれが起こるのかわかりません...
この方法の良い点XF86AudioPlay
は、Firefoxのバックグラウンドで再生されているYoutubeビデオを一時停止するのにも機能することです。
修正する
さて、なぜこれが起こるのか知っています。私の中の何か.bashrc
が変わりました$LD_LIBRARY_PATH
。それはxdotool
走るために必要なものです。しかし、私のGUIセッション(XFCE)にログインしても、これは起こりません。したがって、ターミナルではなくGUI(ランチャーやAlt + F2など)で直接実行されるすべてのプログラムは、変更されたプログラムを見ることができないため、$LD_LIBRARY_PATH
一部のライブラリが失われます。
したがって、正しい解決策は$LD_LIBRARY_PATH
実際に 。このようにして、XFCEはログイン時にそれを実行し、すべてのプログラムでそれを見ることができます。それにもかかわらず、今後の訪問者のために以前の回答をここに残しておきます。.profile
.bashrc
答え4
Audaciousを使用している場合は、次のものを使用できます。
audacious -t
一時停止と再生を切り替えます(参照man audacious
)。