그놈 터미널에서 프로파일 간 전환을위한 명령 줄


20

gnome-terminal에 대한 새 프로파일을 작성했으며 아래 이미지에서 볼 수 있듯이 "암시 적"프로파일과 새로 작성된 프로파일간에 전환 할 수 있습니다.

그놈 터미널에서 프로파일 간 전환

이제 명령 줄 / 스크립트를 사용하거나 바로 가기를 사용하여 프로필을 전환하는 방법이 궁금합니다.

참고 : 다음 과 같은 솔루션 :

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

이 프로필을 변경하는 과정에서 다른 터미널을 닫거나 열거 나 다른 터미널 창을 얻는 것을 선호하지 않기 때문에 제외됩니다.


1
gconftool-2를 사용하면 변경 사항이 즉시있는 프로필을 설정할 수 있습니다. 이것을 확인
하셨습니까?

@Stormvirux 아니요 ... 그렇다면 gconftool 또는 gconftool-2를 사용하여 프로필을 전환하는 방법을 설명 할 수 있습니까? 거기에 좋은 대답 / 설명이 없습니다.
Radu Rădeanu

답변:


9

"암시 적"프로필로 전환하려면

xdotool key Alt+t p Return

두 번째 프로필로 전환하려면

xdotool key Alt+t p Down Return

xdotool xdotool 설치 Ubuntu에는 기본적으로 설치되지 않으므로 먼저 설치해야합니다.

물론 이러한 명령 에는 사용자 정의 키보드 단축키를 추가 할 수 있습니다 .


바로 가기가 아닙니다. 당신은 키 누르기를 시뮬레이션하고 응용 프로그램의 니모닉입니다.
브라이 암

1
@Braiam 예, 바로 가기가 아닙니다. 알 수 있습니다. 그것은 A의 명령 줄 (참조 man xdotool내가 원하는 내가 더 잘 나타납니다 뭔가 때까지이 답변에 만족 정확히 작동하고 내가 물었다 같은 추가 정보를 원하시면). ;)
Radu Rădeanu


@ Brai 내가 당신에게 말했듯이, 나는이 솔루션에 괜찮습니다, 그것은 매력처럼 작동합니다. 귀하의 제안에 관해서 는 2002 년부터 이러한 의미에서 하나 가 있습니다 (2010 년 수정 : " 내가 선택한 프로파일을 열기 위해 정확히 두 번의 키 입력을 사용할 수 있다면 더 좋을 것입니다. "- 이 의견 참조 ). 그렇다면 왜 새로운 것을 추가해야한다고 생각하십니까? 복제본을 좋아합니까?
Radu Rădeanu

더 이상 불행하게도 작동하지 않습니다
RobAu

5

많은 훌륭한 답변이 이미 있지만 xdotool을 사용 하여 메뉴 표시 줄필요없는 변형을 하나 더 추가하고 싶었습니다 ...

키 콤보 shift + F10은 팝업 메뉴 (터미널을 마우스 오른쪽 버튼으로 클릭하는 것과 동일)를 열고 거기서 프로파일을 변경할 수 있습니다.

xdotool key shift+F10 r 3를 들어 세 번째 프로필로 이동

또한이 방법에는 xdotool (메뉴 표시 줄 방법에 필요한)에 대한 지연을 설정할 필요가 없으므로 조금 더 빠릅니다.

나는 프로파일을 많이 변경하는 경향이 있으므로 이것을 함수로 포장합니다.

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

전화 chp N해서 N 번째 프로필로 전환 할 수 있습니다 .

내 설정에 대한 몇 가지 추가 팁과 특질 :

  • chp.bashrc에 명령을 추가하면 새 탭이 항상 기본 프로필로 전환되도록 할 수 있습니다

  • 호스트를 기반으로 ssh 세션에 색상을 지정했지만 ssh 별칭이 새 탭이나 창을 여는 것을 좋아하지 않으며 ssh를 종료 할 때 프로필이 기본값으로 다시 변경되기를 원합니다. 내 해결책 : alias somehost="chp 2; ssh user@somehost; chp 1"

  • xdotool에 플래그 --clearmodifiers를 지정하여 수정 자 키를 누른 경우 (탭 / 창을 열거 나 ssh를 종료하는 등) xdotool을 방해하지 않도록합니다.

  • 프로필 이름 앞에 숫자를 붙여 새 이름을 추가하면 프로필 메뉴의 알파벳순으로 인해 다른 이름을 모두 이동하지 않습니다.


