web-dev-qa-db-fra.com

i3wm: démarrer des applications sur des espaces de travail spécifiques au démarrage d'i3

Comment puis-je démarrer des applications sur des espaces de travail spécifiques dans i3 au démarrage?

Pourquoi cela ne fonctionne-t-il pas dans mon fichier de configuration? :

workspace 1; exec firefox; workspace 2; exec chromium; workspace 1
61
Gradient

Selon la page Arch Wiki i , pour démarrer automatiquement une application sur un espace de travail spécifique, vous utilisez i3-msg:

exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
65
jasonwryan
# This is what I use in ie config
# custom variables for workspaces
set $ws1 "1< txt >"
set $ws2 "2> fm "
set $ws3 "3< Web >"
set $ws4 4
set $ws5 5
set $ws6 6
set $ws7 7
set $ws8 8
set $ws9 9


##==================================================##
#                         *** Workspace specific settings ***                     #
##=================================================##
# Assign Workspaces:
assign [class="Firefox"] $ws3
assign [class="Chromium"] $ws3
assign [class="Google-chrome-beta"] $ws3
assign [class="^Geany"] $ws1

REMARQUE: pour appliquer la configuration, vous pouvez utiliser:

i3-msg reload

14
head-shot

C'est un démarrage automatique sur le lancement de l'espace de travail uniquement, pas un démarrage automatique lorsque i3 démarre, mais j'ai pensé que cela pourrait être utile.

Par exemple, pour lancer mon navigateur Web dans le deuxième espace de travail nommé "Web", voici ce que j'ai fait dans ma configuration:

bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s

Lorsque j'appuie sur la touche 2, mon navigateur Web démarre mais lorsqu'il est déjà ouvert, il ne l'a pas relancé, il passe simplement à l'espace de travail Web.

Remarque: la partie mise en page peut parfois être ennuyeuse, ce n'est pas une exigence.

Pour plus de détails, voir ma conf

11
tyjak

Je viens de le faire travailler avec ça à la fin de mon ~/.config/i3/config fichier:

for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
7
robru

Utilisez simplement assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>. Ça marche pour moi.

1
Tanmoy Nandi