i3 창 관리자에서 애플리케이션 자동 시작 레이아웃을 구현하는 방법은 무엇입니까?

i3 창 관리자에서 애플리케이션 자동 시작 레이아웃을 구현하는 방법은 무엇입니까?

이는 전편의 연속이다질문다음 명령을 사용하여 다양한 작업 공간에서 응용 프로그램을 자동으로 시작하는 방법에 대해i3창 관리자와 구성 파일에서 수행할 수 있는 작업과 수행할 수 없는 작업 ~/.i3/config.

먼저, 제공해결책기반으로아치리눅스문서그리고 논리를 더욱 발전시키는 작전 담당자가 제공하는 업데이트는 다음과 같습니다.

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

또한 흥미로운 것은 이것입니다.교환중복 없이 명령줄에서 직접 이 중 일부를 활용하는 방법은 다음과 같습니다.

i3-msg workspace 3; i3-msg exec firefox
i3-msg workspace 9; i3-msg exec chromium

하지만 난 가지고 있어안 돼요원하는 수직 또는 수평 레이아웃을 기반으로 각 작업 공간에서 많은 창/응용 프로그램을 자동으로 실행하는 구성을 확인했습니다. 내 목표는 내가 사용하는 다음과 같은 간단한 구성을 자동 시작하는 것입니다.

 _____ _____     ___________     ___________
| lx  | lx  |   |        |u_|   |     |     |   proportions:
|_____|_____|   |  FF    |lx|   |spacefm    |   1- 25% each
|medit| lx  |   |        |__|   |     | vlc |   2- 75/25 x 25/50/25
|_____|_____|   |________|u_|   |_____|_____|   3- 50/50
      1               2               3

따라서 파일에서 다음과 같이 시작됩니다 config.

exec --no-startup-id i3-msg 'workspace 1; exec i3-sensible-terminal; layout toggle split; layout splitv; split vertical; exec i3-sensible-terminal; exec i3-sensible-terminal; exec i3-sensible-terminal; workspace 2; exec firefox; exec urxvt; exec i3-sensible-terminal; exec urxvt; workspace 3; exec spacefm; exec vlc'

하지만 원하는 레이아웃 유형과 수직/수평 분할을 정확히 어떻게 달성합니까? 시도 중이지만 실행과 레이아웃을 "혼합"하는 방법이 명확하지 않습니다. i3-imgi3의 구성 내에서 실행 되기 때문에 구문은 처음부터 특별하게 느껴집니다 . 각 통화 사이에 split h(또는 v) - layout split v- exec layout split v- (또는 right)를 사용합니까?focus downexec

split단일 작업 공간의 경우 구성은 모든 애플리케이션을 수직 또는 수평으로 실행하며 레이아웃이나 창을 수직 또는 수평으로 추가할지 결정하는 체인의 마지막 명령에 영향을 미칠 수 없는 것 같습니다 . i3-msg어떤 경우에는 잘못된 명령 부분이 무시되어 디버깅이 어려운 것 같습니다. 상황을 더욱 복잡하게 하려면 startx결과를 확인하기 위해 매번 X를 종료 해야 합니다 . 왜냐하면 mod+shift+R각 작업 공간의 모든 항목을 닫더라도 구성을 새로 고치는 것만으로는 문제가 해결되지 않기 때문입니다.

이것을 구성하는 올바른 방법은 무엇입니까? 비슷한 기능을 달성할 수 있는 솔루션이 있는 사람이 있나요? 이것문서매우 훌륭하지만 여러 작업 공간에서 실행과 레이아웃을 혼합하는 것을 볼 수 있는 자세한 예를 제공하지 않습니다.

답변1

나는 당신이 찾고 있다고 믿습니다새로운 레이아웃 저장 기능에 있습니다i3v4.8(2014-06-15). 링크된 문서는 매우 철저해 보입니다.

문서에서 인용 :

레이아웃 저장/복원을 사용하면 JSON 레이아웃 파일을 로드하여 컴퓨터를 켤 때 시작할 수 있는 기본 레이아웃을 가질 수 있습니다. 동적 사용 사례도 염두에 두어야 합니다. 네트워크 문제를 진단하기 위해 ping/traceroute 명령의 터미널 그리드 레이아웃을 자주(항상 그런 것은 아님!) 사용해야 하는 경우 이러한 창을 올바른 레이아웃으로 쉽게 자동으로 열 수 있습니다.

...게다가릴리즈 노트:

tl;dr: 현재 레이아웃을 JSON 파일로 내보내고, 이를 새로운 i3 세션에 로드하고, 실행한 후 실제 애플리케이션으로 대체될 자리 표시자 창을 가져옵니다.


1. 당신은 필요할 수 있습니다Perl-anyevent-i3그리고펄-json-xs이 유틸리티를 사용하려면 패키지를 사용하세요 i3-save-tree.

관련 정보