# Script activer/désactiver Spaces et Exposé



## tortoys (7 Juin 2010)

Bonjour, voila en fait je joue de plus en plus sur mon mac (les vacances approchent ) et certains jeux ne gèrent pas Spaces et Exposé. Quand on part dans les coins (comme pour Warcraft, Age of Mythology...) sa fout le bordel ! Ou alors sa change de bureau quand on fait ctrl+direction (Rayman 3 par exemple).

Est il possible de créer un script qui permettent de désactiver et activer spaces et exposé facilement ? Et remettre les réglages comme ils étaient, sinon autant le faire à la main.... ?
Associé à Keyboard Maestro sa peut être pas mal !
Merci


----------



## Anonyme (7 Juin 2010)

Bonjour,

Ce script *AppleScript* fonctionne, 
Mais si vous avez mis une de ces touches ( *commande, controle, option, Majuscule* (droite ou gauche)) comme racourcis, ça ne fonctionnera pas.

```
property coins_Actifs : missing value
property allProps : missing value

tell application "System Events"
	tell expose preferences
		tell spaces preferences
			set b to spaces enabled
			set spaces enabled to not b
		end tell
		if b then
			set coins_Actifs to {}
			set end of coins_Actifs to activity of top left screen corner
			set end of coins_Actifs to activity of top right screen corner
			set end of coins_Actifs to activity of bottom left screen corner
			set end of coins_Actifs to activity of bottom right screen corner
			set activity of top left screen corner to none
			set activity of top right screen corner to none
			set activity of bottom left screen corner to none
			set activity of bottom right screen corner to none
			
			set allProps to {properties of show desktop shortcut, properties of dashboard shortcut, properties of all windows shortcut, properties of application windows shortcut}
			
			set function key of show desktop shortcut to none
			set mouse button of show desktop shortcut to 0
			set function key of dashboard shortcut to none
			set mouse button of dashboard shortcut to 0
			set function key of all windows shortcut to none
			set mouse button of all windows shortcut to 0
			set function key of application windows shortcut to none
			set mouse button of application windows shortcut to 0
		else if coins_Actifs is not missing value then
			set activity of top left screen corner to item 1 of coins_Actifs
			set activity of top right screen corner to item 2 of coins_Actifs
			set activity of bottom left screen corner to item 3 of coins_Actifs
			set activity of bottom right screen corner to item 4 of coins_Actifs
			set mouse button of show desktop shortcut to mouse button of (get item 1 of allProps)
			set function key of show desktop shortcut to function key of (get item 1 of allProps)
			set mouse button of dashboard shortcut to mouse button of (get item 2 of allProps)
			set function key of dashboard shortcut to function key of (get item 2 of allProps)
			set mouse button of all windows shortcut to mouse button of (get item 3 of allProps)
			set function key of all windows shortcut to function key of (get item 3 of allProps)
			set mouse button of application windows shortcut to mouse button of (get item 4 of allProps)
			set function key of application windows shortcut to function key of (get item 4 of allProps)
		end if
	end tell
end tell
```


----------



## tortoys (8 Juin 2010)

Ouah merci beaucoup !! J'aurais jamais été capable de faire ça 
Quand vous dites "Mais si vous avez mis une de ces touches ( *commande, controle, option, Majuscule* (droite ou gauche)) comme racourcis, ça ne fonctionnera pas.", vous parlez du raccourci utilisé par Keyboard Maestro ?

Par contre mes raccourcis dans les coins sont :
  - coin haut gauche : spaces
  - coin bas gauche : toutes les fenêtres
  - coin haut droit : bureau
  - coin bas droit : dashboard
Sa marche nikel pour "toutes le fenêtres", "bureau", et "dashboard" ! Par contre il ne me remets pas Spaces dans le coin haut gauche. Du peu que je m'y connais peut être que en spécifiant Spaces pour ce coin la sa peut se faire... Enfin la c'est vous le maître je suis le jeune, très jeune padawan :rateau:

En tout cas même s'il manque ça merci sa a du vous demander pas mal de taf !


----------



