Dòng lệnh để chuyển đổi giữa các cấu hình trong gnome-terminal


20

Tôi đã tạo một hồ sơ mới cho thiết bị đầu cuối gnome và tôi có thể chuyển đổi giữa hồ sơ "Ngẫu nhiên" và hồ sơ được tạo mới như bạn có thể thấy trong hình dưới đây:

Chuyển đổi giữa các cấu hình trong gnome-terminal

Bây giờ tôi tự hỏi làm thế nào tôi có thể chuyển đổi giữa các cấu hình bằng cách sử dụng một dòng lệnh / tập lệnh hoặc có thể sử dụng một phím tắt cho việc này.

Lưu ý: Các giải pháp như:

gnome-terminal --tab-with-profile=Implicit && exit 

được loại trừ vì tôi không muốn đóng và mở một thiết bị đầu cuối khác hoặc nhận một cửa sổ thiết bị đầu cuối khác trong quá trình thay đổi hồ sơ này.


1
Với gconftool-2, bạn có thể thiết lập hồ sơ có những thay đổi ngay lập tức. Bạn đã kiểm tra cái này chưa -> stackoverflow.com/questions/660442/ từ
Stormvirux

@Stormvirux Không ... Vậy bạn có thể giải thích cách sử dụng gconftool hoặc gconftool-2 để chuyển đổi cấu hình không? Tôi không thấy một câu trả lời / giải thích tốt ở đó.
Radu Rădeanu

câu hỏi trùng lặp: askubfox.com/questions/247041/ Mạnh
Jakob

Câu trả lời:


9

Để chuyển sang hồ sơ "ngầm":

xdotool key Alt+t p Return

Để chuyển sang hồ sơ thứ hai:

xdotool key Alt+t p Down Return

xdotool Cài đặt xdotool không được cài đặt theo mặc định trong Ubuntu, vì vậy nó phải được cài đặt trước.

Tất nhiên, đối với các lệnh này có thể được thêm các phím tắt tùy chỉnh .


Đó không phải là một phím tắt. Bạn chỉ đang mô phỏng các phím bấm, chỉ là ghi nhớ của ứng dụng.
Braiam

1
@Braiam Vâng, tôi không thấy lối tắt. Đó là một dòng lệnh (xem man xdotoolđể biết thêm thông tin) như tôi đã hỏi, nó hoạt động chính xác như tôi muốn và tôi hài lòng với câu trả lời này cho đến khi một cái gì đó tốt hơn sẽ xuất hiện. ;)
Radu Rădeanu

Bạn nghiêm túc nên xem xét đề xuất rằng trong bugtracker ...
Braiam

@Braiam Như tôi đã nói với bạn, tôi ổn với giải pháp này, nó hoạt động như một cơ duyên. Về đề xuất của bạn, có một ý nghĩa này từ năm 2002 (được sửa đổi vào năm 2010: " Sẽ rất tuyệt nếu tôi có thể sử dụng chính xác hai tổ hợp phím để mở hồ sơ theo lựa chọn của mình. " - xem bình luận này ). Vì vậy, tại sao bạn nghĩ rằng tôi nên thêm một cái mới? Bạn có thích trùng lặp?
Radu Rădeanu

Nó không còn hoạt động một cách đáng tiếc
RobAu

5

Đã có rất nhiều câu trả lời tuyệt vời nhưng tôi muốn thêm một biến thể nữa bằng xdotool không yêu cầu thanh menu hiển thị ...

Phím shift + F10 sẽ mở menu bật lên (tương đương với nhấp chuột phải vào thiết bị đầu cuối) và từ đó cấu hình có thể được thay đổi.

ví dụ xdotool key shift+F10 r 3để có được hồ sơ thứ ba

Tôi cũng thấy rằng phương pháp này không yêu cầu thiết lập độ trễ cho xdotool (mà tôi thấy cần thiết cho phương pháp thanh menu) vì vậy nó nhanh hơn một chút.

Tôi có xu hướng thay đổi hồ sơ rất nhiều vì vậy tôi gói nó vào một chức năng:

function chp(){
      xdotool --clearmodifiers key Shift+F10 r $1
}

vì vậy tôi chỉ có thể gọi chp Nđể chuyển sang hồ sơ thứ N.

