ラベル Wnck の投稿を表示しています。 すべての投稿を表示
ラベル Wnck の投稿を表示しています。 すべての投稿を表示

2021年5月30日日曜日

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

Wnckでワークスペース・ウインドウの情報を取得したり、操作をする事ができます。

ウインドウの情報取得

ウインドウの情報の取得に関しては、以下を参照してください。

WnckとPythonを使用してスクリーンのウインドウ一覧を取得する

WnckとPythonを使用して全ウインドウのプロセスIDを取得する

WnckとPythonを使用して全ウインドウの座標・幅・高さを取得する

ウインドウの状態変化の検出

ウインドウの状態の変化の検出に関しては、以下を参照してください。

WnckとPythonを使用してウインドウの位置が変わるまで待機する

WnckとPythonを使用してアクティブなウインドウが変わるまで待機する

WnckとPythonを使用して新しいウインドウがオープンするまで待機する

WnckとPythonを使用して新しいウインドウがクローズするまで待機する

ウインドウの最大化・最小化に関する状態検出と操作

ウインドウの最小化・最大化に関する状態検出と操作については、以下を参照してください。

WnckとPythonを使用してウインドウが最大化されるまで待機する

WnckとPythonを使用してウインドウが最小化されるまで待機する

WnckとPythonを使用して最小化しているウインドウを最小化解除する

WnckとPythonを使用して全ウインドウを最小化する

WnckとPythonを使用して最大化したウインドウ一覧を取得する

WnckとPythonを使用して最小化したウインドウ一覧を取得する

ワークスペースに関する操作・情報取得

ワークスペースに関する情報の取得や切り替えは以下を参照してください。

WnckとPythonを使用してアクティブなワークスペースが変わるまで待機する

WnckとPythonを使用してアクティブなワークスペースを切り替える

WnckとPythonを使用してワークスペースのlayout位置を取得する

WnckとPythonを使用してワークスペース名を変更する

WnckとPythonを使用してワークスペース名を取得する

WnckとPythonを使用してワークスペース番号を取得する

WnckとPythonを使用してデスクトップ画面数(ワークスペース数)を取得する

アプリケーションに関する情報取得

アプリケーションに関する情報取得に関しては以下を参照してください。

WnckとPythonを使用してアプリケーションがオープンされるまで待機する

WnckとPythonを使用してアプリケーションが閉じられるまで待機する

WnckとPythonを使用してウインドウアプリケーション名を列挙する

スクリーンに関する情報取得

スクリーンに関する情報の取得は、以下を参照してください。

WnckとPythonを使用してスクリーンのウインドウマネージャ名を取得する

WnckとPythonを使用してスクリーンの解像度を取得する

2021年4月4日日曜日

WnckとPythonを使用してウインドウが最大化されるまで待機する

WnckとPythonを使用してウインドウが最大化されるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、state-changedシグナルに対応する関数に関連付けます。
state-changedに関連付けられた関数では、Wnck.WindowState.MAXIMIZED_HORIZONTALLYフラグまたはMAXIMIZED_VERTICALLYフラグが立っているかをチェックします。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def state_changed(window, mask, state):
  if state & Wnck.WindowState.MAXIMIZED_HORIZONTALLY or state & Wnck.WindowState.MAXIMIZED_VERTICALLY:
    print("state-changed:maximized:{}".format(window.get_name()))
  Gtk.main_quit()

