Ответы:
Согласно странице 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
в своем конфигурационном файле?