Ответы:
Согласно странице Arch Wiki i3 , для автоматического запуска приложения в определенной рабочей области вы используете i3-msg:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
google-chrome-stableвсегда открывается в последнем рабочем пространстве в моей настройке. Например, в этой конфигурации Chrome открывается в рабочей области 4 рядом с 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аргументе. Есть ли способ точно узнать, с каким классом связано приложение?
xprop | grep CLASSв терминале, указатель мыши превращается в перекрестие, вы нажимаете на программу, для которой хотите получить класс, и используете вторую переменную, которая появляется в вашем терминале. Пример результата для Chrome:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xpropкоманды, окна не назначены для требуемой рабочей области.
for_window [class="Spotify"] move to workspace $ws10где $ws10ваша переменная рабочей области.
Это автозапуск только при запуске рабочей области, а не автозапуск при запуске i3, но я подумал, что это может быть полезно.
Например, чтобы запустить мой веб-браузер в названном втором рабочем пространстве «web», это то, что я сделал в моей конфигурации:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
Когда я нажимаю клавишу 2, мой веб-браузер запускается, но когда он уже открыт, он не перезапускает его, он просто переключается на веб-рабочую область.
Примечание: часть макета может раздражать, это не является обязательным требованием.
Для более подробной информации смотрите мой конф
pidginна 3-е рабочее пространство при каждом запуске, я в конфигурации assign [class="Pidgin"] $tag3.
Я только что работал с этим в конце моего ~/.config/i3/configфайла:
for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
set $ws1 "Firefox"а затем вставьте следующую строкуfor_window [class="Firefox"] move to workspace $ws1
Просто используйте assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>. Это работает для меня.
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'работает. Но, я считаю , это немного странно , чтобы использоватьexecнаi3-msgкоторый команда предназначена для выполнения i3 команды. Почему я не могу напрямую написатьworkspace 1; exec firefox; workspace 2; exec urxvt; workspace 1в своем конфигурационном файле?