Một số mẹo và đặc điểm khác trong thiết lập của tôi:

  • Bằng cách thêm một chplệnh vào .bashrc, tôi có thể buộc các tab mới luôn chuyển sang cấu hình mặc định

  • Tôi mã màu các phiên ssh của tôi dựa trên máy chủ nhưng tôi không thích bí danh ssh của mình để mở các tab hoặc cửa sổ mới VÀ tôi muốn cấu hình thay đổi trở lại mặc định khi tôi thoát ssh. Giải pháp của tôi: alias somehost="chp 2; ssh user@somehost; chp 1"

  • Tôi đưa cờ xdotool --clearmodifiersđể nếu tôi tình cờ giữ phím bổ trợ (khi mở tab / cửa sổ, thoát ssh, v.v.), nó sẽ không can thiệp vào xdotool.

  • Tôi đặt trước tên hồ sơ của mình bằng các số để nếu tôi thêm tên mới, nó sẽ không thay đổi tất cả các tên khác do bảng chữ cái của menu hồ sơ


... chỉ cần lưu ý rằng phương pháp này yêu cầu phím tăng tốc menu được bật trong cài đặt thiết bị đầu cuối> chung
BrotherJ4mes

FYI cho xdotool của tôi --clearmodifierscần phải đến sau key.
lilydjwg

4

Không có phím tắt nào cho phép bạn thay đổi cấu hình trong thiết bị đầu cuối (mà không điều hướng các menu như bạn đã nói trong các bình luận), mà không cần sử dụng GUI. Trích dẫn hướng dẫn ( ổn định , phát triển 3.9 ):

Bạn có thể thay đổi cấu hình trong tab Terminal hoặc cửa sổ hiện tại bằng cách chọn cấu hình từ Terminal ▸ Thay đổi hồ sơ.

(Bạn có thể đề xuất điều này dưới dạng đề xuất trong trình theo dõi lỗi )


Trên thực tế, có một phím tắt: Alt + T theo sau là P , Mũi tên lên hoặc Mũi tên xuốngEnter . Nhưng điều này hơi lâu một chút ...
Radu Rădeanu

@ RaduRădeanu Alt + T không hoạt động trong thiết bị đầu cuối của tôi 3.8.3: /
Braiam

1
@ RaduRădeanu Tôi đoán alt + t trong thực tế bằng cách sử dụng giao diện đồ họa, nó chỉ không sử dụng chuột.
moon.musick

@Braiam Nếu bạn đang sử dụng phiên bản tiếng Anh không phải tiếng Anh gnome-terminal, hãy bấm altvà xem chữ cái nào đang được tô sáng cho phiên bản ngôn ngữ của bạn 'Terminal' (mục thứ 5 trong phiên bản tiếng Ba Lan của tôi, chỉ bên trái 'Trợ giúp'), sau đó sử dụng chữ cái đó với alt.
moon.musick

@ moon.musick Tôi đang sử dụng phiên bản Debian của gnome-terminal 3.8.3 và dường như nó không có công cụ sửa đổi Alt để truy cập các menu.
Braiam

3

Tôi đang tìm cách làm điều tương tự và cuối cùng có một kịch bản hoạt động, tôi đưa nó lên GitHub của tôi .

Giống như tôi giải thích trong README.md, nó không thực sự chuyển đổi, nhưng tải cấu hình cấu hình vào cấu hình Mặc định. Để làm điều này, cấu hình của mỗi hồ sơ được lưu vào tập tin trong lần chạy đầu tiên của tập lệnh. Kịch bản làm cho nó có vẻ như bạn đang chuyển đổi giữa các cấu hình, đủ tốt cho tôi. Hy vọng nó sẽ giúp được ai ...


2

Tùy thuộc vào mục đích của bạn, bạn có thể thấy tập lệnh này hữu ích: https://github.com/xyrix/gnome-terminal-profile-switcher

Nó thực hiện một bản vá khỉ và tạo một cấu hình mới cho mỗi thiết bị đầu cuối, sau đó đặt một số biến môi trường để hiển thị chương trình chuyển đổi chủ đề của cấu hình cho thiết bị đầu cuối hiện tại của bạn.

Hy vọng rằng kịch bản safe_ssh sẽ làm cho mọi thứ rõ ràng :-). Tôi đã sử dụng nó được hơn một năm nay và nó đã giúp tôi không phá hủy cơ sở dữ liệu trực tiếp của công ty ^ _ ^


