次のアイデアは、ユーザーがマークされたウィンドウをXFCE環境のワークスペースからアクティブな窓に移動できる便利な方法を示しています。
MOVABLE_WINDOW_IDXとしてマークされたいウィンドウをクリックします。ここで、 MOVABLE_WINDOW_IDX 0の9の整数になります。Super+Shift+Key_MOVABLE_WINDOW_IDXを押して、そのアクティブウィンドウをマークし、対応するmovableウィンドウIDをMOVABLE_WINDOW_IDXとして割り当てます。Super+Key_MOVABLE_WINDOW_IDXを押して、そのウィンドウを現在アクティブなワークスペースに移動します。 Key_MOVABLE_WINDOW_IDX 、純粋にユーザーのキーボードキーの好みに依存します。この概念を実装する1つの方法は、次の指示を使用することです。この方法は、APTパッケージxdotoolとwmctrlに依存することは注目に値します。
.window_summonerと呼ばれるディレクトリを作成します。get_window_id.pyと名付けられ、次のコンテンツが含まれます import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ] = rm_newline ( subprocess . check_output ([ 'xdotool' , 'getactivewindow' ]). decode ( sys . stdout . encoding ))
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'w' ) as file :
MOVABLE_WINDOWS_ID = file . write ( ' ' . join ( MOVABLE_WINDOWS_ID ))他のファイルはsummon_window.pyであり、そのコンテンツは
import subprocess
import sys
import re
import os
rm_newline = lambda str_ : re . sub ( ' n ' , '' , str_ )
current_dpath , _ = os . path . split ( sys . argv [ 0 ]); del _
MOVABLE_WINDOW_IDX = int ( sys . argv [ 1 ])
with open ( current_dpath + '/' + 'movable_window_id_list.txt' , 'r' ) as file :
MOVABLE_WINDOWS_ID = rm_newline ( file . read ()). split ( ' ' )
os . system ( """wmctrl -ir %s -t $(wmctrl -d | grep "*" | cut -d' ' -f1)""" % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))
os . system ( 'xdotool windowactivate %s' % ( MOVABLE_WINDOWS_ID [ MOVABLE_WINDOW_IDX ]))分解する
wmctrl -ir $MOVABLE_WINDOW_ID -t $(wmctrl -d | grep "*" | cut -d' ' -f1) :
wmctrl :Xウィンドウシステムウィンドウと対話して操作できるコマンドラインユーティリティ。
-ir $MOVABLE_WINDOW_ID : -irフラグは、 wmctrl 「指定された数値IDとウィンドウと対話する」ように指示します。 $MOVABLE_WINDOW_IDは、移動するウィンドウの数値IDを含むbash変数です。
-t $(wmctrl -d | grep "*" | cut -d' ' -f1) :- -tフラグはwmctrl 「指定されたインデックスでウィンドウをデスクトップに移動する」ように指示します。 $(wmctrl -d | grep "*" | cut -d' ' -f1)は、現在アクティブなデスクトップ/ワークスペースのインデックスを取得するコマンド置換です。そのコマンドの代替で起こっていることは次のとおりです。
wmctrl -d :利用可能なすべてのデスクトップ/ワークスペースをリストします。grep "*" :現在アクティブなデスクトップ/ワークスペースのフィルター。これは、 wmctrl -dの出力にアスタリスク( * )によって示されます。cut -d' ' -f1 : grep "*"の出力から最初のフィールド(デスクトップ/ワークスペースのインデックス)を抽出します。残りの2つのファイルはmovable_window_id_list.txtおよびinitial_movable_window_id_list.txtです。どちらも含める必要があります
0 0 0 0 0 0 0 0 0 0
後者のファイルを読み取り専用にする必要があり、他のtxtファイルの初期値プロトタイプとしてのみ機能します。
アクティブにしたいすべてのキーボード整数MOVABLE_WINDOW_IDXごとに次のことを行います。ショートカット: Super+Shift+Key_MOVABLE_WINDOW_IDX →コマンド: python3 /home/$USER/.window_summoner/get_window_id.py MOVABLE_WINDOW_IDX
ショートカット: Super+Key_MOVABLE_WINDOW_IDX →コマンド: python3 ~/.window_summoner/summon_window.sh MOVABLE_WINDOW_IDX
明らかに、 Key_MOVABLE_WINDOW_IDX選択したキーに置き換えます。
例は次のとおりです
ショートカット: Super+Shift+1 →コマンド: source ~/.window_summoner/get_window_id.sh 1
そして、これにより、ユーザーがマークされたウィンドウをアクティブなワークスペースに移動できるようにする言及された方法を設定します。