...이 방법을 사용하려면 터미널 설정> 일반
brotherJ4mes

내 xdotool에 대한 참고가 --clearmodifiers필요합니다 key.
lilydjwg

4

GUI를 사용하지 않고 터미널 내에서 프로파일을 변경할 수있는 바로 가기가 없습니다 (주석에서 언급 한 메뉴를 탐색하지 않고). 매뉴얼 인용 ( 안정적 , 개발 3.9 ) :

터미널 ▸ 프로파일 변경에서 프로파일을 선택하여 현재 터미널 탭 또는 창에서 프로파일을 변경할 수 있습니다.

( 버그 추적기 에서 제안으로 제안 할 수 있습니다 )


실제로 바로 가기가 있습니다 : Alt + T 다음에 P , 위쪽 화살표 또는 아래쪽 화살표Enter . 그러나 이것은 조금 길다 ...
Radu Rădeanu

@ RaduRădeanu Alt + T가 터미널에서 작동하지 않습니다 3.8.3 : /
Braiam

1
@ RaduRădeanu alt + t 실제로 GUI를 사용하고 있다고 생각 합니다. 마우스를 사용하지 않는 것입니다.
moon.musick

@Braiam 영어 이외의 버전을 사용하는 경우을 gnome-terminal누르고 alt'터미널'언어 버전 ( '도움말'바로 왼쪽에있는 폴란드어 버전의 5 번째 항목)에 어떤 문자가 강조 표시되어 있는지 확인한 다음 해당 문자를 사용하십시오. 로 alt.
moon.musick

@ moon.musick gnome-terminal 3.8.3의 데비안 버전을 사용하고 있는데 메뉴에 액세스 할 수있는 Alt 수정자가없는 것 같습니다.
Braiam

3

나는 똑같은 일을하고 마침내 스크립트가 작동하도록하고 GitHub 에 넣었습니다 .

README.md에서 설명했듯이 실제로 전환되지는 않지만 프로필 구성을 기본 프로필로로드합니다. 이를 위해 각 프로파일의 구성은 스크립트를 처음 실행할 때 파일에 저장됩니다. 이 스크립트를 사용하면 프로필을 전환하는 것처럼 보이므로 충분합니다. 그것이 누군가를 돕기를 바랍니다 ...


2

목적에 따라이 스크립트가 유용 할 수 있습니다. https://github.com/xyrix/gnome-terminal-profile-switcher

그것은 일종의 원숭이 패치를 수행하고 각 터미널에 대해 새로운 프로파일을 생성 한 다음 현재 환경에 대한 프로파일 테마를 전환하기위한 프로그램을 노출시키기 위해 환경 변수를 설정합니다.

예를 들어 safe_ssh 스크립트 예제는 명확하게 :-) 만들 것입니다. 나는 그것을 1 년 이상 사용해 왔으며 회사의 라이브 데이터베이스를 파괴하지 않도록 도와주었습니다. ^ _ ^


2

자주 액세스하는 서버 목록이있는 경우 가장 쉬운 해결책은 해당 상자의 세션에 대해 두 번째 창을 호출하는 것입니다.

먼저 자주 사용하는 각 원격 위치에 대해 별도의 그놈 터미널 프로파일을 만드십시오. 그런 다음 각 프로파일에서 터미널이 일반 쉘 대신 해당 상자에 대한 SSH 로그인 명령을 실행하도록 지정하십시오.

ssh alice@athena

마지막으로, 짧은 스크립트를 작성하여 프로파일 ID가 지정된 새 원격 창을 시작하십시오.

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

이 전략을 사용하면 각 상자의 터미널 창 모양을 "무한"하게 변경하고 단일 "제어"터미널에서 시작할 수 있습니다. 예를 들어,이 스크립트를 "rlv"라고 부르면 간단히 프로필 이름으로 스크립트를 호출하여 원격 창을 생성 할 수 있습니다.

>> rlv athena

호스트 이름을 훼손하거나 해당 호스트에 대한 프로필을 설정하지 않으면 로컬 상자에 다른 기본 프로필 창이 나타납니다. gnome-terminal 대신 로그인 자체를 스크립트 자체에 입력하여이를 피하기 위해 스크립트를 코딩하는 방법이 있습니다.

#!/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

