i3wm : i3 시작시 특정 작업 공간에서 응용 프로그램 시작


56

i3의 특정 작업 공간에서 응용 프로그램을 시작할 때 어떻게 응용 프로그램을 시작할 수 있습니까?

구성 파일에서 왜 작동하지 않습니까? :

workspace 1; exec firefox; workspace 2; exec chromium; workspace 1

답변:


60

Arch Wiki i3 페이지 에 따르면 특정 작업 공간에서 애플리케이션을 자동 시작하려면 i3-msg다음 을 사용하십시오 .

exec --no-startup-id i3-msg 'workspace 1:Web; exec /usr/bin/firefox'

4
그렇습니다 exec --no-startup-id i3-msg 'workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1'. 그러나, 나는 조금 이상한 사용할 찾을 execi3-msg있는 I3 명령을 실행하는 의미 명령입니다. workspace 1; exec firefox; workspace 2; exec urxvt; workspace 1구성 파일에 직접 쓸 수없는 이유는 무엇 입니까?
그라디언트

3
이것은 나를 위해 Workspace 1의 모든 것을 열어줍니다.
cmc

4
대부분의 앱에서 작동합니다. 그러나 google-chrome-stable항상 설정의 마지막 작업 공간에서 열립니다. 예 를 들어이 구성을 사용 하면 작업 공간 4에서 Chrome이 htop 옆에 열립니다.
danijar

3
i3은 이제 대부분의 경우 i3-msg를 호출 할 필요가없는 레이아웃 저장 / 복원 기능을 제공 합니다 .
Wieland

1
@Wieland 레이아웃 저장 / 복원자동 시작 과 다릅니다 . 전자 는 프로그램 윈도우에 대한 제비 트랩 설정 만 다루고 후자는 OP가 요청한대로 애플리케이션 인스턴스를 시작합니다.
Antony Thomas

12
# 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인수에 사용 된 문자열과 관련이 있다고 생각합니다 . 어떤 클래스가 애플리케이션과 연관되어 있는지 정확히 알 수있는 방법이 있습니까?
Luís de Sousa

@ LuísdeSousa xprop | grep CLASS터미널에서 마우스 포인터가 십자형으로 바뀌면 클래스를 가져올 프로그램을 클릭하고 터미널에 나타나는 두 번째 변수를 사용하십시오. Chrome의 결과 예 :WM_CLASS(STRING) = "google-chrome", "Google-chrome"
kittenparry

@kittenparry. 제안 해 주셔서 감사하지만 여전히 xprop명령에 문자열을 사용 하여 창에 원하는 작업 공간이 할당되지 않았습니다.
루이스 드 수사

1
@ LuísdeSousa 일부 프로그램은 Spotify와 같이 작동하지 않습니다. 그들에게는 작업 공간 변수가 for_window [class="Spotify"] move to workspace $ws10여기에 비슷한 것을 쓸 수 있습니다 $ws10.
kittenparry

10

i3을 시작할 때 자동 시작이 아니라 작업 공간 실행시 자동 시작이지만 유용 할 수 있다고 생각했습니다.

예를 들어, 명명 된 두 번째 작업 공간 "web"에서 내 웹 브라우저를 시작하려면 내 구성에서 수행 한 작업입니다.

bindsym $mod+2 workspace 2:web; layout tabbed; exec [ $(ps h -C vimb | wc -l) = 0 ] && /usr/bin/vimb -s

키 2를 누르면 웹 브라우저가 시작되지만 이미 열렸을 때 다시 시작하지 않고 웹 작업 공간으로 전환합니다.

참고 : 레이아웃 부분은 언젠가 성 가실 수 있지만 요구 사항은 아닙니다.

자세한 내용은 내 conf를 참조하십시오 .


1
작업 공간을 할당 하면 훨씬 쉽게 할 수 있습니다 . 예를 들어 pidgin모든 실행에서 3 번째 작업 공간으로 이동 하려면 config에 assign [class="Pidgin"] $tag3있습니다.
Hi-Angel

작업 공간에 할당하는 것이 다릅니다. @tyjak의 솔루션을 사용하면 특정 작업 공간을 열 때 응용 프로그램이 시작됩니다. 작업 공간에 응용 프로그램을 할당하면 응용 프로그램을 열 때마다 해당 응용 프로그램이 작업 공간으로 이동합니다.
Mike

5

~/.config/i3/config파일 끝 에서이 작업을 수행했습니다 .

for_window [class="Firefox"] move container to workspace 2
exec --no-startup-id firefox

Firefox 용 Arch Linux i3 예제에 따르면 : 먼저 변수를 설정 set $ws1 "Firefox"한 후 다음 줄을 삽입 하십시오for_window [class="Firefox"] move to workspace $ws1
Markus Weber

0

그냥 사용하십시오 assign [class="<use your program name here e.g. - Firefox>"] $workspace<eg. 5>. 나를 위해 일하고 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.