kwin/scripts/minimizeall/contents/code/main.js
Thomas Lübking 0e22088bf4 add "MinimizeAll" script
to compensate withdrawn core feature (which
though has been hidden so far)
2015-04-07 23:59:17 +02:00

48 lines
1.8 KiB
JavaScript

/********************************************************************
KWin - the KDE window manager
This file is part of the KDE project.
Copyright (C) 2014 Thomas Lübking <thomas.luebking@gmail.com>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*********************************************************************/
function isRelevant(client) {
return client.minimizable &&
(client.onAllDesktops || client.desktop === workspace.currentDesktop);
(!client.activities.length || client.activities.indexOf(workspace.currentActivity.toString()) > -1);
}
var minimizeAllWindows = function() {
var allClients = workspace.clientList();
var clients = [];
var minimize = true;
for (var i = 0; i < allClients.length; ++i) {
if (isRelevant(allClients[i])) {
clients.push(allClients[i]);
if (allClients[i].minimizedForMinimizeAll === true) {
minimize = false;
}
}
}
for (var i = 0; i < clients.length; ++i) {
if (minimize && clients[i].minimized)
continue;
clients[i].minimized = minimize;
clients[i].minimizedForMinimizeAll = minimize;
}
clients = [];
}
registerShortcut("MinimizeAll", "MinimizeAll", "Meta+Shift+D", minimizeAllWindows);