The solution was to go to:
System Settings > Application Appearance > Icons > Advanced
And under All Icons
remove the effect for the Disabled
icon.
Edit
Here's the respective KDE bug report https://bugs.kde.org/show_bug.cgi?id=311991
OK, just a quick one for fun :)
Minimize windows of currently active application
You could use a stripped-down/edited version of this script, which comes with a default Ubuntu Budgie install.
While the original script toggles the desktop, the edited one below minimizes all windows, on current workspace, of the currently active WM_CLASS
.
The script, how to use
Make sure you have both xdotool
and wmctrl
installed:
sudo apt install wmctrl xdotool
- Copy the script below into an empty file, save it as
minimize_current.py
Create a keyboard shortcut to run the script and you're done :). Use the command:
python3 /path/to/minimize_current.py
The script
#!/usr/bin/env python3
import subprocess
ignore = [
"= _NET_WM_WINDOW_TYPE_DOCK",
"= _NET_WM_WINDOW_TYPE_DESKTOP",
]
def get(cmd):
return subprocess.check_output(cmd).decode("utf-8").strip()
def get_currws():
return [l.split()[0] for l in get(
["wmctrl", "-d"]).splitlines() if "*" in l][0]
def get_valid(w_id):
# see if the window is a valid one (type)
w_data = get(["xprop", "-id", w_id])
if w_data:
return True if not any([t in w_data for t in ignore]) else False
else:
return False
def get_wmclass(w_id):
return get(["xprop", "-id", w_id, "WM_CLASS"])
def get_state(w_id):
return "window state: Iconic" in get(["xprop", "-id", w_id, "WM_STATE"])
currws = get_currws()
allwinsdata = [w.split() for w in get(["wmctrl", "-l"]).splitlines()]
winsoncurr = [w[0] for w in allwinsdata if w[1] == currws]
active_w = get(["xdotool", "getactivewindow"])
activeclass = get_wmclass(active_w)
relevant = [w for w in winsoncurr if get_valid(w)]
# windows on current workspace, normal state
tominimize = [
w for w in relevant if all(
[not get_state(w), get_wmclass(w) == activeclass]
)
]
for w in tominimize:
subprocess.Popen(["xdotool", "windowminimize", w])
Note
Note that xdotool
nor wmctrl
, as used in this script, will work on Wayland.
Best Answer
The following procedure is only for $XDG_SESSION_TYPE x11.
Notes:
Important:
To ensure that the terminal window's title does not change, I had to first comment out the following lines from ~/.bashrc. If this is not done, the title will reflect the current working directory instead of retaining the title you set:
I named each window using
Note that xdotool, as used here, won't handle windows named using
See the answer to Setting terminal window's title: wmctrl versus xdotool for a thorough explanation.
The following animated gif will illustrate using another "master" terminal, located at the top of the screen in the image, to issue code to minimize or maximize a particular group of windows.
To do so, I added the following functions to my ~/.bashrc:
mmm
uses xdotool to search for the string "KEYWORD" provided by the user. "earth" in this example, is common to one group of terminal windows to be acted on. xdotool produces their window identifiers which is directed to a temporary file.xwn
uses xdotool's windowminimize action to minimize the windows specified in the temporary file.xwx
uses xdotool's windowactivate action to maximize the windows specified in the temporary file.mmm
immediately beforexwn
orxwx
.I had to use
mogrify -type Grayscale -depth 7 *.png
to scale down the size of the gif.