Existe-t-il un raccourci ou tel pour envoyer la fenêtre actuellement active à l'arrière de l'écran tout en la gardant ouverte (pour qu'elle se retrouve "sous" toutes les autres fenêtres ouvertes)?
Existe-t-il un raccourci ou tel pour envoyer la fenêtre actuellement active à l'arrière de l'écran tout en la gardant ouverte (pour qu'elle se retrouve "sous" toutes les autres fenêtres ouvertes)?
Réponses:
Réponse courte: Non , Apple ne fournit pas d'API qui vous permet de modifier un index de fenêtre d'application sauf en mettant une fenêtre au premier plan (index 1). Il n'y a pas de solutions élégantes . Mais:
Réponse longue: Oui , vous pouvez utiliser AppleScript pour déplacer efficacement une fenêtre à l'arrière d'une pile de fenêtres compatibles AppleScript en collectant une liste de fenêtres, puis en les déplaçant rapidement ( sauf la plus en avant) vers l'avant, en laissant la fenêtre choisie À l'arrière.
Voici un exemple d'AppleScript qui envoie la fenêtre du Finder la plus en avant à l'arrière.
tell application "Finder"
set winList to every window whose visible is true
if not winList = {} then
repeat with oWin in (items 1 through -2 of reverse of winList)
set index of oWin to 1
end repeat
end if
end tell
Ce script est basé sur une solution de JMichaelTX discutée sur le forum KeyboardMaestro.
Le remaniement est incroyablement rapide, mais dans l'éditeur de script, vous pouvez inspecter son fonctionnement, en laissant "506" en bas et en faisant apparaître "502-505" d'une manière qui préserve leur ordre:
get every window whose visible = true
--> {Finder window id 506, Finder window id 505, Finder window id 504, Finder window id 503, Finder window id 502}
set index of Finder window id 502 to 1
--> 1
set index of Finder window id 503 to 1
--> 1
set index of Finder window id 504 to 1
--> 1
set index of Finder window id 505 to 1
--> 1
Vous pouvez mapper cet AppleScript à un service ou à un raccourci clavier, soit en a) en plaçant le script dans une action Exécuter AppleScript dans un service Automator, ou b) en utilisant un lanceur (Alfred, Keyboard Maestro, etc.). Pour plus de détails sur l'affectation du clavier Applescript, voir: Comment attribuer un raccourci clavier à un AppleScript que j'ai écrit?
Cela peut satisfaire les besoins des PO - cela ne ressort pas clairement de la publication d'origine. Cette solution peut également être étendue à plusieurs applications compatibles AppleScript. Je ne suis cependant pas au courant d'une solution pour le faire fonctionner efficacement avec un mélange de fenêtres scriptables et non scriptables, car dans AppleScript, les System Events
fenêtres adressables pour les applications non scriptables n'ont pas de set index
verbe / propriété. Il existe une action "AXRaise" pour certaines fenêtres lorsque les appareils fonctionnels / l'accessibilité sont activés, mais cela ne s'applique pas non plus à toutes les fenêtres. Il existe des hacks élaborés qui impliquent de parcourir chaque application active et d'afficher / masquer ou de réduire / restaurer les fenêtres, mais ils sont un gâchis.
Discussions connexes:
Votre question n'est pas très claire, mais si vous voulez un raccourci pour parcourir toutes les fenêtres de l'application actuellement active, vous devriez pouvoir le faire avec le Command~raccourci clavier.
La ~clé est généralement située à gauche de la 1clé.
Juste pour clarifier, le Command~raccourci clavier fait défiler toutes les fenêtres de l'application actuelle dans laquelle vous vous trouvez. Par exemple, si vous utilisez MS Word et que trois documents sont ouverts, il parcourra ces trois documents.
Cependant, le Command~raccourci clavier ne fait pas défiler les onglets. Par exemple, si Safari est ouvert avec trois fenêtres et que chaque fenêtre a cinq onglets ouverts, l'utilisation de ce raccourci fera défiler les trois fenêtres, pas les onglets individuels.
Une autre option qui peut atteindre ce que vous voulez est le CommandMraccourci clavier. Cependant, cela minimise la fenêtre actuellement active sur le Dock, donc je pense que ce n'est pas ce que vous voulez.
Si j'ai mal compris votre question, veuillez clarifier.