2

Nếu bạn có một danh sách các máy chủ mà bạn truy cập thường xuyên, tôi tin rằng giải pháp đơn giản nhất là chỉ cần gọi một cửa sổ thứ hai chỉ cho phiên của hộp đó.

Đầu tiên, tạo một hồ sơ gnome-terminal riêng cho từng vị trí từ xa mà bạn thường sử dụng. Sau đó, trong mỗi cấu hình, xác định rằng thiết bị đầu cuối sẽ thực thi lệnh đăng nhập SSH cho hộp đó, thay vì vỏ đơn giản.

ssh alice@athena

Cuối cùng, viết một đoạn script ngắn để khởi động một cửa sổ từ xa mới được cung cấp ID hồ sơ.

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1
exit 0

Sử dụng chiến lược này, bạn có thể "vô hạn" thay đổi giao diện của cửa sổ đầu cuối của mỗi hộp và khởi động chúng từ một thiết bị đầu cuối "điều khiển". Ví dụ: nếu chúng ta gọi tập lệnh này là "rlv", thì chúng ta có thể sinh ra một cửa sổ từ xa bằng cách gọi tập lệnh có tên hồ sơ.

>> rlv athena

Nếu bạn từng sử dụng tên máy chủ hoặc bỏ qua việc thiết lập hồ sơ cho máy chủ đó, thì bạn sẽ chỉ nhận được một cửa sổ cấu hình mặc định khác trên hộp cục bộ. Có một cách để mã hóa tập lệnh để tránh điều này, bằng cách đặt thông tin đăng nhập vào chính tập lệnh, thay vì trong thiết bị đầu cuối gnome:

