Chạy nhiều phiên bản thực của quá trình gnome-terminal


17

Nếu bạn đã gnome-terminalchạy và muốn có một phiên bản mới của chương trình, bạn có thể nghĩ rằng việc chạy gnome-terminal &từ trình bao sẽ thực hiện thủ thuật.

Đáng kinh ngạc, trường hợp mới này hoạt động giống như một số chương trình Windows hoặc Mac vô nghĩa; nó chỉ gửi một tin nhắn đến hiện tại, chạy gnome-terminalđể tạo một cửa sổ mới. Nếu gnome-terminalquá trình này gặp sự cố, bạn sẽ mất tất cả các cửa sổ đầu cuối!

(Tất nhiên, mỗi cửa sổ có lớp vỏ riêng, là một quy trình độc lập, nhưng trình giả lập thiết bị đầu cuối thực tế và GUI của nó được quản lý từ một phiên bản duy nhất của ứng dụng.)

Làm thế nào chúng ta có thể tạo các thể hiện độc lập gnome-terminal, mỗi cái chạy trong quy trình riêng của chúng, để việc giết quá trình đó chỉ phá hủy (các) cửa sổ được liên kết với quy trình đó?


Bạn có thể thành công với gnome-terminal --disable-factory, tuy nhiên sự hỗ trợ cho nó rõ ràng đang bị rút tiền
Steeldo

@steel ấn Có vẻ như đang làm việc; quan tâm để làm cho nó thành một câu trả lời? Tôi không quan tâm đến việc hỗ trợ rút tiền. Tại sao điều này rất khó tìm? Bởi vì tài liệu --disable-factorykhông sử dụng bất kỳ thuật ngữ tiêu chuẩn nào như "bắt đầu trong một quy trình mới (hoặc không gian địa chỉ); không sử dụng lại thể hiện hiện tại".
Kaz


2
Tôi không thể tin rằng những người điều hành các dự án này cứ đưa ra những quyết định tồi tệ như vậy. Chúng ta có học được gì không? Ai quan tâm đến việc tiết kiệm vài kilobyte RAM? Người ta sẽ nghĩ rằng giữ cho các thiết bị đầu cuối không bị hỏng lẫn nhau nên là ưu tiên số 1. Quay lại rxvttôi đoán.
Tobia

Trong thực tế, tôi có thể giới thiệu rxvtcho bất cứ ai muốn một thiết bị đầu cuối đa quy trình thực sự. Nó có hỗ trợ phông chữ Truetype, gói lại các dòng dài và hầu hết các tính năng khác của thiết bị đầu cuối hiện đại.
Tobia

Câu trả lời:


9

Theo man gnome-terminal, tùy chọn bạn đang tìm kiếm dường như được đặt tên khó hiểu

   --disable-factory
             Do not register with the activation name server, do 
             not re-use an active terminal.

Tuy nhiên, tùy chọn rõ ràng bị loại bỏ trong các bản phát hành gần đây hơn nên không nên dựa vào.


Điều này làm việc tuyệt vời. Vào thời điểm các đầu máy loại bỏ tính năng này, tôi có thể sẽ không còn quan tâm nữa. Tôi cần điều này trong một thiết lập thử nghiệm nơi có hơn mười cửa sổ đầu cuối đang mở: một số minicom đang chạy với các dòng nối tiếp khác nhau kết nối với các thiết bị nhúng và một số khác đang ngồi trong các thư mục tập lệnh thử nghiệm, v.v. gnome-terminal có các tính năng tốt nhất để thay đổi kích thước với các phông chữ đẹp, dễ đọc ở mọi kích thước. Thật không may, nó rò rỉ bộ nhớ như điên, tăng lên 2GB trong một tuần. Các quy trình riêng biệt sẽ giúp chứa vấn đề này, làm cho nó dễ quản lý hơn.
Kaz

Tôi đã thử rxvt, aterm, eterm, xterm, Terminator và một vài người khác. Tất cả đều dễ dàng chạy như các quy trình riêng biệt, tất nhiên, nhưng hút theo những cách khác. Các phím nóng thay đổi kích thước tài liệu của rxvt sẽ không hoạt động. Aterm và xterm đồng bằng hút trong bộ phận đó. Terminator có kích thước lạ thay đổi kích thước phông chữ mà không có kích thước cửa sổ. ETerm hoàn toàn thay đổi kích thước với bốn phông chữ cố định; Tôi đã chơi với các tùy chọn trong khoảng 30 phút, sau đó gỡ cài đặt nó.
Kaz

@Kaz xterm + xdotool --window "$WINDOWID"?
Gilles 'SO- ngừng trở thành ác quỷ'

