web-dev-qa-db-ja.com

14.04のGnome-Classicでアプリケーションメニューを展開するためのキー

  1. 14.04のGnome-Classic(メタシティ)では、

    • [アプリケーション]メニューを呼び出すキーはありますか?
    • アプリケーションメニュー、場所、ワイヤレスアイコン、バッテリー、時間、シャットダウン/サスペンド/ログアウト/ロックメニューなど、トップパネルの項目を切り替えるキーがありますか?
  2. 可能であれば、アプリケーションメニューのキーをどのように追加しますか?

    アプリケーションメニューを表示するためのキーを追加するには、それを行うためのコマンドは何ですか?

  3. https://askubuntu.com/a/133915/1471 とは異なり、私の場合、アプリケーションメニューのキーはありません。

    14.04にはcompiz + unityが付属しており、その後metacity + gnomeclassicをインストールします。同じキーボード設定を共有していますか?それがアプリケーションメニューのキーがない理由ですか?

    enter image description here

ありがとう!

3
Tim

わずらわしい回避策を使用すると、非常にうまく実行できます。 xdotoolを使用すると、マウスを[アプリケーション]メニューの位置に移動し、開いて元の位置に自動的に戻すことができます。

すべてが非常に迅速に発生するため、andマウスが元の位置に戻されるため、気付かないでしょう。

enter image description here

このスクリプトでは、上の画像のように、アプリケーションメニューが左上隅にあると想定しています。そうでない場合は、cmd1の座標を変更する必要があります。

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

cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()
loc = [d.split(":")[1] for d in cursordata[:2]]
cmd1 = "xdotool mousemove 10 5"; cmd2 = "xdotool click 1"; cmd3 = "xdotool mousemove "+(" ").join(loc)
for cmd in [cmd1, cmd2, cmd3]:
    subprocess.Popen(["/bin/bash", "-c", cmd])
    time.sleep(0.05)

詳細に:

現在のマウス位置を取得します。

cursordata = subprocess.check_output(["xdotool", "getmouselocation"]).decode("utf-8").split()

出力(x/y)を座標に解析します。

loc = [d.split(":")[1] for d in cursordata[:2]]

その後にコマンド[cmd1, cmd2, cmd3]を実行します。

  • マウスをアプリケーションメニューに移動します
  • クリック
  • マウスを元の場所に戻します
for cmd in [cmd1, cmd2, cmd3]:
    subprocess.Popen(["/bin/bash", "-c", cmd])
    time.sleep(0.05)

スクリプトの使用方法

  1. xdotoolをインストールします:

    Sudo apt-get install xdotool
    
  2. スクリプトを空のファイルに貼り付け、open_appmenu.pyとして保存します

  3. 次のコマンドでテスト実行します:

    python3 /path/to/open_appmenu.py
    
  4. すべてが正常に機能する場合は、ショートカットキーに追加します。[システム設定]> [キーボード]> [ショートカット]> [カスタムショートカット]を選択します。 「+」をクリックして、コマンドを追加します。

    python3 /path/to/open_appmenu.py
    

他のアイテムに移動する

[アプリケーション]メニューを開いたら、矢印キーで次の項目に簡単に切り替えることができます。


編集:一般化バージョン

柔軟な方法で使用できるスクリプトのバージョンの下で、any positionの画面をクリックして、簡単に変更できます。スクリプトは、2つのオプションで実行できます。

  1. to set(覚えている)現在のマウス位置:

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

    run_click -run
    

位置が設定されていない場合は、位置を設定するよう求める招待メッセージが表示されます。

enter image description here

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

テストとして、キーの組み合わせの下に両方のコマンドを配置します。 Ctrl+Alt+R、そして Ctrl+Alt+A、その場でクリック位置を簡単に変更できます。

設定方法

  1. 最初のスクリプトのように、xdotoolをインストールします:

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

  3. ~/binを作成したばかりの場合は、source ~/.profileを実行します。
  4. 最初にrun_click -set、次にrun_click -runの両方のコマンドをテストして、すべてが期待どおりに機能するかどうかを確認します。
  5. 両方のコマンドを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()))
3
Jacob Vlijm