メニューにショートカット キーが存在しない場合、ショートカット キーを使用してメニューを開くにはどうすればよいですか?

メニューにショートカット キーが存在しない場合、ショートカット キーを使用してメニューを開くにはどうすればよいですか?

たとえば、現在再生中の曲を表示するために、サウンド メニュー/インジケーターを開いたり、ドロップダウンしたりするためのキーボード ショートカットはありますか? ない場合は、どのように設定できますか?

答え1

以下のスクリプトをショートカットキーに記述すると、どれでもサウンド メニューを含むショートカットが存在しない場合は、メニュー項目のドロップダウンが表示されます。

ここに画像の説明を入力してください

実際には投稿された回答とほぼ同じですここですが、質問は異なります。ただし、今後同様の質問が出てくる可能性を考慮して、質問(のタイトル)を少し広げてみました。

何をするのか

このスクリプトは、マウスをメニューまたはアイコンに移動し、クリックして、マウスを元の位置に戻す動作をシミュレートします。これはすべて一瞬で行われるため、まったく気付かないでしょう。

画面をクリックするだけで、柔軟に使用できます。どれでも位置を簡単に変更できます。2 つのオプションで実行されます。

  1. セット現在のマウスの位置を(覚えておいてください):

    run_click -set
    
  2. 最後に記憶した位置をクリックします。

    run_click -run
    

ポジションが設定されていない場合は、ポジションを設定するよう促すzenityメッセージが表示されます。

スクリプトは隠しファイルを作成し、~/.run_clickそこに最新の記憶された座標を保存します。

使い方

  1. インストールxdotool

    sudo apt-get install xdotool
    
  2. 以下のスクリプトを空のファイルにコピーし、open_menu(拡張子なし)として に保存します~/bin。必要に応じてディレクトリを作成し、スクリプトを実行可能にする

  3. を作成したばかりの場合は~/bin、 を実行しますsource ~/.profile
  4. まず両方のコマンドをテストしopen_menu -setopen_menu -runすべてが期待どおりに動作するかどうかを確認します。
  5. 今すぐ作成ショートカット: 1 つはスクリプトにメニュー項目の位置を記憶させるもので、もう 1 つは実際にメニューを開くものです。システム設定 > 「キーボード」 > 「ショートカット」 > 「カスタム ショートカット」を選択します。「+」をクリックして、2 つの異なるショートカット キーの組み合わせにコマンドを追加します。

    open_menu -set
    

    そして

    open_menu -run
    

次に、サウンド メニュー アイコンにマウスを置き、最初のショートカット キーを押します。その後は、2 番目のショートカット キーでメニューを開くことができます。

スクリプト

#!/usr/bin/env python3
import subprocess
import time
import sys
import os

option = sys.argv[1]
datafile = os.path.join(os.environ["HOME"], ".run_click")

def get_mousepos():
    cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
    return [d.split(":")[1] for d in cursordata[:2]]

if option == "-run":
    try:
        data = open(datafile).read()
        coords = (" ").join([l for l in data.splitlines()])
    except FileNotFoundError:
        message = "Please run the command: 'run_click -set' first, to set the click position"
        subprocess.Popen(["zenity", "--info", "--text", message])
    else:
        cmd1 = "xdotool mousemove "+coords; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(get_mousepos())
        for cmd in [cmd1, cmd2, cmd3]:
            subprocess.Popen(["/bin/bash", "-c", cmd])
            time.sleep(0.05)
elif option == "-set":
    open(datafile, "wt").write(("\n").join(get_mousepos()))

答え2

サウンド インジケーターを開くための特定のショートカットはありませんが、Alt + F10 を押すとメニュー インジケーターにフォーカスが当てられ、サウンド インジケーターに移動できます。

関連情報