@Kaz Bạn có thể vượt qua nó nhưng tôi khuyên bạn nên urxvtvượt qua rxvt. Và vâng, gnome-terminalvẫn vượt trội về mặt đồ họa nhưng bằng cách nào đó tôi đã học được cách không bỏ lỡ nó. Nó có thể có nhiều việc phải làm với trình quản lý cửa sổ mới (sử dụng i3ngay bây giờ nhưng nó không dành cho tất cả mọi người).
cprn

Nhìn vào bất kỳ trong số hàng chục thiết bị đầu cuối dựa trên libvte khác? Gnome-terminal chỉ là một ứng dụng kết thúc giao tiếp với thư viện đó trên phần phụ trợ không giống như phần còn lại được đề cập ở trên sử dụng các cài đặt đầu cuối của riêng chúng.
dragon788

17

Do kiến ​​trúc máy khách / máy chủ mới (chi tiết tại đây ), bạn sẽ phải bắt đầu các trường hợp riêng biệt gnome-terminal-server. Để làm điều đó bạn có thể sử dụng công --app-idtắc:

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.first.Terminal

sau đó sử dụng máy khách (có cùng id ứng dụng) để tạo thiết bị đầu cuối 1 bên trong máy chủ mới:

gnome-terminal --app-id my.first.Terminal
gnome-terminal --full-screen --app-id my.first.Terminal
......

Một trường hợp khác:

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.second.Terminal

và thiết bị đầu cuối:

gnome-terminal --geometry 80x24+200+200 --app-id my.second.Terminal
gnome-terminal --app-id my.second.Terminal
.....

Đường dẫn đến gnome-terminal-servercó thể khác trên hệ thống của bạn.


1: Lưu ý rằng "bạn có 10 giây để sử dụng máy khách để tạo thiết bị đầu cuối bên trong máy chủ mới" .


Bạn có thể cho một ví dụ làm việc hoặc hãy nhìn vào câu hỏi này ?: unix.stackexchange.com/questions/304269/...
cprn

@CyprianGuerra - trong gnome-terminal mở hai tab: trong tab đầu tiên chạy lệnh 1 trong ví dụ của tôi (nghĩa là khởi động máy chủ mới), sau chưa đầy 10 giây , chuyển sang tab thứ hai và chạy lệnh thứ 2 (để bắt đầu một khách hàng mới) được tùy chỉnh theo nhu cầu của bạn ...
don_crissti

Tab ... Tôi sẽ thử. Bây giờ tôi có thể nói nó không hoạt động bên trong screen.
cprn

Là các yêu cầu tab? Như trong: quá trình thiết bị đầu cuối của khách hàng có phải là con của máy chủ không?
cprn

@CyprianGuerra - đó chỉ là một ví dụ, chúng không bắt buộc từ những gì tôi có thể thấy ...
don_crissti

1

Tôi đã vật lộn với mc trong cùng một nhóm alt-tab như các cửa sổ đầu cuối khác và tìm thấy giải pháp này.

https://chrisirwin.ca/posts/multipl-instances-of-gnome-terminal/

Anh chàng (Chris Irwin) giải quyết nó cho thói quen gửi thư của mình. Tôi đã làm tương tự cho mc với thành công hoàn toàn ngoài biểu tượng mc trong tab alt nhưng điều đó vẫn ổn.

Bạn sẽ cần 3 tệp:

/usr/share/dbus-1/service/org.gnome.Terminal-mc.service

[D-BUS Service]
Name=org.gnome.Terminal-mc
SystemdService=gnome-terminal-server-mc.service
Exec=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/lib/systemd/user/gnome-terminal-server-mc.service

[Unit]
Description=GNOME mc Terminal Server
[Service]
KillMode=process
Type=dbus
BusName=org.gnome.Terminal-mc
ExecStart=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/local/share/appluggest/mc.desktop

Đây là mục máy tính để bàn của bạn cho chỉ huy nửa đêm. Hoặc chỉnh sửa trực tiếp /usr/share/applications/...hoặc chuyển nó từ đó /usr/local/share/applications/mc.desktopđể nhấn mạnh rằng đó là bản sao được sửa đổi của riêng bạn. Trong mọi trường hợp, Execmục nhập nên được sửa đổi để cógnome-terminal --app-id org.gnome.Terminal-mc -e mc

Exec=gnome-terminal --app-id org.gnome.Terminal-mc --hide-menubar --geometry=102x35 -e mc

Lưu trữ với tất cả các bên trên

https://we.tl/t-6rH5jduMG7 Đây là .tar.gz để giải nén trong của bạn /. Nó sẽ tạo các tệp từ phía trên, cộng với biểu tượng .svg cho mc.

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.