Odpowiedzi:
Zgodnie ze stroną Arch Wiki i3 , aby automatycznie uruchomić aplikację w określonym obszarze roboczym, używasz i3-msg
:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
google-chrome-stable
zawsze otwiera się na ostatnim obszarze roboczym w mojej konfiguracji. Na przykład w tej konfiguracji Chrome otwiera się w obszarze roboczym 4 obok htop.
# 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
class
argumencie. Czy jest jakiś sposób, aby dokładnie wiedzieć, z którą klasą jest powiązana aplikacja?
xprop | grep CLASS
w terminalu, wskaźnik myszy zmienia się w celownik, klikasz program, który chcesz uzyskać klasę i używasz drugiej zmiennej, która pojawia się w twoim terminalu. Przykładowy wynik dla Chrome:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xprop
polecenia okna nie są przypisane do żądanego obszaru roboczego.
for_window [class="Spotify"] move to workspace $ws10
gdzie $ws10
jest twoja zmienna obszaru roboczego.
Jest to autostart tylko podczas uruchamiania obszaru roboczego, a nie autostart po uruchomieniu i3, ale pomyślałem, że może być użyteczny.
Na przykład, aby uruchomić moją przeglądarkę internetową w nazwanym drugim obszarze roboczym „web”, to zrobiłem w mojej konfiguracji:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
Po naciśnięciu klawisza 2 uruchamia się moja przeglądarka internetowa, ale gdy jest już otwarta, nie uruchamia się ponownie, po prostu przełącza się do obszaru roboczego sieci.
Uwaga: część układu może być czasem denerwująca, nie jest to wymagane.
Aby uzyskać więcej informacji, zobacz moje conf
pidgin
do trzeciego obszaru roboczego przy każdym uruchomieniu, mam w konfiguracji assign [class="Pidgin"] $tag3
.
Właśnie załatwiłem to na końcu mojego ~/.config/i3/config
pliku:
for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
set $ws1 "Firefox"
a następnie wstaw następujący wierszfor_window [class="Firefox"] move to workspace $ws1
Po prostu użyj assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>
. To działa dla mnie.
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
działa. Ale uważam, że to trochę dziwne, aby używaćexec
nai3-msg
co jest przeznaczona do wykonywania poleceń i3 poleceń. Dlaczego nie mogę bezpośrednio zapisaćworkspace 1; exec firefox; workspace 2; exec urxvt; workspace 1
w pliku konfiguracyjnym?