2 votes

Parcourir une paire d'espaces pour deux écrans avec un seul raccourci clavier

J'ai deux écrans et j'ai créé pour chaque écran avec Mission Control plusieurs bureaux (également appelés Espaces) :

Affichage 1 : Ordinateurs de bureau 1-5
Affichage 2 : Ordinateurs de bureau 6-10

J'ai réglé les paramètres suivants

  1. Handicapés : Réorganiser automatiquement les espaces en fonction de l'utilisation la plus récente.
  2. Activé : Les écrans ont des espaces séparés

Je veux traiter les bureaux de chaque écran comme 5 paires :

  1. Ordinateurs de bureau 1,6
  2. Ordinateurs de bureau 2,7
  3. Ordinateurs de bureau 3,8
  4. Ordinateurs de bureau 4,9
  5. Ordinateurs de bureau 5,10

J'ai déjà modifié les raccourcis clavier comme suit ( d'ici ) :

enter image description here

Cela fonctionne bien après que j'ai supprimé ~/Library/Preferences/com.apple.symbolichotkeys.plist .

Comment puis-je faire défiler les paires de bureaux avec un seul raccourci clavier, par ex. ctrl-left/right ?

Je suis en train de tester Améthyste et que vous voulez utiliser mod1+n/p ( mod1=ctrl+shift ). J'espère pouvoir utiliser AppleScript pour augmenter/diminuer le nombre de bureaux "modulo 5". Je suis sous MacOS 10.14.5.

5voto

postalservice14 Points 755

Yabai : gestionnaire de fenêtres en mosaïque avec prise en charge des espaces

https://github.com/koekeishiya/yabai/wiki#comparison-with-other-window-managers

Exigences de Yabai

  • "La protection de l'intégrité du système (SIP) doit être désactivée.
  • "Les affichages ont des espaces séparés" doit être activé

Note

  • Yabai vous permet de passer à un autre espace sans animation (génial)

Désactivez les mappings de contrôle de mission et utilisez ceci ~/.skhdrc avec des mappings comme le souhaite le PO (utilisation de jq par exemple, installer avec $ brew install jq )

ctrl - left : index=`yabai -m query --spaces --space | jq '.index'` &&\
                        if (($index != 1 && $index != 6 )) then\
                            new=$((index-1)); \
                            other=$(((new+4)%10+1));\
                            yabai -m space --focus "${other}"; yabai -m space --focus "${new}";\
                        fi
ctrl - right : index=`yabai -m query --spaces --space | jq '.index'` &&\
                        if (($index != 5 && $index != 10 )) then\
                            new=$((index+1)); \
                            other=$(((index+4)%10+1));\
                            yabai -m space --focus "${other}"; yabai -m space --focus "${new}";\
                        fi
# ctrl+1-5:

ctrl - 1 : index=`yabai -m query --displays --display | jq '.index'` &&\
                if (($index == 1)) then\
                    yabai -m space --focus 6; yabai -m space --focus 1;\
                else \
                    yabai -m space --focus 1; yabai -m space --focus 6;\
                fi
ctrl - 2 : index=`yabai -m query --displays --display | jq '.index'` &&\
                if (($index == 1)) then\
                    yabai -m space --focus 7; yabai -m space --focus 2;\
                else \
                    yabai -m space --focus 2; yabai -m space --focus 7;\
                fi
ctrl - 3 : index=`yabai -m query --displays --display | jq '.index'` &&\
                if (($index == 1)) then\
                    yabai -m space --focus 8; yabai -m space --focus 3;\
                else \
                    yabai -m space --focus 3; yabai -m space --focus 8;\
                fi
ctrl - 4 : index=`yabai -m query --displays --display | jq '.index'` &&\
                if (($index == 1)) then\
                    yabai -m space --focus 9; yabai -m space --focus 4;\
                else \
                    yabai -m space --focus 4; yabai -m space --focus 9;\
                fi
ctrl - 5 : index=`yabai -m query --displays --display | jq '.index'` &&\
                if (($index == 1)) then\
                    yabai -m space --focus 10; yabai -m space --focus 5;\
                else \
                    yabai -m space --focus 5; yabai -m space --focus 10;\
                fi

Ajout : Signal Yabai space_changed

Lorsque vous cliquez dans le dock sur une application non visible, seul change l'affichage qui comporte l'espace avec l'application souhaitée. Vous pouvez utiliser le signal Yabai space_changed de réagir à tout changement d'espace pour modifier également l'espace de l'autre écran :

# file ~/.config/yabai/yabairc

yabai -m signal --add event=space_changed action="~/.config/yabai/maintain_paired_spaces.sh"

#!/usr/bin/env sh
# file: ~/.config/yabai/maintain_paired_spaces.sh

# Keep two displays with spaces [1-5] and [6-12] in sync
#
# yabai signal 'space_changed'
# Passes two arguments $YABAI_SPACE_ID and $YABAI_RECENT_SPACE_ID

# Note $YABAI_SPACE_ID is not the same as the mission control index.
# Translate YABAI_SPACE_ID to mission control index as following
new=$(yabai -m query --spaces | jq ".[] | select(.id == $YABAI_SPACE_ID) | .index")

# modulo arithmetic
other=$(((new+4)%10+1))

# Check if already visible
visible=$(yabai -m query --spaces | jq ".[] | select(.visible == 1 and .index == $other)")
if [ -z "$visible" ]; then
    yabai -m space --focus "${other}"
    display=$(yabai -m query --spaces --space $other | jq ".display")
fi

Notez qu'il y a un petit délai.

Désactiver le carrelage

Si vous n'êtes pas intéressé par un gestionnaire de fenêtres en mosaïque mais que vous souhaitez utiliser ces mappages, vous pouvez choisir le mode de mise en page "float" dans le champ ~/.config/yabai/yabairc :

yabai -m config layout                       float

Alternatives avec des problèmes plus importants

Alternative non testée

Bspwm (linux)

Une question sur github pour le gestionnaire de fenêtres en mosaïque Linux bspwm peut être trouvée. aquí avec un suggestion de cartographie de l'auteur de bspwm pour bspwm (l'idée est la même que cette réponse).

0voto

postalservice14 Points 755

Total des espaces 2

(application payante pour MacOS 10.9-11.0, pas pour MacOS 12 Monterey)

Vous pouvez activer ce comportement via Total Spaces 2 avec le paramètre Sync grids dans la boîte de dialogue Paramètres, sous Mise en page :

enter image description here

La solution yabai présente un léger délai entre le changement des espaces pour l'affichage 1 et l'affichage 2. Lorsque Total Spaces 2 change les espaces sur les deux écrans, cela se fait sans délai observable.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X