Câu trả lời:
Theo trang Arch Wiki i3 , để tự động khởi động một ứng dụng trên một không gian làm việc cụ thể, bạn sử dụng i3-msg
:
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
google-chrome-stable
luôn luôn mở trên không gian làm việc cuối cùng trong thiết lập của tôi. Ví dụ: với cấu hình này , Chrome sẽ mở trên không gian làm việc 4 bên cạnh 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
đối số. Có cách nào để biết chính xác lớp nào là một ứng dụng liên quan không?
xprop | grep CLASS
trong thiết bị đầu cuối, con trỏ chuột của bạn thay đổi thành dấu thập, bạn nhấp vào chương trình bạn muốn nhận lớp và sử dụng biến thứ hai xuất hiện trong thiết bị đầu cuối của bạn. Kết quả ví dụ cho Chrome:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xprop
lệnh các cửa sổ không được gán cho không gian làm việc mong muốn.
for_window [class="Spotify"] move to workspace $ws10
nơi $ws10
có thể thay đổi không gian làm việc của bạn.
Đó chỉ là tự khởi động trên không gian làm việc, không phải tự khởi động khi i3 khởi động nhưng tôi nghĩ nó có thể hữu ích.
Ví dụ: để khởi chạy trình duyệt web của tôi trong "web" không gian làm việc thứ hai được đặt tên, đây là những gì tôi đã làm trong cấu hình của mình:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
Khi tôi nhấn phím 2, trình duyệt web của tôi khởi động nhưng khi nó đã mở, nó không khởi chạy lại, nó chỉ chuyển sang không gian làm việc trên web.
Lưu ý: đôi khi phần bố trí có thể gây khó chịu, đó không phải là một yêu cầu.
Để biết thêm chi tiết, xem conf của tôi
pidgin
đến không gian làm việc thứ 3 trong mỗi lần khởi chạy, tôi có trong cấu hình assign [class="Pidgin"] $tag3
.
Tôi chỉ làm cho nó hoạt động với điều này ở cuối ~/.config/i3/config
tập tin của tôi :
for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox
set $ws1 "Firefox"
và sau đó chèn dòng saufor_window [class="Firefox"] move to workspace $ws1
Chỉ cần sử dụng assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>
. Đó là làm việc cho tôi.
exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'
hoạt động. Nhưng, tôi thấy nó hơi kỳ quặc để sử dụngexec
trêni3-msg
đó là một lệnh có nghĩa là để thực hiện các lệnh i3. Tại sao tôi không thể trực tiếp viếtworkspace 1; exec firefox; workspace 2; exec urxvt; workspace 1
vào tập tin cấu hình của mình?