Відповіді:
Згідно зі сторінкою 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
у свій конфігураційний файл?