## Anonyme (8 Juin 2010)

Bonjour,



tortoys a dit:


> Quand vous dites "Mais si vous avez mis une de ces touches ( *commande, controle, option, Majuscule* (droite ou gauche)) comme racourcis, ça ne fonctionnera pas.", vous parlez du raccourci utilisé par Keyboard Maestro ?


Non, ce sont les raccourcis de "*Exposé*".

Je ne peut pas récupérer ces touches (right option,  right control, right command, right shift, left option,  left control, left command, left shift ) par le script.
Ni *Spaces*, s'il  est assigné dans un coin actif.


Mais par contre, on peut l'assigner dans un script :

```
tell application "System Events"
	tell expose preferences
		tell spaces preferences
			set b to spaces enabled
			set spaces enabled to not b
		end tell
		if b then
			set activity of top left screen corner to none
			set activity of top right screen corner to none
			set activity of bottom left screen corner to none
			set activity of bottom right screen corner to none
			
			set function key of show desktop shortcut to none
			set function key of dashboard shortcut to none
			set function key of all windows shortcut to none
			set function key of application windows shortcut to none
		else
			set activity of top left screen corner to show spaces
			set activity of top right screen corner to show desktop
			set activity of bottom left screen corner to all windows
			set activity of bottom right screen corner to dashboard
			
			set function key of show desktop shortcut to F11
			set function key of dashboard shortcut to F12
			set function key of all windows shortcut to F9
			set function key of application windows shortcut to F10
			-- autre touches -- F1, F10, F11,F12, F13, F2, F3, F4, F5, F6, F7, F8, F9
			-- right option,  right control, right command, right shift, left option,  left control, left command, left shift 
		end if
	end tell
end tell
```
Il te reste à modifier le script selon tes  raccourcis, dans le script ce sont les touches par défault F9 à F12

Si vous avez un raccourci exposé avec un bouton de la souris, remplacer la ligne qui correspond par celle-ci 
EX :
	
	



```
--set function key of all windows shortcut to F9
set mouse button of all windows shortcut to 3 -- le nombre est le numéro du bouton
```


----------



## tortoys (9 Juin 2010)

Hmm ok pour les raccourcis ! Et donc on oublie le premier script et on prends le deuxième qui est spécifique à mes réglages c'est bien ça ?

Et par contre... j'ai un ibook G4, mes F s'arrête à F12 (raccourci eject) les touches F8 F9 F10 et F11 étaient assignés à Exposé et Spaces, mais ayant vu l'aspect super pratique des Précédent/Play-Pause/Suivant sur un MacBook d'un ami pour iTunes, j'ai désactivé les raccourcis dans les Préférences Systèmes et assignés F9 F10 et F11 à ces 3 fonctions, d'ou l'acquisition de Keyboard Maestro ! Et je pensais utiliser F8 pour ce script...

Donc faut-il rentrer quelque chose ? ou virer toute la ligne ? ou ne rien mettre à la place des F ?
Et non je n'utilise pas de souris (le trackpad même vieux est si bien !), mais sympa d'y avoir pensé 
Merci pour tout ce travail accompli, on y est presque

Edit : Ok après avoir écrit ce message, je me suis dit "et si on lui parlait pas des raccourcis !?", donc j'ai recopié le code dans l'éditeur de script, viré les lignes parlant des raccourcis, fait exécuter et tout marche super bien !
Sa m'enlève d'abord tous les coins actifs et Spaces, et puis sa me remets tous les coins comme avant avec spaces, et les hot keys de Keyboard Maestro restent pour Keyboard Maestro !

Donc merci beaucoup pour la grande aide que vous m'avez apporté, j'aurais jamais fait ça tout seul !! 
Bonne soirée !


----------



## Anonyme (10 Juin 2010)

tortoys a dit:


> Edit : Ok après avoir écrit ce message, je me suis dit "et si on lui parlait pas des raccourcis !?", donc j'ai recopié le code dans l'éditeur de script, viré les lignes parlant des raccourcis, fait exécuter et tout marche super bien !



Oui, tu as tout compris.


----------

