web-dev-qa-db-ja.com

xdotoolデスクトップを選択してF5キーを押して戻る方法

それは簡単に聞こえます。 xdotoolデスクトップを選択し、シミュレーションします F5 キーを押してフォーカスを呼び出し側のウィンドウ/プログラムに戻します。

グーグルした後、それはもはや簡単に聞こえません。

私はこれをbash/gnome-Shellから行う必要があります。

何か案は?


このプロジェクトはこのQ&Aに関連しており、モニターのサイズが異なるため、アイコンが左画面から黒い全体にドロップします。

おかげで ポデスタの助け 私はこのコードを作成しました:

TestIcons () {

    [[ $TestSeconds == "" ]] || [[ $TestSeconds == 0 ]] && TestSeconds=5

    local i Position File
    for (( i=0; i<${#IconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${IconsArr[((i+ICON_NAME_NDX))]}"
        Position="${IconsArr[((i+ICON_COL_NDX))]},${IconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"
    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    sleep $TestSeconds  # Pause for view
    wmctrl -k off       # Restore windows

    for (( i=0; i<${#OldIconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${OldIconsArr[((i+ICON_NAME_NDX))]}"
        Position="${OldIconsArr[((i+ICON_COL_NDX))]},${OldIconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"

    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    wmctrl -k off       # Restore windows

} # TestIcons

画面は次のようになります。

iconic 2 optimized.gif

3

以下のスクリプト @ WinEunuuchs2Unix の作業は、最終的な解決策です。私の最初の答えは終わりです。

#!/bin/bash

TestIcons () {

    [[ $TestSeconds == "" ]] || [[ $TestSeconds == 0 ]] && TestSeconds=5

    local i Position File
    for (( i=0; i<${#IconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${IconsArr[((i+ICON_NAME_NDX))]}"
        Position="${IconsArr[((i+ICON_COL_NDX))]},${IconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"
    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    sleep $TestSeconds  # Pause for view
    wmctrl -k off       # Restore windows

    for (( i=0; i<${#OldIconsArr[@]}; i=i+ICON_FLD_CNT )) ; do
        File="$ICONS_DIR"/"${OldIconsArr[((i+ICON_NAME_NDX))]}"
        Position="${OldIconsArr[((i+ICON_COL_NDX))]},${OldIconsArr[((i+ICON_ROW_NDX))]}"
        gvfs-set-attribute -t string "$File" \
                'metadata::nautilus-icon-position' "$Position"

    done

    wmctrl -k on        # Show desktop
    xdotool key F5      # Refresh desktop (show icon new positions)
    wmctrl -k off       # Restore windows

} 
TestIcons

同様の状況で役立つ他のいくつかのxdotoolsコマンド:

ウィンドウマネージャーにshow desktopコマンドがある場合は、すべてのウィンドウを最小化して戻すと便利です。通常はctrl+alt+dに設定されます。

xdotool key ctrl+alt+d

現在アクティブなウィンドウを保存して後で戻すには、次のコマンドを使用できます。

myWindow="$(xdotool getactivewindow)"

Tiは、使用できるウィンドウを最小化します。ループに追加すると、show dekstopの代わりに、すべてのウィンドウを最小化できます。

xdotool windowminimize $(xdotool getactivewindow)

保存したアクティブウィンドウをフォーカスに戻すには:

xdotool windowactivate "$myWindow"

アクティブなウィンドウを閉じるには:

xdotool getactivewindow windowkill

そして最も重要なのは、アクティブウィンドウで使用できるすべてのコマンドで、実際に検索して特定のケースに適用できます。たとえば、タイトルに基づいてこの特定のウィンドウを検索します。

xdotool search --desktop 0 --name "command line - xdotool" windowactivate

タイトル、クラス、表示されているかどうかなどに基づいて、ウィンドウを検索する方法は数多くあります。ウィンドウの位置とマウスの両方を操作することもできます。 xdotolのマンページは非常に包括的です。それらをbashスクリプトと組み合わせると、ほとんどのことを達成するための十分な自由が与えられます。

4
Podesta