ฉันจะเริ่มต้นแอปพลิเคชันบนพื้นที่ทำงานเฉพาะใน i3 ได้อย่างไรเมื่อเริ่มทำงาน
เหตุใดจึงไม่ทำงานในไฟล์กำหนดค่าของฉัน :
workspace 1; exec firefox; workspace 2; exec chromium; workspace 1
ฉันจะเริ่มต้นแอปพลิเคชันบนพื้นที่ทำงานเฉพาะใน i3 ได้อย่างไรเมื่อเริ่มทำงาน
เหตุใดจึงไม่ทำงานในไฟล์กำหนดค่าของฉัน :
workspace 1; exec firefox; workspace 2; exec chromium; workspace 1
คำตอบ:
ตามหน้า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
ใน terminal ตัวชี้เมาส์ของคุณเปลี่ยนเป็น crosshair คุณคลิกที่โปรแกรมที่คุณต้องการรับคลาสและใช้ตัวแปรตัวที่สองที่ปรากฏใน terminal ของคุณ ตัวอย่างผลลัพธ์สำหรับ Chrome:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xprop
คำสั่งหน้าต่างจะไม่ถูกกำหนดให้กับพื้นที่ทำงานที่ต้องการ
for_window [class="Spotify"] move to workspace $ws10
ซึ่ง$ws10
เป็นตัวแปรพื้นที่ทำงานของคุณ
มันเป็นการเริ่มอัตโนมัติบนพื้นที่ทำงานเท่านั้นไม่ใช่การเริ่มอัตโนมัติเมื่อ i3 เริ่มทำงาน แต่ฉันคิดว่ามันอาจมีประโยชน์
ตัวอย่างเช่นในการเปิดใช้เว็บเบราว์เซอร์ของฉันใน "พื้นที่ทำงานที่สอง" ชื่อ "นี่คือสิ่งที่ฉันทำในการกำหนดค่าของฉัน:
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
เมื่อฉันกดปุ่ม 2 เว็บเบราว์เซอร์ของฉันเริ่มทำงาน แต่เมื่อมันเปิดขึ้นมาแล้วมันไม่ได้เปิดใช้งานใหม่มันเพิ่งเปลี่ยนไปใช้พื้นที่เว็บ
หมายเหตุ: ส่วนเลย์เอาต์อาจสร้างความรำคาญในบางครั้งไม่ใช่ความต้องการ
สำหรับรายละเอียดเพิ่มเติมโปรดดูที่ความเชื่อมั่นของฉัน
pidgin
ไปยังพื้นที่ทำงาน 3-rd ทุกครั้งที่เปิดตัวฉันมีการ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
ในไฟล์กำหนดค่าของฉันได้