Savez-vous comment le faire? Je sais comment le faire depuis mon clavier (Alt + F4), je sais le faire avec ma souris (cliquez sur X), et je sais aussi que kill X
devrait tuer le processus avec l'identifiant X (et killall Y
devrait tuer le processus nommé Y). Mais je veux savoir comment tuer la fenêtre active du terminal.
Par conséquent, d'après ce que j'ai indiqué ci-dessus, une réponse valable serait également d'obtenir l'identifiant de la fenêtre active.
Pour le moment, j'implémente cette fonction depuis xte (en simulant Alt + F4), mais j'aimerais savoir s'il existe un moyen de ne pas impliquer l'installation d'une autre application. Merci à tous.
MODIFIER. Voici le script complet. Vous devez d’abord activer l'option "Afficher la souris lorsque vous appuyez sur Ctrl", puis vous ajoutez ce script aux commandes de CompizConfig et la liaison au coin supérieur droit. Lorsque vous touchez le coin supérieur droit, une petite notification apparaît autour de la souris. Si vous ne faites rien, la fenêtre active se fermera après 1 seconde. Toutefois, si vous touchez de nouveau le coin dans la seconde, la fenêtre active ne sera pas fermée.
xte 'key Control_R'; if [ -f ~/.fcont ]; then rm -f -r ~/.fcont; else touch ~/.fcont; sleep 1; if [ -f ~/.fcont ]; then xkill -id `xprop -root _NET_ACTIVE_WINDOW | cut -d\# -f2`; rm -f -r ~/.fcont; fi fi
Notez que j'utilise toujours l'application xte nommée auparavant depuis this la question que j'ai posée il y a quelque temps n'a jamais reçu de réponse.
Et si vous voulez être vraiment poilu et éviter les applications qui ne sont pas installées par défaut:
xkill -id `xprop -root _NET_ACTIVE_WINDOW | cut -d\# -f2`
Encore une fois, cela semble fonctionner assez bien.
NOTE: Dans le cas de certaines applications (voir les commentaires), cela peut signifier que toutes les fenêtres d'une application sont fermées. gnome-terminal
est l'une de ces applications mais terminator
et xterm
ne sont pas affectés. Je suggérerais que c'est plus un bogue (peut-être par conception) avec ces applications plutôt qu'un avec ma commande.
wmctrl
La commande ci-dessous ferme également la fenêtre actuellement active à l'aide de la spécification EWMH, bien que nécessite l'installation d'un autre programme, ce que vous sembliez préférer éviter.
En conséquence, le comportement attendu est le suivant:
wmctrl -c: ACTIVE:
Depuis la page d'accueil du projet wmctrl - Un outil de ligne de commande pour interagir avec un gestionnaire de fenêtre X compatible EWMH/NetWM.
-c Ferme la fenêtre gracieusement.
et
La chaîne spéciale ": ACTIVE:" (sans les guillemets) peut être utilisée pour indiquer à wmctrl d'utiliser la fenêtre actuellement active pour l'action.
J'utiliserais xdotool
:
xdotool windowkill `xdotool getactivewindow`
Semble faire le travail rapidement et tranquillement.