#!/bin/bash
if [[ $# -ne 1 ]] ; then
  echo "Give me a server/profile name!"
  exit 1
fi
gnome-terminal --window-with-profile=$1 -e "ssh $1"
exit 0

... nhưng sau đó bạn mất tính linh hoạt khi xác định tên người dùng đăng nhập cho hộp đó. Đó là tính năng bổ sung của kịch bản mà tôi để lại như một bài tập cho người đọc.


Cảm ơn đã cung cấp cho tôi ý tưởng đó. :-) Tôi muốn thêm rằng bạn có thể dễ dàng viết một tệp .desktop sẽ mở các vị trí yêu thích của bạn bằng một (gấp đôi) -nhấp vào đó.
Hinz

1

Tôi chỉ nhận thấy rằng giải pháp ban đầu của tôi đã bị từ chối trong câu hỏi. Mặc dù dường như không có cách đơn giản nào để thay đổi cấu hình, bạn có thể thay đổi màu nền / màu nền trước bằng cách sử dụng settermlệnh.

Vì vậy, điều này setterm -term linux -background black -foreground greensẽ cung cấp cho bạn nền đen với văn bản màu xanh lá cây. Vấn đề duy nhất là ls có đầu ra được tô màu, vì vậy bạn có thể muốn tắt màu. Nếu không, nó đặt lại bảng màu trước đó

Bài gốc : Có một cách sắp xếp xung quanh. Từ người đàn ông gnome-terminal:

--window-with-profile = PROFILENAME

             Open a new window containing a  tab  with  the
             given profile.  More than one of these options
             can be provided.

Đây là ví dụ từ máy của tôi. Tôi có ba hồ sơ: B & G (đen trên xanh), ForPrinting (phông đen, nền trắng) và Mặc định. Vì vậy, những gì tôi làm là trong loại cửa sổ hiện tại gnome-terminal --window-with-profile=ForPrinting. Sau đó, tôi có thể giết cửa sổ cũ từ dòng lệnh hoặc chuyển đổi và đóng nó bằng đồ họa.

Hồ sơ B & G không hoạt động. Có lẽ bởi vì & không phải là một ký tự hợp lệ, vì vậy hãy ghi nhớ điều đó khi đặt tên hồ sơ.


0

Giải pháp rất xấu mà tôi đã sử dụng là

unset x y
eval $(xwininfo -id $(xdotool getactivewindow) |
       sed -n -e 's/^ \+Absolute upper-left X: \+\([0-9]\+\).*/x=\1/p' \
              -e 's/^ \+Absolute upper-left Y: \+\([0-9]\+\).*/y=\1/p')
xdotool mousemove $(($x + 50)) $(($y + 50))
xdotool click 3; xdotool key --repeat 3 Up; xdotool key Right; xdotool key --delay 50 Down; xdotool key --delay 50 Return

(Điều này chọn cấu hình thứ hai, nhưng bạn có thể thay đổi cấu hình đó để nói cấu hình htir bằng cách thay đổi lệnh "key Down" thứ hai thành xdotool key --delay 50 --repeat 2 Down.

Cái này làm gì

  1. tìm tọa độ trên cùng bên trái của cửa sổ hiện tại (ví dụ: thiết bị đầu cuối gnome đang sử dụng).
  2. di chuyển chuột để qua thiết bị đầu cuối đó
  3. nhấp chuột phải và điều hướng menu ngữ cảnh để chọn hồ sơ thứ hai.

Bạn sẽ cần cài đặt xdotool sudo apt install xdotool.

Điều phi thường là bản thân thiết bị đầu cuối không cho phép cấu hình qua thiết bị đầu cuối!


0

Nó sẽ là tuyệt vời của gnome-terminal cung cấp một lệnh và lối tắt "hồ sơ tiếp theo"; thật không may, nó không.

Một cách giải quyết cho những người Alt+Tbị vô hiệu hóa (Chỉnh sửa> Tùy chọn> Bật tính năng ghi nhớ - không được kiểm tra) là: F10 left left down rightvà chọn cấu hình. Ôi.


Đáng lưu ý rằng điều này đòi hỏi thanh menu phải được nhìn thấy.
Gauthier

0

Đây là một bài viết khá cũ, nhưng vì nó liên tục xuất hiện trong khi tôi đang tìm cách giải quyết vấn đề tương tự, tôi nghĩ rằng tôi sẽ đăng giải pháp của mình.

Điều này bao gồm một tập lệnh python nhỏ và ánh xạ lại nút CTRL + ALT + T để chạy tập lệnh thay vì chỉ đơn giản là khởi chạy thiết bị đầu cuối.

Tạo một tệp văn bản, tôi đặt tên của tôi là terminal.py và đảm bảo rằng nó có thể thực thi được. Đặt đoạn mã sau vào nó. Điều này sẽ mở các cửa sổ đầu cuối bằng cách sử dụng tất cả các cấu hình có sẵn theo trình tự để đảm bảo rằng cái được đánh dấu "mặc định" là cái đầu tiên trong danh sách.

#!/usr/bin/python
#
# Launch a gnome-terminal window trying to assign each new window 
# to a different profile.
# 
import json
import os
import commands

profiles=[]

try:
    profileList = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList list").replace("'",'"')
    profileDefault = commands.getoutput("gsettings get org.gnome.Terminal.ProfilesList default").replace("'",'"')

    profiles.append(json.loads(profileDefault))
    ls = json.loads(profileList)
    ls.remove(profiles[0])
    profiles+=ls

    # find the next available terminal number
    # when terminals are closed, gaps in the numbers can happen
    # terminals are numeric and the lowest slot is filled first
    terminals = commands.getoutput("ls /dev/pts/  | grep -E '^[0-9]+$'").split("\n")
    next = 0
    try:
        while terminals.index(str(next))>=0:
            next += 1
    except:
        pass

    # determine the profile to use
    prof = next % len(profiles)

    # launch the terminal with the specific profile
    cmd="gnome-terminal --window-with-profile='%s'" % (profiles[prof])
    os.system(cmd)
except:
    # if anything fails, launch a default terminal
    print("error")
    os.system("gnome-terminal")

Sử dụng tiện ích cài đặt bàn phím để gán phím tắt mới cho tập lệnh này. Đối với tôi, tôi đã gán lại CTRL + ALT + T vì đó là lối tắt tôi đang sử dụng để mở cửa sổ đầu cuối.

Hãy chắc chắn để tạo một số hồ sơ trong thiết bị đầu cuối của bạn. Kịch bản này sẽ sử dụng tất cả các hồ sơ của bạn. Vì vậy, bạn càng tạo ra, càng có nhiều biến thể trên các cửa sổ, bạn cũng có thể có quyền truy cập. Tôi có một vài cái giống hệt nhau ngoại trừ màu nền. Điều này giúp tôi nhận ra chúng khi tôi lướt qua chúng.

Ví dụ về cửa sổ đầu cuối

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.