0

Is it possible in python to minimize an active window by name or by focus state and, if so, how?

For example: I have an open Chromium browser and run a script in python and for five seconds my browser is minimized.

0

Yes you can. Here is how I did it.

SPECS:

Raspberry pi 3, OS: Raspbian, Version: 9 (Stretch)

Python 3.5.3, gi package version: 3.22, Wnck version: 3.20.1

You will need to use the Wnck module from gi.repository

import gi
gi.require_version('Wnck','3.0')
from gi.repository import Wnck

If you do not have the gi package or Wnck module

sudo apt-get update
sudo apt-get upgrade    
sudo apt-get install python3-gi gir1.2-wnck-3.0

The Wnck module allows you to interface with the task manager to manipulate windows.

Below is a script that will find all open Chromium windows, minimize them for 5 seconds and then unminimize them. When trying this code please have a Chromium window open and unminimized.

import gi                         #Import gi pageage
gi.require_version('Wnck','3.0')
from gi.repository import Wnck    #Import Wnck module
from time import sleep            #Used for 5 second delay

screen=Wnck.Screen.get_default()  #Get screen information
screen.force_update()             #Update screen object
windows=screen.get_windows()      #Get all windows in task bar. The first 2 elements I believe relate to the OS GUI interface itself and the task bar. All other elements are the open windows in the task bar in that order.
for w in windows:                 #Go through each window one by one.
    if 'Chromium' in w.get_name(): #Get name of window and check if it includes 'Chromium'
        w.minimize()              #If so, minimize ask the task manager to minimize that window.
        sleep(5)                  #Wait your desired 5 seconds.
        w.unminimize(1)           #Ask the task manager to unminimize that window. This function needs an integer, I don't know what it does.
        print(w.get_name())       #Print the windows name to give you a warm fuzzy it was the right window.

This link provides the documentation for the Wnck 3.0 module classes https://lazka.github.io/pgi-docs/#Wnck-3.0/classes.html

To check your gi package version type gi.version_info into the Python terminal after you have imported the gi package.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.