screen.get_active_window().connect("state-changed", state_changed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年4月3日土曜日

WnckとPythonを使用してウインドウが最小化されるまで待機する

WnckとPythonを使用してウインドウが最小化されるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、state-changedシグナルに対応する関数に関連付けます。
state-changedに関連付けられた関数では、Wnck.WindowState.MINIMIZEDフラグが立っているかをチェックします。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def state_changed(window, mask, state):
  if state & Wnck.WindowState.MINIMIZED:
    print("state-changed:minimized:{}".format(window.get_name()))
  Gtk.main_quit()

screen.get_active_window().connect("state-changed", state_changed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年4月2日金曜日

WnckとPythonを使用してウインドウの位置が変わるまで待機する

WnckとPythonを使用してウインドウの位置が変わるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、geometry-changedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def geometry_changed(window):
  print("geometry-changed:{}".format(window.get_name()))
  Gtk.main_quit()

screen.get_active_window().connect("geometry-changed", geometry_changed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年4月1日木曜日

WnckとPythonを使用してアプリケーションがオープンされるまで待機する

WnckとPythonを使用してアプリケーションがオープンされるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、application-openedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def application_opened(screen, app):
  print("application-opened:{}".format(app.get_name()))
  Gtk.main_quit()

screen.connect("application-opened", application_opened)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月31日水曜日

WnckとPythonを使用してアプリケーションが閉じられるまで待機する

WnckとPythonを使用してアプリケーションが閉じられるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、application-closedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def application_closed(screen, app):
  print("application-closed:{}".format(app.get_name()))
  Gtk.main_quit()

screen.connect("application-closed", application_closed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月30日火曜日

WnckとPythonを使用してアクティブなワークスペースが変わるまで待機する

WnckとPythonを使用してアクティブなワークスペースが変わるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、active-workspace-changedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def active_workspace_changed(screen, window):
  print("active-workspace-changed:{}".format(screen.get_active_workspace().get_name()))
  Gtk.main_quit()

screen.connect("active-workspace-changed", active_workspace_changed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月29日月曜日

WnckとPythonを使用してアクティブなウインドウが変わるまで待機する

WnckとPythonを使用してアクティブなウインドウが変わるまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、active-window-changedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def active_window_changed(screen, window):
  print("active-window-changed:{}".format(window.get_name()))
  Gtk.main_quit()

screen.connect("active-window-changed", active_window_changed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月28日日曜日

WnckとPythonを使用して新しいウインドウがクローズするまで待機する

WnckとPythonを使用して新しいウインドウがクローズするまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、window-closedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def closed(screen, window):
  print("window-closed:{}".format(window.get_name()))
  Gtk.main_quit()

screen.connect("window-closed", closed)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月27日土曜日

WnckとPythonを使用して新しいウインドウがオープンするまで待機する

WnckとPythonを使用して新しいウインドウがオープンするまで待機するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、window-openedシグナルに対応する関数に関連付けます。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()

def opened(screen, window):
  print("window-opend:{}".format(window.get_name()))
  Gtk.main_quit()

screen.connect("window-opened", opened)
Gtk.main()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月26日金曜日

WnckとPythonを使用してウインドウアプリケーション名を列挙する

WnckとPythonを使用してウインドウアプリケーション名を列挙するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのget_application()メソッドでアプリケーション情報を取得し、get_name()で名称取得します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  print(window.get_application().get_name())

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月25日木曜日

WnckとPythonを使用して最小化しているウインドウを最小化解除する

WnckとPythonを使用して最小化しているウインドウを最小化解除するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのis_minimized()メソッドで最初化判定を行い、unminimize()で最小化解除します。また、Raspberry PiのOpenboxでは、現在のデスクトップ画面(ワークスペース)でないと最小化解除できないようです。

サンプルコード

以下のサンプルコードを保存・実行します。
import time
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  if window.is_minimized():
    window.unminimize(int(time.time()))

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月24日水曜日

WnckとPythonを使用して全ウインドウを最小化する

WnckとPythonを使用して全ウインドウを最小化するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのminimize()メソッドで最小化します。また、Raspberry PiのOpenboxでは、現在のデスクトップ画面(ワークスペース)でないと最小化できないようです。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  window.minimize()

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月23日火曜日

WnckとPythonを使用して全ウインドウのプロセスIDを取得する

WnckとPythonを使用して全ウインドウのプロセスIDを取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのget_pid()メソッドでプロセスIDを取得します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  print("{} - {}".format(window.get_pid(),window.get_name()))

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月22日月曜日

WnckとPythonを使用して全ウインドウの座標・幅・高さを取得する

WnckとPythonを使用して全ウインドウの座標・幅・高さを取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのget_geometry()メソッドで座標(xpとyp)・幅(widthp)・高さ(heightp)を取得します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  print("{} - {}".format(window.get_geometry(),window.get_name()))

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月21日日曜日

WnckとPythonを使用して最大化したウインドウ一覧を取得する

WnckとPythonを使用して最大化したウインドウ一覧を取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのis_maximized()メソッドで最大化されているか判定します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  if window.is_maximized():
    print(window.get_name())

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月20日土曜日

WnckとPythonを使用して最小化したウインドウ一覧を取得する

WnckとPythonを使用して最小化したウインドウ一覧を取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドで全ウインドウを取得します。
その後、各ウインドウのis_minimized()メソッドで最小化されているか判定します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  if window.is_minimized():
    print(window.get_name())

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月19日金曜日

WnckとPythonを使用してスクリーンのウインドウ一覧を取得する

WnckとPythonを使用してスクリーンのウインドウ一覧を取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_windows()メソッドを使用します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
windows = screen.get_windows()
for window in windows:
  print(window.get_name())

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月18日木曜日

WnckとPythonを使用してアクティブなワークスペースを切り替える

WnckとPythonを使用してアクティブなワークスペースを切り替えるには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行して、アクティブなworkspaceを取得してからactivate()メソッドを使用します。
サンプルでは、0番目のワークスペースに切り替えています。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
import time
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
workspace = screen.get_workspace(0)
workspace.activate(int(time.time()))

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ

2021年3月17日水曜日

WnckとPythonを使用してワークスペースのlayout位置を取得する

WnckとPythonを使用してワークスペースのlayout位置を取得するには、以下のサンプルコードのようにデフォルトスクリーンを取得後、force_updateを実行してget_layout_row()/get_layout_column()メソッドを使用します。

サンプルコード

以下のサンプルコードを保存・実行します。
import gi
gi.require_version('Gtk', '3.0')
gi.require_version('Wnck', '3.0')
from gi.repository import Gtk, Wnck

screen = Wnck.Screen.get_default()
screen.force_update()
workspace = screen.get_active_workspace()
print("workspace layout(row,col):{}, {}".format(workspace.get_layout_row(), workspace.get_layout_column()))

・動作確認環境
Ubuntu 20.04/Raspberry Pi OS(Raspbian Buster)

Wnckのインストール方法

以下のコマンドを実行します。
sudo apt-get -y install python3-gi gir1.2-wnck-3.0

関連項目

WnckとPythonでのワークスペース・ウインドウの情報取得・操作まとめ