web-dev-qa-db-fra.com

Une commande pour afficher le bureau

wmctrl -s peut être utilisé pour basculer entre les bureaux virtuels. Existe-t-il une commande qui affiche le bureau? c’est une commande qui va basculer entre réduire toutes les fenêtres et les restaurer?

2
user126106

Pour afficher la commande sur le bureau:

wmctrl -k on

Pour l'éteindre, utilisez

wmctrl -k off
2
virtualxtc

Ceci est une adaptation de réponse de virtualxtc avec le support de la bascule.

#!/bin/bash

current_mode="$(wmctrl -m | grep 'showing the desktop')"

if [[ "${current_mode##* }" == ON ]]; then
    wmctrl -k off
else
    wmctrl -k on
fi

Pour l'utiliser, enregistrez ce qui précède dans un fichier, puis marquez-le comme exécutable.


Explication du code ci-dessus

#!/bin/bash

Ceci est un commentaire Shebang.

current_mode="$(wmctrl -m | grep 'showing the desktop')"

Cela capture la sortie de wmctrl -m acheminé par grep 'showing the desktop' dans la variable $current_mode.

if [[ "${current_mode##* }" == ON ]]; then
    wmctrl -k off
else
    wmctrl -k on
fi

Une instruction if...else... dans Bash. ${current_mode##* } renvoie $current_mode avec la correspondance la plus longue, jusqu'à ce qu'un espace soit supprimé du début de la chaîne. Si cela retourne ON, éteint le bureau; sinon, allume le bureau.

2
kiri