sử dụng nhiều cửa sổ x thiết bị đầu cuối với một phiên tmux


19

Tôi thường làm việc với 2 màn hình không hoàn toàn thẳng hàng (tôi có nguồn cung cấp năng lượng dưới màn hình bên trái), nhưng tôi muốn có 4 cửa sổ đầu cuối cạnh nhau trên màn hình mà tôi có thể xoay vòng dễ dàng, như vậy:

nhập mô tả hình ảnh ở đây

Sự sắp xếp này khiến tôi rất buồn vì tôi không thể dễ dàng xoay vòng cả 4 cách một cách lành mạnh chỉ bằng bàn phím của mình (tab alt không cắt nó cho tôi vì nó không giữ "trật tự" của cả 4 cửa sổ - nếu Tôi liên tục nhấn alt-tab, nó chỉ bị trả lại giữa 2 cửa sổ ít được sử dụng gần đây nhất của tôi)

Có cách nào để tmux tạo cửa sổ x thứ hai để tôi có thể có 2 cửa sổ x, với mỗi cửa sổ có 2 tmux bên trong nó không?


Vì vậy, vấn đề của bạn là (bạn) có cửa sổ của bạn được xếp ngang qua hai màn hình và chu kỳ tab alt + giữa hai cửa sổ gần đây nhất thay vì cả bốn không? Đây dường như là một công việc cho a tiling window manager. Bạn đã thử chưa? Có rất nhiều trong số họ. awesome, i3, wmii, xmonad, Và dwmlà một trong những tốt nhất. Mặc dù với mục đích của bạn, tôi sẽ đề nghị i3(1), vì rất đơn giản để chọn (đọc tệp cấu hình sẽ dạy cho bạn cả điều khiển và cấu hình cơ bản) và được điều chỉnh theo các thiết lập đa màn hình (xinerama / xrandr).
Braden hay nhất

Tôi đã dùng thử i3 và tôi hoàn toàn thích nó, nhưng nó đã gây ra sự cố cho thiết lập Ubuntu của tôi khoảng một giờ một lần :( Nó cũng không chơi tốt với màn hình của tôi vì một số lý do.
johnny_boy

có thật không? Còn những người khác thì sao? wmii và xmonad sẽ là người tiếp theo trong hàng đợi gợi ý của tôi, vì chúng cũng là những tấm ốp lát "lạ mắt", tiếp theo là dwm (sở thích cá nhân của tôi). Mặc dù không có tính năng rộng rãi như i3, nhưng chúng xử lý nhiều màn hình IMO khá thanh lịch.
Braden hay nhất

Câu trả lời:


15

tmux cho phép bạn tạo "nhóm phiên" - nhiều phiên có thể gắn vào cùng một bộ cửa sổ.

(Cảm ơn https://gist.github.com/chakrit/5004006 :)

Trong thiết bị đầu cuối bên trái, tạo một phiên mới + nhóm cửa sổ.

tmux new-session -s left

Chia nó thành các tấm như bình thường.

:split-window -v

Trong thiết bị đầu cuối (bên phải) khác, kết nối với nhóm cửa sổ hiện có. Bạn sẽ phải đặt cho nó tên cũ để kết nối và tên phiên riêng của nó để phân biệt.

tmux new-session -t left -s right

Trong phiên đó, tạo một cửa sổ khác và phân chia

:new-window
:split-window -h

Bây giờ bạn có thể thấy tất cả các tmuxcửa sổ ( ) trong mỗi cửa sổ (thiết bị đầu cuối), nhưng chế độ xem trong mỗi cửa sổ độc lập với nhau.

Để chuyển từ cái này sang cái khác (không sử dụng phím tắt riêng của người quản lý cửa sổ của bạn), bạn có thể sử dụng, vd. xdotool .

xdotool search --name 'left:0:' windowactivate
xdotool search --name 'right:1:' windowactivate

Những giả định rằng bạn đã kích hoạt tmux's set-titleslựa chọn, để cung cấp cho các thiết bị đầu cuối một tên tìm kiếm; và rằng bạn chỉ sử dụng một tmuxcửa sổ (bộ panes) trong mỗi cửa sổ.


Để hoàn thành việc này, tôi cần một tập lệnh truy vấn khung hiện tại một cách đáng tin cậy và chuyển sang lệnh "tiếp theo", sử dụng lệnh "kích hoạt cửa sổ" khi thích hợp. Nhưng tôi vẫn chưa tìm ra cách để làm điều đó - tôi nghĩ rằng nó sẽ cần một số kho dữ liệu bổ sung ngoài những gì có sẵn tmux.
JigglyNaga

Lưu ý rằng bạn có thể cần phải bật thay đổi kích thước mạnh mẽ (setw -g hung hăng thay đổi kích thước), nếu không các cửa sổ sẽ không vừa với toàn màn hình
dgmora

0

Bạn không thể thực hiện phương pháp công nghệ thấp để thay đổi kích thước một thiết bị đầu cuối (bằng cách kéo các cạnh) để che cả hai màn hình, sao cho dải phân cách trung tâm nằm ở ranh giới của hai màn hình?


1
Điều này không hoạt động nếu cả hai màn hình có độ cao khác nhau hoặc nếu bạn đang sử dụng OS X.
James

0

Bạn sẽ muốn bắt đầu một tmuxphiên riêng biệt trong mỗi thiết bị đầu cuối, sau đó chia tmuxcửa sổ duy nhất của mỗi phiên thành hai bảng theo chiều dọc.

Vì vậy, trong mỗi thiết bị đầu cuối:

$ tmux new-session \; split-window -h

Hoặc ngắn hơn, trong mỗi thiết bị đầu cuối:

$ tmux new \; splitw -h

Bạn cần hai phiên, vì với một phiên, hai thiết bị đầu cuối sẽ luôn được đồng bộ hóa và hiển thị cùng một tmuxcửa sổ.

Sau đó sử dụng các phím tắt trên máy tính để bàn của bạn để trao đổi giữa hai thiết bị đầu cuối.

Cá nhân, tôi đã đi với một màn hình duy nhất, một tmuxphiên và hai (hoặc nhiều) tmuxcửa sổ phân chia "đằng sau" nhau và trao đổi giữa chúng với Ctrlb- nnhưng đó là vấn đề của hương vị.

$ tmux new \; splitw -h \; neww \; splitw -h
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.