回答:
Arch Wiki i3ページによると、特定のワークスペースでアプリケーションを自動起動するには、次を使用しますi3-msg
。
exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'
# 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
ターミナルで、マウスポインターが十字線に変わり、クラスを取得するプログラムをクリックして、ターミナルに表示される2番目の変数を使用します。Chromeの結果の例:WM_CLASS(STRING) = "google-chrome", "Google-chrome"
xprop
コマンドの文字列を使用しても、ウィンドウは目的のワークスペースに割り当てられません。
for_window [class="Spotify"] move to workspace $ws10
で$ws10
あるこれに似た何かを書くかもしれません。
これはワークスペースの起動時の自動起動のみであり、i3の起動時の自動起動ではありませんが、役に立つと思いました。
たとえば、名前付きの2番目のワークスペース「web」でWebブラウザーを起動するには、これがconfigで行いました。
bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s
キー2を押すと、Webブラウザーが起動しますが、既に開いている場合は再起動せず、Webワークスペースに切り替えます。
注:レイアウトパーツはいつか迷惑になることがありますが、必須ではありません。
詳細については、私のconfを参照してください
pidgin
、起動ごとに3番目のワークスペースに移動するには、configを使用し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
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
ファイルに直接書き込めないのはなぜですか?