Il s'agit d'un suivi d'une question précédente sur la façon de démarrer automatiquement des applications sur des espaces de travail individuels avec le gestionnaire de fenêtres i3 et ce qui peut et ne peut pas être fait à l'intérieur du ~/.i3/config
fichier de configuration.
Tout d'abord, la solution fournie basée sur la documentation Arch Linux et une mise à jour fournie par op où il pousse la logique plus loin:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
Cet échange est également intéressant pour tirer parti de certains de ces éléments directement sur la ligne de commande sans les dupliquer:
i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium
Mais je n'ai jamais vu de configuration qui démarre automatiquement de nombreuses fenêtres / applications dans chaque espace de travail selon une disposition verticale ou horizontale souhaitée. Mon objectif est de démarrer automatiquement cette configuration simple que j'utilise:
_____ _____ ___________ ___________
| lx | lx | | |u_| | | | proportions:
|_____|_____| | FF |lx| |spacefm | 1- 25% each
|medit| lx | | |__| | | vlc | 2- 75/25 x 25/50/25
|_____|_____| |________|u_| |_____|_____| 3- 50/50
1 2 3
Cela commence donc par quelque chose comme ça dans le config
fichier:
exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'
Mais comment dans le monde obtenez-vous le type de mise en page et de séparation vert / horizontal que vous souhaitez? J'essaye, mais il n'est pas clair comment vous "mélangez" l'exécution et la disposition. La syntaxe semble idiosyncratique pour démarrer car vous exécutez i3-img
dans la configuration d'i3. Utilisez-vous split h
(ou v) - layout split v
- exec layout split v
- focus down
(ou à droite) entre chaque exec
appel ??
Pour un seul espace de travail, la configuration démarre toutes les applications verticalement ou horizontalement et je n'arrive pas à influencer la disposition - ou la dernière split
commande de la chaîne décide si les fenêtres sont ajoutées verticalement ou horizontalement. i3-msg
ignore apparemment les parties de la commande qui ne sont pas correctement formatées dans certains cas, il est donc difficile de déboguer. Ceci est encore aggravé par le fait que vous devez vraiment quitter X et startx
à chaque fois pour vérifier les résultats, car l'actualisation de la configuration mod+shift+R
ne la coupera pas même si vous fermez tout sur chacun des espaces de travail.
Quelle est la bonne façon de configurer cela? Quelqu'un at-il une solution qui implémente quelque chose comme ça? La documentation est assez bonne mais elle ne fournit pas que je puisse voir un exemple détaillé qui mélange l'exécution et la mise en page sur plusieurs espaces de travail.
Réponses:
Je pense que vous recherchez la nouvelle fonctionnalité d'économie de mise en page qui a été introduite dans i3 v4.8 (2014-06-15). La documentation liée semble assez complète.
Citant de la documentation:
... et les notes de version :
1. Vous pouvez avoir besoin des packages perl-anyevent-i3 et perl-json-xs pour utiliser l'
i3-save-tree
utilitaire.la source
lxterminal
ouurxvt
pour un seul espace de travail, vous devez les différencier en les utilisant--name something
lorsque vous les exécutez dans .i3 / config. L'exemple dans la doc fonctionne mais lorsque j'utilise une exportation depuis l'un de mes espaces de travail, je n'arrive pas à le faire fonctionner. Vous utilisez classe pour le nom et l' instance pour ce que vous avez utilisé avec --name. Dans ce cas, je ne peux qu'espérer sérieusement un outil gui, car le format json a tellement de crochets !!.i3/config
des versions antérieures également, mais une fois que je suis correctement connecté, tout fonctionne bien. Ce que j'ai fait, c'est d'organiser quelques dispositions et de les enregistrer, puis de ne modifier que les variables de classe des fichiers json. Ensuite, quelque chose commei3-msg workspace 2\; append_layout mylayout.json\;
eti3-msg exec lxterminal\; exec lxterminal\; exec lxterminal\; exec medit
devrait alors restaurer votre première mise en page souhaitée. // Merci d'avoir amélioré ma réponse, btw.