...하지만 해당 상자에 대한 로그인 사용자 이름을 정의 할 때 유연성이 떨어집니다. 스크립트의 추가 기능은 독자에게 연습으로 남겨 둡니다.


그 아이디어를 제공해 주셔서 감사합니다. :-) (더블) 클릭으로 좋아하는 위치를 여는 .desktop 파일을 쉽게 작성할 수 있다고 덧붙이고 싶습니다.
힌츠

1

방금 원래 솔루션이 질문에서 거부되었음을 알았습니다. 프로파일을 변경하는 간단한 방법은 없지만 setterm명령 을 사용하여 배경 / 전경색을 변경할 수 있습니다 .

따라서 setterm -term linux -background black -foreground green녹색 텍스트가있는 검정색 배경을 제공합니다. 유일한 문제는 ls가 출력을 채색했기 때문에 ls 채색을 끄고 싶습니다. 그렇지 않으면 이전 색 구성표로 재설정됩니다

원본 게시물 : 주위에 일종의 방법이 있습니다. 남자 그놈 터미널에서 :

--window-with-profile = PROFILENAME

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

내 컴퓨터의 예가 있습니다. B & G (녹색 바탕에 검은 색), ForPrinting (검은 색 글꼴, 흰색 배경) 및 기본값의 세 가지 프로파일이 있습니다. 그래서 내가하는 일은 현재 창 유형 gnome-terminal --window-with-profile=ForPrinting입니다. 그런 다음 명령 줄에서 오래된 창을 죽이거나 그래픽으로 전환하고 닫을 수 있습니다.

B & G 프로필이 작동하지 않습니다. &는 유효한 문자가 아니기 때문에 프로파일 이름을 지정할 때 명심하십시오.


0

내가 사용했던 매우 추악한 해결책은

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

(이는 두 번째 프로필을 선택하지만 두 번째 "key Down"명령을로 변경하여 htir 프로필을 변경하도록 할 수 있습니다 xdotool key --delay 50 --repeat 2 Down.

이게 뭐야?

  1. 현재 창의 왼쪽 상단 좌표 (예 : 사용중인 그놈 터미널)를 찾습니다.
  2. 해당 터미널 위로 마우스를 이동
  3. 마우스 오른쪽 버튼을 클릭하고 상황에 맞는 메뉴를 탐색하여 두 번째 프로필을 선택하십시오.

xdotool이 설치되어 있어야 sudo apt install xdotool합니다.

터미널 자체가 터미널을 통한 구성을 허용하지 않는 특별한 종류!


0

"다음 프로파일"명령 및 바로 가기를 제공하는 그놈 터미널이 훌륭합니다. 불행히도 그렇지 않습니다.

Alt+T비활성화 된 사용자 (편집> 기본 설정> 니모닉 활성화-선택 해제)에 대한 해결 방법 은 다음 F10 left left down right과 같습니다 . 프로필을 선택합니다. 아야.


메뉴 막대가 표시되어야합니다.
Gauthier

0

이것은 다소 오래된 게시물이지만이 동일한 문제를 해결하기 위해 검색하는 동안 계속 올라 오므로 솔루션을 게시 할 것이라고 생각했습니다.

여기에는 작은 파이썬 스크립트와 CTRL + ALT + T 버튼을 다시 매핑하여 터미널을 시작하는 대신 스크립트를 실행하는 과정이 포함됩니다.

이름이 mine terminal.py 인 텍스트 파일을 작성하고 실행 가능한지 확인하십시오. 다음 코드를 넣으십시오. 그러면 사용 가능한 모든 프로파일을 순서대로 사용하여 터미널 창이 열립니다. "기본"으로 표시된 것이 목록에서 첫 번째인지 확인하십시오.

#!/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")

키보드 설정 유틸리티를 사용하여이 스크립트에 새 바로 가기를 할당하십시오. 나를 위해 CTRL + Alt + T를 다시 할당했습니다. 단말기 창을 여는 데 사용하는 바로 가기이기 때문입니다.

터미널에서 여러 개의 프로파일을 작성하십시오. 이 스크립트는 모든 프로필을 사용합니다. 따라서 더 많이 만들수록 창의 변형도 많아집니다. 배경색을 제외하고 모두 동일한 몇 가지가 있습니다. 이것은 내가 그들을 통해 탭으로 인식하는 데 도움이됩니다.

터미널 창 예제

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